From 809fbda03c5014ba9cd361f5113d1d717cd41ea6 Mon Sep 17 00:00:00 2001 From: louis Date: Tue, 26 Jan 2016 18:32:38 +0100 Subject: Version 0.8.0 beta --- coreengine/attribute.h | 126 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 coreengine/attribute.h (limited to 'coreengine/attribute.h') diff --git a/coreengine/attribute.h b/coreengine/attribute.h new file mode 100644 index 0000000..e9da37e --- /dev/null +++ b/coreengine/attribute.h @@ -0,0 +1,126 @@ +#ifndef __ATTRIBUTE_H +#define __ATTRIBUTE_H + +#include +#include +#include +#include +#include +#include +#include "globals.h" +#include "../libskindesignerapi/tokencontainer.h" +#include "definitions.h" +#include "complextypes.h" + +class cArea; +/****************************************************************** +* cAttributes +******************************************************************/ +class cAttributes { +private: + map commonAttribIDs; + map commonAttribNames; + void SetCommonAttributesDefs(void); +protected: + cGlobals *globals; + skindesignerapi::cTokenContainer *tokenContainer; + cRect container; + int numAttribs; + int *attribs; + cNumericExpr **attribCtors; + cCondition *cond; + map attribIDs; + map attribNames; + int CommonAttributeId(const char *att); + const char *CommonAttributeName(int id); + int AttributeId(const char *att); + const char *AttributeName(int id); + bool SetCommon(int id, const char *val); + virtual bool IdEqual(int id, int compId); + void SetBool(int id, const char *val); + void SetViewElementMode(int id, const char *val); + void SetShiftType(int id, const char *val); + void SetShiftMode(int id, const char *val); + void SetScrollMode(int id, const char *val); + void SetScrollSpeed(int id, const char *val); + void SetOrientation(int id, const char *val); + void SetDirection(int id, const char *val); + void SetAlign(int id, const char *val); +public: + cAttributes(int numAttributes); + cAttributes(const cAttributes &other); + virtual ~cAttributes(void); + void SetGlobals(cGlobals *globals) { this->globals = globals; }; + void SetTokenContainer(skindesignerapi::cTokenContainer *tokenContainer); + virtual void SetTokenContainerDeep(skindesignerapi::cTokenContainer *tokenContainer); + virtual void SetContainer(int x, int y, int width, int height); + virtual void Set(vector &attributes) {}; + void SetX(int width); + void SetY(int height); + void SetWidth(int width); + void SetHeight(int height); + virtual void Cache(void); + int GetValue(int id); + int X(void); + int Y(void); + int Width(void); + int Height(void); + int DoDebug(void) { return attribs[(int)eCommonAttribs::debug] == 1 ? true : false; }; + bool DoExecute(void); + virtual void Debug(void); +}; +/****************************************************************** +* cLoopInfo +******************************************************************/ +class cLoopInfo { +public: + int colWidth; + int rowHeight; + int index; + int row; + cLoopInfo(void) { + colWidth = 0; + rowHeight = 0; + index = 0; + row = 0; + }; +}; +/****************************************************************** +* cFunction +******************************************************************/ +class cFunction : public cAttributes, public cListObject { +private: + cArea *owningArea; +protected: + const char *funcType; + cColor *color; + char *name; + bool scrolling; + void SetColor(const char *val); + void SetAnimType(int id, const char *val); + void SetOverflow(int id, const char *val); +public: + cFunction(cArea *owner, int numAttributes); + cFunction(const cFunction &other); + virtual ~cFunction(void); + virtual void SetLoopInfo(cLoopInfo *loopInfo); + void SetOwner(cArea *owner) { owningArea = owner; }; + const char *Name(void) { return name; }; + virtual void Cache(void); + void CacheFuncReferences(void); + void Scrolling(bool scrolling) { this->scrolling = scrolling; }; + virtual void Render(cPixmap *p, int x0 = 0, int y0 = 0, int colWidth = 0, int rowHeight = 0) {}; + virtual int FuncX(void) { return X(); }; + virtual int FuncY(void) { return Y(); }; + virtual int FuncWidth(void) { return Width(); }; + virtual int FuncHeight(void) { return Height(); }; + virtual int Align(void) { return (int)eAlign::left; }; + virtual int Valign(void) { return (int)eAlign::top; }; + int GetX(eAlign align, int x0, int colWidth); + int GetY(eAlign valign, int y0, int rowHeight); + virtual bool Blinking(void) { return false; }; + virtual int BlinkFreq(void) { return -1; }; + virtual void Debug(void); +}; + +#endif //__ATTRIBUTE_H \ No newline at end of file -- cgit v1.2.3