summaryrefslogtreecommitdiff
path: root/recmenuitem.h
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2013-07-09 00:17:42 +0200
committerlouis <louis.braun@gmx.de>2013-07-09 00:17:42 +0200
commit2a7a011055a44516ec981e525776394a8c04dcfe (patch)
tree55c9828c7b619622ec36da3f4b41318ed6c85ae0 /recmenuitem.h
parent6da4b610d98cafe7c20555c926359d7f89347c76 (diff)
downloadvdr-plugin-tvguide-2a7a011055a44516ec981e525776394a8c04dcfe.tar.gz
vdr-plugin-tvguide-2a7a011055a44516ec981e525776394a8c04dcfe.tar.bz2
Version 0.0.6
Diffstat (limited to 'recmenuitem.h')
-rw-r--r--recmenuitem.h465
1 files changed, 465 insertions, 0 deletions
diff --git a/recmenuitem.h b/recmenuitem.h
new file mode 100644
index 0000000..780eac9
--- /dev/null
+++ b/recmenuitem.h
@@ -0,0 +1,465 @@
+#ifndef __TVGUIDE_RECMENUITEM_H
+#define __TVGUIDE_RECMENUITEM_H
+
+#define AUTO_ADVANCE_TIMEOUT 1500
+
+enum eRecMenuState {
+ rmsConsumed,
+ rmsNotConsumed,
+ rmsRefresh,
+ rmsContinue,
+ rmsClose,
+ rmsInstantRecord,
+ rmsIgnoreTimerConflict,
+ rmsDeleteTimerConflictMenu,
+ rmsEditTimerConflictMenu,
+ rmsSaveTimerConflictMenu,
+ rmsTimerConflictShowInfo,
+ rmsDeleteTimer,
+ rmsDeleteTimerConfirmation,
+ rmsEditTimer,
+ rmsSaveTimer,
+ rmsSearch,
+ rmsSearchWithOptions,
+ rmsSearchPerform,
+ rmsSearchShowInfo,
+ rmsSearchRecord,
+ rmsSearchRecordConfirm,
+ rmsSearchNothingFoundConfirm,
+ rmsSeriesTimer,
+ rmsSeriesTimerCreate,
+ rmsSearchTimer,
+ rmsSearchTimerOptions,
+ rmsSearchTimerOptionsReload,
+ rmsSearchTimerUseTemplate,
+ rmsSearchTimerOptionsManually,
+ rmsSearchTimerTestManually,
+ rmsSearchTimerTestTemplate,
+ rmsSearchTimerNothingFoundConfirm,
+ rmsSearchTimerCreateManually,
+ rmsSearchTimerCreateTemplate,
+ rmsSwitchTimer,
+ rmsSwitchTimerCreate,
+ rmsSwitchTimerDelete,
+ rmsRecordingSearch,
+ rmsRecordingSearchResult,
+ rmsTimerConflict,
+ rmsTimerConflicts,
+ rmsDisabled,
+};
+
+enum eDependend {
+ eGreater,
+ eLower,
+};
+// --- cRecMenuItem -------------------------------------------------------------
+class cRecMenuItem : public cListObject, public cStyledPixmap {
+protected:
+ int x, y;
+ int width, height;
+ bool selectable;
+ bool active;
+ bool drawn;
+ eRecMenuState action;
+ tColor colorText;
+ tColor colorTextBack;
+ const cFont *font;
+ const cFont *fontSmall;
+public:
+ cRecMenuItem(void);
+ virtual ~cRecMenuItem(void);
+ void SetGeometry(int x, int y, int width);
+ virtual void SetPixmaps(void);
+ virtual int GetHeight(void) { return height; };
+ virtual int GetWidth(void) { return 0; };
+ virtual void CalculateHeight(int textWidth) {};
+ void setActive(void) { this->active = true; }
+ void setInactive(void) { this->active = false; }
+ bool isSelectable(void) { return selectable; }
+ bool isActive(void) { return active; }
+ virtual void setBackground(void);
+ virtual void Draw(void) {};
+ virtual void Hide(void) { pixmap->SetLayer(-1);};
+ virtual void Show(void) { pixmap->SetLayer(4);};
+ virtual int GetIntValue(void) { return -1; };
+ virtual time_t GetTimeValue(void) { return 0; };
+ virtual bool GetBoolValue(void) { return false; };
+ virtual cString GetStringValue(void) { return cString(""); };
+ virtual const cEvent *GetEventValue(void) { return NULL; };
+ virtual eRecMenuState ProcessKey(eKeys Key) { return rmsNotConsumed; };
+
+};
+
+// --- cRecMenuItemButton -------------------------------------------------------
+class cRecMenuItemButton : public cRecMenuItem {
+private:
+ cString text;
+ bool halfWidth;
+public:
+ cRecMenuItemButton(const char *text, eRecMenuState action, bool active, bool halfWidth = false);
+ virtual ~cRecMenuItemButton(void);
+ int GetWidth(void);
+ void SetPixmaps(void);
+ void Draw(void);
+ eRecMenuState ProcessKey(eKeys Key);
+};
+
+// --- cRecMenuItemButtonYesNo -------------------------------------------------------
+class cRecMenuItemButtonYesNo : public cRecMenuItem {
+private:
+ cString textYes;
+ cString textNo;
+ eRecMenuState actionNo;
+ bool yesActive;
+ cStyledPixmap *pixmapNo;
+ tColor colorTextNo;
+public:
+ cRecMenuItemButtonYesNo(cString textYes,
+ cString textNo,
+ eRecMenuState actionYes,
+ eRecMenuState actionNo,
+ bool active);
+ virtual ~cRecMenuItemButtonYesNo(void);
+ void SetPixmaps(void);
+ void setBackground(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+};
+
+// --- cRecMenuItemInfo -------------------------------------------------------
+class cRecMenuItemInfo : public cRecMenuItem {
+private:
+ cString text;
+ cTextWrapper wrapper;
+ int border;
+public:
+ cRecMenuItemInfo(const char *text);
+ virtual ~cRecMenuItemInfo(void);
+ void setBackground(void);
+ void CalculateHeight(int textWidth);
+ void Draw(void);
+};
+
+// --- cRecMenuItemInt -------------------------------------------------------
+class cRecMenuItemInt : public cRecMenuItem {
+private:
+ cString text;
+ int currentVal;
+ int minVal;
+ int maxVal;
+ cPixmap *pixmapVal;
+ bool fresh;
+ void DrawValue(void);
+public:
+ cRecMenuItemInt(cString text,
+ int initialVal,
+ int minVal,
+ int maxVal,
+ bool active);
+ virtual ~cRecMenuItemInt(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ void setBackground(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ int GetIntValue(void) { return currentVal; };
+};
+
+// --- cRecMenuItemBool -------------------------------------------------------
+class cRecMenuItemBool : public cRecMenuItem {
+private:
+ cString text;
+ bool yes;
+ cPixmap *pixmapVal;
+ bool refresh;
+ void DrawValue(void);
+public:
+ cRecMenuItemBool(cString text,
+ bool initialVal,
+ bool refresh,
+ bool active);
+ virtual ~cRecMenuItemBool(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ bool GetBoolValue(void) { return yes; };
+};
+
+// --- cRecMenuItemSelect -------------------------------------------------------
+class cRecMenuItemSelect : public cRecMenuItem {
+private:
+ cString text;
+ int currentVal;
+ const char * const *strings;
+ int numValues;
+ cPixmap *pixmapVal;
+ void DrawValue(void);
+public:
+ cRecMenuItemSelect(cString text,
+ const char * const *Strings,
+ int initialVal,
+ int numValues,
+ bool active);
+ virtual ~cRecMenuItemSelect(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ int GetIntValue(void) { return currentVal; };
+ cString GetStringValue(void) { return strings[currentVal]; };
+};
+
+// --- cRecMenuItemText -------------------------------------------------------
+class cRecMenuItemText : public cRecMenuItem {
+private:
+ cString title;
+ char *value;
+ int length;
+ const char *allowed;
+ int pos, offset;
+ bool insert, newchar, uppercase;
+ int lengthUtf8;
+ uint *valueUtf8;
+ uint *allowedUtf8;
+ uint *charMapUtf8;
+ uint *currentCharUtf8;
+ eKeys lastKey;
+ cTimeMs autoAdvanceTimeout;
+ cPixmap *pixmapVal;
+ cStyledPixmap *pixmapKeyboard;
+ cPixmap *pixmapKeyboardHighlight;
+ cPixmap *pixmapKeyboardIcons;
+ int keyboardWidth;
+ int gridWidth;
+ int gridHeight;
+ int keyboardHeight;
+ bool keyboardDrawn;
+ uint *IsAllowed(uint c);
+ void AdvancePos(void);
+ uint Inc(uint c, bool Up);
+ void Type(uint c);
+ void Insert(void);
+ void Delete(void);
+ void EnterEditMode(void);
+ void LeaveEditMode(bool SaveValue = false);
+ bool InEditMode(void) { return valueUtf8 != NULL; };
+ void SetText(void);
+ void ActivateKeyboard(void);
+ void DeactivateKeyboard(void);
+ void HighlightSMSKey(int num);
+ void ClearSMSKey(void);
+ char *GetSMSKeys(int num);
+ void DrawValue(char *newValue);
+public:
+ cRecMenuItemText(cString title,
+ char *initialVal,
+ int length,
+ bool active);
+ virtual ~cRecMenuItemText(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ void setBackground(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ cString GetStringValue(void) { return value; };
+};
+
+
+// --- cRecMenuItemTime -------------------------------------------------------
+class cRecMenuItemTime : public cRecMenuItem {
+private:
+ cString text;
+ int value;
+ int mm;
+ int hh;
+ int pos;
+ bool fresh;
+ cPixmap *pixmapVal;
+ void DrawValue(void);
+public:
+ cRecMenuItemTime(cString text,
+ int initialVal,
+ bool active);
+ virtual ~cRecMenuItemTime(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ int GetIntValue(void) { return value; };
+};
+
+// --- cRecMenuItemDay -------------------------------------------------------
+class cRecMenuItemDay : public cRecMenuItem {
+private:
+ cString text;
+ time_t currentVal;
+ cPixmap *pixmapVal;
+ void DrawValue(void);
+public:
+ cRecMenuItemDay(cString text,
+ time_t initialVal,
+ bool active);
+ virtual ~cRecMenuItemDay(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ time_t GetTimeValue(void) { return currentVal; };
+};
+
+// --- cRecMenuItemTimer -------------------------------------------------------
+class cRecMenuItemTimer : public cRecMenuItem {
+private:
+ const cTimer *timer;
+ eRecMenuState action2;
+ eRecMenuState action3;
+ int iconActive;
+ cPixmap *pixmapIcons;
+ cPixmap *pixmapStatus;
+ time_t conflictStart;
+ time_t conflictStop;
+ time_t overlapStart;
+ time_t overlapStop;
+ int DrawIcons(void);
+ void DrawTimerConflict(void);
+public:
+ cRecMenuItemTimer(const cTimer *timer,
+ eRecMenuState action1,
+ eRecMenuState action2,
+ eRecMenuState action3,
+ time_t conflictStart,
+ time_t conflictStop,
+ time_t overlapStart,
+ time_t overlapStop,
+ bool active);
+ virtual ~cRecMenuItemTimer(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+};
+
+// --- cRecMenuItemTimerConflictHeader -------------------------------------------------------
+
+class cRecMenuItemTimerConflictHeader: public cRecMenuItem {
+private:
+ cPixmap *pixmapStatus;
+ time_t conflictStart;
+ time_t conflictStop;
+ time_t overlapStart;
+ time_t overlapStop;
+public:
+ cRecMenuItemTimerConflictHeader(time_t conflictStart,
+ time_t conflictStop,
+ time_t overlapStart,
+ time_t overlapStop);
+ virtual ~cRecMenuItemTimerConflictHeader(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ void setBackground(void);
+ void Draw(void);
+};
+
+// --- cRecMenuItemEvent -------------------------------------------------------
+class cRecMenuItemEvent : public cRecMenuItem {
+private:
+ const cEvent *event;
+ eRecMenuState action2;
+ int iconActive;
+ cPixmap *pixmapText;
+ cPixmap *pixmapIcons;
+ int DrawIcons(void);
+public:
+ cRecMenuItemEvent(const cEvent *event,
+ eRecMenuState action1,
+ eRecMenuState action2,
+ bool active);
+ virtual ~cRecMenuItemEvent(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ const cEvent *GetEventValue(void) { return event; };
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+};
+
+// --- cRecMenuItemChannelChooser -------------------------------------------------------
+class cRecMenuItemChannelChooser : public cRecMenuItem {
+private:
+ cString text;
+ cChannel *channel;
+ int channelNumber;
+ bool initialChannelSet;
+ bool fresh;
+ cPixmap *pixmapChannel;
+ void DrawValue(void);
+public:
+ cRecMenuItemChannelChooser (cString text,
+ cChannel *initialChannel,
+ bool active);
+ virtual ~cRecMenuItemChannelChooser(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ int GetIntValue(void);
+};
+
+// --- cRecMenuItemDayChooser -------------------------------------------------------
+class cRecMenuItemDayChooser : public cRecMenuItem {
+private:
+ cString text;
+ int weekdays;
+ std::string days;
+ int daysX;
+ int daysY;
+ int daysSize;
+ int selectedDay;
+ cPixmap *pixmapWeekdays;
+ cPixmap *pixmapWeekdaysSelect;
+ void SetSizes(void);
+ void DrawDays(void);
+ void DrawHighlight(int day);
+ void ToggleDay(void);
+ bool WeekDaySet(unsigned day);
+public:
+ cRecMenuItemDayChooser (cString text,
+ int weekdays,
+ bool active);
+ virtual ~cRecMenuItemDayChooser(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ void setBackground(void);
+ eRecMenuState ProcessKey(eKeys Key);
+ void Draw(void);
+ int GetIntValue(void) { return weekdays;} ;
+};
+
+// --- cRecMenuItemRecording -------------------------------------------------------
+class cRecMenuItemRecording : public cRecMenuItem {
+private:
+ cRecording *recording;
+ cPixmap *pixmapText;
+public:
+ cRecMenuItemRecording(cRecording *recording, bool active);
+ virtual ~cRecMenuItemRecording(void);
+ void SetPixmaps(void);
+ void Hide(void);
+ void Show(void);
+ void Draw(void);
+};
+
+#endif //__TVGUIDE_RECMENUITEM_H \ No newline at end of file