vdr 2.6.6
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;
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
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);
41 virtual eOSState ProcessKey(eKeys Key);
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
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);
70 virtual eOSState ProcessKey(eKeys Key);
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);
81 virtual eOSState ProcessKey(eKeys Key);
82 };
83
85protected:
86 double *value;
87 double min, max;
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);
93 virtual eOSState ProcessKey(eKeys Key);
94 };
95
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);
105 virtual eOSState ProcessKey(eKeys Key);
106 };
107
109private:
110 char *value;
112 const char *allowed;
115 const char **macros;
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);
143 virtual eOSState ProcessKey(eKeys Key);
144 };
145
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
156private:
158 int index;
159 char *value;
161protected:
162 virtual void Set(void);
163public:
164 cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings);
165 };
166
168protected:
169 const char *noneString;
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);
176 virtual eOSState ProcessKey(eKeys Key);
177 };
178
180private:
182 int *source;
184public:
185 cMenuEditTranItem(const char *Name, int *Value, int *Source);
186 virtual eOSState ProcessKey(eKeys Key);
187 };
188
190private:
191 static int days[];
192 time_t *value;
194 time_t oldvalue;
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);
202 virtual eOSState ProcessKey(eKeys Key);
203 };
204
206protected:
207 int *value;
208 int hh, mm;
209 int pos;
210 virtual void Set(void);
211public:
212 cMenuEditTimeItem(const char *Name, int *Value);
213 virtual eOSState ProcessKey(eKeys Key);
214 };
215
217protected:
218 int *value;
220 const char *zeroString;
221 virtual void Set(void);
222public:
223 cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL);
224 virtual eOSState ProcessKey(eKeys Key);
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:
238 cMenuSetupPage(void);
239 virtual eOSState ProcessKey(eKeys Key);
240 void SetPlugin(cPlugin *Plugin);
241 };
242
243#endif //__MENUITEMS_H
cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString=NULL, const char *TrueString=NULL)
Definition menuitems.c:157
virtual void Set(void)
Definition menuitems.c:166
virtual void Set(void)
Definition menuitems.c:148
cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString=NULL, const char *TrueString=NULL)
Definition menuitems.c:140
const char * falseString
Definition menuitems.h:46
const char * trueString
Definition menuitems.h:46
virtual void Set(void)
Definition menuitems.c:860
cString * channelID
Definition menuitems.h:171
cMenuEditChanItem(const char *Name, int *Value, const char *NoneString=NULL)
Definition menuitems.c:840
const char * noneString
Definition menuitems.h:169
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:878
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:361
const char * current
Definition menuitems.h:100
cMenuEditChrItem(const char *Name, char *Value, const char *Allowed)
Definition menuitems.c:337
virtual void Set(void)
Definition menuitems.c:353
int FindDayIndex(int WeekDays)
Definition menuitems.c:972
void ToggleRepeating(void)
Definition menuitems.c:999
static int days[]
Definition menuitems.h:948
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:1019
virtual void Set(void)
Definition menuitems.c:980
cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays=NULL)
Definition menuitems.c:961
cMenuEditIntItem(const char *Name, int *Value, int Min=0, int Max=INT_MAX, const char *MinString=NULL, const char *MaxString=NULL)
Definition menuitems.c:67
virtual void Set(void)
Definition menuitems.c:82
const char * maxString
Definition menuitems.h:37
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:95
const char * minString
Definition menuitems.h:37
virtual void Set(void)
Definition menuitems.c:243
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)
Definition menuitems.c:228
void SetHelpKeys(void)
Definition menuitems.c:237
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:253
const char * negString
Definition menuitems.h:76
const char * posString
Definition menuitems.h:76
const char * helpYellow
Definition menuitems.h:22
bool DisplayHelp(bool Current)
Definition menuitems.c:54
char * name
Definition menuitems.h:21
const char * helpRed
Definition menuitems.h:22
void SetHelp(const char *Red, const char *Green=NULL, const char *Yellow=NULL, const char *Blue=NULL)
Definition menuitems.c:44
const char * helpGreen
Definition menuitems.h:22
void SetValue(const char *Value)
Definition menuitems.c:37
bool helpDisplayed
Definition menuitems.h:23
cMenuEditItem(const char *Name)
Definition menuitems.c:26
const char * helpBlue
Definition menuitems.h:22
const tDvbParameterMap * map
Definition menuitems.h:219
virtual void Set(void)
Definition menuitems.c:1186
const char * zeroString
Definition menuitems.h:220
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:1205
cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString=NULL)
Definition menuitems.c:1177
virtual void Set(void)
Definition menuitems.c:183
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:197
cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind=false)
Definition menuitems.c:174
cMenuEditPrcItem(const char *Name, double *Value, double Min=0.0, double Max=1.0, int Decimals=0)
Definition menuitems.c:272
virtual void Set(void)
Definition menuitems.c:289
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:296
double * value
Definition menuitems.h:86
const char * allowed
Definition menuitems.h:112
uint Inc(uint c, bool Up)
Definition menuitems.c:552
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:621
void Insert(void)
Definition menuitems.c:583
void Delete(void)
Definition menuitems.c:590
void LeaveEditMode(bool SaveValue=false)
Definition menuitems.c:439
void SetKeepSpace(void)
Definition menuitems.h:141
void Type(uint c)
Definition menuitems.c:569
cTimeMs autoAdvanceTimeout
Definition menuitems.h:124
uint * currentCharUtf8
Definition menuitems.h:122
cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed=NULL)
Definition menuitems.c:385
void InsertMacro(void)
Definition menuitems.c:596
virtual void Set(void)
Definition menuitems.c:497
const char ** macros
Definition menuitems.h:115
bool InEditMode(void)
Definition menuitems.h:137
void AdvancePos(void)
Definition menuitems.c:479
void SetMacros(const char **Macros)
Definition menuitems.c:415
void SetHelpKeys(void)
Definition menuitems.c:460
void EnterEditMode(void)
Definition menuitems.c:422
uint * IsAllowed(uint c)
Definition menuitems.c:468
const char *const * strings
Definition menuitems.h:148
virtual void Set(void)
Definition menuitems.c:813
cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char *const *Strings)
Definition menuitems.c:806
const cStringList * strings
Definition menuitems.h:157
virtual void Set(void)
Definition menuitems.c:832
cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings)
Definition menuitems.c:820
cMenuEditTimeItem(const char *Name, int *Value)
Definition menuitems.c:1094
virtual void Set(void)
Definition menuitems.c:1104
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:1114
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:924
cMenuEditTranItem(const char *Name, int *Value, int *Source)
Definition menuitems.c:906
virtual eOSState ProcessKey(eKeys Key)
Definition menuitems.c:1245
virtual void Store(void)=0
cMenuSetupPage(void)
Definition menuitems.c:1233
void SetSection(const char *Section)
Definition menuitems.c:1240
void SetupStore(const char *Name, const char *Value=NULL)
Definition menuitems.c:1267
cPlugin * plugin
Definition menuitems.h:231
void SetPlugin(cPlugin *Plugin)
Definition menuitems.c:1260
eKeys
Definition keys.h:16
const char * FileNameChars
Definition menuitems.c:22
eOSState
Definition osdbase.h:18