summaryrefslogtreecommitdiff
path: root/src/mainmenuitemsprovider.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mainmenuitemsprovider.cpp')
-rw-r--r--src/mainmenuitemsprovider.cpp27
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()));
+
+}