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/systemmenunode.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/systemmenunode.cpp')
-rw-r--r-- | src/systemmenunode.cpp | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/src/systemmenunode.cpp b/src/systemmenunode.cpp index 8098960..c095703 100644 --- a/src/systemmenunode.cpp +++ b/src/systemmenunode.cpp @@ -24,19 +24,32 @@ #include <vdr/mainmenuitemsprovider.h> #include "osditemdefinition.h" #include "childlock.h" +#include "imenunodeprocessor.h" -SystemMenuNode::SystemMenuNode(eOSState state, std::string text) +using namespace std; + +SystemMenuNode::SystemMenuNode(eOSState state, string text) { _text = text; _state = state; } -IMenuItemDefinition* SystemMenuNode::CreateMenuItemDefinition() +bool SystemMenuNode::IsHidden() { - return new OsdItemDefinition(new cOsdItem(tr(_text.c_str()), _state)); + return ChildLock::IsMenuHidden(_text.c_str()); } -bool SystemMenuNode::IsHidden() +void SystemMenuNode::Process(IMenuNodeProcessor* menuNodeProcessor) { - return ChildLock::IsMenuHidden(_text.c_str()); + menuNodeProcessor->ProcessSystemMenuNode(this); +} + +eOSState SystemMenuNode::State() +{ + return _state; +} + +string SystemMenuNode::Text() +{ + return _text; } |