summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-04-23 09:47:26 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2012-04-23 09:47:26 +0200
commit28685f98956404b42766417ba71df6a5a3030ebf (patch)
tree9089af96141dcee0f1d83fca3eb27f5a270f4da2
parent3d32b07862aff8de213e999f27eaf9082696ec01 (diff)
downloadvdr-28685f98956404b42766417ba71df6a5a3030ebf.tar.gz
vdr-28685f98956404b42766417ba71df6a5a3030ebf.tar.bz2
A cOsdMenu can now handle skins that display different numbers of items in the various menu categories
-rw-r--r--HISTORY2
-rw-r--r--osdbase.c6
-rw-r--r--osdbase.h4
3 files changed, 7 insertions, 5 deletions
diff --git a/HISTORY b/HISTORY
index eae8d412..7bdd0285 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7079,3 +7079,5 @@ Video Disk Recorder Revision History
compatibility, the default skins "Classic VDR", "ST:TNG Panels" and "Text mode"
(i.e. curses) have been changed to behave like before. Other skins may want to
display the disk usage in totally different ways.
+- A cOsdMenu can now handle skins that display different numbers of items in the
+ various menu categories.
diff --git a/osdbase.c b/osdbase.c
index 27d57588..37437308 100644
--- a/osdbase.c
+++ b/osdbase.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osdbase.c 2.5 2012/04/08 11:19:46 kls Exp $
+ * $Id: osdbase.c 2.6 2012/04/23 09:41:22 kls Exp $
*/
#include "osdbase.h"
@@ -72,13 +72,13 @@ void cOsdObject::Show(void)
cSkinDisplayMenu *cOsdMenu::displayMenu = NULL;
int cOsdMenu::displayMenuCount = 0;
-int cOsdMenu::displayMenuItems = 0;//XXX dynamic???
cOsdMenu::cOsdMenu(const char *Title, int c0, int c1, int c2, int c3, int c4)
{
isMenu = true;
digit = 0;
hasHotkeys = false;
+ displayMenuItems = 0;
title = NULL;
menuCategory = mcUnknown;
SetTitle(Title);
@@ -116,7 +116,6 @@ void cOsdMenu::SetDisplayMenu(void)
delete displayMenu;
}
displayMenu = Skins.Current()->DisplayMenu();
- displayMenuItems = displayMenu->MaxItems();
}
const char *cOsdMenu::hk(const char *s)
@@ -220,6 +219,7 @@ void cOsdMenu::Display(void)
cStatus::MsgOsdClear();
if (menuCategory != displayMenu->MenuCategory())
displayMenu->SetMenuCategory(menuCategory);
+ displayMenuItems = displayMenu->MaxItems();
displayMenu->SetTabs(cols[0], cols[1], cols[2], cols[3], cols[4]);//XXX
displayMenu->SetTitle(title);
cStatus::MsgOsdTitle(title);
diff --git a/osdbase.h b/osdbase.h
index 4d8901ee..a2e9914a 100644
--- a/osdbase.h
+++ b/osdbase.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: osdbase.h 2.3 2012/04/08 11:18:38 kls Exp $
+ * $Id: osdbase.h 2.4 2012/04/23 09:40:07 kls Exp $
*/
#ifndef __OSDBASE_H
@@ -86,7 +86,7 @@ class cOsdMenu : public cOsdObject, public cList<cOsdItem> {
private:
static cSkinDisplayMenu *displayMenu;
static int displayMenuCount;
- static int displayMenuItems;
+ int displayMenuItems;
char *title;
int cols[cSkinDisplayMenu::MaxTabs];
int first, current, marked;