summaryrefslogtreecommitdiff
path: root/libtemplate/template.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-03-12 17:28:35 +0100
committerlouis <louis.braun@gmx.de>2015-03-12 17:28:35 +0100
commit44680b6ce80221e91cb14dca9ca7fad7015f1297 (patch)
tree8af805db50568ba41ebb461309d5724320295441 /libtemplate/template.c
parent45cb6c1663d66ebc22bed8dbc8cdbacdc82ad4a8 (diff)
downloadvdr-plugin-skindesigner-0.3.0.tar.gz
vdr-plugin-skindesigner-0.3.0.tar.bz2
version 0.3.00.3.0
Diffstat (limited to 'libtemplate/template.c')
-rw-r--r--libtemplate/template.c36
1 files changed, 35 insertions, 1 deletions
diff --git a/libtemplate/template.c b/libtemplate/template.c
index 01a7b28..189efd0 100644
--- a/libtemplate/template.c
+++ b/libtemplate/template.c
@@ -56,7 +56,8 @@ bool cTemplate::ReadFromXML(string xmlfile) {
if (!parser.ParseView()) {
return false;
}
- //read additional plugin templates
+
+ //read additional plugin menu templates
bool ok = true;
if (viewType == vtDisplayMenu) {
config.InitPluginMenuIterator();
@@ -114,6 +115,39 @@ void cTemplate::CacheImages(void) {
}
}
+bool cTemplate::SetSubViews(string plugName, int viewID) {
+ map <int,string> subViews = config.GetPluginSubViews(plugName, viewID);
+
+ if (subViews.size() == 0) {
+ return true;
+ }
+
+ for (map<int,string>::iterator it = subViews.begin(); it != subViews.end(); it ++) {
+ int subViewID = it->first;
+ stringstream templateName;
+ templateName << "plug-" << plugName << "-" << it->second;
+ string subViewTemplate = templateName.str();
+ cTemplateView *plgTemplateView = new cTemplateViewPlugin(plugName, subViewID);
+ plgTemplateView->SetGlobals(globals);
+ cXmlParser parser;
+ if (!parser.ReadView(plgTemplateView, subViewTemplate)) {
+ esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
+ delete plgTemplateView;
+ return false;
+ }
+ if (!parser.ParseView()) {
+ esyslog("skindesigner: error reading plugin %s template", plugName.c_str());
+ delete plgTemplateView;
+ return false;
+ }
+ stringstream svid;
+ svid << subViewID;
+ rootView->AddSubView(svid.str(), plgTemplateView);
+ }
+ return true;
+}
+
+
void cTemplate::Debug(void) {
rootView->Debug();
}