vdr 2.6.1
menuitems.h
Go to the documentation of this file.
1/*
2 * menuitems.h: General purpose menu items
3 *
4 * See the main source file 'vdr.c' for copyright information and
5 * how to reach the author.
6 *
7 * $Id: menuitems.h 5.1 2020/12/26 15:49:01 kls Exp $
8 */
9
10#ifndef __MENUITEMS_H
11#define __MENUITEMS_H
12
13#include <limits.h>
14#include "dvbdevice.h"
15#include "osdbase.h"
16
17extern const char *FileNameChars;
18
19class cMenuEditItem : public cOsdItem {
20private:
21 char *name;
22 const char *helpRed, *helpGreen, *helpYellow, *helpBlue;
23 bool helpDisplayed;
24protected:
25 void SetHelp(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
26public:
27 cMenuEditItem(const char *Name);
29 void SetValue(const char *Value);
30 bool DisplayHelp(bool Current);
31 };
32
33class cMenuEditIntItem : public cMenuEditItem {
34protected:
35 int *value;
36 int min, max;
37 const char *minString, *maxString;
38 virtual void Set(void);
39public:
40 cMenuEditIntItem(const char *Name, int *Value, int Min = 0, int Max = INT_MAX, const char *MinString = NULL, const char *MaxString = NULL);
42 };
43
45protected:
46 const char *falseString, *trueString;
47 virtual void Set(void);
48public:
49 cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString = NULL, const char *TrueString = NULL);
50 };
51
53protected:
54 uint *value;
55 uint mask;
56 int bit;
57 virtual void Set(void);
58public:
59 cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString = NULL, const char *TrueString = NULL);
60 };
61
62class cMenuEditNumItem : public cMenuEditItem {
63protected:
64 char *value;
65 int length;
66 bool blind;
67 virtual void Set(void);
68public:
69 cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind = false);
71 };
72
74private:
75 int factor;
76 const char *negString, *posString;
77 void SetHelpKeys(void);
78 virtual void Set(void);
79public:
80 cMenuEditIntxItem(const char *Name, int *Value, int Min = INT_MIN, int Max = INT_MAX, int Factor = 1, const char *NegString = NULL, const char *PosString = NULL);
82 };
83
84class cMenuEditPrcItem : public cMenuEditItem {
85protected:
86 double *value;
87 double min, max;
88 int decimals;
89 int factor;
90 virtual void Set(void);
91public:
92 cMenuEditPrcItem(const char *Name, double *Value, double Min = 0.0, double Max = 1.0, int Decimals = 0);
94 };
95
96class cMenuEditChrItem : public cMenuEditItem {
97private:
98 char *value;
99 char *allowed;
100 const char *current;
101 virtual void Set(void);
102public:
103 cMenuEditChrItem(const char *Name, char *Value, const char *Allowed);
106 };
107
108class cMenuEditStrItem : public cMenuEditItem {
109private:
110 char *value;
111 int length;
112 const char *allowed;
113 int pos, offset;
114 bool keepSpace;
115 const char **macros;
116 int macro, lastMacro;
117 bool insert, newchar, uppercase;
118 int lengthUtf8;
119 uint *valueUtf8;
120 uint *allowedUtf8;
121 uint *charMapUtf8;
122 uint *currentCharUtf8;
125 void SetHelpKeys(void);
126 uint *IsAllowed(uint c);
127 void AdvancePos(void);
128 virtual void Set(void);
129 uint Inc(uint c, bool Up);
130 void Type(uint c);
131 void Insert(void);
132 void Delete(void);
133 void InsertMacro(void);
134protected:
135 void EnterEditMode(void);
136 void LeaveEditMode(bool SaveValue = false);
137 bool InEditMode(void) { return valueUtf8 != NULL; }
138public:
139 cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed = NULL);
141 void SetKeepSpace(void) { keepSpace = true; }
142 void SetMacros(const char **Macros);
144 };
145
146class cMenuEditStraItem : public cMenuEditIntItem {
147private:
148 const char * const *strings;
149protected:
150 virtual void Set(void);
151public:
152 cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char * const *Strings);
153 };
154
155class cMenuEditStrlItem : public cMenuEditIntItem {
156private:
157 const cStringList *strings;
158 int index;
159 char *value;
160 int length;
161protected:
162 virtual void Set(void);
163public:
164 cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings);
165 };
166
167class cMenuEditChanItem : public cMenuEditIntItem {
168protected:
169 const char *noneString;
170 int dummyValue;
172 virtual void Set(void);
173public:
174 cMenuEditChanItem(const char *Name, int *Value, const char *NoneString = NULL);
175 cMenuEditChanItem(const char *Name, cString *ChannelID, const char *NoneString = NULL);
177 };
178
180private:
181 int number;
182 int *source;
183 int *transponder;
184public:
185 cMenuEditTranItem(const char *Name, int *Value, int *Source);
187 };
188
189class cMenuEditDateItem : public cMenuEditItem {
190private:
191 static int days[];
192 time_t *value;
193 int *weekdays;
194 time_t oldvalue;
195 int oldweekdays;
196 int dayindex;
197 int FindDayIndex(int WeekDays);
198 virtual void Set(void);
199public:
200 cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays = NULL);
201 void ToggleRepeating(void);
203 };
204
205class cMenuEditTimeItem : public cMenuEditItem {
206protected:
207 int *value;
208 int hh, mm;
209 int pos;
210 virtual void Set(void);
211public:
212 cMenuEditTimeItem(const char *Name, int *Value);
214 };
215
216class cMenuEditMapItem : public cMenuEditItem {
217protected:
218 int *value;
219 const tDvbParameterMap *map;
220 const char *zeroString;
221 virtual void Set(void);
222public:
223 cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL);
225 };
226
227class cPlugin;
228
229class cMenuSetupPage : public cOsdMenu {
230private:
232protected:
233 void SetSection(const char *Section);
234 virtual void Store(void) = 0;
235 void SetupStore(const char *Name, const char *Value = NULL);
236 void SetupStore(const char *Name, int Value);
237public:
240 void SetPlugin(cPlugin *Plugin);
241 };
242
243#endif //__MENUITEMS_H
virtual void Set(void)
cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString=NULL, const char *TrueString=NULL)
virtual void Set(void)
cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString=NULL, const char *TrueString=NULL)
virtual eOSState ProcessKey(eKeys Key)
virtual void Set(void)
cMenuEditChanItem(const char *Name, int *Value, const char *NoneString=NULL)
cMenuEditChanItem(const char *Name, cString *ChannelID, const char *NoneString=NULL)
virtual void Set(void)
cMenuEditChrItem(const char *Name, char *Value, const char *Allowed)
virtual eOSState ProcessKey(eKeys Key)
int FindDayIndex(int WeekDays)
void ToggleRepeating(void)
virtual eOSState ProcessKey(eKeys Key)
virtual void Set(void)
cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays=NULL)
cMenuEditIntItem(const char *Name, int *Value, int Min=0, int Max=INT_MAX, const char *MinString=NULL, const char *MaxString=NULL)
virtual eOSState ProcessKey(eKeys Key)
virtual void Set(void)
virtual void Set(void)
cMenuEditIntxItem(const char *Name, int *Value, int Min=INT_MIN, int Max=INT_MAX, int Factor=1, const char *NegString=NULL, const char *PosString=NULL)
void SetHelpKeys(void)
virtual eOSState ProcessKey(eKeys Key)
const char * helpYellow
bool DisplayHelp(bool Current)
void SetHelp(const char *Red, const char *Green=NULL, const char *Yellow=NULL, const char *Blue=NULL)
const char * helpGreen
void SetValue(const char *Value)
const char * helpRed
cMenuEditItem(const char *Name)
const char * helpBlue
const tDvbParameterMap * map
virtual eOSState ProcessKey(eKeys Key)
virtual void Set(void)
cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString=NULL)
virtual void Set(void)
virtual eOSState ProcessKey(eKeys Key)
cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind=false)
cMenuEditPrcItem(const char *Name, double *Value, double Min=0.0, double Max=1.0, int Decimals=0)
virtual void Set(void)
virtual eOSState ProcessKey(eKeys Key)
uint Inc(uint c, bool Up)
void Insert(void)
void Delete(void)
void LeaveEditMode(bool SaveValue=false)
void SetKeepSpace(void)
Definition: menuitems.h:141
void Type(uint c)
cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed=NULL)
void InsertMacro(void)
bool InEditMode(void)
Definition: menuitems.h:137
virtual void Set(void)
void AdvancePos(void)
void SetMacros(const char **Macros)
virtual eOSState ProcessKey(eKeys Key)
void SetHelpKeys(void)
void EnterEditMode(void)
uint * IsAllowed(uint c)
const char *const * strings
virtual void Set(void)
cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char *const *Strings)
virtual void Set(void)
cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings)
const cStringList * strings
cMenuEditTimeItem(const char *Name, int *Value)
virtual eOSState ProcessKey(eKeys Key)
virtual void Set(void)
virtual eOSState ProcessKey(eKeys Key)
cMenuEditTranItem(const char *Name, int *Value, int *Source)
virtual void Store(void)=0
void SetupStore(const char *Name, int Value)
cMenuSetupPage(void)
void SetSection(const char *Section)
void SetupStore(const char *Name, const char *Value=NULL)
virtual eOSState ProcessKey(eKeys Key)
void SetPlugin(cPlugin *Plugin)
const char * FileNameChars
Definition: menuitems.c:22