diff options
Diffstat (limited to 'coreengine/attribute.h')
| -rw-r--r-- | coreengine/attribute.h | 126 |
1 files changed, 126 insertions, 0 deletions
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 <stdio.h>
+#include <stdlib.h>
+#include <string>
+#include <map>
+#include <vector>
+#include <vdr/skins.h>
+#include "globals.h"
+#include "../libskindesignerapi/tokencontainer.h"
+#include "definitions.h"
+#include "complextypes.h"
+
+class cArea;
+/******************************************************************
+* cAttributes
+******************************************************************/
+class cAttributes {
+private:
+ map<string, int> commonAttribIDs;
+ map<int, string> commonAttribNames;
+ void SetCommonAttributesDefs(void);
+protected:
+ cGlobals *globals;
+ skindesignerapi::cTokenContainer *tokenContainer;
+ cRect container;
+ int numAttribs;
+ int *attribs;
+ cNumericExpr **attribCtors;
+ cCondition *cond;
+ map<string, int> attribIDs;
+ map<int, string> 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<stringpair> &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 |
