diff options
Diffstat (limited to 'muggle-plugin/sh_console_osd_menuitems.h')
-rw-r--r-- | muggle-plugin/sh_console_osd_menuitems.h | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/muggle-plugin/sh_console_osd_menuitems.h b/muggle-plugin/sh_console_osd_menuitems.h new file mode 100644 index 0000000..8812862 --- /dev/null +++ b/muggle-plugin/sh_console_osd_menuitems.h @@ -0,0 +1,130 @@ +/* + * menuitems.h: General purpose menu items + * + * See the main source file 'vdr.c' for copyright information and + * how to reach the author. + * + * $Id: sh_console_osd_menuitems.h,v 1.1 2004/02/01 18:22:53 LarsAC Exp $ + */ + +#ifndef __MENUITEMS_H +#define __MENUITEMS_H + +#include "myosd.h" + +extern const char *FileNameChars; + +class cMenuEditItem : public cOsdItem { +private: + char *name; + char *value; +public: + cMenuEditItem(const char *Name); + ~cMenuEditItem(); + void SetValue(const char *Value); + }; + +class cMenuEditIntItem : public cMenuEditItem { +protected: + int *value; + int min, max; + virtual void Set(void); +public: + cMenuEditIntItem(const char *Name, int *Value, int Min = 0, int Max = INT_MAX); + virtual eOSState ProcessKey(eKeys Key); + }; + +class cMenuEditBoolItem : public cMenuEditIntItem { +protected: + const char *falseString, *trueString; + virtual void Set(void); +public: + cMenuEditBoolItem(const char *Name, int *Value, const char *FalseString = NULL, const char *TrueString = NULL); + }; + +class cMenuEditNumItem : public cMenuEditItem { +protected: + char *value; + int length; + bool blind; + virtual void Set(void); +public: + cMenuEditNumItem(const char *Name, char *Value, int Length, bool Blind = false); + virtual eOSState ProcessKey(eKeys Key); + }; + +class cMenuEditChrItem : public cMenuEditItem { +private: + char *value; + char *allowed; + const char *current; + virtual void Set(void); +public: + cMenuEditChrItem(const char *Name, char *Value, const char *Allowed); + ~cMenuEditChrItem(); + virtual eOSState ProcessKey(eKeys Key); + }; + +class cMenuEditStrItem : public cMenuEditItem { +private: + char *value; + int length; + char *allowed; + int pos; + bool insert, newchar, uppercase; + void SetHelpKeys(void); + virtual void Set(void); + char Inc(char c, bool Up); + int ieCurChr; + eKeys lastKey; +public: + cMenuEditStrItem(const char *Name, char *Value, int Length, const char *Allowed); + ~cMenuEditStrItem(); + virtual eOSState ProcessKey(eKeys Key); + }; + +class cMenuEditStraItem : public cMenuEditIntItem { +private: + const char * const *strings; +protected: + virtual void Set(void); +public: + cMenuEditStraItem(const char *Name, int *Value, int NumStrings, const char * const *Strings); + }; + +class cMenuTextItem : public cOsdItem { +private: + char *text; + int x, y, w, h, lines, offset; + eDvbColor fgColor, bgColor; + eDvbFont font; +public: + cMenuTextItem(const char *Text, int X, int Y, int W, int H = -1, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBackground, eDvbFont Font = fontOsd); + ~cMenuTextItem(); + int Height(void) { return h; } + void Clear(void); + virtual void Display(int Offset = -1, eDvbColor FgColor = clrWhite, eDvbColor BgColor = clrBackground); + bool CanScrollUp(void) { return offset > 0; } + bool CanScrollDown(void) { return h + offset < lines; } + void ScrollUp(bool Page); + void ScrollDown(bool Page); + virtual eOSState ProcessKey(eKeys Key); + }; + +class cPlugin; + +class cMenuSetupPage : public cOsdMenu { +private: + cPlugin *plugin; +protected: + void SetSection(const char *Section); + virtual void Store(void) = 0; + void SetupStore(const char *Name, const char *Value = NULL); + void SetupStore(const char *Name, int Value); +public: + cMenuSetupPage(void); + virtual eOSState ProcessKey(eKeys Key); + void SetPlugin(cPlugin *Plugin); + }; + +#endif //__MENUITEMS_H |