summaryrefslogtreecommitdiff
path: root/libskindesignerapi
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-05-30 16:43:59 +0200
committerlouis <louis.braun@gmx.de>2015-05-30 16:43:59 +0200
commit17871b8811baa9478b2b3247e340aa21bb64e06e (patch)
treec3c2139244bbb11d4f0cf3d32e02c1137e29a1c2 /libskindesignerapi
parent0936766c7be02661f1cd678fdd1b6fb22b5d122c (diff)
downloadvdr-plugin-skindesigner-17871b8811baa9478b2b3247e340aa21bb64e06e.tar.gz
vdr-plugin-skindesigner-17871b8811baa9478b2b3247e340aa21bb64e06e.tar.bz2
implemented Skin Repositories
Diffstat (limited to 'libskindesignerapi')
-rw-r--r--libskindesignerapi/Makefile2
-rw-r--r--libskindesignerapi/skindesignerosdbase.c17
-rw-r--r--libskindesignerapi/skindesignerosdbase.h5
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);