VSTGUI  4.4
Graphical User Interface Framework not only for VST plugins
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
UIDescription Class Reference

XML description parser and view creator. More...

+ Inheritance diagram for UIDescription:

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 getFilePath () const
 
void setFilePath (UTF8StringPtr path)
 
const UIAttributesgetViewAttributes (UTF8StringPtr name) const
 
void setController (IController *controller) const
 
CViewcreateView (UTF8StringPtr name, IController *controller) const
 
CBitmapgetBitmap (UTF8StringPtr name) const
 
CFontRef getFont (UTF8StringPtr name) const
 
bool getColor (UTF8StringPtr name, CColor &color) const
 
CGradientgetGradient (UTF8StringPtr name) const
 
int32_t getTagForName (UTF8StringPtr name) const
 
IControlListenergetControlListener (UTF8StringPtr name) const
 
IControllergetController () const
 
const IViewFactorygetViewFactory () const
 
UTF8StringPtr lookupColorName (const CColor &color) const
 
UTF8StringPtr lookupFontName (const CFontRef font) const
 
UTF8StringPtr lookupBitmapName (const CBitmap *bitmap) const
 
UTF8StringPtr lookupGradientName (const CGradient *gradient) const
 
UTF8StringPtr lookupControlTagName (const int32_t tag) const
 
bool getVariable (UTF8StringPtr name, double &value) const
 
bool getVariable (UTF8StringPtr name, std::string &value) 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 collectGradientNames (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 changeGradientName (UTF8StringPtr oldName, UTF8StringPtr newName)
 
void changeColor (UTF8StringPtr name, const CColor &newColor)
 
void changeFont (UTF8StringPtr name, CFontRef newFont)
 
void changeGradient (UTF8StringPtr name, CGradient *newGradient)
 
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 removeGradient (UTF8StringPtr name)
 
void changeAlternativeFontNames (UTF8StringPtr name, UTF8StringPtr alternativeFonts)
 
bool getAlternativeFontNames (UTF8StringPtr name, std::string &alternativeFonts) const
 
bool hasColorName (UTF8StringPtr name) const
 
bool hasTagName (UTF8StringPtr name) const
 
bool hasFontName (UTF8StringPtr name) const
 
bool hasBitmapName (UTF8StringPtr name) const
 
bool hasGradientName (UTF8StringPtr name) const
 
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 calculateStringValue (UTF8StringPtr str, double &result) const
 
void setBitmapCreator (IBitmapCreator *bitmapCreator)
 
void freePlatformResources ()
 
- Public Member Functions inherited from CBaseObject
 CBaseObject ()
 
virtual ~CBaseObject ()
 
virtual void beforeDelete ()
 
virtual void forget ()
 decrease refcount and delete object if refcount == 0 More...
 
virtual void remember ()
 increase refcount More...
 
virtual int32_t getNbReference () const
 get refcount More...
 
virtual CMessageResult notify (CBaseObject *sender, IdStringPtr message)
 
- Public Member Functions inherited from IUIDescription
virtual ~IUIDescription ()
 
- Public Member Functions inherited from IDependency
virtual void addDependency (CBaseObject *obj)
 add a dependent object More...
 
virtual void removeDependency (CBaseObject *obj)
 remove a dependent object. More...
 
virtual void changed (IdStringPtr message)
 notify dependent objects of change with message. More...
 
virtual void deferChanges (bool state)
 defer changes until later. More...
 

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 kMessageGradientChanged = "kMessageGradientChanged"
 
static IdStringPtr kMessageBeforeSave = "kMessageBeforeSave"
 
- Static Public Attributes inherited from IUIDescription
static IdStringPtr kCustomViewName = "custom-view-name"
 

Protected Member Functions

CViewcreateViewFromNode (UINode *node) const
 
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 removeNode (UTF8StringPtr name, IdStringPtr mainNodeName, IdStringPtr changeMsg)
 
template<typename NodeType , typename ObjType , typename CompareFunction >
UTF8StringPtr lookupName (const ObjType &obj, IdStringPtr mainNodeName, CompareFunction compare) const
 
template<typename NodeType >
void changeNodeName (UTF8StringPtr oldName, UTF8StringPtr newName, IdStringPtr mainNodeName, IdStringPtr changeMsg)
 
template<typename NodeType >
void collectNamesFromNode (IdStringPtr mainNodeName, std::list< const std::string * > &names) const
 
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)
 
- Protected Member Functions inherited from IDependency
 IDependency ()
 
virtual ~IDependency ()
 

Protected Attributes

CResourceDescription xmlFile
 
std::string filePath
 
UINode * nodes
 
IControllercontroller
 
IViewFactoryviewFactory
 
Xml::IContentProviderxmlContentProvider
 
IBitmapCreatorbitmapCreator
 
std::deque< IController * > subControllerStack
 
std::deque< UINode * > nodeStack
 
bool restoreViewsMode
 
- Protected Attributes inherited from IDependency
int32_t deferChangeCount
 
DeferedChangesSet deferedChanges
 
DependentList dependents
 

Additional Inherited Members

- Protected Types inherited from IDependency
typedef std::set< IdStringPtrDeferedChangesSet
 
typedef std::list< CBaseObject * > DependentList
 
- Static Protected Member Functions inherited from IDependency
static void rememberObject (CBaseObject *obj)
 
static void forgetObject (CBaseObject *obj)
 

Detailed Description

XML description parser and view creator.

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 
)

Member Function Documentation

void addDefaultNodes ( )
protected
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 changeFont ( UTF8StringPtr  name,
CFontRef  newFont 
)
void changeFontName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
void changeGradient ( UTF8StringPtr  name,
CGradient newGradient 
)
void changeGradientName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName 
)
void changeNodeName ( UTF8StringPtr  oldName,
UTF8StringPtr  newName,
IdStringPtr  mainNodeName,
IdStringPtr  changeMsg 
)
protected
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
virtual

Implements IUIDescription.

void collectColorNames ( std::list< const std::string * > &  names) const
virtual

Implements IUIDescription.

void collectControlTagNames ( std::list< const std::string * > &  names) const
virtual

Implements IUIDescription.

void collectFontNames ( std::list< const std::string * > &  names) const
virtual

Implements IUIDescription.

void collectGradientNames ( std::list< const std::string * > &  names) const
virtual

Implements IUIDescription.

void collectNamesFromNode ( IdStringPtr  mainNodeName,
std::list< const std::string * > &  names 
) const
protected
void collectTemplateViewNames ( std::list< const std::string * > &  names) const
virtual

Implements IUIDescription.

CView * createView ( UTF8StringPtr  name,
IController controller 
) const
virtual

Implements IUIDescription.

CView * createViewFromNode ( UINode *  node) const
protected
bool duplicateTemplate ( UTF8StringPtr  name,
UTF8StringPtr  duplicateName 
)
void endXmlElement ( Xml::Parser parser,
IdStringPtr  name 
)
protectedvirtual

Implements IHandler.

UINode * findChildNodeByNameAttribute ( UINode *  node,
UTF8StringPtr  nameAttribute 
) const
protected
UINode * findNodeForView ( CView view) const
protected
void freePlatformResources ( )
bool getAlternativeFontNames ( UTF8StringPtr  name,
std::string &  alternativeFonts 
) const
UINode * getBaseNode ( UTF8StringPtr  name) const
protected
CBitmap * getBitmap ( UTF8StringPtr  name) const
virtual

Implements IUIDescription.

bool getColor ( UTF8StringPtr  name,
CColor color 
) const
virtual

Implements IUIDescription.

IController* getController ( ) const
inlinevirtual

Implements IUIDescription.

IControlListener * getControlListener ( UTF8StringPtr  name) const
virtual

Implements IUIDescription.

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

Implements IUIDescription.

CGradient * getGradient ( UTF8StringPtr  name) const
virtual

Implements IUIDescription.

int32_t getTagForName ( UTF8StringPtr  name) const
virtual

Implements IUIDescription.

bool getTemplateNameFromView ( CView view,
std::string &  templateName 
) const
bool getVariable ( UTF8StringPtr  name,
double &  value 
) const
virtual

Implements IUIDescription.

bool getVariable ( UTF8StringPtr  name,
std::string &  value 
) const
virtual

Implements IUIDescription.

const UIAttributes * getViewAttributes ( UTF8StringPtr  name) const
const IViewFactory* getViewFactory ( ) const
inlinevirtual

Implements IUIDescription.

bool hasBitmapName ( UTF8StringPtr  name) const
bool hasColorName ( UTF8StringPtr  name) const
bool hasFontName ( UTF8StringPtr  name) const
bool hasGradientName ( UTF8StringPtr  name) const
bool hasTagName ( UTF8StringPtr  name) const
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.

UTF8StringPtr lookupGradientName ( const CGradient gradient) const
virtual

Implements IUIDescription.

UTF8StringPtr lookupName ( const ObjType &  obj,
IdStringPtr  mainNodeName,
CompareFunction  compare 
) const
protected
bool parse ( )
virtual
bool parseColor ( const std::string &  colorString,
CColor color 
)
static
void removeBitmap ( UTF8StringPtr  name)
void removeColor ( UTF8StringPtr  name)
void removeFont ( UTF8StringPtr  name)
void removeGradient ( UTF8StringPtr  name)
void removeNode ( UTF8StringPtr  name,
IdStringPtr  mainNodeName,
IdStringPtr  changeMsg 
)
protected
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) const
bool setCustomAttributes ( UTF8StringPtr  name,
UIAttributes attr 
)
void setFilePath ( UTF8StringPtr  path)
void startXmlElement ( Xml::Parser parser,
IdStringPtr  elementName,
UTF8StringPtr elementAttributes 
)
protectedvirtual

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 
)
protectedvirtual

Implements IHandler.

void xmlComment ( Xml::Parser parser,
IdStringPtr  comment 
)
protectedvirtual

Implements IHandler.

Member Data Documentation

IBitmapCreator* bitmapCreator
protected
IController* controller
mutableprotected
std::string filePath
protected
IdStringPtr kMessageBeforeSave = "kMessageBeforeSave"
static
IdStringPtr kMessageBitmapChanged = "kMessageBitmapChanged"
static
IdStringPtr kMessageColorChanged = "kMessageColorChanged"
static
IdStringPtr kMessageFontChanged = "kMessageFontChanged"
static
IdStringPtr kMessageGradientChanged = "kMessageGradientChanged"
static
IdStringPtr kMessageTagChanged = "kMessageTagChanged"
static
IdStringPtr kMessageTemplateChanged = "kMessageTemplateChanged"
static
CViewAttributeID kTemplateNameAttributeID = 'uitl'
static
UINode* nodes
protected
std::deque<UINode*> nodeStack
protected
bool restoreViewsMode
protected
std::deque<IController*> subControllerStack
mutableprotected
IViewFactory* viewFactory
protected
Xml::IContentProvider* xmlContentProvider
protected
CResourceDescription xmlFile
protected

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