diff options
Diffstat (limited to 'src/mainmenuitemsprovider.cpp')
-rw-r--r-- | src/mainmenuitemsprovider.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/mainmenuitemsprovider.cpp b/src/mainmenuitemsprovider.cpp index 05fb021..9480fe6 100644 --- a/src/mainmenuitemsprovider.cpp +++ b/src/mainmenuitemsprovider.cpp @@ -24,9 +24,12 @@ #include "submenunode.h" #include "systemmenunode.h" #include "pluginmenunode.h" +#include "commandmenunode.h" #include <vdr/plugin.h> #include "childlock.h" #include "menuconfiguration.h" +#include "osditemdefinition.h" +#include "pluginitemdefinition.h" MainMenuItemsProvider::MainMenuItemsProvider(MenuConfiguration& menuConfiguration) :_menuConfiguration(menuConfiguration) @@ -49,7 +52,8 @@ MenuItemDefinitions* MainMenuItemsProvider::MainMenuItems() { if (!(*i)->IsHidden()) { - _currentMainMenuItems.push_back((*i)->CreateMenuItemDefinition()); + (*i)->Process(this); + _currentMainMenuItems.push_back(_createdMenuItemDefinition); } } @@ -116,3 +120,24 @@ int MainMenuItemsProvider::IndexOfCustomOsdItem(cOsdItem* item) } return -1; } + +void MainMenuItemsProvider::ProcessCommandMenuNode(CommandMenuNode* node) +{ + _createdMenuItemDefinition = new OsdItemDefinition(new cOsdItem(node->Text().c_str(), osUser2)); +} + +void MainMenuItemsProvider::ProcessPluginMenuNode(PluginMenuNode* node) +{ + _createdMenuItemDefinition = new PluginItemDefinition(node->Title().c_str(), node->PluginIndex()); +} + +void MainMenuItemsProvider::ProcessSubMenuNode(SubMenuNode* node) +{ + _createdMenuItemDefinition = new OsdItemDefinition(new cOsdItem(node->Text().c_str(), osUser1)); +} + +void MainMenuItemsProvider::ProcessSystemMenuNode(SystemMenuNode* node) +{ + _createdMenuItemDefinition = new OsdItemDefinition(new cOsdItem(tr(node->Text().c_str()), node->State())); + +} |