ISXMr/libs/isxdk/include/ISUI/LGUIGauge.h

93 lines
2.0 KiB
C++

#pragma once
class LGUIGauge :
public LGUIFrame
{
public:
LGUI_API LGUIGauge(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name);
LGUI_API ~LGUIGauge(void);
LGUI_API class LSTypeDefinition *GetLSType();
LGUI_API void Render();
LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0);
LGUI_API bool IsTypeOf(char *TestFactory);
LGUI_API virtual void SetValue(float NewValue);
// -- XML Properties --
LGUITexture *pTopTexture;
bool bVertical;
float fRange;
// --------------------
bool Mod;
class LGUIGaugeFiller* pFiller;
float fValue;
};
class LGUIGaugeFiller:
public LGUIElement
{
public:
LGUIGaugeFiller(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name);
~LGUIGaugeFiller(void);
// LGUI_API class LSTypeDefinition *GetLSType();
void Render();
bool FromXML(class XMLNode *pXML);
bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate);
bool IsTypeOf(char *TestFactory);
// void Default();
virtual void SetValue(float NewValue);
void RecalculateSize(bool RecalculateChildren);
// -- XML Properties --
LGUITexture *pTexture;
// --------------------
float fRange;
float fValue;
bool bVertical;
unsigned int Repeat;
class LGUIGauge *pGauge;
};
class LGUIGaugeFactory : public LGUIElementFactory
{
public:
LGUIGaugeFactory():LGUIElementFactory("gauge",LGUI_VERSION)
{
}
~LGUIGaugeFactory()
{
}
virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name, class XMLNode *pXML, const char *Template = 0)
{
LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name);
if (!pElement->FromXML(pXML,g_UIManager.FindTemplate(Template)))
{
delete pElement;
return 0;
}
Elements[pElement]=1;
if (pElement->pFiller)
return pElement->pFiller;
return pElement;
}
virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name)
{
LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name);
Elements[pElement]=1;
return pElement;
}
virtual LSType *GetLSType();
};