00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _umode_hpp_
00026 #define _umode_hpp_
00027
00028 #include <ubit/ubrick.hpp>
00029
00034 class UMode: public UBrick {
00035 protected:
00036 friend class UCtrl;
00037
00038 u_modes cmodes, bmask, cmask;
00039
00040 public:
00041 static UMode
00043 selected,
00044
00046 unselected,
00047
00049 canSelect,
00050
00052 canArm,
00053
00055 enterHighlight, enterHighborder,
00056
00058 actionHighlight, actionHighborder,
00059
00061 canDrag1,
00062
00064 canDrag2,
00065
00067 canDrop,
00068
00070 ignoreEvents;
00071
00072
00073
00074 enum BMODES {
00076 CAN_DEL = 1<<0,
00077
00079 UCONST = 1<<1,
00080
00081
00082 DESTRUCTING = 1<<2,
00083 DESTRUCTED = 1<<3,
00084
00086 DONT_PROPAGATE = CAN_DEL | DESTRUCTED | DESTRUCTING | UCONST,
00087
00088
00089
00091 NO_AUTO_UPDATE = 1<<4,
00092
00094 IN_TEXTSEL = 1<<5,
00095
00097 IS_VERTICAL = 1<<6,
00098
00100
00101
00103
00104
00106 IGNORE_EVENTS = 1<<9,
00107
00108
00109
00110
00111 DESTRUCT_CB = 1<<10,
00112 CHANGE_CB = 1<<11,
00113 CONTAINER_CB = 1<<12,
00114 CHILD_CHANGE_CB = 1<<13,
00115
00116 VIEW_PAINT_CB = 1<<15,
00117 VIEW_CHANGE_CB = 1<<16,
00118
00119 KEY_CB = 1<<17,
00120
00121 MOUSE_CB = 1<<18,
00122
00123 MOUSE_CLICK_CB = 1<<19,
00124
00125 MOUSE_CROSS_CB = 1<<20,
00126
00127 MOUSE_DRAG_CB = 1<<21,
00128 MOUSE_MOVE_CB = 1<<22,
00129
00130
00131 UMESSAGE_CB = 1<<27,
00132 PRE_CHILD_EVENT_CB = 1<<28,
00133 RAW_EVENT_CB = 1<<29,
00134 NOTIFY_EVENT_CB = 1<<30,
00135
00136 CALLBACKS =
00137 DESTRUCT_CB|CHANGE_CB|CONTAINER_CB|CHILD_CHANGE_CB
00138 |VIEW_PAINT_CB|VIEW_CHANGE_CB
00139 |KEY_CB|MOUSE_CB|MOUSE_CLICK_CB|MOUSE_CROSS_CB|MOUSE_DRAG_CB|MOUSE_MOVE_CB
00140 |UMESSAGE_CB|PRE_CHILD_EVENT_CB|RAW_EVENT_CB|NOTIFY_EVENT_CB
00142
00144 };
00145
00146
00147
00148 enum CMODES {
00149
00150 GROUP = 1<<0,
00151 BOX = 1<<1,
00152 SOFTWIN = 1<<2,
00153 HARDWIN = 1<<3,
00154 INCRUST = 1<<4,
00155
00156 FLOATING = 1<<5,
00157 MENU = 1<<6,
00158 FAKE_PARENT = 1<<7,
00159 BORDER_LIST = 1<<8,
00160 SOFTWIN_LIST = 1<<9,
00161
00163 CAN_SHOW = 1<<10,
00164
00166 DOUBLE_BUFFER = 1<<11,
00167
00169 MODAL = 1<<12,
00170
00171
00172
00174 SELECTED = 1<<13,
00175
00177 CAN_SELECT = 1<<14,
00178
00180 CAN_SELECT_CHILDREN = 1<<15,
00181
00183 CAN_SELECT_TEXT = 1<<16,
00185 CAN_EDIT_TEXT = 1<<17,
00186
00188 CAN_BROWSE_CHILDREN = 1<<19,
00189
00191 CAN_DRAG1 = 1<<20,
00192 CAN_DRAG2 = 1<<21,
00193 CAN_DROP = 1<<22,
00194
00197 CAN_ARM = 1<<23,
00198
00199
00200
00201
00202 ACTION_HIGHLIGHT = 1<<24,
00203
00204
00205
00206
00207 ENTER_HIGHLIGHT = 1<<25,
00208
00209
00210
00211
00213 HAS_RENDERER = 1<<26,
00214
00216 HAS_CURSOR = 1<<27,
00217
00220 HAS_CLOSE_MENU_MODE = 1<<28,
00221 CLOSE_MENU_MODE = 1<<29,
00222
00223
00224
00226 WIN_MAPPED = 1<<30,
00227
00229 WIN_AUTO_OPEN_MODE = 1<<31
00230
00231
00232
00233 };
00234
00235 UMode(u_modes bmodes, u_modes cmodes, bool on_off);
00236 UMode(u_modes bmodes = 0);
00237 virtual ~UMode() {destructs();}
00238
00239
00240
00241 virtual void setParentModes(UCtrl *parent) const;
00242 virtual void addingTo(class ULink *selflink, UGroup *parent);
00243 virtual void removingFrom(class ULink *selflink, UGroup *parent);
00245 };
00246
00247
00248
00249 #endif
00250