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