diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-09-02 00:39:06 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-09-02 00:39:06 +0000 |
commit | e41621d535a6948b191396f9063f6bd17bb9e381 (patch) | |
tree | c0a918b22de1a874ebdf42fc1a5b82f806eb0a34 /src/pluginmenunode.cpp | |
parent | 024b9daf038ab85fe5d64b46d9d8dc0f172b4537 (diff) | |
download | vdr-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.cpp | 25 |
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; +} |