summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-03-15 18:11:07 +0100
committerlouis <louis.braun@gmx.de>2015-03-15 18:11:07 +0100
commit19dfd1af7bf7b7e6c79ed420b294c4a52b7df659 (patch)
treebfae7669675ec716938707fd3515009b9f8c67e4
parentb6e6065b0f6951042e78e6babe757393596a8a42 (diff)
downloadvdr-plugin-skindesigner-19dfd1af7bf7b7e6c79ed420b294c4a52b7df659.tar.gz
vdr-plugin-skindesigner-19dfd1af7bf7b7e6c79ed420b294c4a52b7df659.tar.bz2
added possibility to hide root menu from a subview template
-rw-r--r--HISTORY2
-rw-r--r--dtd/displayplugin.dtd1
-rw-r--r--libtemplate/templatefunction.c14
-rw-r--r--libtemplate/templatefunction.h2
-rw-r--r--libtemplate/templateview.c8
-rw-r--r--libtemplate/templateview.h1
-rw-r--r--views/displaypluginview.c8
7 files changed, 34 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index f63fabd..bb09f5b 100644
--- a/HISTORY
+++ b/HISTORY
@@ -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;