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

FXObject.h File Reference

Go to the source code of this file.

Classes

class  FX::FXMetaClass
 
class  FX::FXObject
 

Namespaces

 FX
 

Macros

#define FXDECLARE(classname)
 
#define FXIMPLEMENT(classname, baseclassname, mapping, nmappings)
 
#define FXDECLARE_ABSTRACT(classname)
 
#define FXIMPLEMENT_ABSTRACT(classname, baseclassname, mapping, nmappings)
 
#define FXMETACLASS(classname)   (&classname::metaClass)
 
#define FXDEFMAP(classname)   static const classname::FXMapEntry
 
#define FXMAPTYPES(typelo, typehi, func)   {FXSEL(typelo,FX::MINKEY),FXSEL(typehi,FX::MAXKEY),&func}
 
#define FXMAPTYPE(type, func)   {FXSEL(type,FX::MINKEY),FXSEL(type,FX::MAXKEY),&func}
 
#define FXMAPFUNCS(type, keylo, keyhi, func)   {FXSEL(type,keylo),FXSEL(type,keyhi),&func}
 
#define FXMAPFUNC(type, key, func)   {FXSEL(type,key),FXSEL(type,key),&func}
 

Typedefs

typedef FXuint FX::FXSelector
 

Enumerations

enum  {
  FX::MINKEY = 0,
  FX::MAXKEY = 65535
}
 
enum  {
  FX::MINTYPE = 0,
  FX::MAXTYPE = 65535
}
 

Macro Definition Documentation

#define FXDECLARE (   classname)
Value:
public: \
struct FXMapEntry { FX::FXSelector keylo; FX::FXSelector keyhi; long (classname::* func)(FX::FXObject*,FX::FXSelector,void*); }; \
static const FX::FXMetaClass metaClass; \
static FX::FXObject* manufacture(); \
virtual long handle(FX::FXObject* sender,FX::FXSelector sel,void* ptr); \
virtual const FX::FXMetaClass* getMetaClass() const { return &metaClass; } \
friend FX::FXStream& operator<<(FX::FXStream& store,const classname* obj){return store.saveObject((FX::FXObjectPtr)(obj));} \
friend FX::FXStream& operator>>(FX::FXStream& store,classname*& obj){return store.loadObject((FX::FXObjectPtr&)(obj));} \
FXStream & operator>>(FXStream &store, FXDate &d)
Describes a FOX object.
Definition: FXObject.h:65
FXuint FXSelector
Association key.
Definition: FXObject.h:53
FXStream & saveObject(const FXObject *v)
Save object.
A stream is a way to serialize data and objects into a byte stream.
Definition: FXStream.h:99
Object is the base class for all objects in FOX; in order to receive messages from the user interface...
Definition: FXObject.h:166
FXStream & loadObject(FXObject *&v)
Load object.
FXStream & operator<<(FXStream &store, const FXDate &d)

Macro to set up class declaration.

#define FXIMPLEMENT (   classname,
  baseclassname,
  mapping,
  nmappings 
)
Value:
FX::FXObject* classname::manufacture(){return new classname;} \
const FX::FXMetaClass classname::metaClass(#classname,classname::manufacture,&baseclassname::metaClass,mapping,nmappings,sizeof(classname::FXMapEntry)); \
long classname::handle(FX::FXObject* sender,FX::FXSelector sel,void* ptr){ \
const FXMapEntry* me=(const FXMapEntry*)metaClass.search(sel); \
return me ? (this->* me->func)(sender,sel,ptr) : baseclassname::handle(sender,sel,ptr); \
}
Describes a FOX object.
Definition: FXObject.h:65
FXuint FXSelector
Association key.
Definition: FXObject.h:53
Object is the base class for all objects in FOX; in order to receive messages from the user interface...
Definition: FXObject.h:166

Macro to set up class implementation.

#define FXDECLARE_ABSTRACT (   classname)
Value:
public: \
struct FXMapEntry { FX::FXSelector keylo; FX::FXSelector keyhi; long (classname::* func)(FX::FXObject*,FX::FXSelector,void*); }; \
static const FX::FXMetaClass metaClass; \
virtual long handle(FX::FXObject* sender,FX::FXSelector sel,void* ptr); \
virtual const FX::FXMetaClass* getMetaClass() const { return &metaClass; } \
friend FX::FXStream& operator<<(FX::FXStream& store,const classname* obj){return store.saveObject((FX::FXObjectPtr)(obj));} \
friend FX::FXStream& operator>>(FX::FXStream& store,classname*& obj){return store.loadObject((FX::FXObjectPtr&)(obj));} \
FXStream & operator>>(FXStream &store, FXDate &d)
Describes a FOX object.
Definition: FXObject.h:65
FXuint FXSelector
Association key.
Definition: FXObject.h:53
FXStream & saveObject(const FXObject *v)
Save object.
A stream is a way to serialize data and objects into a byte stream.
Definition: FXStream.h:99
Object is the base class for all objects in FOX; in order to receive messages from the user interface...
Definition: FXObject.h:166
FXStream & loadObject(FXObject *&v)
Load object.
FXStream & operator<<(FXStream &store, const FXDate &d)

Macro to set up abstract class declaration.

#define FXIMPLEMENT_ABSTRACT (   classname,
  baseclassname,
  mapping,
  nmappings 
)
Value:
const FX::FXMetaClass classname::metaClass(#classname,NULL,&baseclassname::metaClass,mapping,nmappings,sizeof(classname::FXMapEntry)); \
long classname::handle(FX::FXObject* sender,FX::FXSelector sel,void* ptr){ \
const FXMapEntry* me=(const FXMapEntry*)metaClass.search(sel); \
return me ? (this->* me->func)(sender,sel,ptr) : baseclassname::handle(sender,sel,ptr); \
}
Describes a FOX object.
Definition: FXObject.h:65
FXuint FXSelector
Association key.
Definition: FXObject.h:53
#define NULL
Definition: fxdefs.h:41
Object is the base class for all objects in FOX; in order to receive messages from the user interface...
Definition: FXObject.h:166

Macro to set up abstract class implementation.

#define FXMETACLASS (   classname)    (&classname::metaClass)

MetaClass of a class.

#define FXDEFMAP (   classname)    static const classname::FXMapEntry

Set up map type.

#define FXMAPTYPES (   typelo,
  typehi,
  func 
)    {FXSEL(typelo,FX::MINKEY),FXSEL(typehi,FX::MAXKEY),&func}

Define range of function types.

#define FXMAPTYPE (   type,
  func 
)    {FXSEL(type,FX::MINKEY),FXSEL(type,FX::MAXKEY),&func}

Define range of function types.

#define FXMAPFUNCS (   type,
  keylo,
  keyhi,
  func 
)    {FXSEL(type,keylo),FXSEL(type,keyhi),&func}

Define range of functions.

#define FXMAPFUNC (   type,
  key,
  func 
)    {FXSEL(type,key),FXSEL(type,key),&func}

Define one function.

Copyright © 1997-2005 Jeroen van der Zijp