diff options
author | louis <louis.braun@gmx.de> | 2015-03-22 08:29:52 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-03-22 08:29:52 +0100 |
commit | d1ea7bd4a467463b939029aa76c43bae4e58b73f (patch) | |
tree | c515cf4c606e017f24b28c92e053bb385437fd47 /libtemplate | |
parent | 9c93fbc0726ff54f2070837ac821ef3d258dfd30 (diff) | |
download | vdr-plugin-skindesigner-d1ea7bd4a467463b939029aa76c43bae4e58b73f.tar.gz vdr-plugin-skindesigner-d1ea7bd4a467463b939029aa76c43bae4e58b73f.tar.bz2 |
add detached option for viewelements
Diffstat (limited to 'libtemplate')
-rw-r--r-- | libtemplate/templatefunction.c | 20 | ||||
-rw-r--r-- | libtemplate/templatefunction.h | 2 | ||||
-rw-r--r-- | libtemplate/templateview.c | 9 | ||||
-rw-r--r-- | libtemplate/templateview.h | 1 | ||||
-rw-r--r-- | libtemplate/templateviewelement.c | 9 | ||||
-rw-r--r-- | libtemplate/templateviewelement.h | 1 |
6 files changed, 41 insertions, 1 deletions
diff --git a/libtemplate/templatefunction.c b/libtemplate/templatefunction.c index fa0b958..8ea8917 100644 --- a/libtemplate/templatefunction.c +++ b/libtemplate/templatefunction.c @@ -63,6 +63,8 @@ void cTemplateFunction::SetParameters(vector<pair<string, string> > params) { p.first = ptHeight;
} else if (!name.compare("menuitemwidth")) {
p.first = ptMenuItemWidth;
+ } else if (!name.compare("detached")) {
+ p.first = ptDetached;
} else if (!name.compare("fadetime")) {
p.first = ptFadeTime;
} else if (!name.compare("imagetype")) {
@@ -266,6 +268,9 @@ bool cTemplateFunction::CalculateParameters(void) { case ptHideRoot:
paramValid = SetHideRoot(value);
break;
+ case ptDetached:
+ paramValid = SetDetached(value);
+ break;
default:
paramValid = true;
break;
@@ -406,6 +411,8 @@ int cTemplateFunction::GetNumericParameter(eParamType type) { return 0;
else if (type == ptHideRoot)
return 0;
+ else if (type == ptDetached)
+ return 0;
return -1;
}
return hit->second;
@@ -1062,6 +1069,14 @@ bool cTemplateFunction::SetHideRoot(string value) { return true;
}
+bool cTemplateFunction::SetDetached(string value) {
+ int detached = 0;
+ if (!value.compare("true"))
+ detached = 1;
+ numericParameters.insert(pair<eParamType, int>(ptDetached, detached));
+ return true;
+}
+
void cTemplateFunction::ParseStringParameters(void) {
//first replace stringtokens in Text (drawText)
stringstream text;
@@ -1446,7 +1461,10 @@ string cTemplateFunction::GetParamName(eParamType pt) { break;
case ptMenuItemWidth:
name = "Menu Item Width";
- break;
+ break;
+ case ptDetached:
+ name = "Detached";
+ break;
case ptFadeTime:
name = "Fade Time";
break;
diff --git a/libtemplate/templatefunction.h b/libtemplate/templatefunction.h index 66678a6..e53dbda 100644 --- a/libtemplate/templatefunction.h +++ b/libtemplate/templatefunction.h @@ -45,6 +45,7 @@ enum eParamType { ptWidth, ptHeight, ptMenuItemWidth, + ptDetached, ptFadeTime, ptDelay, ptImageType, @@ -152,6 +153,7 @@ protected: bool SetFloating(string value); bool SetOverflow(string value); bool SetHideRoot(string value); + bool SetDetached(string value); void ParseStringParameters(void); void ParseNumericalParameters(void); void CalculateAlign(int elementWidth, int elementHeight); diff --git a/libtemplate/templateview.c b/libtemplate/templateview.c index e0cd079..5677a31 100644 --- a/libtemplate/templateview.c +++ b/libtemplate/templateview.c @@ -221,6 +221,14 @@ bool cTemplateView::ExecuteView(eViewElement ve) { return viewElement->Execute(); } +bool cTemplateView::DetachViewElement(eViewElement ve) { + map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve); + if (hit == viewElements.end()) + return false; + cTemplateViewElement *viewElement = hit->second; + return viewElement->Detach(); +} + int cTemplateView::GetNumListViewMenuItems(void) { int numElements = 0; cTemplateViewList *menuList = GetViewList(vlMenuItem); @@ -613,6 +621,7 @@ void cTemplateView::SetFunctionDefinitions(void) { string name = "viewelement"; set<string> attributes; attributes.insert("debug"); + attributes.insert("detached"); attributes.insert("delay"); attributes.insert("fadetime"); attributes.insert("name"); diff --git a/libtemplate/templateview.h b/libtemplate/templateview.h index fa55ba2..51bb4bf 100644 --- a/libtemplate/templateview.h +++ b/libtemplate/templateview.h @@ -114,6 +114,7 @@ public: int GetNumPixmapsViewElement(eViewElement ve); bool HideView(void); bool ExecuteView(eViewElement ve); + bool DetachViewElement(eViewElement ve); int GetNumListViewMenuItems(void); bool GetScalingWindow(cRect &scalingWindow); map<string,string> GetCustomStringTokens(void) { return globals->GetCustomStringTokens(); }; diff --git a/libtemplate/templateviewelement.c b/libtemplate/templateviewelement.c index 8c9541a..aae68a8 100644 --- a/libtemplate/templateviewelement.c +++ b/libtemplate/templateviewelement.c @@ -124,6 +124,14 @@ bool cTemplateViewElement::Execute(void) { return parameters->DoExecute();
}
+bool cTemplateViewElement::Detach(void) {
+ if (!parameters)
+ return false;
+ int detached = parameters->GetNumericParameter(ptDetached);
+ if (detached == 1)
+ return true;
+ return false;
+}
bool cTemplateViewElement::DebugTokens(void) {
if (!parameters)
@@ -136,6 +144,7 @@ void cTemplateViewElement::Debug(void) { esyslog("skindesigner: viewelement container size x: %d, y: %d, width: %d, height %d", containerX, containerY, containerWidth, containerHeight);
if (parameters)
parameters->Debug();
+ return;
for (vector<cTemplatePixmap*>::iterator it = viewPixmaps.begin(); it != viewPixmaps.end(); it++) {
(*it)->Debug();
}
diff --git a/libtemplate/templateviewelement.h b/libtemplate/templateviewelement.h index 5c7be48..4e4ea00 100644 --- a/libtemplate/templateviewelement.h +++ b/libtemplate/templateviewelement.h @@ -107,6 +107,7 @@ public: cTemplatePixmap *GetNextPixmap(void);
cTemplateFunction *GetFunction(string name);
bool Execute(void);
+ bool Detach(void);
bool DebugTokens(void);
virtual void Debug(void);
};
|