diff options
author | louis <louis.braun@gmx.de> | 2015-03-12 17:28:35 +0100 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-03-12 17:28:35 +0100 |
commit | 44680b6ce80221e91cb14dca9ca7fad7015f1297 (patch) | |
tree | 8af805db50568ba41ebb461309d5724320295441 /libtemplate/template.c | |
parent | 45cb6c1663d66ebc22bed8dbc8cdbacdc82ad4a8 (diff) | |
download | vdr-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.c | 36 |
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(); } |