diff options
author | louis <louis.braun@gmx.de> | 2015-05-30 16:43:59 +0200 |
---|---|---|
committer | louis <louis.braun@gmx.de> | 2015-05-30 16:43:59 +0200 |
commit | 17871b8811baa9478b2b3247e340aa21bb64e06e (patch) | |
tree | c3c2139244bbb11d4f0cf3d32e02c1137e29a1c2 /libskindesignerapi | |
parent | 0936766c7be02661f1cd678fdd1b6fb22b5d122c (diff) | |
download | vdr-plugin-skindesigner-17871b8811baa9478b2b3247e340aa21bb64e06e.tar.gz vdr-plugin-skindesigner-17871b8811baa9478b2b3247e340aa21bb64e06e.tar.bz2 |
implemented Skin Repositories
Diffstat (limited to 'libskindesignerapi')
-rw-r--r-- | libskindesignerapi/Makefile | 2 | ||||
-rw-r--r-- | libskindesignerapi/skindesignerosdbase.c | 17 | ||||
-rw-r--r-- | libskindesignerapi/skindesignerosdbase.h | 5 |
3 files changed, 23 insertions, 1 deletions
diff --git a/libskindesignerapi/Makefile b/libskindesignerapi/Makefile index 403a764..7948799 100644 --- a/libskindesignerapi/Makefile +++ b/libskindesignerapi/Makefile @@ -3,7 +3,7 @@ NAME = skindesignerapi LIBNAME = lib$(NAME) MAJOR = 0 -MINOR = 0.1 +MINOR = 0.2 VERSION = $(MAJOR).$(MINOR) SONAME = $(LIBNAME).so.$(MAJOR) diff --git a/libskindesignerapi/skindesignerosdbase.c b/libskindesignerapi/skindesignerosdbase.c index 26efb73..f552664 100644 --- a/libskindesignerapi/skindesignerosdbase.c +++ b/libskindesignerapi/skindesignerosdbase.c @@ -75,6 +75,10 @@ void skindesignerapi::cSkindesignerOsdItem::AddLoopToken(string loopName, map<st **********************************************************************/ skindesignerapi::cSkindesignerOsdMenu::cSkindesignerOsdMenu(const char *Title, int c0, int c1, int c2, int c3, int c4) : cOsdMenu(Title, c0, c1, c2, c3, c4) { init = true; + firstCallCleared = false; + secondCall = false; + firstMenu = -1; + firstType = mtList; displayText = false; sdDisplayMenu = NULL; pluginName = ""; @@ -87,6 +91,10 @@ skindesignerapi::cSkindesignerOsdMenu::~cSkindesignerOsdMenu() { } void skindesignerapi::cSkindesignerOsdMenu::SetPluginMenu(int menu, eMenuType type) { + if (firstCallCleared) { + firstMenu = menu; + firstType = type; + } if (type == mtList) displayText = false; else if (type == mtText) @@ -155,6 +163,15 @@ void skindesignerapi::cSkindesignerOsdMenu::TextKeyDown(void) { } void skindesignerapi::cSkindesignerOsdMenu::Display(void) { + if (firstCallCleared) { + firstCallCleared = false; + secondCall = true; + return; + } + if (secondCall) { + SetSkinDesignerDisplayMenu(); + SetPluginMenu(firstMenu, firstType); + } if (displayText) { if (sdDisplayMenu) { sdDisplayMenu->SetTitle(Title()); diff --git a/libskindesignerapi/skindesignerosdbase.h b/libskindesignerapi/skindesignerosdbase.h index 353b5d7..1b41092 100644 --- a/libskindesignerapi/skindesignerosdbase.h +++ b/libskindesignerapi/skindesignerosdbase.h @@ -61,6 +61,10 @@ public: class cSkindesignerOsdMenu : public cOsdMenu { private: bool init; + bool firstCallCleared; + bool secondCall; + int firstMenu; + eMenuType firstType; bool displayText; string pluginName; ISDDisplayMenu *sdDisplayMenu; @@ -70,6 +74,7 @@ private: map < string, vector< map< string, string > > > loopTokens; bool SetSkinDesignerDisplayMenu(void); protected: + void FirstCallCleared(void) { firstCallCleared = true; }; void ClearTokens(void); void SetPluginName(string name) {pluginName = name; }; void SetPluginMenu(int menu, eMenuType type); |