summaryrefslogtreecommitdiff
path: root/libtemplate/templatepixmap.h
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-07-07 17:58:10 +0200
committerlouis <louis.braun@gmx.de>2015-07-07 17:58:10 +0200
commit5a6fb850b35bc63325cac482daaa70b00b0e8e8b (patch)
treec46bea143641a4a0f4461b971ae2cd03e10ac76b /libtemplate/templatepixmap.h
parent50fe393724a265341b1745dd401db9d93f46f354 (diff)
downloadvdr-plugin-skindesigner-5a6fb850b35bc63325cac482daaa70b00b0e8e8b.tar.gz
vdr-plugin-skindesigner-5a6fb850b35bc63325cac482daaa70b00b0e8e8b.tar.bz2
immplemented areacontainers to group areas
Diffstat (limited to 'libtemplate/templatepixmap.h')
-rw-r--r--libtemplate/templatepixmap.h70
1 files changed, 57 insertions, 13 deletions
diff --git a/libtemplate/templatepixmap.h b/libtemplate/templatepixmap.h
index 5f16f21..f9c2f6f 100644
--- a/libtemplate/templatepixmap.h
+++ b/libtemplate/templatepixmap.h
@@ -13,23 +13,46 @@
#include "globals.h"
#include "templateloopfunction.h"
+#include "../views/viewhelpers.h"
using namespace std;
+// --- cTemplatePixmapNode -------------------------------------------------------------
+class cTemplatePixmapNode {
+protected:
+ bool isContainer;
+ cGlobals *globals;
+ cTemplateFunction *parameters;
+ int containerX;
+ int containerY;
+ int containerWidth;
+ int containerHeight;
+public:
+ cTemplatePixmapNode(void);
+ virtual ~cTemplatePixmapNode(void);
+ void SetParameters(vector<stringpair> &params);
+ void SetContainer(int x, int y, int w, int h);
+ bool IsContainer(void) { return isContainer; };
+ bool DoExecute(void) { return parameters->DoExecute(); };
+ bool DoDebug(void) { return parameters->DoDebug(); };
+ virtual void SetGlobals(cGlobals *globals) { this->globals = globals; };
+ virtual bool CalculateParameters(void) { return false; };
+ virtual void SetWidth(int width) {};
+ virtual void SetHeight(int height) {};
+ virtual int NumPixmaps(void) { return 0; };
+ virtual void Debug(void) {};
+};
+
// --- cTemplatePixmap -------------------------------------------------------------
+class cTemplatePixmapContainer;
-class cTemplatePixmap {
+class cTemplatePixmap : public cTemplatePixmapNode {
protected:
+ cTemplatePixmapContainer *pixContainer;
bool scrolling;
bool background;
- cTemplateFunction *parameters;
vector<cTemplateFunction*> functions;
vector<cTemplateFunction*>::iterator funcIt;
- int containerX;
- int containerY;
- int containerWidth;
- int containerHeight;
- cGlobals *globals;
//functions replacing {width(label)} and {height(label)} tokens
bool ReplaceWidthFunctions(void);
bool ReplaceHeightFunctions(map < string, vector< map< string, string > > > *loopTokens);
@@ -42,8 +65,8 @@ public:
cTemplatePixmap(void);
virtual ~cTemplatePixmap(void);
//Setter Functions
+ void SetPixmapContainer(cTemplatePixmapContainer *pixContainer) { this->pixContainer = pixContainer; };
void SetScrolling(void) { scrolling = true; };
- void SetParameters(vector<pair<string, string> > &params);
void SetWidth(int width);
void SetHeight(int height);
void SetX(int x);
@@ -52,8 +75,7 @@ public:
void SetHeightPercent(double height);
void SetXPercent(double x);
void SetYPercent(double y);
- void SetContainer(int x, int y, int w, int h);
- void SetGlobals(cGlobals *globals) { this->globals = globals; };
+ void SetParameter(eParamType type, string value);
void AddFunction(string name, vector<pair<string, string> > &params);
void AddLoopFunction(cTemplateLoopFunction *lf);
//PreCache Parameters
@@ -71,18 +93,40 @@ public:
//Set max width for text in scrollarea
void SetScrollingTextWidth(void);
//Getter Functions
+ int NumPixmaps(void) { return 1; };
cRect GetPixmapSize(void);
int GetNumericParameter(eParamType type);
bool Scrolling(void) { return scrolling; };
- bool DoExecute(void) { return parameters->DoExecute(); };
- bool DoDebug(void) { return parameters->DoDebug(); };
bool Ready(void);
bool BackgroundArea(void) { return background; };
+ bool ParameterSet(eParamType type);
+ cTemplateFunction *GetFunction(string name);
//Traverse Functions
- void InitIterator(void);
+ void InitFunctionIterator(void);
cTemplateFunction *GetNextFunction(void);
//Debug
void Debug(void);
};
+class cTemplatePixmapContainer : public cTemplatePixmapNode {
+private:
+ vector<cTemplatePixmap*> pixmaps;
+ vector<cTemplatePixmap*>::iterator pixmapIterator;
+public:
+ cTemplatePixmapContainer(void);
+ virtual ~cTemplatePixmapContainer(void);
+ void SetGlobals(cGlobals *globals);
+ void SetWidth(int width);
+ void SetHeight(int height);
+ void AddPixmap(cTemplatePixmap *pix);
+ //PreCache Parameters
+ bool CalculateParameters(void);
+ void ParseDynamicParameters(map <string,string> *stringTokens, map <string,int> *intTokens);
+ int NumPixmaps(void) { return pixmaps.size(); };
+ void InitIterator(void);
+ cTemplatePixmap *GetNextPixmap(void);
+ cTemplateFunction *GetFunction(string name);
+ void Debug(void);
+};
+
#endif //__TEMPLATEPIXMAP_H \ No newline at end of file