summaryrefslogtreecommitdiff
path: root/src/pluginmenunode.cpp
diff options
context:
space:
mode:
authorsvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-09-02 00:39:06 +0000
committersvntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f>2007-09-02 00:39:06 +0000
commite41621d535a6948b191396f9063f6bd17bb9e381 (patch)
treec0a918b22de1a874ebdf42fc1a5b82f806eb0a34 /src/pluginmenunode.cpp
parent024b9daf038ab85fe5d64b46d9d8dc0f172b4537 (diff)
downloadvdr-plugin-menuorg-e41621d535a6948b191396f9063f6bd17bb9e381.tar.gz
vdr-plugin-menuorg-e41621d535a6948b191396f9063f6bd17bb9e381.tar.bz2
Added Double Dispatch / Visitor Pattern to MenuNode in preparation of menu structure setup.
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@6120 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/pluginmenunode.cpp')
-rw-r--r--src/pluginmenunode.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/src/pluginmenunode.cpp b/src/pluginmenunode.cpp
index 1e8bc5f..4b17a42 100644
--- a/src/pluginmenunode.cpp
+++ b/src/pluginmenunode.cpp
@@ -26,6 +26,7 @@
#include <vdr/plugin.h>
#include "pluginitemdefinition.h"
#include "childlock.h"
+#include "imenunodeprocessor.h"
using namespace std;
@@ -36,12 +37,6 @@ PluginMenuNode::PluginMenuNode(cPlugin* plugin, int pluginIndex, string title)
_title = title;
}
-IMenuItemDefinition* PluginMenuNode::CreateMenuItemDefinition()
-{
- const char* mainMenuEntry = _title.empty() ? _plugin->MainMenuEntry() : _title.c_str();
- return new PluginItemDefinition(mainMenuEntry, _pluginIndex);
-}
-
bool PluginMenuNode::IsHidden()
{
return (!HasMainMenuEntry()) || ChildLock::IsPluginHidden(_plugin);
@@ -51,3 +46,21 @@ bool PluginMenuNode::HasMainMenuEntry()
{
return (_plugin->MainMenuEntry() != NULL);
}
+
+cPlugin* PluginMenuNode::Plugin()
+{
+ return _plugin;
+}
+
+void PluginMenuNode::Process(IMenuNodeProcessor* menuNodeProcessor)
+{
+ menuNodeProcessor->ProcessPluginMenuNode(this);
+}
+
+int PluginMenuNode::PluginIndex(){
+ return _pluginIndex;
+}
+
+std::string PluginMenuNode::Title(){
+ return NULL;
+}