mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed setting current menu item if the first one is non-selectable; cOsdItem::cOsdItem() now has a 'Selectable' parameter
This commit is contained in:
parent
ba24e93d82
commit
704e17859f
2
HISTORY
2
HISTORY
@ -3866,3 +3866,5 @@ Video Disk Recorder Revision History
|
|||||||
Schlüßler).
|
Schlüßler).
|
||||||
- Added a check against MAXOSDAREAS in cOsd::CanHandleAreas() (reported by Udo
|
- Added a check against MAXOSDAREAS in cOsd::CanHandleAreas() (reported by Udo
|
||||||
Richter).
|
Richter).
|
||||||
|
- Fixed setting current menu item if the first one is non-selectable.
|
||||||
|
- cOsdItem::cOsdItem() now has a 'Selectable' parameter.
|
||||||
|
11
osdbase.c
11
osdbase.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osdbase.c 1.20 2005/06/18 10:30:51 kls Exp $
|
* $Id: osdbase.c 1.21 2005/10/02 09:23:10 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "osdbase.h"
|
#include "osdbase.h"
|
||||||
@ -25,12 +25,12 @@ cOsdItem::cOsdItem(eOSState State)
|
|||||||
fresh = true;
|
fresh = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cOsdItem::cOsdItem(const char *Text, eOSState State)
|
cOsdItem::cOsdItem(const char *Text, eOSState State, bool Selectable)
|
||||||
{
|
{
|
||||||
text = NULL;
|
text = NULL;
|
||||||
offset = -1;
|
offset = -1;
|
||||||
state = State;
|
state = State;
|
||||||
selectable = true;
|
selectable = Selectable;
|
||||||
fresh = true;
|
fresh = true;
|
||||||
SetText(Text);
|
SetText(Text);
|
||||||
}
|
}
|
||||||
@ -196,8 +196,11 @@ void cOsdMenu::Display(void)
|
|||||||
int count = Count();
|
int count = Count();
|
||||||
if (count > 0) {
|
if (count > 0) {
|
||||||
int ni = 0;
|
int ni = 0;
|
||||||
for (cOsdItem *item = First(); item; item = Next(item))
|
for (cOsdItem *item = First(); item; item = Next(item)) {
|
||||||
cStatus::MsgOsdItem(item->Text(), ni++);
|
cStatus::MsgOsdItem(item->Text(), ni++);
|
||||||
|
if (current < 0 && item->Selectable())
|
||||||
|
current = item->Index();
|
||||||
|
}
|
||||||
if (current < 0)
|
if (current < 0)
|
||||||
current = 0; // just for safety - there HAS to be a current item!
|
current = 0; // just for safety - there HAS to be a current item!
|
||||||
if (current - first >= displayMenuItems || current < first) {
|
if (current - first >= displayMenuItems || current < first) {
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osdbase.h 1.11 2005/06/12 10:46:34 kls Exp $
|
* $Id: osdbase.h 1.12 2005/10/02 09:18:20 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __OSDBASE_H
|
#ifndef __OSDBASE_H
|
||||||
@ -56,7 +56,7 @@ protected:
|
|||||||
bool fresh;
|
bool fresh;
|
||||||
public:
|
public:
|
||||||
cOsdItem(eOSState State = osUnknown);
|
cOsdItem(eOSState State = osUnknown);
|
||||||
cOsdItem(const char *Text, eOSState State = osUnknown);
|
cOsdItem(const char *Text, eOSState State = osUnknown, bool Selectable = true);
|
||||||
virtual ~cOsdItem();
|
virtual ~cOsdItem();
|
||||||
bool Selectable(void) { return selectable; }
|
bool Selectable(void) { return selectable; }
|
||||||
void SetText(const char *Text, bool Copy = true);
|
void SetText(const char *Text, bool Copy = true);
|
||||||
|
Loading…
Reference in New Issue
Block a user