diff options
Diffstat (limited to 'displaymenu.c')
-rw-r--r-- | displaymenu.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/displaymenu.c b/displaymenu.c index d9ec692..5ba25a8 100644 --- a/displaymenu.c +++ b/displaymenu.c @@ -5,6 +5,9 @@ cSDDisplayMenu::cSDDisplayMenu(cTemplate *menuTemplate) { textAreaFont = NULL; doOutput = true; state = vsInit; + pluginMenu = -1; + pluginName = ""; + pluginMenuType = mtUnknown; if (!menuTemplate) { doOutput = false; esyslog("skindesigner: displayMenu no valid template - aborting"); @@ -53,6 +56,16 @@ void cSDDisplayMenu::SetMenuCategory(eMenuCategory MenuCat) { state = vsMenuInit; } +void cSDDisplayMenu::SetPluginMenu(string name, int menu, int type, bool init) { + pluginName = name; + pluginMenu = menu; + pluginMenuType = (ePluginMenuType)type; + rootView->SetPluginMenu(pluginName, pluginMenu, pluginMenuType); + if (!init) { + rootView->SetMenu(mcPlugin, false); + } +} + void cSDDisplayMenu::SetTitle(const char *Title) { if (!doOutput) return; @@ -146,6 +159,22 @@ bool cSDDisplayMenu::SetItemRecording(const cRecording *Recording, int Index, bo return true; } +bool cSDDisplayMenu::SetItemPlugin(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens, int Index, bool Current, bool Selectable) { + if (!doOutput) + return true; + if (!rootView->SubViewAvailable()) + return false; + if (config.blockFlush) + rootView->LockFlush(); + cDisplayMenuListView *list = rootView->GetListView(); + if (!list) + return false; + list->AddPluginMenuItem(stringTokens, intTokens, loopTokens, Index, Current, Selectable); + if (state == vsIdle) + state = vsMenuUpdate; + return true; +} + void cSDDisplayMenu::SetItem(const char *Text, int Index, bool Current, bool Selectable) { if (!doOutput) return; @@ -222,6 +251,14 @@ void cSDDisplayMenu::SetText(const char *Text, bool FixedFont) { state = vsMenuDetail; } +bool cSDDisplayMenu::SetPluginText(map<string,string> *stringTokens, map<string,int> *intTokens, map<string,vector<map<string,string> > > *loopTokens) { + if (!doOutput) + return true; + bool tmplOk = rootView->SetDetailedViewPlugin(stringTokens, intTokens, loopTokens); + state = vsMenuDetail; + return tmplOk; +} + void cSDDisplayMenu::Flush(void) { if (!doOutput) return; |