Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

umode.hpp

00001 /* ==================================================== ======== ======= * 00002 * 00003 * umode.hpp 00004 * Ubit Project [Elc][2003] 00005 * Author: Eric Lecolinet 00006 * 00007 * Part of the Ubit Toolkit: A Brick Construction Game Model for Creating GUIs 00008 * 00009 * (C) 1999-2003 Eric Lecolinet @ ENST Paris 00010 * WWW: http://www.enst.fr/~elc/ubit Email: elc@enst.fr (subject: ubit) 00011 * 00012 * *********************************************************************** 00013 * COPYRIGHT NOTICE : 00014 * THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY AND WITHOUT EVEN THE 00015 * IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 00016 * YOU CAN REDISTRIBUTE IT AND/OR MODIFY IT UNDER THE TERMS OF THE GNU 00017 * GENERAL PUBLIC LICENSE AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 00018 * EITHER VERSION 2 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION. 00019 * SEE FILES 'COPYRIGHT' AND 'COPYING' FOR MORE DETAILS. 00020 * *********************************************************************** 00021 * 00022 * ==================================================== [Elc:03] ======= * 00023 * ==================================================== ======== ======= */ 00024 00025 #ifndef _umode_hpp_ 00026 #define _umode_hpp_ 00027 //pragma ident "@(#)umode.hh ubit:03.05.05" 00028 #include <ubit/ubrick.hpp> 00029 00034 class UMode: public UBrick { 00035 protected: 00036 friend class UCtrl; 00037 // NB: bmodes is inherited from UBrick 00038 u_modes cmodes, bmask, cmask; 00039 00040 public: 00041 static UMode 00043 selected, 00044 00046 unselected, 00047 00049 canSelect, //canSelectChildren, 00050 00052 canArm, 00053 00055 enterHighlight, enterHighborder, 00056 00058 actionHighlight, actionHighborder, //actionWatch, 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 // this object is being destructed (by its destructors) 00082 DESTRUCTING = 1<<2, 00083 DESTRUCTED = 1<<3, 00084 00086 DONT_PROPAGATE = CAN_DEL | DESTRUCTED | DESTRUCTING | UCONST, // !dont' forget! 00087 00088 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00089 00091 NO_AUTO_UPDATE = 1<<4, 00092 00094 IN_TEXTSEL = 1<<5, 00095 00097 IS_VERTICAL = 1<<6, 00098 00100 //IS_BACKWARDS = 1<<, 00101 00103 //RESEND_EVENTS = 1<<, 00104 00106 IGNORE_EVENTS = 1<<9, 00107 00108 // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 00109 // callbacks to which this object is sensitive 00110 00111 DESTRUCT_CB = 1<<10, 00112 CHANGE_CB = 1<<11, 00113 CONTAINER_CB = 1<<12, 00114 CHILD_CHANGE_CB = 1<<13, 00115 //CHILD_SELECT_CB = 1<<, plus utilise 00116 VIEW_PAINT_CB = 1<<15, 00117 VIEW_CHANGE_CB = 1<<16, 00118 // -- Key: UOn::kpress, UOn::krelease and UOn::ktype 00119 KEY_CB = 1<<17, 00120 // -- Mouse: UOn::mpress, UOn::mrelease (NB: not used) 00121 MOUSE_CB = 1<<18, 00122 // -- Mouse: UOn::mclick, UOn::mbiclick, etc. (NB: not used) 00123 MOUSE_CLICK_CB = 1<<19, 00124 // -- Enter, Leave and Cursor: UOn::enter and UOn::leave 00125 MOUSE_CROSS_CB = 1<<20, 00126 // -- Drag & Move: UOn::mdrag and UOn::mmove 00127 MOUSE_DRAG_CB = 1<<21, 00128 MOUSE_MOVE_CB = 1<<22, 00129 00130 // -- UOn::message, UOn::preChildEvent, UOn::anyEvent 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 // |CHILD_SELECT_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 //--- Internal MetaTypes 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 //ENABLED (ISTATE::DISABLED used instead) 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 //CAN_ACTION = 1<<, 00199 00200 // ** Higligting: 00201 // -- on UOn::action conditions 00202 ACTION_HIGHLIGHT = 1<<24, 00203 //ACTION_HIGHBORDER = 1<<, 00204 //ACTION_WATCH = 1<<, 00205 00206 // -- on UOn::enter and UOn::leave conditions 00207 ENTER_HIGHLIGHT = 1<<25, 00208 //ENTER_HIGHBORDER = 1<<, 00209 00210 //--- Box attributes 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 //--- Win and menu attributes 00224 00226 WIN_MAPPED = 1<<30, 00227 00229 WIN_AUTO_OPEN_MODE = 1<<31 00230 00231 // !no comma after last item! 00232 // !BEWARE total size must be coherent with typedef u_modes in udefs.hh !! 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 /* ==================================================== [TheEnd] ======= */ 00248 /* ==================================================== [Elc:03] ======= */ 00249 #endif 00250

Generated on Wed Aug 18 07:38:55 2004 for Ubit[Eric.Lecolinet@enst.fr] by doxygen 1.3.7