diff options
author | svntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-27 22:35:02 +0000 |
---|---|---|
committer | svntcreutz <svntcreutz@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-27 22:35:02 +0000 |
commit | 8fba79abd2d27e87bc82a1dfa96edd40c7d1348e (patch) | |
tree | 8af64e51f8fcd1ecd151dec3b55fdd009d3bd863 /src/menusetup.cpp | |
parent | f902a85c26231ae5fa087e35ce126b4fbb0252be (diff) | |
download | vdr-plugin-menuorg-8fba79abd2d27e87bc82a1dfa96edd40c7d1348e.tar.gz vdr-plugin-menuorg-8fba79abd2d27e87bc82a1dfa96edd40c7d1348e.tar.bz2 |
some osd tests - final state for today
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/menuorg/trunk@6012 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
Diffstat (limited to 'src/menusetup.cpp')
-rw-r--r-- | src/menusetup.cpp | 52 |
1 files changed, 43 insertions, 9 deletions
diff --git a/src/menusetup.cpp b/src/menusetup.cpp index f513af3..dbce3ea 100644 --- a/src/menusetup.cpp +++ b/src/menusetup.cpp @@ -21,23 +21,31 @@ */ #include "menusetup.h" +#include "menuconfiguration.h" +#include "menuitemsetup.h" #include <vdr/menu.h> #include <vdr/interface.h> #include <libxml++/libxml++.h> -#include "menuconfiguration.h" -#include "menuitemsetup.h" +#include <iostream> using namespace xmlpp; using namespace std; -cMenuSetup::cMenuSetup(MenuConfiguration& menuConfiguration) +cMenuSetup::cMenuSetup(MenuConfiguration& menuConfiguration, int displayMode) :cOsdMenu(tr("Menu Setup")),_menuConfiguration(menuConfiguration) { - //TODO + _displayMode = displayMode; + DrawMenu(_menuConfiguration.Configuration(), 0); +} + +void cMenuSetup::DrawMenu(const Element* menuRoot, int iCount) +{ + int cur=Current(); - Element* root = _menuConfiguration.Configuration(); + if(iCount == 0) + Clear(); - Node::NodeList children = root->get_children(); + Node::NodeList children = menuRoot->get_children(); for (Node::NodeList::iterator i = children.begin(); i != children.end(); i++) { const Element* childElement = dynamic_cast<const Element*>(*i); @@ -49,18 +57,43 @@ cMenuSetup::cMenuSetup(MenuConfiguration& menuConfiguration) string type = childElement->get_name(); string name = nameAttribute->get_value(); - Add(new cOsdItem(name.c_str(), osContinue)); + for (int i=0; i <= iCount ;i++) + name = " " + name; + + if ( type == "menu" && _displayMode == 1) + { + name = "+" + name; + Add(new cOsdItem(name.c_str()),true); + DrawMenu(childElement, iCount+1); + } + else + { + if(iCount > 0) + name = " " + name; + + Add(new cOsdItem(name.c_str()),true); + } } } - DrawButton(); + if(iCount == 0) + { + SetCurrent(Get(cur)); + Display(); + DrawButton(); + } } eOSState cMenuSetup::ProcessKey(eKeys Key) { dsyslog("menuorg: cMenuSetup::ProcessKey called"); + std::cerr << "menuorg: cMenuSetup::ProcessKey called" << std::endl; eOSState state = cOsdMenu::ProcessKey(Key); - + + if (HasSubMenu()) + { + return state; + } if (state == osUnknown) { switch(Key) @@ -110,4 +143,5 @@ eOSState cMenuSetup::ProcessKey(eKeys Key) void cMenuSetup::DrawButton(void) { SetHelp(tr("Create"),tr("Edit"),tr("Delete"),tr("Move")); + Display(); } |