diff options
author | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-19 19:30:35 +0000 |
---|---|---|
committer | svntobi <svntobi@cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f> | 2007-08-19 19:30:35 +0000 |
commit | 5fe4cc430fa9c9030e9703e6d4ea3008cb4c3aab (patch) | |
tree | 88813457ebfeced0f0be783008d2c00db72d280c | |
parent | aba6a8f23c898ee0184e987d8fbe9e53ffc12e4a (diff) | |
download | vdr-plugin-menuorg-5fe4cc430fa9c9030e9703e6d4ea3008cb4c3aab.tar.gz vdr-plugin-menuorg-5fe4cc430fa9c9030e9703e6d4ea3008cb4c3aab.tar.bz2 |
some renamings
git-svn-id: file:///home/tobias/sandbox/vdr/--/vdr-pkg/vdr-pkg/submenu/trunk@5828 cd0d6b48-d4f9-0310-940f-ab8c4eb44d3f
-rw-r--r-- | src/custommainmenuitem.cpp | 6 | ||||
-rw-r--r-- | src/custommainmenuitem.h | 10 | ||||
-rw-r--r-- | src/mainmenuitemsprovider.cpp | 12 | ||||
-rw-r--r-- | src/mainmenuitemsprovider.h | 8 | ||||
-rw-r--r-- | src/menunode.cpp | 2 | ||||
-rw-r--r-- | src/menunode.h | 4 | ||||
-rw-r--r-- | src/menuorg.cpp | 5 | ||||
-rw-r--r-- | src/pluginmainmenuitem.cpp | 6 | ||||
-rw-r--r-- | src/pluginmainmenuitem.h | 10 | ||||
-rw-r--r-- | src/pluginmenuitem.cpp | 4 | ||||
-rw-r--r-- | src/pluginmenuitem.h | 2 | ||||
-rw-r--r-- | src/systemmenuitem.cpp | 4 | ||||
-rw-r--r-- | src/systemmenuitem.h | 2 | ||||
-rwxr-xr-x | vdr-patch/menuorg-0.1.diff | 203 |
14 files changed, 178 insertions, 100 deletions
diff --git a/src/custommainmenuitem.cpp b/src/custommainmenuitem.cpp index 2afded8..fb93a49 100644 --- a/src/custommainmenuitem.cpp +++ b/src/custommainmenuitem.cpp @@ -27,17 +27,17 @@ CustomMainMenuItem::CustomMainMenuItem(cOsdItem* osdItem) _osdItem = osdItem; } -bool CustomMainMenuItem::IsCustomMenuItem() +bool CustomMainMenuItem::IsCustomOsdItem() { return true; } -bool CustomMainMenuItem::IsPluginMenuItem() +bool CustomMainMenuItem::IsPluginItem() { return false; } -cOsdItem* CustomMainMenuItem::CustomMenuItem() +cOsdItem* CustomMainMenuItem::CustomOsdItem() { return _osdItem; } diff --git a/src/custommainmenuitem.h b/src/custommainmenuitem.h index 1d18c1e..7e6cd41 100644 --- a/src/custommainmenuitem.h +++ b/src/custommainmenuitem.h @@ -23,18 +23,18 @@ #ifndef ___CUSTOMMAINMENUITEM_H #define ___CUSTOMMAINMENUITEM_H -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> -class CustomMainMenuItem: public MenuOrgPatch::IMainMenuItem +class CustomMainMenuItem: public IMenuItemDefinition { private: cOsdItem* _osdItem; public: CustomMainMenuItem(cOsdItem* osdItem); - virtual bool IsCustomMenuItem(); - virtual bool IsPluginMenuItem(); - virtual cOsdItem* CustomMenuItem(); + virtual bool IsCustomOsdItem(); + virtual bool IsPluginItem(); + virtual cOsdItem* CustomOsdItem(); virtual const char* PluginMenuEntry(); virtual int PluginIndex(); }; diff --git a/src/mainmenuitemsprovider.cpp b/src/mainmenuitemsprovider.cpp index 4250fb3..fe14ddb 100644 --- a/src/mainmenuitemsprovider.cpp +++ b/src/mainmenuitemsprovider.cpp @@ -26,8 +26,6 @@ #include "pluginmenuitem.h" #include <vdr/plugin.h> -using namespace MenuOrgPatch; - MainMenuItemsProvider::MainMenuItemsProvider(MenuNode* rootMenu) { _currentMenu = _rootMenu = rootMenu; @@ -39,14 +37,14 @@ MainMenuItemsProvider::~MainMenuItemsProvider() delete _rootMenu; } -MainMenuItemsList* MainMenuItemsProvider::MainMenuItems() +MenuItemDefinitions* MainMenuItemsProvider::MainMenuItems() { ResetMainMenuItemsList(); for (MenuNodeList::iterator i = _currentMenu->Childs().begin(); i != _currentMenu->Childs().end(); i++) { - _currentMainMenuItems.push_back((*i)->CreateMainMenuItem()); + _currentMainMenuItems.push_back((*i)->CreateMenuItemDefinition()); } return &_currentMainMenuItems; @@ -55,7 +53,7 @@ MainMenuItemsList* MainMenuItemsProvider::MainMenuItems() void MainMenuItemsProvider::ResetMainMenuItemsList() { - for( MainMenuItemsList::iterator i = _currentMainMenuItems.begin(); + for( MenuItemDefinitions::iterator i = _currentMainMenuItems.begin(); i != _currentMainMenuItems.end(); i++) { delete *i; @@ -72,8 +70,8 @@ void MainMenuItemsProvider::EnterSubMenu(cOsdItem* item) { for(unsigned int itemIndex=0; itemIndex < _currentMainMenuItems.size(); itemIndex++) { - IMainMenuItem* menuItem = _currentMainMenuItems.at(itemIndex); - if (menuItem->IsCustomMenuItem() && (menuItem->CustomMenuItem() == item)) + IMenuItemDefinition* menuItem = _currentMainMenuItems.at(itemIndex); + if (menuItem->IsCustomOsdItem() && (menuItem->CustomOsdItem() == item)) { _currentMenu = _currentMenu->Childs().at(itemIndex); break; diff --git a/src/mainmenuitemsprovider.h b/src/mainmenuitemsprovider.h index e6e1837..0c6b254 100644 --- a/src/mainmenuitemsprovider.h +++ b/src/mainmenuitemsprovider.h @@ -23,21 +23,21 @@ #ifndef ___MAINMENUITEMSPROVIDER_H #define ___MAINMENUITEMSPROVIDER_H -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> class MenuNode; -class MainMenuItemsProvider: public MenuOrgPatch::IMainMenuItemsProvider +class MainMenuItemsProvider: public IMainMenuItemsProvider { private: MenuNode* _rootMenu; MenuNode* _currentMenu; - MenuOrgPatch::MainMenuItemsList _currentMainMenuItems; + MenuItemDefinitions _currentMainMenuItems; public: MainMenuItemsProvider(MenuNode* rootMenu); ~MainMenuItemsProvider(); - virtual MenuOrgPatch::MainMenuItemsList* MainMenuItems(); + virtual MenuItemDefinitions* MainMenuItems(); virtual void EnterRootMenu(); virtual void EnterSubMenu(cOsdItem* item); virtual bool LeaveSubMenu(); diff --git a/src/menunode.cpp b/src/menunode.cpp index e813c1c..0552484 100644 --- a/src/menunode.cpp +++ b/src/menunode.cpp @@ -58,7 +58,7 @@ void MenuNode::SetParent(MenuNode* parent) _parent = parent; } -MenuOrgPatch::IMainMenuItem* MenuNode::CreateMainMenuItem() +IMenuItemDefinition* MenuNode::CreateMenuItemDefinition() { return NULL; } diff --git a/src/menunode.h b/src/menunode.h index d8e9eef..59c2e33 100644 --- a/src/menunode.h +++ b/src/menunode.h @@ -25,7 +25,7 @@ #include <vector> -namespace MenuOrgPatch { class IMainMenuItem; } +class IMenuItemDefinition; class MenuNode; typedef std::vector<MenuNode*> MenuNodeList; @@ -45,7 +45,7 @@ class MenuNode MenuNode* Parent(); MenuNodeList& Childs(); MenuNode* AddChild(MenuNode* child); - virtual MenuOrgPatch::IMainMenuItem* CreateMainMenuItem(); + virtual IMenuItemDefinition* CreateMenuItemDefinition(); }; #endif diff --git a/src/menuorg.cpp b/src/menuorg.cpp index 257aeb0..0805bcd 100644 --- a/src/menuorg.cpp +++ b/src/menuorg.cpp @@ -23,7 +23,7 @@ #include <vdr/plugin.h> #include <vdr/config.h> #include <vdr/tools.h> -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> #include <vector> #include <iostream> #include <string> @@ -35,7 +35,6 @@ #include "i18n.h" using namespace std; -using namespace MenuOrgPatch; MenuOrgPlugin::MenuOrgPlugin(void) { @@ -142,7 +141,7 @@ bool MenuOrgPlugin::SetupParse(const char *Name, const char *Value) bool MenuOrgPlugin::Service(const char *Id, void *Data) { - if (strcmp(Id, "MenuOrgPatch-v0.1::MainMenuItemsProvider") == 0) + if (strcmp(Id, MENU_ITEMS_PROVIDER_SERVICE_ID) == 0) { if (_subMenuProvider) { diff --git a/src/pluginmainmenuitem.cpp b/src/pluginmainmenuitem.cpp index 6a47418..8101aa1 100644 --- a/src/pluginmainmenuitem.cpp +++ b/src/pluginmainmenuitem.cpp @@ -28,17 +28,17 @@ PluginMainMenuItem::PluginMainMenuItem(const char* mainMenuEntry, int pluginInde _pluginIndex = pluginIndex; } -bool PluginMainMenuItem::IsCustomMenuItem() +bool PluginMainMenuItem::IsCustomOsdItem() { return false; } -bool PluginMainMenuItem::IsPluginMenuItem() +bool PluginMainMenuItem::IsPluginItem() { return true; } -cOsdItem* PluginMainMenuItem::CustomMenuItem() +cOsdItem* PluginMainMenuItem::CustomOsdItem() { return NULL; } diff --git a/src/pluginmainmenuitem.h b/src/pluginmainmenuitem.h index 287ba0c..df1427f 100644 --- a/src/pluginmainmenuitem.h +++ b/src/pluginmainmenuitem.h @@ -23,9 +23,9 @@ #ifndef ___PLUGINMAINMENUITEM_H #define ___PLUGINMAINMENUITEM_H -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> -class PluginMainMenuItem: public MenuOrgPatch::IMainMenuItem +class PluginMainMenuItem: public IMenuItemDefinition { private: const char* _mainMenuEntry; @@ -33,9 +33,9 @@ class PluginMainMenuItem: public MenuOrgPatch::IMainMenuItem public: PluginMainMenuItem(const char* mainMenuEntry, int pluginIndex); - virtual bool IsCustomMenuItem(); - virtual bool IsPluginMenuItem(); - virtual cOsdItem* CustomMenuItem(); + virtual bool IsCustomOsdItem(); + virtual bool IsPluginItem(); + virtual cOsdItem* CustomOsdItem(); virtual const char* PluginMenuEntry(); virtual int PluginIndex(); }; diff --git a/src/pluginmenuitem.cpp b/src/pluginmenuitem.cpp index 36bbfa6..1149c38 100644 --- a/src/pluginmenuitem.cpp +++ b/src/pluginmenuitem.cpp @@ -21,7 +21,7 @@ */ #include "pluginmenuitem.h" -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> #include "pluginmainmenuitem.h" PluginMenuItem::PluginMenuItem(const char* pluginMainMenuEntry, int pluginIndex) @@ -30,7 +30,7 @@ PluginMenuItem::PluginMenuItem(const char* pluginMainMenuEntry, int pluginIndex) _pluginIndex = pluginIndex; } -MenuOrgPatch::IMainMenuItem* PluginMenuItem::CreateMainMenuItem() +IMenuItemDefinition* PluginMenuItem::CreateMenuItemDefinition() { return new PluginMainMenuItem(_pluginMainMenuEntry, _pluginIndex); } diff --git a/src/pluginmenuitem.h b/src/pluginmenuitem.h index 87f38d4..05bb298 100644 --- a/src/pluginmenuitem.h +++ b/src/pluginmenuitem.h @@ -33,7 +33,7 @@ class PluginMenuItem: public MenuNode public: PluginMenuItem(const char* pluginMainMenuEntry, int pluginIndex); - MenuOrgPatch::IMainMenuItem* CreateMainMenuItem(); + IMenuItemDefinition* CreateMenuItemDefinition(); }; #endif diff --git a/src/systemmenuitem.cpp b/src/systemmenuitem.cpp index b62beef..30257ee 100644 --- a/src/systemmenuitem.cpp +++ b/src/systemmenuitem.cpp @@ -21,7 +21,7 @@ */ #include "systemmenuitem.h" -#include <vdr/menuorgpatch.h> +#include <vdr/mainmenuitemsprovider.h> #include "custommainmenuitem.h" SystemMenuItem::SystemMenuItem(std::string itemText, eOSState itemState) @@ -30,7 +30,7 @@ SystemMenuItem::SystemMenuItem(std::string itemText, eOSState itemState) _itemState = itemState; } -MenuOrgPatch::IMainMenuItem* SystemMenuItem::CreateMainMenuItem() +IMenuItemDefinition* SystemMenuItem::CreateMenuItemDefinition() { if(_itemState != osUser1) return new CustomMainMenuItem(new cOsdItem(tr(_itemText.c_str()), _itemState)); diff --git a/src/systemmenuitem.h b/src/systemmenuitem.h index 19ded04..4c7c1f7 100644 --- a/src/systemmenuitem.h +++ b/src/systemmenuitem.h @@ -35,7 +35,7 @@ class SystemMenuItem: public MenuNode public: SystemMenuItem(std::string itemText, eOSState itemState); - MenuOrgPatch::IMainMenuItem* CreateMainMenuItem(); + IMenuItemDefinition* CreateMenuItemDefinition(); }; #endif diff --git a/vdr-patch/menuorg-0.1.diff b/vdr-patch/menuorg-0.1.diff index 3c1fcb1..406d860 100755 --- a/vdr-patch/menuorg-0.1.diff +++ b/vdr-patch/menuorg-0.1.diff @@ -1,48 +1,99 @@ -diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c ---- vdr-1.4.7~/menu.c 2007-08-11 20:48:29.000000000 +0200 -+++ vdr-1.4.7/menu.c 2007-08-11 20:48:29.000000000 +0200 -@@ -31,6 +31,7 @@ - #include "vdrttxtsubshooks.h" - #include "dvbsub.h" +diff -Nur vdr-1.4.7/mainmenuitemsprovider.h vdr-1.4.7.patched/mainmenuitemsprovider.h +--- vdr-1.4.7/mainmenuitemsprovider.h 1970-01-01 01:00:00.000000000 +0100 ++++ vdr-1.4.7.patched/mainmenuitemsprovider.h 2007-08-19 21:28:32.000000000 +0200 +@@ -0,0 +1,55 @@ ++/* ++ * vdr-menuorg - A plugin for the Linux Video Disk Recorder ++ * Copyright (C) 2007 Thomas Creutz, Tobias Grimm ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ * ++ * $Id:$ ++ * ++ */ ++ ++#ifndef __MAINMENUITEMSPROVIDER_H ++#define __MAINMENUITEMSPROVIDER_H ++ ++#include <vector> ++ ++class cOsdItem; ++ ++class IMenuItemDefinition ++{ ++ public: ++ virtual ~IMenuItemDefinition() {}; ++ virtual bool IsCustomOsdItem() = 0; ++ virtual bool IsPluginItem() = 0; ++ virtual cOsdItem* CustomOsdItem() = 0; ++ virtual const char* PluginMenuEntry() = 0; ++ virtual int PluginIndex() = 0; ++}; ++ ++typedef std::vector<IMenuItemDefinition*> MenuItemDefinitions; ++ ++#define MENU_ITEMS_PROVIDER_SERVICE_ID "MenuOrgPatch-v0.1::MainMenuItemsProvider" ++ ++class IMainMenuItemsProvider ++{ ++ public: ++ virtual ~IMainMenuItemsProvider() {}; ++ virtual MenuItemDefinitions* MainMenuItems() = 0; ++ virtual void EnterRootMenu() = 0; ++ virtual void EnterSubMenu(cOsdItem* item) = 0; ++ virtual bool LeaveSubMenu() = 0; ++}; ++ ++#endif //__MAINMENUITEMSPROVIDER_H +diff -Nur vdr-1.4.7/menu.c vdr-1.4.7.patched/menu.c +--- vdr-1.4.7/menu.c 2006-12-02 12:12:02.000000000 +0100 ++++ vdr-1.4.7.patched/menu.c 2007-08-19 21:28:32.000000000 +0200 +@@ -28,6 +28,7 @@ + #include "timers.h" + #include "transfer.h" #include "videodir.h" +#include "menuorgpatch.h" #define MAXWAIT4EPGINFO 3 // seconds #define MODETIMEOUT 3 // seconds -@@ -3057,6 +3058,13 @@ +@@ -2788,6 +2789,9 @@ cancelEditingItem = NULL; stopRecordingItem = NULL; recordControlsState = 0; + -+ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider; -+ -+ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuitemsProvider", &mainMenuItemsProvider)) { -+ mainMenuItemsProvider->EnterRootMenu(); -+ } ++ MenuOrgPatch::EnterRootMenu(); + Set(); // Initial submenus: -@@ -3084,6 +3092,29 @@ +@@ -2815,6 +2819,25 @@ Clear(); SetTitle("VDR"); SetHasHotkeys(); + -+ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider; -+ -+ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) { -+ MenuOrgPatch::MainMenuItemsList* menuItems = mainMenuItemsProvider->MainMenuItems(); -+ MenuOrgPatch::MainMenuItemsList::iterator i; -+ -+ for (i = menuItems->begin(); i != menuItems->end(); i++) { -+ if ((*i)->IsCustomMenuItem()) { -+ cOsdItem* osdItem = (*i)->CustomMenuItem(); ++ if (MenuOrgPatch::IsCustomMenuAvailable()) { ++ MenuItemDefinitions* menuItems = MenuOrgPatch::MainMenuItems(); ++ for (MenuItemDefinitions::iterator i = menuItems->begin(); i != menuItems->end(); i++) { ++ if ((*i)->IsCustomOsdItem()) { ++ cOsdItem* osdItem = (*i)->CustomOsdItem(); + if (osdItem) { + osdItem->SetText(hk(osdItem->Text())); + Add(osdItem); + } + } -+ else if ((*i)->IsPluginMenuItem()) { ++ else if ((*i)->IsPluginItem()) { + const char *item = (*i)->PluginMenuEntry(); + if (item) + Add(new cMenuPluginItem(hk(item), (*i)->PluginIndex())); @@ -53,7 +104,7 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c // Basic menu items: -@@ -3111,6 +3142,8 @@ +@@ -2842,6 +2865,8 @@ if (Commands.Count()) Add(new cOsdItem(hk(tr("Commands")), osCommands)); @@ -62,15 +113,14 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c Update(true); Display(); -@@ -3238,6 +3271,35 @@ +@@ -2966,6 +2991,32 @@ state = osEnd; } break; + case osBack: { -+ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider; -+ -+ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) { -+ bool leavingMenuSucceeded = mainMenuItemsProvider->LeaveSubMenu(); ++ if (MenuOrgPatch::IsCustomMenuAvailable()) ++ { ++ bool leavingMenuSucceeded = MenuOrgPatch::LeaveSubMenu(); + Set(); + stopReplayItem = NULL; + cancelEditingItem = NULL; @@ -86,10 +136,8 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c + } + break; + case osUser1: { -+ MenuOrgPatch::IMainMenuItemsProvider* mainMenuItemsProvider; -+ -+ if (cPluginManager::CallFirstService("MenuOrgPatch-v0.1::MainMenuItemsProvider", &mainMenuItemsProvider)) { -+ mainMenuItemsProvider->EnterSubMenu(Get(Current())); ++ if (MenuOrgPatch::IsCustomMenuAvailable()) { ++ MenuOrgPatch::EnterSubMenu(Get(Current())); + Set(); + return osContinue; + } @@ -98,10 +146,10 @@ diff -urNad vdr-1.4.7~/menu.c vdr-1.4.7/menu.c default: switch (Key) { case kRecord: case kRed: if (!HadSubMenu) -diff -urNad vdr-1.4.7~/menuorgpatch.h vdr-1.4.7/menuorgpatch.h ---- vdr-1.4.7~/menuorgpatch.h 1970-01-01 01:00:00.000000000 +0100 -+++ vdr-1.4.7/menuorgpatch.h 2007-08-11 20:48:58.000000000 +0200 -@@ -0,0 +1,58 @@ +diff -Nur vdr-1.4.7/menuorgpatch.h vdr-1.4.7.patched/menuorgpatch.h +--- vdr-1.4.7/menuorgpatch.h 1970-01-01 01:00:00.000000000 +0100 ++++ vdr-1.4.7.patched/menuorgpatch.h 2007-08-19 21:28:32.000000000 +0200 +@@ -0,0 +1,91 @@ +/* + * vdr-menuorg - A plugin for the Linux Video Disk Recorder + * Copyright (C) 2007 Thomas Creutz, Tobias Grimm @@ -127,36 +175,69 @@ diff -urNad vdr-1.4.7~/menuorgpatch.h vdr-1.4.7/menuorgpatch.h +#ifndef __MENUORGPATCH_H +#define __MENUORGPATCH_H + -+#include <vector> -+ -+class cOsdItem; ++#include "mainmenuitemsprovider.h" + -+namespace MenuOrgPatch ++class MenuOrgPatch +{ ++ private: ++ static IMainMenuItemsProvider* _mainMenuItemsProvider; ++ ++ private: ++ static IMainMenuItemsProvider* MainMenuItemsProvider() ++ { ++ if (!_mainMenuItemsProvider) ++ { ++ IMainMenuItemsProvider* mainMenuItemsProvider; ++ ++ if (cPluginManager::CallFirstService(MENU_ITEMS_PROVIDER_SERVICE_ID, &mainMenuItemsProvider)) ++ { ++ _mainMenuItemsProvider = mainMenuItemsProvider; ++ } ++ } ++ return _mainMenuItemsProvider; ++ } + -+class IMainMenuItem -+{ + public: -+ virtual ~IMainMenuItem() {}; -+ virtual bool IsCustomMenuItem() = 0; -+ virtual bool IsPluginMenuItem() = 0; -+ virtual cOsdItem* CustomMenuItem() = 0; -+ virtual const char* PluginMenuEntry() = 0; -+ virtual int PluginIndex() = 0; -+}; -+ -+typedef std::vector<IMainMenuItem*> MainMenuItemsList; ++ static bool IsCustomMenuAvailable() ++ { ++ return (MainMenuItemsProvider() != NULL); ++ } ++ ++ static void EnterRootMenu() ++ { ++ if (MainMenuItemsProvider()) ++ { ++ MainMenuItemsProvider()->EnterRootMenu(); ++ } ++ } + -+class IMainMenuItemsProvider -+{ -+ public: -+ virtual ~IMainMenuItemsProvider() {}; -+ virtual MainMenuItemsList* MainMenuItems() = 0; -+ virtual void EnterRootMenu() = 0; -+ virtual void EnterSubMenu(cOsdItem* item) = 0; -+ virtual bool LeaveSubMenu() = 0; ++ static bool LeaveSubMenu() ++ { ++ if (MainMenuItemsProvider()) ++ { ++ return MainMenuItemsProvider()->LeaveSubMenu(); ++ } ++ return false; ++ } ++ ++ static void EnterSubMenu(cOsdItem* item) ++ { ++ if (MainMenuItemsProvider()) ++ { ++ MainMenuItemsProvider()->EnterSubMenu(item); ++ } ++ } ++ ++ static MenuItemDefinitions* MainMenuItems() ++ { ++ if (MainMenuItemsProvider()) ++ { ++ return MainMenuItemsProvider()->MainMenuItems(); ++ } ++ return NULL; ++ } +}; + -+}; ++IMainMenuItemsProvider* MenuOrgPatch::_mainMenuItemsProvider = NULL; + +#endif //__MENUORGPATCH_H |