diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-20 23:12:14 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-20 23:12:14 +0000 |
commit | 4d10a530b28dc76f783315f204019fc09a574727 (patch) | |
tree | 914dce06fdb58116ecffc973a9b600a5e067cd9f /src/mainmenuitemsprovider.cpp | |
parent | 7ee95418c543dd4f1c53facf937a043eb8dfc5f4 (diff) | |
download | vdr-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.cpp | 32 |
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; +} |