UIDescription Class Reference
[Version 4.0]

XML description parser and view creator. More...

Inheritance diagram for UIDescription:
Inheritance graph
[legend]
Collaboration diagram for UIDescription:
Collaboration graph
[legend]

List of all members.

Public Types

enum  SaveFlags { kWriteWindowsResourceFile = 1 << 0, kWriteImagesIntoXMLFile = 1 << 1 }

Public Member Functions

 UIDescription (const CResourceDescription &xmlFile, IViewFactory *viewFactory=0)
 UIDescription (Xml::IContentProvider *xmlContentProvider, IViewFactory *viewFactory=0)
 ~UIDescription ()
virtual bool parse ()
virtual bool save (UTF8StringPtr filename, int32_t flags=kWriteWindowsResourceFile)
virtual bool saveWindowsRCFile (UTF8StringPtr filename)
bool storeViews (const std::list< CView * > views, OutputStream &stream, UIAttributes *customData=0) const
bool restoreViews (InputStream &stream, std::list< SharedPointer< CView > > &views, UIAttributes **customData=0)
UTF8StringPtr getXmFileName () const
CViewcreateView (UTF8StringPtr name, IController *controller)
const UIAttributesgetViewAttributes (UTF8StringPtr name)
void setController (IController *controller)
CBitmapgetBitmap (UTF8StringPtr name)
CFontRef getFont (UTF8StringPtr name)
bool getColor (UTF8StringPtr name, CColor &color)
int32_t getTagForName (UTF8StringPtr name) const
CControlListenergetControlListener (UTF8StringPtr name)
IControllergetController () const
IViewFactorygetViewFactory () const
UTF8StringPtr lookupColorName (const CColor &color) const
UTF8StringPtr lookupFontName (const CFontRef font) const
UTF8StringPtr lookupBitmapName (const CBitmap *bitmap) const
UTF8StringPtr lookupControlTagName (const int32_t tag) const
void collectTemplateViewNames (std::list< const std::string * > &names) const
void collectColorNames (std::list< const std::string * > &names) const
void collectFontNames (std::list< const std::string * > &names) const
void collectBitmapNames (std::list< const std::string * > &names) const
void collectControlTagNames (std::list< const std::string * > &names) const
void changeColorName (UTF8StringPtr oldName, UTF8StringPtr newName)
void changeTagName (UTF8StringPtr oldName, UTF8StringPtr newName)
void changeFontName (UTF8StringPtr oldName, UTF8StringPtr newName)
void changeBitmapName (UTF8StringPtr oldName, UTF8StringPtr newName)
void changeColor (UTF8StringPtr name, const CColor &newColor)
void changeFont (UTF8StringPtr name, CFontRef newFont)
void changeBitmap (UTF8StringPtr name, UTF8StringPtr newName, const CRect *nineparttiledOffset=0)
void changeBitmapFilters (UTF8StringPtr bitmapName, const std::list< SharedPointer< UIAttributes > > &filters)
void collectBitmapFilters (UTF8StringPtr bitmapName, std::list< SharedPointer< UIAttributes > > &filters) const
void removeColor (UTF8StringPtr name)
void removeTag (UTF8StringPtr name)
void removeFont (UTF8StringPtr name)
void removeBitmap (UTF8StringPtr name)
void changeAlternativeFontNames (UTF8StringPtr name, UTF8StringPtr alternativeFonts)
bool getAlternativeFontNames (UTF8StringPtr name, std::string &alternativeFonts)
bool hasColorName (UTF8StringPtr name)
bool hasTagName (UTF8StringPtr name)
bool hasFontName (UTF8StringPtr name)
bool hasBitmapName (UTF8StringPtr name)
void updateViewDescription (UTF8StringPtr name, CView *view)
bool getTemplateNameFromView (CView *view, std::string &templateName) const
bool addNewTemplate (UTF8StringPtr name, UIAttributes *attr)
bool removeTemplate (UTF8StringPtr name)
bool changeTemplateName (UTF8StringPtr name, UTF8StringPtr newName)
bool duplicateTemplate (UTF8StringPtr name, UTF8StringPtr duplicateName)
bool setCustomAttributes (UTF8StringPtr name, UIAttributes *attr)
UIAttributesgetCustomAttributes (UTF8StringPtr name, bool create=false)
bool getControlTagString (UTF8StringPtr tagName, std::string &tagString) const
bool changeControlTagString (UTF8StringPtr tagName, const std::string &newTagString, bool create=false)
bool getVariable (UTF8StringPtr name, double &value) const
bool calculateStringValue (UTF8StringPtr str, double &result) const
void setBitmapCreator (IBitmapCreator *bitmapCreator)
virtual void addDependency (CBaseObject *obj)
virtual void removeDependency (CBaseObject *obj)
virtual void changed (IdStringPtr message)
virtual void deferChanges (bool state)
Reference Counting Methods



virtual void forget ()
 decrease refcount and delete object if refcount == 0
virtual void remember ()
 increase refcount
virtual int32_t getNbReference () const
 get refcount
Message Methods



virtual CMessageResult notify (CBaseObject *sender, IdStringPtr message)

Static Public Member Functions

static bool parseColor (const std::string &colorString, CColor &color)

Static Public Attributes

static CViewAttributeID kTemplateNameAttributeID = 'uitl'
static IdStringPtr kMessageTagChanged = "kMessageTagChanged"
static IdStringPtr kMessageColorChanged = "kMessageColorChanged"
static IdStringPtr kMessageFontChanged = "kMessageFontChanged"
static IdStringPtr kMessageBitmapChanged = "kMessageBitmapChanged"
static IdStringPtr kMessageTemplateChanged = "kMessageTemplateChanged"
static IdStringPtr kMessageBeforeSave = "kMessageBeforeSave"

Protected Types

typedef std::set< IdStringPtrDeferedChangesSet
typedef std::list< CBaseObject * > DependentList

Protected Member Functions

CViewcreateViewFromNode (UINode *node)
UINode * getBaseNode (UTF8StringPtr name) const
UINode * findChildNodeByNameAttribute (UINode *node, UTF8StringPtr nameAttribute) const
UINode * findNodeForView (CView *view) const
bool updateAttributesForView (UINode *node, CView *view, bool deep=true)
void addDefaultNodes ()
bool saveToStream (OutputStream &stream, int32_t flags)
void startXmlElement (Xml::Parser *parser, IdStringPtr elementName, UTF8StringPtr *elementAttributes)
void endXmlElement (Xml::Parser *parser, IdStringPtr name)
void xmlCharData (Xml::Parser *parser, const int8_t *data, int32_t length)
void xmlComment (Xml::Parser *parser, IdStringPtr comment)

Static Protected Member Functions

static void rememberObject (CBaseObject *obj)
static void forgetObject (CBaseObject *obj)

Protected Attributes

CResourceDescription xmlFile
UINode * nodes
IControllercontroller
IViewFactoryviewFactory
Xml::IContentProviderxmlContentProvider
IBitmapCreatorbitmapCreator
std::deque< IController * > subControllerStack
std::deque< UINode * > nodeStack
bool restoreViewsMode
int32_t deferChangeCount
DeferedChangesSet deferedChanges
DependentList dependents

Detailed Description

XML description parser and view creator.


Member Typedef Documentation

typedef std::set<IdStringPtr> DeferedChangesSet [protected, inherited]
typedef std::list<CBaseObject*> DependentList [protected, inherited]

Member Enumeration Documentation

enum SaveFlags
Enumerator:
kWriteWindowsResourceFile 
kWriteImagesIntoXMLFile 

Constructor & Destructor Documentation

UIDescription ( const CResourceDescription xmlFile,
IViewFactory viewFactory = 0 
)
UIDescription ( Xml::IContentProvider xmlContentProvider,
IViewFactory viewFactory = 0 
)
~UIDescription (  ) 

Member Function Documentation

void addDefaultNodes (  )  [protected]
void addDependency ( CBaseObject obj  )  [inline, virtual, inherited]

add a dependent object

bool addNewTemplate ( UTF8StringPtr  name,
UIAttributes attr 
)
bool calculateStringValue ( UTF8StringPtr  str,
double &  result 
) const
void changeAlternativeFontNames ( UTF8StringPtr  name,
UTF8StringPtr  alternativeFonts 
)
void changeBitmap ( UTF8StringPtr  name,
UTF8StringPtr  newName,
const CRect nineparttiledOffset = 0 
)
void changeBitmapFilters ( UTF8StringPtr  bitmapName,
const std::list< SharedPointer< UIAttributes > > &  filters 
)
void changeBitmapName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
void changeColor ( UTF8StringPtr  name,
const CColor newColor 
)
void changeColorName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
bool changeControlTagString ( UTF8StringPtr  tagName,
const std::string &  newTagString,
bool  create = false 
)
void changed ( IdStringPtr  message  )  [inline, virtual, inherited]

notify dependent objects of change with message.

void changeFont ( UTF8StringPtr  name,
CFontRef  newFont 
)
void changeFontName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
void changeTagName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
bool changeTemplateName ( UTF8StringPtr  name,
UTF8StringPtr  newName 
)
void collectBitmapFilters ( UTF8StringPtr  bitmapName,
std::list< SharedPointer< UIAttributes > > &  filters 
) const
void collectBitmapNames ( std::list< const std::string * > &  names  )  const
void collectColorNames ( std::list< const std::string * > &  names  )  const
void collectControlTagNames ( std::list< const std::string * > &  names  )  const
void collectFontNames ( std::list< const std::string * > &  names  )  const
void collectTemplateViewNames ( std::list< const std::string * > &  names  )  const
CView * createView ( UTF8StringPtr  name,
IController controller 
)
CView * createViewFromNode ( UINode *  node  )  [protected]
void deferChanges ( bool  state  )  [inline, virtual, inherited]

defer changes until later. can be nested. If you use this, you must make sure that all message pointers are valid the whole time.

bool duplicateTemplate ( UTF8StringPtr  name,
UTF8StringPtr  duplicateName 
)
void endXmlElement ( Xml::Parser parser,
IdStringPtr  name 
) [protected, virtual]

Implements IHandler.

UINode * findChildNodeByNameAttribute ( UINode *  node,
UTF8StringPtr  nameAttribute 
) const [protected]
UINode * findNodeForView ( CView view  )  const [protected]
virtual void forget (  )  [inline, virtual, inherited]

decrease refcount and delete object if refcount == 0

static void forgetObject ( CBaseObject obj  )  [inline, static, protected, inherited]
bool getAlternativeFontNames ( UTF8StringPtr  name,
std::string &  alternativeFonts 
)
UINode * getBaseNode ( UTF8StringPtr  name  )  const [protected]
CBitmap * getBitmap ( UTF8StringPtr  name  )  [virtual]

Implements IUIDescription.

bool getColor ( UTF8StringPtr  name,
CColor color 
) [virtual]

Implements IUIDescription.

IController* getController (  )  const [inline, virtual]

Implements IUIDescription.

CControlListener * getControlListener ( UTF8StringPtr  name  )  [virtual]

Implements IUIDescription.

bool getControlTagString ( UTF8StringPtr  tagName,
std::string &  tagString 
) const
UIAttributes * getCustomAttributes ( UTF8StringPtr  name,
bool  create = false 
)
CFontRef getFont ( UTF8StringPtr  name  )  [virtual]

Implements IUIDescription.

virtual int32_t getNbReference (  )  const [inline, virtual, inherited]

get refcount

int32_t getTagForName ( UTF8StringPtr  name  )  const [virtual]

Implements IUIDescription.

bool getTemplateNameFromView ( CView view,
std::string &  templateName 
) const
bool getVariable ( UTF8StringPtr  name,
double &  value 
) const
const UIAttributes * getViewAttributes ( UTF8StringPtr  name  ) 
IViewFactory* getViewFactory (  )  const [inline]
UTF8StringPtr getXmFileName (  )  const [inline]
bool hasBitmapName ( UTF8StringPtr  name  ) 
bool hasColorName ( UTF8StringPtr  name  ) 
bool hasFontName ( UTF8StringPtr  name  ) 
bool hasTagName ( UTF8StringPtr  name  ) 
UTF8StringPtr lookupBitmapName ( const CBitmap bitmap  )  const [virtual]

Implements IUIDescription.

UTF8StringPtr lookupColorName ( const CColor color  )  const [virtual]

Implements IUIDescription.

UTF8StringPtr lookupControlTagName ( const int32_t  tag  )  const [virtual]

Implements IUIDescription.

UTF8StringPtr lookupFontName ( const CFontRef  font  )  const [virtual]

Implements IUIDescription.

virtual CMessageResult notify ( CBaseObject sender,
IdStringPtr  message 
) [inline, virtual, inherited]
bool parse (  )  [virtual]
bool parseColor ( const std::string &  colorString,
CColor color 
) [static]
virtual void remember (  )  [inline, virtual, inherited]

increase refcount

static void rememberObject ( CBaseObject obj  )  [inline, static, protected, inherited]
void removeBitmap ( UTF8StringPtr  name  ) 
void removeColor ( UTF8StringPtr  name  ) 
void removeDependency ( CBaseObject obj  )  [inline, virtual, inherited]

remove a dependent object.

void removeFont ( UTF8StringPtr  name  ) 
void removeTag ( UTF8StringPtr  name  ) 
bool removeTemplate ( UTF8StringPtr  name  ) 
bool restoreViews ( InputStream stream,
std::list< SharedPointer< CView > > &  views,
UIAttributes **  customData = 0 
)
bool save ( UTF8StringPtr  filename,
int32_t  flags = kWriteWindowsResourceFile 
) [virtual]
bool saveToStream ( OutputStream stream,
int32_t  flags 
) [protected]
bool saveWindowsRCFile ( UTF8StringPtr  filename  )  [virtual]
void setBitmapCreator ( IBitmapCreator bitmapCreator  ) 
void setController ( IController controller  ) 
bool setCustomAttributes ( UTF8StringPtr  name,
UIAttributes attr 
)
void startXmlElement ( Xml::Parser parser,
IdStringPtr  elementName,
UTF8StringPtr elementAttributes 
) [protected, virtual]

Implements IHandler.

bool storeViews ( const std::list< CView * >  views,
OutputStream stream,
UIAttributes customData = 0 
) const
bool updateAttributesForView ( UINode *  node,
CView view,
bool  deep = true 
) [protected]
void updateViewDescription ( UTF8StringPtr  name,
CView view 
)
void xmlCharData ( Xml::Parser parser,
const int8_t *  data,
int32_t  length 
) [protected, virtual]

Implements IHandler.

void xmlComment ( Xml::Parser parser,
IdStringPtr  comment 
) [protected, virtual]

Implements IHandler.


Member Data Documentation

IController* controller [protected]
int32_t deferChangeCount [protected, inherited]
DeferedChangesSet deferedChanges [protected, inherited]
DependentList dependents [protected, inherited]
IdStringPtr kMessageBeforeSave = "kMessageBeforeSave" [static]
IdStringPtr kMessageBitmapChanged = "kMessageBitmapChanged" [static]
IdStringPtr kMessageColorChanged = "kMessageColorChanged" [static]
IdStringPtr kMessageFontChanged = "kMessageFontChanged" [static]
IdStringPtr kMessageTagChanged = "kMessageTagChanged" [static]
IdStringPtr kMessageTemplateChanged = "kMessageTemplateChanged" [static]
UINode* nodes [protected]
std::deque<UINode*> nodeStack [protected]
bool restoreViewsMode [protected]
std::deque<IController*> subControllerStack [protected]
IViewFactory* viewFactory [protected]

The documentation for this class was generated from the following files:

Generated on Fri Nov 22 11:10:00 2013 for VSTGUI by  doxygen 1.6.1