summaryrefslogtreecommitdiff
path: root/src/submenuprovider.cc
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-22 13:51:47 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-07-22 13:51:47 +0000
commit1e8d4c38cf55f3995a3d02c6c275fec0d1b7326f (patch)
treecf9e5a2f477405e789a8613bf37ae6d81cb5b97a /src/submenuprovider.cc
parent2e1c7361dce4d44d980628537a679a9fbebd5546 (diff)
downloadvdr-plugin-menuorg-1e8d4c38cf55f3995a3d02c6c275fec0d1b7326f.tar.gz
vdr-plugin-menuorg-1e8d4c38cf55f3995a3d02c6c275fec0d1b7326f.tar.bz2
initial submenu checkin
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5628 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/submenuprovider.cc')
-rw-r--r--src/submenuprovider.cc56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/submenuprovider.cc b/src/submenuprovider.cc
new file mode 100644
index 0000000..ccbb3fc
--- /dev/null
+++ b/src/submenuprovider.cc
@@ -0,0 +1,56 @@
+#include "submenuprovider.h"
+#include <vdr/plugin.h>
+
+MainMenuItemsList* SubMenuProvider::MainMenuItems()
+{
+ ResetMainMenuItemsList();
+
+
+ _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem("A custom sub menu", osUser1)));
+// _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Schedule"), osSchedule)));
+// _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Channels"), osChannels)));
+// _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Timers"), osTimers)));
+// _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Recordings"), osRecordings)));
+
+ for (int i = 0; ; i++) {
+ cPlugin *p = cPluginManager::GetPlugin(i);
+ if (p) {
+ const char *item = p->MainMenuEntry();
+ if (item)
+ _osdItems.push_back(MainMenuItem::CreatePluginMenuItem(item, i));
+ }
+ else
+ break;
+ }
+
+ _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Setup"), osSetup)));
+
+ if (Commands.Count())
+ _osdItems.push_back(MainMenuItem::CreateCustomMenuItem(new cOsdItem(tr("Commands"), osCommands)));
+
+ return &_osdItems;
+}
+
+void SubMenuProvider::ResetMainMenuItemsList()
+{
+ for( MainMenuItemsList::iterator i = _osdItems.begin(); i != _osdItems.end(); i++)
+ {
+ delete *i;
+ }
+ _osdItems.clear();
+}
+
+cOsdMenu* SubMenuProvider::OpenSubMenu(int mainMenuItemIndex)
+{
+ if (mainMenuItemIndex == 0)
+ {
+ cOsdMenu* fooMenu = new cOsdMenu("Foo-Submenu");
+ fooMenu->Add(new cOsdItem(tr("Schedule"), osSchedule));
+ fooMenu->Add(new cOsdItem(tr("Channels"), osChannels));
+ fooMenu->Add(new cOsdItem(tr("Timers"), osTimers));
+ fooMenu->Add(new cOsdItem(tr("Recordings"), osRecordings));
+ return fooMenu;
+ }
+
+ return NULL;
+}