vdr  2.2.0
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 3.1 2013/05/24 10:19:55 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);
104  ~cMenuEditChrItem();
105  virtual eOSState ProcessKey(eKeys Key);
106  };
107 
109 private:
110  char *value;
111  int length;
112  const char *allowed;
113  int pos, offset;
114  bool insert, newchar, uppercase;
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);
136  ~cMenuEditStrItem();
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 protected:
151  const char *noneString;
154  virtual void Set(void);
155 public:
156  cMenuEditChanItem(const char *Name, int *Value, const char *NoneString = NULL);
157  cMenuEditChanItem(const char *Name, cString *ChannelID, const char *NoneString = NULL);
158  virtual eOSState ProcessKey(eKeys Key);
159  };
160 
162 private:
163  int number;
164  int *source;
166 public:
167  cMenuEditTranItem(const char *Name, int *Value, int *Source);
168  virtual eOSState ProcessKey(eKeys Key);
169  };
170 
172 private:
173  static int days[];
174  time_t *value;
175  int *weekdays;
176  time_t oldvalue;
178  int dayindex;
179  int FindDayIndex(int WeekDays);
180  virtual void Set(void);
181 public:
182  cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays = NULL);
183  void ToggleRepeating(void);
184  virtual eOSState ProcessKey(eKeys Key);
185  };
186 
188 protected:
189  int *value;
190  int hh, mm;
191  int pos;
192  virtual void Set(void);
193 public:
194  cMenuEditTimeItem(const char *Name, int *Value);
195  virtual eOSState ProcessKey(eKeys Key);
196  };
197 
199 protected:
200  int *value;
202  const char *zeroString;
203  virtual void Set(void);
204 public:
205  cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL);
206  virtual eOSState ProcessKey(eKeys Key);
207  };
208 
209 class cPlugin;
210 
211 class cMenuSetupPage : public cOsdMenu {
212 private:
214 protected:
215  void SetSection(const char *Section);
216  virtual void Store(void) = 0;
217  void SetupStore(const char *Name, const char *Value = NULL);
218  void SetupStore(const char *Name, int Value);
219 public:
220  cMenuSetupPage(void);
221  virtual eOSState ProcessKey(eKeys Key);
222  void SetPlugin(cPlugin *Plugin);
223  };
224 
225 #endif //__MENUITEMS_H
bool DisplayHelp(bool Current)
Definition: menuitems.c:54
cTimeMs autoAdvanceTimeout
Definition: menuitems.h:121
cPlugin * plugin
Definition: menuitems.h:213
cString * channelID
Definition: menuitems.h:153
const char * helpRed
Definition: menuitems.h:22
const char * posString
Definition: menuitems.h:76
Definition: plugin.h:20
time_t * value
Definition: menuitems.h:174
T max(T a, T b)
Definition: tools.h:55
const char * helpGreen
Definition: menuitems.h:22
const char * helpBlue
Definition: menuitems.h:22
char * name
Definition: menuitems.h:21
const tDvbParameterMap * map
Definition: menuitems.h:201
const char *const * strings
Definition: menuitems.h:142
eOSState
Definition: osdbase.h:18
double * value
Definition: menuitems.h:86
const char * noneString
Definition: menuitems.h:151
uint * allowedUtf8
Definition: menuitems.h:117
void SetValue(const char *Value)
Definition: menuitems.c:37
const char * minString
Definition: menuitems.h:37
const char * allowed
Definition: menuitems.h:112
virtual eOSState ProcessKey(eKeys Key)
Definition: osdbase.c:63
uint * currentCharUtf8
Definition: menuitems.h:119
uint * valueUtf8
Definition: menuitems.h:116
bool InEditMode(void)
Definition: menuitems.h:133
bool helpDisplayed
Definition: menuitems.h:23
const char * zeroString
Definition: menuitems.h:202
const char * current
Definition: menuitems.h:100
Definition: tools.h:333
const char * trueString
Definition: menuitems.h:46
uint * charMapUtf8
Definition: menuitems.h:118
virtual void Set(void)
Definition: osdbase.h:65
cMenuEditItem(const char *Name)
Definition: menuitems.c:26
char * allowed
Definition: menuitems.h:99
const char * helpYellow
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
eKeys
Definition: keys.h:16
void Insert(cListObject *Object)
Definition: tools.c:1974
Definition: tools.h:168