vdr  2.4.7
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 4.1 2015/09/06 10:38:37 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 
17 extern const char *FileNameChars;
18 
19 class cMenuEditItem : public cOsdItem {
20 private:
21  char *name;
22  const char *helpRed, *helpGreen, *helpYellow, *helpBlue;
24 protected:
25  void SetHelp(const char *Red, const char *Green = NULL, const char *Yellow = NULL, const char *Blue = NULL);
26 public:
27  cMenuEditItem(const char *Name);
29  void SetValue(const char *Value);
30  bool DisplayHelp(bool Current);
31  };
32 
34 protected:
35  int *value;
36  int min, max;
37  const char *minString, *maxString;
38  virtual void Set(void);
39 public:
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 
45 protected:
46  const char *falseString, *trueString;
47  virtual void Set(void);
48 public:
49  cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString = NULL, const char *TrueString = NULL);
50  };
51 
53 protected:
54  uint *value;
55  uint mask;
56  int bit;
57  virtual void Set(void);
58 public:
59  cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString = NULL, const char *TrueString = NULL);
60  };
61 
63 protected:
64  char *value;
65  int length;
66  bool blind;
67  virtual void Set(void);
68 public:
69  cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind = false);
70  virtual eOSState ProcessKey(eKeys Key);
71  };
72 
74 private:
75  int factor;
76  const char *negString, *posString;
77  void SetHelpKeys(void);
78  virtual void Set(void);
79 public:
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 
85 protected:
86  double *value;
87  double min, max;
88  int decimals;
89  int factor;
90  virtual void Set(void);
91 public:
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 
97 private:
98  char *value;
99  char *allowed;
100  const char *current;
101  virtual void Set(void);
102 public:
103  cMenuEditChrItem(const char *Name, char *Value, const char *Allowed);
105  virtual eOSState ProcessKey(eKeys Key);
106  };
107 
109 private:
110  char *value;
111  int length;
112  const char *allowed;
113  int pos, offset;
116  uint *valueUtf8;
117  uint *allowedUtf8;
118  uint *charMapUtf8;
122  void SetHelpKeys(void);
123  uint *IsAllowed(uint c);
124  void AdvancePos(void);
125  virtual void Set(void);
126  uint Inc(uint c, bool Up);
127  void Type(uint c);
128  void Insert(void);
129  void Delete(void);
130 protected:
131  void EnterEditMode(void);
132  void LeaveEditMode(bool SaveValue = false);
133  bool InEditMode(void) { return valueUtf8 != NULL; }
134 public:
135  cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed = NULL);
137  virtual eOSState ProcessKey(eKeys Key);
138  };
139 
141 private:
142  const char * const *strings;
143 protected:
144  virtual void Set(void);
145 public:
146  cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char * const *Strings);
147  };
148 
150 private:
152  int index;
153  char *value;
154  int length;
155 protected:
156  virtual void Set(void);
157 public:
158  cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings);
159  };
160 
162 protected:
163  const char *noneString;
166  virtual void Set(void);
167 public:
168  cMenuEditChanItem(const char *Name, int *Value, const char *NoneString = NULL);
169  cMenuEditChanItem(const char *Name, cString *ChannelID, const char *NoneString = NULL);
170  virtual eOSState ProcessKey(eKeys Key);
171  };
172 
174 private:
175  int number;
176  int *source;
178 public:
179  cMenuEditTranItem(const char *Name, int *Value, int *Source);
180  virtual eOSState ProcessKey(eKeys Key);
181  };
182 
184 private:
185  static int days[];
186  time_t *value;
187  int *weekdays;
188  time_t oldvalue;
190  int dayindex;
191  int FindDayIndex(int WeekDays);
192  virtual void Set(void);
193 public:
194  cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays = NULL);
195  void ToggleRepeating(void);
196  virtual eOSState ProcessKey(eKeys Key);
197  };
198 
200 protected:
201  int *value;
202  int hh, mm;
203  int pos;
204  virtual void Set(void);
205 public:
206  cMenuEditTimeItem(const char *Name, int *Value);
207  virtual eOSState ProcessKey(eKeys Key);
208  };
209 
211 protected:
212  int *value;
214  const char *zeroString;
215  virtual void Set(void);
216 public:
217  cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL);
218  virtual eOSState ProcessKey(eKeys Key);
219  };
220 
221 class cPlugin;
222 
223 class cMenuSetupPage : public cOsdMenu {
224 private:
226 protected:
227  void SetSection(const char *Section);
228  virtual void Store(void) = 0;
229  void SetupStore(const char *Name, const char *Value = NULL);
230  void SetupStore(const char *Name, int Value);
231 public:
232  cMenuSetupPage(void);
233  virtual eOSState ProcessKey(eKeys Key);
234  void SetPlugin(cPlugin *Plugin);
235  };
236 
237 #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:819
cString * channelID
Definition: menuitems.h:165
cMenuEditChanItem(const char *Name, int *Value, const char *NoneString=NULL)
Definition: menuitems.c:799
const char * noneString
Definition: menuitems.h:163
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:837
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
char * allowed
Definition: menuitems.h:99
int FindDayIndex(int WeekDays)
Definition: menuitems.c:931
void ToggleRepeating(void)
Definition: menuitems.c:958
static int days[]
Definition: menuitems.h:185
time_t * value
Definition: menuitems.h:186
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:978
virtual void Set(void)
Definition: menuitems.c:939
cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays=NULL)
Definition: menuitems.c:920
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:213
virtual void Set(void)
Definition: menuitems.c:1145
const char * zeroString
Definition: menuitems.h:214
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1164
cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString=NULL)
Definition: menuitems.c:1136
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:540
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:584
uint * valueUtf8
Definition: menuitems.h:116
void Insert(void)
Definition: menuitems.c:571
void Delete(void)
Definition: menuitems.c:578
void LeaveEditMode(bool SaveValue=false)
Definition: menuitems.c:428
uint * allowedUtf8
Definition: menuitems.h:117
void Type(uint c)
Definition: menuitems.c:557
cTimeMs autoAdvanceTimeout
Definition: menuitems.h:121
uint * currentCharUtf8
Definition: menuitems.h:119
cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed=NULL)
Definition: menuitems.c:385
virtual void Set(void)
Definition: menuitems.c:485
bool InEditMode(void)
Definition: menuitems.h:133
void AdvancePos(void)
Definition: menuitems.c:467
void SetHelpKeys(void)
Definition: menuitems.c:448
void EnterEditMode(void)
Definition: menuitems.c:411
uint * charMapUtf8
Definition: menuitems.h:118
uint * IsAllowed(uint c)
Definition: menuitems.c:456
const char *const * strings
Definition: menuitems.h:142
virtual void Set(void)
Definition: menuitems.c:772
cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char *const *Strings)
Definition: menuitems.c:765
const cStringList * strings
Definition: menuitems.h:151
virtual void Set(void)
Definition: menuitems.c:791
cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings)
Definition: menuitems.c:779
cMenuEditTimeItem(const char *Name, int *Value)
Definition: menuitems.c:1053
virtual void Set(void)
Definition: menuitems.c:1063
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1073
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:883
cMenuEditTranItem(const char *Name, int *Value, int *Source)
Definition: menuitems.c:865
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1204
virtual void Store(void)=0
cMenuSetupPage(void)
Definition: menuitems.c:1192
void SetSection(const char *Section)
Definition: menuitems.c:1199
void SetupStore(const char *Name, const char *Value=NULL)
Definition: menuitems.c:1226
cPlugin * plugin
Definition: menuitems.h:225
void SetPlugin(cPlugin *Plugin)
Definition: menuitems.c:1219
Definition: plugin.h:22
Definition: tools.h:174
Definition: tools.h:367
eKeys
Definition: keys.h:16
const char * FileNameChars
Definition: menuitems.c:22
eOSState
Definition: osdbase.h:18