| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | 
							- #include <lib/std.mi>
 
- #define MARGIN 2
 
- #define MARGIN_PRE  2
 
- #define MARGIN_POST 6
 
- #define CHECKMARK_WIDTH 10
 
- #define ARROW_WIDTH 10
 
- Function setArrow(int want);
 
- Function setCheckmark(int want);
 
- Function updatePos();
 
- Global Group mgrp;
 
- Global GuiObject background;
 
- Class GuiObject ItemSwitcher;
 
- Global int id;
 
- Global int want_checkmark;
 
- Global int want_arrow;
 
- Global ItemSwitcher a, b, c, d;
 
- Global GuiObject _a, _b, _c;
 
- System.onScriptLoaded() {
 
-   mgrp = getScriptGroup();
 
-   if (mgrp == NULL) {
 
-     messagebox("popupitem.maki: cannot run outside a group", "Error", 0, "");
 
-     return;
 
-   }
 
-   _a = mgrp.getObject("popup.item.checkmark"); a = _a;
 
-   _b = mgrp.getObject("popup.item.text"); b = _b;
 
-   _c = mgrp.getObject("popup.item.submenuarrow"); c = _c;
 
-   background = mgrp.getObject("popup.background"); d = background;
 
-   want_checkmark = -1;
 
-   want_arrow = -1;
 
- }
 
- mgrp.onNotify(String command, String param, int a, int b) {
 
-   if (command == "id") id = StringToInteger(param);
 
-   if (command == "arrow") setArrow(StringToInteger(param));
 
-   if (command == "checkmark") setCheckMark(StringToInteger(param));
 
- }
 
- ItemSwitcher.onEnterArea() {
 
-   background.cancelTarget();
 
-   background.setAlpha(255);
 
- }
 
- ItemSwitcher.onLeaveArea() {
 
-   background.setTargetA(0);
 
-   background.setTargetSpeed(0.25);
 
-   background.gotoTarget();
 
- }
 
- ItemSwitcher.onLeftButtonDown(int x, int y) {
 
-   mgrp.endModal(id);
 
- }
 
- setArrow(int want) {
 
-   if (want_arrow == want) return;
 
-   want_arrow = want;
 
-   updatePos();
 
- }
 
- setCheckmark(int want) {
 
-   if (want_checkmark == want) return;
 
-   want_checkmark = want;
 
-   updatePos();
 
- }
 
- updatePos() {
 
-   int x = MARGIN;
 
-   int mx = MARGIN;
 
-   if (!want_checkmark) {
 
-    if (_a != NULL) {
 
-      _a.hide();
 
-     }
 
-   } else {
 
-    if (_a != NULL) {
 
-      _a.show();
 
-     }
 
-     x += CHECKMARK_WIDTH + MARGIN_PRE;
 
-     mx += CHECKMARK_WIDTH + MARGIN_PRE;
 
-   }
 
-   if (!want_arrow) {
 
-    if (_c != NULL) {
 
-       _c.hide();
 
-     }
 
-   } else {
 
-    if (_c != NULL) {
 
-       _c.show();
 
-     }
 
-     mx += ARROW_WIDTH + MARGIN_POST;
 
-   }
 
-   mx += MARGIN;
 
-   if (_b != NULL) {
 
-     _b.setXmlParam("x", IntegerToString(x));
 
-     _b.setXmlParam("w", "-" + IntegerToString(mx));
 
-   }
 
- }
 
 
  |