vdr 2.6.1
include/vdr/osdbase.h
Go to the documentation of this file.
1/*
2 * osdbase.h: Basic interface to the On Screen Display
3 *
4 * See the main source file 'vdr.c' for copyright information and
5 * how to reach the author.
6 *
7 * $Id: osdbase.h 4.5 2018/01/25 15:09:23 kls Exp $
8 */
9
10#ifndef __OSDBASE_H
11#define __OSDBASE_H
12
13#include "config.h"
14#include "osd.h"
15#include "skins.h"
16#include "tools.h"
17
35 os_User, // the following values can be used locally
46 };
47
48class cOsdItem : public cListObject {
49private:
50 char *text;
53protected:
54 bool fresh;
55public:
57 cOsdItem(const char *Text, eOSState State = osUnknown, bool Selectable = true);
58 virtual ~cOsdItem();
59 bool Selectable(void) const { return selectable; }
60 void SetText(const char *Text, bool Copy = true);
61 void SetSelectable(bool Selectable);
62 void SetFresh(bool Fresh);
63 const char *Text(void) const { return text; }
64 virtual void Set(void) {}
65 virtual void SetMenuItem(cSkinDisplayMenu *DisplayMenu, int Index, bool Current, bool Selectable);
66 virtual eOSState ProcessKey(eKeys Key);
67 };
68
70 friend class cOsdMenu;
71private:
72 bool isMenu;
74protected:
76public:
77 cOsdObject(bool FastResponse = false) { isMenu = false; needsFastResponse = FastResponse; }
78 virtual ~cOsdObject() {}
79 virtual bool NeedsFastResponse(void) { return needsFastResponse; }
80 bool IsMenu(void) const { return isMenu; }
81 virtual void Show(void);
82 virtual eOSState ProcessKey(eKeys Key) { return osUnknown; }
83 };
84
85class cOsdMenu : public cOsdObject, public cList<cOsdItem> {
86private:
88 static int displayMenuCount;
89 static int osdState;
91 char *title;
101 char *status;
102 int digit;
104 void DisplayHelp(bool Force = false);
105protected:
106 void SetDisplayMenu(void);
108 const char *hk(const char *s);
109 void SetCols(int c0, int c1 = 0, int c2 = 0, int c3 = 0, int c4 = 0);
110 void SetHasHotkeys(bool HasHotkeys = true);
111 virtual void Clear(void);
112 const char *Title(void) { return title; }
113 bool SelectableItem(int idx);
114 void SetCurrent(cOsdItem *Item);
115 void RefreshCurrent(void);
116 void DisplayCurrent(bool Current);
117 void DisplayItem(cOsdItem *Item);
118 void CursorUp(void);
119 void CursorDown(void);
120 void PageUp(void);
121 void PageDown(void);
122 void Mark(void);
123 eOSState HotKey(eKeys Key);
125 eOSState CloseSubMenu(bool ReDisplay = true);
126 bool HasSubMenu(void) { return subMenu; }
127 cOsdMenu *SubMenu(void) { return subMenu; }
128 void SetStatus(const char *s);
129 void SetTitle(const char *Title);
130 void SetHelp(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
131 virtual void Del(int Index);
132public:
133 cOsdMenu(const char *Title, int c0 = 0, int c1 = 0, int c2 = 0, int c3 = 0, int c4 = 0);
134 virtual ~cOsdMenu();
136 void SetMenuCategory(eMenuCategory MenuCategory);
137 void SetMenuSortMode(eMenuSortMode MenuSortMode);
138 int Current(void) const { return current; }
139 void Add(cOsdItem *Item, bool Current = false, cOsdItem *After = NULL);
140 void Ins(cOsdItem *Item, bool Current = false, cOsdItem *Before = NULL);
141 virtual void Display(void);
142 virtual eOSState ProcessKey(eKeys Key);
143 };
144
145#endif //__OSDBASE_H
int Index(void) const
Definition: tools.c:2104
virtual void SetMenuItem(cSkinDisplayMenu *DisplayMenu, int Index, bool Current, bool Selectable)
Definition: osdbase.c:58
const char * Text(void) const
void SetSelectable(bool Selectable)
Definition: osdbase.c:48
virtual eOSState ProcessKey(eKeys Key)
Definition: osdbase.c:63
eOSState state
virtual void Set(void)
void SetFresh(bool Fresh)
Definition: osdbase.c:53
virtual ~cOsdItem()
Definition: osdbase.c:37
bool Selectable(void) const
void SetText(const char *Text, bool Copy=true)
Definition: osdbase.c:42
cOsdItem(eOSState State=osUnknown)
Definition: osdbase.c:20
void Ins(cOsdItem *Item, bool Current=false, cOsdItem *Before=NULL)
Definition: osdbase.c:220
virtual bool NeedsFastResponse(void)
eOSState HotKey(eKeys Key)
Definition: osdbase.c:504
const char * helpRed
eOSState CloseSubMenu(bool ReDisplay=true)
Definition: osdbase.c:529
void SetTitle(const char *Title)
Definition: osdbase.c:174
void PageUp(void)
Definition: osdbase.c:426
const char * helpBlue
void DisplayCurrent(bool Current)
Definition: osdbase.c:297
int Current(void) const
const char * helpYellow
virtual ~cOsdMenu()
Definition: osdbase.c:107
bool SelectableItem(int idx)
Definition: osdbase.c:340
const char * hk(const char *s)
Definition: osdbase.c:137
void CursorDown(void)
Definition: osdbase.c:385
void Mark(void)
Definition: osdbase.c:496
void SetStatus(const char *s)
Definition: osdbase.c:167
cOsdMenu * SubMenu(void)
static cSkinDisplayMenu * displayMenu
void CursorUp(void)
Definition: osdbase.c:346
void DisplayHelp(bool Force=false)
Definition: osdbase.c:180
void DisplayItem(cOsdItem *Item)
Definition: osdbase.c:315
eMenuCategory menuCategory
eOSState AddSubMenu(cOsdMenu *SubMenu)
Definition: osdbase.c:521
void SetDisplayMenu(void)
Definition: osdbase.c:128
void Add(cOsdItem *Item, bool Current=false, cOsdItem *After=NULL)
Definition: osdbase.c:213
void PageDown(void)
Definition: osdbase.c:461
void SetHasHotkeys(bool HasHotkeys=true)
Definition: osdbase.c:161
int cols[cSkinDisplayMenu::MaxTabs]
void SetCols(int c0, int c1=0, int c2=0, int c3=0, int c4=0)
Definition: osdbase.c:152
void SetCurrent(cOsdItem *Item)
Definition: osdbase.c:282
eMenuOrientation menuOrientation
void SetMenuCategory(eMenuCategory MenuCategory)
Definition: osdbase.c:118
void RefreshCurrent(void)
Definition: osdbase.c:290
static int osdState
void SetHelp(const char *Red, const char *Green=NULL, const char *Yellow=NULL, const char *Blue=NULL)
Definition: osdbase.c:189
cSkinDisplayMenu * DisplayMenu(void)
virtual void Display(void)
Definition: osdbase.c:227
bool HasSubMenu(void)
virtual void Del(int Index)
Definition: osdbase.c:199
const char * Title(void)
virtual void Clear(void)
Definition: osdbase.c:329
void SetMenuSortMode(eMenuSortMode MenuSortMode)
Definition: osdbase.c:123
cOsdMenu * subMenu
virtual eOSState ProcessKey(eKeys Key)
Definition: osdbase.c:540
eMenuSortMode menuSortMode
const char * helpGreen
static int displayMenuCount
virtual bool NeedsFastResponse(void)
virtual ~cOsdObject()
void SetNeedsFastResponse(bool NeedsFastResponse)
virtual eOSState ProcessKey(eKeys Key)
cOsdObject(bool FastResponse=false)
bool IsMenu(void) const
virtual void Show(void)
Definition: osdbase.c:70
friend class cOsdMenu
@ os_User
@ osUser5
@ osRecordings
@ osCancelEdit
@ osPause
@ osPlugin
@ osChannels
@ osStopReplay
@ osUser1
@ osUser8
@ osUser10
@ osRecord
@ osSetup
@ osUser4
@ osStopRecord
@ osContinue
@ osUser6
@ osTimers
@ osReplay
@ osUser3
@ osUser2
@ osUnknown
@ osUser9
@ osSchedule
@ osCommands
@ osBack
@ osUser7
eMenuOrientation
eMenuCategory
eMenuSortMode