Eclipse SUMO - Simulation of Urban MObility
FXBaseObject.h
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2004-2019 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
16 //
17 /****************************************************************************/
18 
19 #ifndef FXBASEOBJECT_H
20 #define FXBASEOBJECT_H
21 
22 
23 // ===========================================================================
24 // included modules
25 // ===========================================================================
26 #include <config.h>
27 
28 #include <FXHash.h>
29 using namespace FX;
30 #ifndef FXOBJECT_H
31 #include <FXObject.h>
32 using namespace FX;
33 #endif
34 namespace FXEX {
35 
43 #define FXMAPALL(func) {MKUINT(MINKEY,MINTYPE),MKUINT(MAXKEY,MAXTYPE),&func}
44 
48 #define FXMAPKEY(key,func) {MKUINT(key,MINTYPE),MKUINT(key,MAXTYPE),&func}
49 
50 
54 class /* FXAPI // patch by Daniel Krajzewicz 24.02.2004 */
55  FXBaseObject : public FXObject {
56  FXDECLARE(FXBaseObject)
57 
58 protected:
60  enum {
61  FLAG_ENABLED = 0x00000002, // enabled
62  FLAG_UPDATE = 0x00000004, // needs update
63  FLAG_FOCUSED = 0x00000010, // has focus
64  FLAG_DIRTY = 0x00000020, // dirty
65  FLAG_RECALC = 0x00000040, // needs recalculation
66  FLAG_DEFAULT = 0x00000200, // set to default
67  FLAG_INITIAL = 0x00000400, // set to initial value
68  FLAG_ACTIVE = 0x00001000, // active
69  FLAG_CHANGED = 0x00010000, // changed
70  FLAG_READONLY = 0x10000000 // read only
71  };
72 
73 private:
74  FXApp* app; // application pointer
75 
76 protected:
77  FXObject* target; // application target
78  FXSelector message; // application message
79  void* data; // user data
80  FXuint datalen; // length of user data
81  FXuint flags; // state flags
82  FXuint options; // option flags
83 
84 public:
85  enum {
86  ID_NONE = 0,
87  ID_DELETE = 6,
90  ID_SETVALUE = 17,
105  ID_LAST
106  };
107 
108 public:
109  long onCmdEnable(FXObject*, FXSelector, void*);
110  long onCmdDisable(FXObject*, FXSelector, void*);
111  long onUpdate(FXObject*, FXSelector, void*);
112 
113 public:
115  FXBaseObject(FXObject* tgt = NULL, FXSelector sel = 0);
116 
118  FXBaseObject(FXApp* a, FXObject* tgt = NULL, FXSelector sel = 0);
119 
121  FXApp* getApp();
122 
124  FXObject* getTarget() {
125  return target;
126  }
127 
129  void setTarget(FXObject* tgt) {
130  target = tgt;
131  }
132 
134  FXSelector getSelector() {
135  return message;
136  }
137 
139  void setSelector(FXSelector sel) {
140  message = sel;
141  }
142 
144  void* getUserData() {
145  return data;
146  }
147 
149  void setUserData(void* d) {
150  data = d;
151  }
152 
154  FXuint getUserDataLen() {
155  return datalen;
156  }
157 
159  void setUserDataLen(FXuint len) {
160  datalen = len;
161  }
162 
164  FXbool isEnabled() {
165  return (flags & FLAG_ENABLED) != 0;
166  }
167 
169  virtual void enable() {
170  flags |= FLAG_ENABLED;
171  }
172 
174  virtual void disable() {
175  flags &= ~FLAG_ENABLED;
176  }
177 
179  virtual FXbool isReadonly() {
180  return (flags & FLAG_READONLY) != 0;
181  }
182 
184  virtual void setReadonly(FXbool mode = TRUE);
185 
187  virtual void create() {}
188 
190  virtual void detach() {}
191 
193  virtual void destroy() {}
194 
196  virtual void save(FXStream& store) const;
197 
199  virtual void load(FXStream& store);
200 
202  virtual ~FXBaseObject();
203 };
204 
205 } // namespace FXEX
206 #endif // FXBASEOBJECT_H
207 
FXEX::FXBaseObject::options
FXuint options
Definition: FXBaseObject.h:82
FXEX::FXBaseObject::ID_CONTENT
@ ID_CONTENT
Definition: FXBaseObject.h:104
FXEX::FXBaseObject::getSelector
FXSelector getSelector()
get the message
Definition: FXBaseObject.h:134
FXEX::FXBaseObject::ID_GETINTVALUE
@ ID_GETINTVALUE
Definition: FXBaseObject.h:96
FXEX::FXBaseObject::destroy
virtual void destroy()
destroy resource
Definition: FXBaseObject.h:193
FXEX::FXBaseObject
Definition: FXBaseObject.h:55
FXEX::FXBaseObject::setTarget
void setTarget(FXObject *tgt)
set the target
Definition: FXBaseObject.h:129
FXEX::FXBaseObject::ID_SETINTRANGE
@ ID_SETINTRANGE
Definition: FXBaseObject.h:94
FXEX::FXBaseObject::message
FXSelector message
Definition: FXBaseObject.h:78
FXEX::FXBaseObject::ID_COMMENT
@ ID_COMMENT
Definition: FXBaseObject.h:101
FXEX::FXBaseObject::ID_GETREALVALUE
@ ID_GETREALVALUE
Definition: FXBaseObject.h:97
FXEX::FXBaseObject::ID_GETSTRINGVALUE
@ ID_GETSTRINGVALUE
Definition: FXBaseObject.h:98
FXEX::FXBaseObject::setSelector
void setSelector(FXSelector sel)
set the selector
Definition: FXBaseObject.h:139
FXEX::FXBaseObject::flags
FXuint flags
Definition: FXBaseObject.h:81
FXEX::FXBaseObject::isReadonly
virtual FXbool isReadonly()
are we modifiable
Definition: FXBaseObject.h:179
FXEX::FXBaseObject::ID_DOCUMENT
@ ID_DOCUMENT
Definition: FXBaseObject.h:102
FXEX::FXBaseObject::ID_DISABLE
@ ID_DISABLE
Definition: FXBaseObject.h:88
FXEX::FXBaseObject::target
FXObject * target
Definition: FXBaseObject.h:77
FXEX
Definition: FXBaseObject.cpp:47
FXEX::FXBaseObject::getUserDataLen
FXuint getUserDataLen()
get user daat length
Definition: FXBaseObject.h:154
FXEX::FXBaseObject::data
void * data
Definition: FXBaseObject.h:79
FXEX::FXBaseObject::detach
virtual void detach()
detach resource
Definition: FXBaseObject.h:190
FXEX::FXBaseObject::datalen
FXuint datalen
Definition: FXBaseObject.h:80
FXEX::FXBaseObject::getUserData
void * getUserData()
get user data
Definition: FXBaseObject.h:144
FXEX::FXBaseObject::create
virtual void create()
create resource
Definition: FXBaseObject.h:187
FXEX::FXBaseObject::ID_SETREALVALUE
@ ID_SETREALVALUE
Definition: FXBaseObject.h:92
FXEX::FXBaseObject::disable
virtual void disable()
disable us
Definition: FXBaseObject.h:174
FXEX::FXBaseObject::ID_XML
@ ID_XML
Definition: FXBaseObject.h:99
FXEX::FXBaseObject::ID_SETSTRINGVALUE
@ ID_SETSTRINGVALUE
Definition: FXBaseObject.h:93
FXEX::FXBaseObject::enable
virtual void enable()
enable us
Definition: FXBaseObject.h:169
FXEX::FXBaseObject::ID_SETINTVALUE
@ ID_SETINTVALUE
Definition: FXBaseObject.h:91
config.h
FXEX::FXBaseObject::isEnabled
FXbool isEnabled()
are we enabled?
Definition: FXBaseObject.h:164
FXEX::FXBaseObject::getTarget
FXObject * getTarget()
get the target
Definition: FXBaseObject.h:124
FXEX::FXBaseObject::ID_TAG
@ ID_TAG
Definition: FXBaseObject.h:103
FXEX::FXBaseObject::ID_ENABLE
@ ID_ENABLE
Definition: FXBaseObject.h:89
FXEX::FXBaseObject::app
FXApp * app
Definition: FXBaseObject.h:74
FXEX::FXBaseObject::ID_SETREALRANGE
@ ID_SETREALRANGE
Definition: FXBaseObject.h:95
FXEX::FXBaseObject::ID_META
@ ID_META
Definition: FXBaseObject.h:100
FXEX::FXBaseObject::setUserDataLen
void setUserDataLen(FXuint len)
set the user data length
Definition: FXBaseObject.h:159
FXEX::FXBaseObject::setUserData
void setUserData(void *d)
set user data
Definition: FXBaseObject.h:149