vdr 2.7.5
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.2 2025/03/02 11:03:35 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) override;
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) override;
42 };
43
45protected:
46 const char *falseString, *trueString;
47 virtual void Set(void) override;
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) override;
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) override;
68public:
69 cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind = false);
70 virtual eOSState ProcessKey(eKeys Key) override;
71 };
72
74private:
75 int factor;
76 const char *negString, *posString;
77 void SetHelpKeys(void);
78 virtual void Set(void) override;
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) override;
82 };
83
85protected:
86 double *value;
87 double min, max;
89 int factor;
90 virtual void Set(void) override;
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) override;
94 };
95
97private:
98 char *value;
99 char *allowed;
100 const char *current;
101 virtual void Set(void) override;
102public:
103 cMenuEditChrItem(const char *Name, char *Value, const char *Allowed);
105 virtual eOSState ProcessKey(eKeys Key) override;
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) override;
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) override;
144 };
145
147private:
148 const char * const *strings;
149protected:
150 virtual void Set(void) override;
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) override;
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) override;
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) override;
177 };
178
180private:
182 int *source;
184public:
185 cMenuEditTranItem(const char *Name, int *Value, int *Source);
186 virtual eOSState ProcessKey(eKeys Key) override;
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) override;
199public:
200 cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays = NULL);
201 void ToggleRepeating(void);
202 virtual eOSState ProcessKey(eKeys Key) override;
203 };
204
206protected:
207 int *value;
208 int hh, mm;
209 int pos;
210 virtual void Set(void) override;
211public:
212 cMenuEditTimeItem(const char *Name, int *Value);
213 virtual eOSState ProcessKey(eKeys Key) override;
214 };
215
217protected:
218 int *value;
220 const char *zeroString;
221 virtual void Set(void) override;
222public:
223 cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString = NULL);
224 virtual eOSState ProcessKey(eKeys Key) override;
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) override;
240 void SetPlugin(cPlugin *Plugin);
241 };
242
243#endif //__MENUITEMS_H
virtual void Set(void) override
Definition menuitems.c:165
cMenuEditBitItem(const char *Name, uint *Value, uint Mask, const char *FalseString=NULL, const char *TrueString=NULL)
Definition menuitems.c:156
virtual void Set(void) override
Definition menuitems.c:147
cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString=NULL, const char *TrueString=NULL)
Definition menuitems.c:139
const char * falseString
Definition menuitems.h:46
const char * trueString
Definition menuitems.h:46
cString * channelID
Definition menuitems.h:171
cMenuEditChanItem(const char *Name, int *Value, const char *NoneString=NULL)
Definition menuitems.c:836
const char * noneString
Definition menuitems.h:169
virtual void Set(void) override
Definition menuitems.c:856
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:874
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:360
const char * current
Definition menuitems.h:100
cMenuEditChrItem(const char *Name, char *Value, const char *Allowed)
Definition menuitems.c:336
virtual void Set(void) override
Definition menuitems.c:352
int FindDayIndex(int WeekDays)
Definition menuitems.c:968
void ToggleRepeating(void)
Definition menuitems.c:995
static int days[]
Definition menuitems.h:944
virtual void Set(void) override
Definition menuitems.c:976
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:1015
cMenuEditDateItem(const char *Name, time_t *Value, int *WeekDays=NULL)
Definition menuitems.c:957
cMenuEditIntItem(const char *Name, int *Value, int Min=0, int Max=INT_MAX, const char *MinString=NULL, const char *MaxString=NULL)
Definition menuitems.c:66
const char * maxString
Definition menuitems.h:37
virtual void Set(void) override
Definition menuitems.c:81
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:94
const char * minString
Definition menuitems.h:37
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:227
void SetHelpKeys(void)
Definition menuitems.c:236
const char * negString
Definition menuitems.h:76
const char * posString
Definition menuitems.h:76
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:252
virtual void Set(void) override
Definition menuitems.c:242
const char * helpYellow
Definition menuitems.h:22
bool DisplayHelp(bool Current)
Definition menuitems.c:53
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:43
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 eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:1201
virtual void Set(void) override
Definition menuitems.c:1182
const char * zeroString
Definition menuitems.h:220
cMenuEditMapItem(const char *Name, int *Value, const tDvbParameterMap *Map, const char *ZeroString=NULL)
Definition menuitems.c:1173
virtual void Set(void) override
Definition menuitems.c:182
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:196
cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind=false)
Definition menuitems.c:173
virtual void Set(void) override
Definition menuitems.c:288
cMenuEditPrcItem(const char *Name, double *Value, double Min=0.0, double Max=1.0, int Decimals=0)
Definition menuitems.c:271
double * value
Definition menuitems.h:86
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:295
const char * allowed
Definition menuitems.h:112
uint Inc(uint c, bool Up)
Definition menuitems.c:548
void Insert(void)
Definition menuitems.c:579
void Delete(void)
Definition menuitems.c:586
void LeaveEditMode(bool SaveValue=false)
Definition menuitems.c:438
void SetKeepSpace(void)
Definition menuitems.h:141
void Type(uint c)
Definition menuitems.c:565
cTimeMs autoAdvanceTimeout
Definition menuitems.h:124
uint * currentCharUtf8
Definition menuitems.h:122
virtual void Set(void) override
Definition menuitems.c:496
cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed=NULL)
Definition menuitems.c:384
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:617
void InsertMacro(void)
Definition menuitems.c:592
const char ** macros
Definition menuitems.h:115
bool InEditMode(void)
Definition menuitems.h:137
void AdvancePos(void)
Definition menuitems.c:478
void SetMacros(const char **Macros)
Definition menuitems.c:414
void SetHelpKeys(void)
Definition menuitems.c:459
void EnterEditMode(void)
Definition menuitems.c:421
uint * IsAllowed(uint c)
Definition menuitems.c:467
virtual void Set(void) override
Definition menuitems.c:809
const char *const * strings
Definition menuitems.h:148
cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char *const *Strings)
Definition menuitems.c:802
const cStringList * strings
Definition menuitems.h:157
virtual void Set(void) override
Definition menuitems.c:828
cMenuEditStrlItem(const char *Name, char *Value, int Length, const cStringList *Strings)
Definition menuitems.c:816
cMenuEditTimeItem(const char *Name, int *Value)
Definition menuitems.c:1090
virtual void Set(void) override
Definition menuitems.c:1100
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:1110
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:920
cMenuEditTranItem(const char *Name, int *Value, int *Source)
Definition menuitems.c:902
virtual eOSState ProcessKey(eKeys Key) override
Definition menuitems.c:1241
virtual void Store(void)=0
cMenuSetupPage(void)
Definition menuitems.c:1229
void SetSection(const char *Section)
Definition menuitems.c:1236
void SetupStore(const char *Name, const char *Value=NULL)
Definition menuitems.c:1263
cPlugin * plugin
Definition menuitems.h:231
void SetPlugin(cPlugin *Plugin)
Definition menuitems.c:1256
cOsdItem(eOSState State=osUnknown)
Definition osdbase.c:20
cOsdMenu(const char *Title, int c0=0, int c1=0, int c2=0, int c3=0, int c4=0)
Definition osdbase.c:83
eKeys
Definition keys.h:16
const char * FileNameChars
Definition menuitems.c:22
eOSState
Definition osdbase.h:18