vdr  2.4.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 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
cMenuEditChrItem::value
char * value
Definition: menuitems.h:98
cMenuEditDateItem::FindDayIndex
int FindDayIndex(int WeekDays)
Definition: menuitems.c:931
cMenuEditChanItem::channelID
cString * channelID
Definition: menuitems.h:165
cMenuEditChrItem
Definition: menuitems.h:96
cMenuEditStrItem::valueUtf8
uint * valueUtf8
Definition: menuitems.h:116
cMenuEditNumItem
Definition: menuitems.h:62
cMenuEditChrItem::cMenuEditChrItem
cMenuEditChrItem(const char *Name, char *Value, const char *Allowed)
Definition: menuitems.c:337
cMenuEditChrItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:361
cMenuEditTranItem::number
int number
Definition: menuitems.h:175
cMenuEditIntxItem::SetHelpKeys
void SetHelpKeys(void)
Definition: menuitems.c:237
cMenuEditStrItem::InEditMode
bool InEditMode(void)
Definition: menuitems.h:133
cMenuEditStrItem::insert
bool insert
Definition: menuitems.h:114
cMenuEditStrItem::Insert
void Insert(void)
Definition: menuitems.c:571
cMenuEditPrcItem::value
double * value
Definition: menuitems.h:86
cMenuEditStrlItem::cMenuEditStrlItem
cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings)
Definition: menuitems.c:779
cMenuEditBoolItem::cMenuEditBoolItem
cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString=NULL, const char *TrueString=NULL)
Definition: menuitems.c:140
cMenuEditStrItem::EnterEditMode
void EnterEditMode(void)
Definition: menuitems.c:411
cStringList
Definition: tools.h:801
cMenuEditStrlItem
Definition: menuitems.h:149
cMenuEditPrcItem::Set
virtual void Set(void)
Definition: menuitems.c:289
cMenuEditIntItem::minString
const char * minString
Definition: menuitems.h:37
cMenuEditDateItem::dayindex
int dayindex
Definition: menuitems.h:190
cMenuEditBoolItem::trueString
const char * trueString
Definition: menuitems.h:46
cMenuEditPrcItem::decimals
int decimals
Definition: menuitems.h:88
cMenuEditStrItem::currentCharUtf8
uint * currentCharUtf8
Definition: menuitems.h:119
cMenuEditStrItem::Type
void Type(uint c)
Definition: menuitems.c:557
cMenuEditStrItem::allowedUtf8
uint * allowedUtf8
Definition: menuitems.h:117
cPlugin
Definition: plugin.h:20
cMenuEditStrItem::lengthUtf8
int lengthUtf8
Definition: menuitems.h:115
cMenuEditNumItem::value
char * value
Definition: menuitems.h:64
cMenuEditBitItem::value
uint * value
Definition: menuitems.h:54
cMenuEditIntxItem::posString
const char * posString
Definition: menuitems.h:76
cMenuEditStrItem::~cMenuEditStrItem
~cMenuEditStrItem()
Definition: menuitems.c:404
cMenuEditItem::helpRed
const char * helpRed
Definition: menuitems.h:22
cMenuEditChanItem::dummyValue
int dummyValue
Definition: menuitems.h:164
cMenuEditBoolItem
Definition: menuitems.h:44
cMenuEditIntxItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:253
cMenuEditMapItem::Set
virtual void Set(void)
Definition: menuitems.c:1145
cMenuEditTranItem
Definition: menuitems.h:173
cMenuEditStrItem::value
char * value
Definition: menuitems.h:110
cMenuEditStrItem::IsAllowed
uint * IsAllowed(uint c)
Definition: menuitems.c:456
cMenuEditIntxItem
Definition: menuitems.h:73
cMenuEditPrcItem::factor
int factor
Definition: menuitems.h:89
cMenuEditDateItem::Set
virtual void Set(void)
Definition: menuitems.c:939
cOsdMenu
Definition: osdbase.h:85
cMenuEditChanItem
Definition: menuitems.h:161
cMenuEditItem::helpDisplayed
bool helpDisplayed
Definition: menuitems.h:23
cMenuEditItem::SetValue
void SetValue(const char *Value)
Definition: menuitems.c:37
eKeys
eKeys
Definition: keys.h:16
cMenuEditStraItem::cMenuEditStraItem
cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char *const *Strings)
Definition: menuitems.c:765
cMenuEditItem::SetHelp
void SetHelp(const char *Red, const char *Green=NULL, const char *Yellow=NULL, const char *Blue=NULL)
Definition: menuitems.c:44
cOsdItem
Definition: osdbase.h:48
cMenuEditMapItem::zeroString
const char * zeroString
Definition: menuitems.h:214
cMenuEditStrItem::offset
int offset
Definition: menuitems.h:113
cMenuEditStrItem::charMapUtf8
uint * charMapUtf8
Definition: menuitems.h:118
cMenuEditMapItem::value
int * value
Definition: menuitems.h:212
cMenuSetupPage::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1204
cMenuEditStrItem::AdvancePos
void AdvancePos(void)
Definition: menuitems.c:467
cMenuEditNumItem::Set
virtual void Set(void)
Definition: menuitems.c:183
cMenuEditStrlItem::strings
const cStringList * strings
Definition: menuitems.h:151
cMenuSetupPage::plugin
cPlugin * plugin
Definition: menuitems.h:225
cMenuEditDateItem::days
static int days[]
Definition: menuitems.h:185
cMenuEditIntxItem::Set
virtual void Set(void)
Definition: menuitems.c:243
cMenuEditTranItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:883
cMenuEditTimeItem::pos
int pos
Definition: menuitems.h:203
cMenuEditMapItem::cMenuEditMapItem
cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString=NULL)
Definition: menuitems.c:1136
cMenuEditChrItem::allowed
char * allowed
Definition: menuitems.h:99
cMenuEditDateItem::value
time_t * value
Definition: menuitems.h:186
cMenuEditPrcItem
Definition: menuitems.h:84
cMenuEditItem::cMenuEditItem
cMenuEditItem(const char *Name)
Definition: menuitems.c:26
cMenuEditChrItem::Set
virtual void Set(void)
Definition: menuitems.c:353
cMenuEditIntItem::min
int min
Definition: menuitems.h:36
cMenuEditNumItem::length
int length
Definition: menuitems.h:65
cMenuEditIntItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:95
cMenuEditTranItem::cMenuEditTranItem
cMenuEditTranItem(const char *Name, int *Value, int *Source)
Definition: menuitems.c:865
cMenuEditBoolItem::Set
virtual void Set(void)
Definition: menuitems.c:148
cMenuEditStrlItem::Set
virtual void Set(void)
Definition: menuitems.c:791
cMenuEditStraItem::strings
const char *const * strings
Definition: menuitems.h:142
cMenuEditTimeItem::Set
virtual void Set(void)
Definition: menuitems.c:1063
cMenuEditChrItem::current
const char * current
Definition: menuitems.h:100
cMenuEditPrcItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:296
cMenuEditTranItem::source
int * source
Definition: menuitems.h:176
cMenuEditStrItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:584
eOSState
eOSState
Definition: osdbase.h:18
cMenuEditTimeItem::value
int * value
Definition: menuitems.h:201
cMenuEditIntxItem::cMenuEditIntxItem
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
cMenuEditChanItem::noneString
const char * noneString
Definition: menuitems.h:163
cMenuEditItem
Definition: menuitems.h:19
cMenuEditStrItem::newchar
bool newchar
Definition: menuitems.h:114
cMenuEditIntItem::value
int * value
Definition: menuitems.h:35
cMenuEditIntItem::cMenuEditIntItem
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
cMenuEditStrItem::cMenuEditStrItem
cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed=NULL)
Definition: menuitems.c:385
cMenuEditStrItem::SetHelpKeys
void SetHelpKeys(void)
Definition: menuitems.c:448
cMenuSetupPage::SetupStore
void SetupStore(const char *Name, const char *Value=NULL)
Definition: menuitems.c:1226
cMenuEditBoolItem::falseString
const char * falseString
Definition: menuitems.h:46
cTimeMs
Definition: tools.h:369
cMenuEditDateItem::weekdays
int * weekdays
Definition: menuitems.h:187
cMenuEditTimeItem::hh
int hh
Definition: menuitems.h:202
cMenuEditIntxItem::factor
int factor
Definition: menuitems.h:75
cMenuEditBitItem::mask
uint mask
Definition: menuitems.h:55
cMenuEditStrItem::uppercase
bool uppercase
Definition: menuitems.h:114
cMenuEditItem::helpBlue
const char * helpBlue
Definition: menuitems.h:22
cMenuEditTimeItem
Definition: menuitems.h:199
cMenuEditIntItem::max
int max
Definition: menuitems.h:36
cMenuEditStrlItem::length
int length
Definition: menuitems.h:154
cMenuEditItem::helpGreen
const char * helpGreen
Definition: menuitems.h:22
cMenuEditStrItem::autoAdvanceTimeout
cTimeMs autoAdvanceTimeout
Definition: menuitems.h:121
dvbdevice.h
cMenuEditStrItem::Delete
void Delete(void)
Definition: menuitems.c:578
cMenuEditItem::helpYellow
const char * helpYellow
Definition: menuitems.h:22
tDvbParameterMap
Definition: dvbdevice.h:81
cMenuSetupPage::SetSection
void SetSection(const char *Section)
Definition: menuitems.c:1199
cMenuSetupPage::Store
virtual void Store(void)=0
cMenuEditChanItem::Set
virtual void Set(void)
Definition: menuitems.c:819
cMenuEditBitItem::bit
int bit
Definition: menuitems.h:56
cMenuEditStrItem::LeaveEditMode
void LeaveEditMode(bool SaveValue=false)
Definition: menuitems.c:428
cString
Definition: tools.h:176
cMenuEditStraItem::Set
virtual void Set(void)
Definition: menuitems.c:772
cMenuEditTimeItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1073
cMenuEditStrlItem::value
char * value
Definition: menuitems.h:153
cMenuEditStrItem::lastKey
eKeys lastKey
Definition: menuitems.h:120
cMenuEditDateItem::ToggleRepeating
void ToggleRepeating(void)
Definition: menuitems.c:958
cMenuSetupPage::SetPlugin
void SetPlugin(cPlugin *Plugin)
Definition: menuitems.c:1219
cMenuEditBitItem
Definition: menuitems.h:52
cMenuEditIntItem
Definition: menuitems.h:33
cMenuEditIntItem::Set
virtual void Set(void)
Definition: menuitems.c:82
cMenuEditStrItem::Set
virtual void Set(void)
Definition: menuitems.c:485
cMenuEditTimeItem::mm
int mm
Definition: menuitems.h:202
cMenuEditMapItem
Definition: menuitems.h:210
cMenuEditNumItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:197
cMenuEditDateItem::oldvalue
time_t oldvalue
Definition: menuitems.h:188
cMenuEditMapItem::map
const tDvbParameterMap * map
Definition: menuitems.h:213
cMenuSetupPage::cMenuSetupPage
cMenuSetupPage(void)
Definition: menuitems.c:1192
cMenuEditStrlItem::index
int index
Definition: menuitems.h:152
cMenuEditBitItem::Set
virtual void Set(void)
Definition: menuitems.c:166
cMenuEditMapItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:1164
cMenuEditDateItem
Definition: menuitems.h:183
FileNameChars
const char * FileNameChars
Definition: menuitems.c:22
cMenuEditDateItem::cMenuEditDateItem
cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays=NULL)
Definition: menuitems.c:920
cMenuEditStrItem::pos
int pos
Definition: menuitems.h:113
cMenuEditStrItem::length
int length
Definition: menuitems.h:111
cMenuEditStraItem
Definition: menuitems.h:140
cMenuEditTranItem::transponder
int * transponder
Definition: menuitems.h:177
cMenuEditStrItem
Definition: menuitems.h:108
cMenuEditBitItem::cMenuEditBitItem
cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString=NULL, const char *TrueString=NULL)
Definition: menuitems.c:157
cMenuEditStrItem::Inc
uint Inc(uint c, bool Up)
Definition: menuitems.c:540
osdbase.h
cMenuEditChrItem::~cMenuEditChrItem
~cMenuEditChrItem()
Definition: menuitems.c:348
cMenuEditTimeItem::cMenuEditTimeItem
cMenuEditTimeItem(const char *Name, int *Value)
Definition: menuitems.c:1053
cMenuEditPrcItem::cMenuEditPrcItem
cMenuEditPrcItem(const char *Name, double *Value, double Min=0.0, double Max=1.0, int Decimals=0)
Definition: menuitems.c:272
cMenuEditItem::DisplayHelp
bool DisplayHelp(bool Current)
Definition: menuitems.c:54
cMenuEditPrcItem::max
double max
Definition: menuitems.h:87
cMenuEditIntxItem::negString
const char * negString
Definition: menuitems.h:76
cMenuEditPrcItem::min
double min
Definition: menuitems.h:87
cMenuSetupPage
Definition: menuitems.h:223
cMenuEditStrItem::allowed
const char * allowed
Definition: menuitems.h:112
cMenuEditDateItem::oldweekdays
int oldweekdays
Definition: menuitems.h:189
cMenuEditChanItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:837
cMenuEditNumItem::blind
bool blind
Definition: menuitems.h:66
cMenuEditItem::~cMenuEditItem
~cMenuEditItem()
Definition: menuitems.c:32
cMenuEditDateItem::ProcessKey
virtual eOSState ProcessKey(eKeys Key)
Definition: menuitems.c:978
cMenuEditNumItem::cMenuEditNumItem
cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind=false)
Definition: menuitems.c:174
cMenuEditChanItem::cMenuEditChanItem
cMenuEditChanItem(const char *Name, int *Value, const char *NoneString=NULL)
Definition: menuitems.c:799
cMenuEditItem::name
char * name
Definition: menuitems.h:21
cMenuEditIntItem::maxString
const char * maxString
Definition: menuitems.h:37