| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- #include <precomp.h>
 
- #include "grouptgbutton.h"
 
- #include <api/script/objects/guiobject.h>
 
- #include <api/wnd/notifmsg.h>
 
- GroupToggleButton::GroupToggleButton() {
 
-   status = STATUS_OFF;
 
- }
 
- GroupToggleButton::~GroupToggleButton() {
 
- }
 
- void GroupToggleButton::setGroups(const wchar_t *_on, const wchar_t *_off) {
 
-   on_id = _on;
 
-   on.setContent(on_id);
 
-   off_id = _off;
 
-   off.setContent(off_id);
 
- }
 
- int GroupToggleButton::onInit() {
 
-   int rt = GROUPTOGGLEBUTTON_PARENT::onInit();
 
-   initGroups();
 
-   return rt;
 
- }
 
- void GroupToggleButton::initGroups() {
 
-   on.setStartHidden(status == STATUS_ON ? 0 : 1); off.setStartHidden(status == STATUS_ON ? 1 : 0);
 
-   on.setContent(on_id);
 
- 	off.setContent(off_id);
 
-   on.setParent(this); off.setParent(this);
 
-   on.init(this); off.init(this);
 
-   rootwndholder_setRootWnd(status == STATUS_ON ? &on : &off);
 
- }
 
- int GroupToggleButton::childNotify(ifc_window *child, int msg, intptr_t param1, intptr_t param2) {
 
-   if (child == &on || child == &off) {
 
-     switch (msg) {
 
-       case ChildNotify::BUTTON_LEFTPUSH: {
 
-         if (wantFullClick()) grouptoggle_onLeftPush();
 
-         return 1;
 
-       }
 
-       case ChildNotify::BUTTON_RIGHTPUSH: {
 
-         if (wantFullClick()) grouptoggle_onRightPush();
 
-         return 1;
 
-       }
 
-       case ChildNotify::CLICKWND_LEFTDOWN: {
 
-         if (!wantFullClick()) grouptoggle_onLeftPush();
 
-         return 1;
 
-       }
 
-       case ChildNotify::CLICKWND_RIGHTDOWN: {
 
-         if (!wantFullClick()) grouptoggle_onRightPush();
 
-         return 1;
 
-       }
 
-     }
 
-   }
 
-   return GROUPTOGGLEBUTTON_PARENT::childNotify(child, msg, param1, param2);
 
- }
 
- void GroupToggleButton::toggle() {
 
-   if (status == STATUS_OFF) {
 
-     if (isInited()) {
 
-       off.setVisible(0);
 
-       on.setVisible(1);
 
-       rootwndholder_setRootWnd(&on);
 
-     }
 
-     status = STATUS_ON;
 
-   } else {
 
-     if (isInited()) {
 
-       on.setVisible(0);
 
-       off.setVisible(1);
 
-       rootwndholder_setRootWnd(&off);
 
-     }
 
-     status = STATUS_OFF;
 
-   }
 
-   notifyParent(ChildNotify::GROUPCLICKTGBUTTON_TOGGLE, status);
 
- }
 
- void GroupToggleButton::setStatus(int s) { 
 
-   if (s != status) 
 
-     toggle(); 
 
- }
 
- int GroupToggleButton::wantFullClick() {
 
-   return 0;
 
- }
 
- void GroupToggleButton::grouptoggle_onLeftPush() {
 
-   notifyParent(ChildNotify::GROUPCLICKTGBUTTON_CLICKED);
 
-   if (!wantAutoToggle()) return;
 
-   if (status == STATUS_ON && !off_id.isempty() || status == STATUS_OFF && !on_id.isempty())
 
-     toggle();
 
- }
 
- void GroupToggleButton::grouptoggle_onRightPush() {
 
- }
 
- GroupClickWnd *GroupToggleButton::enumGroups(int n) {
 
-   if (n == 0) return &on;
 
-   if (n == 1) return &off;
 
-   return NULL;
 
- }
 
- int GroupToggleButton::getNumGroups() {
 
-   int i=0;
 
-   i++;
 
-   i++;
 
-   return i;
 
- }
 
 
  |