18 #define _uclass_hpp_ 1 19 #include <ubit/udefs.hpp> 23 #define UCLASSDEF(NAME,C,CREATOR) \ 24 struct MetaClass : public UClass { \ 25 MetaClass(): UClass(NAME) {} \ 26 virtual bool isInstance(UObject& obj) const {return dynamic_cast<C*>(&obj);} \ 27 virtual bool isInstance(UObject* obj) const {return dynamic_cast<C*>(obj);} \ 28 virtual C* newInstance() const {return CREATOR;} \ 29 virtual UStyle* newStyle() const {return C::createStyle();} \ 31 static const UClass& Class() {static MetaClass& c = *new MetaClass; return c;} \ 32 virtual const UClass& getClass() const {return Class();} 38 #define UCLASS(C) UCLASSDEF(#C, C, new C) 43 #define UABSTRACT_CLASS(C) UCLASSDEF(#C, C, null) 87 DONT_PARSE_CONTENT = 1<<1,
88 PRESERVE_SPACES = 1<<2
98 unsigned int getNo()
const {
return no;}
142 static unsigned int count;
void setAttributes(UAttrList *alist) const
changes the class properties.
Definition: uclass.hpp:135
unsigned int getNo() const
returns the class #.
Definition: uclass.hpp:98
Attribute list.
Definition: uattr.hpp:167
virtual bool isInstance(UObject &object) const
returns true if this 'object' derives from this class.
Definition: uclass.hpp:107
UAttrList * getAttributes() const
returns current class properties.
Definition: uclass.hpp:130
Ubit class.
Definition: uclass.hpp:74
Definition: uhardfont.hpp:31
UStyle * obtainStyle() const
returns the style prototype that is associated to this class.
Definition: uclass.hpp:122
virtual UStyle * newStyle() const
creates a new instance of the style of this class (if applicable).
Definition: uclass.hpp:116
ParseModes
Parse Modes returned by UClass::getParseModes():
Definition: uclass.hpp:85
Compiled Object Style.
Definition: ustyle.hpp:44
virtual UObject * newInstance() const
creates a new instance of the corresponding class (if applicable).
Definition: uclass.hpp:110
const UStr & getName() const
returns the class name.
Definition: uclass.hpp:95
Ubit String.
Definition: ustr.hpp:72
virtual int getParseModes() const
returns an ORed combination of the parse modes (0 if none).
Definition: uclass.hpp:104
Base class of most Ubit objects (SEE DETAILS!).
Definition: uobject.hpp:113