summaryrefslogtreecommitdiff
path: root/src/mainmenuitemsprovider.cpp
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-20 23:12:14 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-08-20 23:12:14 +0000
commit4d10a530b28dc76f783315f204019fc09a574727 (patch)
tree914dce06fdb58116ecffc973a9b600a5e067cd9f /src/mainmenuitemsprovider.cpp
parent7ee95418c543dd4f1c53facf937a043eb8dfc5f4 (diff)
downloadvdr-plugin-menuorg-4d10a530b28dc76f783315f204019fc09a574727.tar.gz
vdr-plugin-menuorg-4d10a530b28dc76f783315f204019fc09a574727.tar.bz2
added command handling
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5841 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/mainmenuitemsprovider.cpp')
-rw-r--r--src/mainmenuitemsprovider.cpp32
1 files changed, 25 insertions, 7 deletions
diff --git a/src/mainmenuitemsprovider.cpp b/src/mainmenuitemsprovider.cpp
index 8cb5469..31a1744 100644
--- a/src/mainmenuitemsprovider.cpp
+++ b/src/mainmenuitemsprovider.cpp
@@ -68,14 +68,10 @@ void MainMenuItemsProvider::EnterRootMenu()
void MainMenuItemsProvider::EnterSubMenu(cOsdItem* item)
{
- for(unsigned int itemIndex=0; itemIndex < _currentMainMenuItems.size(); itemIndex++)
+ int itemIndex = IndexOfCustomOsdItem(item);
+ if (itemIndex >= 0)
{
- IMenuItemDefinition* menuItem = _currentMainMenuItems.at(itemIndex);
- if (menuItem->IsCustomOsdItem() && (menuItem->CustomOsdItem() == item))
- {
- _currentMenu = _currentMenu->Childs().at(itemIndex);
- break;
- }
+ _currentMenu = _currentMenu->Childs().at(itemIndex);
}
}
@@ -91,3 +87,25 @@ bool MainMenuItemsProvider::LeaveSubMenu()
return false;
}
}
+
+cOsdMenu* MainMenuItemsProvider::Execute(cOsdItem* item)
+{
+ int itemIndex = IndexOfCustomOsdItem(item);
+ if (itemIndex >= 0)
+ {
+ return _currentMenu->Childs().at(itemIndex)->Execute();
+ }
+}
+
+int MainMenuItemsProvider::IndexOfCustomOsdItem(cOsdItem* item)
+{
+ for(unsigned int itemIndex=0; itemIndex < _currentMainMenuItems.size(); itemIndex++)
+ {
+ IMenuItemDefinition* menuItem = _currentMainMenuItems.at(itemIndex);
+ if (menuItem->IsCustomOsdItem() && (menuItem->CustomOsdItem() == item))
+ {
+ return itemIndex;
+ }
+ }
+ return -1;
+}