diff options
author | louis <louis.braun@gmx.de> | 2015-03-15 18:11:07 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-03-15 18:11:07 +0100 |
commit | 19dfd1af7bf7b7e6c79ed420b294c4a52b7df659 (patch) | |
tree | bfae7669675ec716938707fd3515009b9f8c67e4 | |
parent | b6e6065b0f6951042e78e6babe757393596a8a42 (diff) | |
download | vdr-plugin-skindesigner-19dfd1af7bf7b7e6c79ed420b294c4a52b7df659.tar.gz vdr-plugin-skindesigner-19dfd1af7bf7b7e6c79ed420b294c4a52b7df659.tar.bz2 |
added possibility to hide root menu from a subview template
-rw-r--r-- | HISTORY | 2 | ||||
-rw-r--r-- | dtd/displayplugin.dtd | 1 | ||||
-rw-r--r-- | libtemplate/templatefunction.c | 14 | ||||
-rw-r--r-- | libtemplate/templatefunction.h | 2 | ||||
-rw-r--r-- | libtemplate/templateview.c | 8 | ||||
-rw-r--r-- | libtemplate/templateview.h | 1 | ||||
-rw-r--r-- | views/displaypluginview.c | 8 |
7 files changed, 34 insertions, 2 deletions
@@ -214,4 +214,6 @@ Version 0.3.0 - fixed bug detecting menu item numbers in main menu - fixed recording progress bar in nopacity - added <systemmemory> viewelement in main menu +- added possibility to hide root menu from a subview template + diff --git a/dtd/displayplugin.dtd b/dtd/displayplugin.dtd index c9e7a10..71e3d2b 100644 --- a/dtd/displayplugin.dtd +++ b/dtd/displayplugin.dtd @@ -13,6 +13,7 @@ scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ hideroot CDATA #IMPLIED
>
<!ELEMENT viewelement (area|areascroll)*>
diff --git a/libtemplate/templatefunction.c b/libtemplate/templatefunction.c index 8156633..cae9124 100644 --- a/libtemplate/templatefunction.c +++ b/libtemplate/templatefunction.c @@ -125,6 +125,8 @@ void cTemplateFunction::SetParameters(vector<pair<string, string> > params) { p.first = ptScaleTvWidth;
} else if (!name.compare("scaletvheight")) {
p.first = ptScaleTvHeight;
+ } else if (!name.compare("hideroot")) {
+ p.first = ptHideRoot;
} else if (!name.compare("cache")) {
p.first = ptCache;
} else if (!name.compare("determinatefont")) {
@@ -260,6 +262,10 @@ bool cTemplateFunction::CalculateParameters(void) { break;
case ptOverflow:
paramValid = SetOverflow(value);
+ break;
+ case ptHideRoot:
+ paramValid = SetHideRoot(value);
+ break;
default:
paramValid = true;
break;
@@ -1046,6 +1052,14 @@ bool cTemplateFunction::SetOverflow(string value) { return ok;
}
+bool cTemplateFunction::SetHideRoot(string value) {
+ bool hideRoot = 0;
+ if (!value.compare("true"))
+ hideRoot = 1;
+ numericParameters.insert(pair<eParamType, int>(ptHideRoot, hideRoot));
+ return true;
+}
+
void cTemplateFunction::ParseStringParameters(void) {
//first replace stringtokens in Text (drawText)
stringstream text;
diff --git a/libtemplate/templatefunction.h b/libtemplate/templatefunction.h index e63850e..66678a6 100644 --- a/libtemplate/templatefunction.h +++ b/libtemplate/templatefunction.h @@ -76,6 +76,7 @@ enum eParamType { ptScaleTvY, ptScaleTvWidth, ptScaleTvHeight, + ptHideRoot, ptCache, ptDeterminateFont, ptNone @@ -150,6 +151,7 @@ protected: bool SetOrientation(string value); bool SetFloating(string value); bool SetOverflow(string value); + bool SetHideRoot(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 989c693..97db545 100644 --- a/libtemplate/templateview.c +++ b/libtemplate/templateview.c @@ -194,6 +194,13 @@ int cTemplateView::GetNumPixmapsViewElement(eViewElement ve) { return viewElement->GetNumPixmaps(); } +bool cTemplateView::HideView(void) { + if (!parameters) + return false; + return parameters->GetNumericParameter(ptHideRoot); +} + + bool cTemplateView::ExecuteView(eViewElement ve) { map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve); if (hit == viewElements.end()) @@ -1878,6 +1885,7 @@ cTemplateViewPlugin::cTemplateViewPlugin(string pluginName, int viewID) { attributes.insert("scaletvy"); attributes.insert("scaletvwidth"); attributes.insert("scaletvheight"); + attributes.insert("hideroot"); funcsAllowed.insert(pair< string, set<string> >(viewName, attributes)); //definition of allowed parameters for viewtab diff --git a/libtemplate/templateview.h b/libtemplate/templateview.h index c8ee2e1..84bc9f1 100644 --- a/libtemplate/templateview.h +++ b/libtemplate/templateview.h @@ -109,6 +109,7 @@ public: cRect GetOsdSize(void); int GetNumPixmaps(void); int GetNumPixmapsViewElement(eViewElement ve); + bool HideView(void); bool ExecuteView(eViewElement ve); int GetNumListViewMenuItems(void); bool GetScalingWindow(cRect &scalingWindow); diff --git a/views/displaypluginview.c b/views/displaypluginview.c index 21fd7b3..d073270 100644 --- a/views/displaypluginview.c +++ b/views/displaypluginview.c @@ -34,8 +34,12 @@ bool cDisplayPluginView::createOsd(void) { void cDisplayPluginView::Deactivate(bool hide) { Stop(); - if (!hide) - return; + if (!hide) { + bool hideFromTemplate = tmplView->HideView(); + if (!hideFromTemplate) + return; + esyslog("skindesigner: hiding from template"); + } HidePixmaps(); for (map< int, cViewGrid* >::iterator it = viewGrids.begin(); it != viewGrids.end(); it++) { cViewGrid *viewGrid = it->second; |