From 809fbda03c5014ba9cd361f5113d1d717cd41ea6 Mon Sep 17 00:00:00 2001 From: louis Date: Tue, 26 Jan 2016 18:32:38 +0100 Subject: Version 0.8.0 beta --- coreengine/viewdisplaymenu.h | 316 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 coreengine/viewdisplaymenu.h (limited to 'coreengine/viewdisplaymenu.h') diff --git a/coreengine/viewdisplaymenu.h b/coreengine/viewdisplaymenu.h new file mode 100644 index 0000000..1658f72 --- /dev/null +++ b/coreengine/viewdisplaymenu.h @@ -0,0 +1,316 @@ +#ifndef __VIEWDISPLAYMENU_H +#define __VIEWDISPLAYMENU_H + +#include "view.h" +#include "viewdetail.h" + +/*********************************************************** +* cViewMenu +***********************************************************/ +class cSubView; +class cViewMenuDefault; +class cViewMenuMain; +class cViewMenuSetup; +class cViewMenuSchedules; +class cViewMenuChannels; +class cViewMenuTimers; +class cViewMenuRecordings; +class cViewMenuDetail; + +class cViewMenu : public cView { +protected: + map subviewNames; + cSubView **subViews; + int numSubviews; + cSubView *activeSubview; + cSubView *activeSubviewLast; + cViewMenuDefault *menuDefault; + cViewMenuMain *menuMain; + cViewMenuSetup *menuSetup; + cViewMenuSchedules *menuSchedules; + cViewMenuChannels *menuChannels; + cViewMenuTimers *menuTimers; + cViewMenuRecordings *menuRecordings; + cViewMenuDetail *menuDetailedEpg; + cViewMenuDetail *menuDetailedRec; + cViewMenuDetail *menuDetailedText; + eMenuCategory menuCat; + //name of current plugin for menu icon + const char *plugName; + //external plugin menus + bool pluginIdSet; + int plugId; + int plugMenuId; + //status variables + bool menuChange; + bool listChange; + bool detailViewInit; + void SetViewElements(void); + void SetViewElementObjects(void); + void SetSubViews(void); + void ClearVariables(void); + int SubviewId(const char *name); + bool SetPluginSubView(eMenuCategory menuCat); + void WakeViewElements(void); +public: + cViewMenu(void); + virtual ~cViewMenu(void); + void SetGlobals(cGlobals *globals); + void PreCache(void); + bool ValidSubView(const char *subView); + static cSubView *CreateSubview(const char *name); + static cSubView *CreatePluginview(const char *plugname, int plugId, int menuNumber, int menuType); + void AddSubview(const char *sSubView, cSubView *subView); + void AddPluginview(cSubView *plugView); + void SetSubView(eMenuCategory MenuCat); + void SetSortMode(eMenuSortMode sortMode); + void SetPluginMenu(int plugId, int plugMenuId); + int NumListItems(void); + eMenuOrientation MenuOrientation(void); + const cFont *GetTextAreaFont(void); + int GetTextAreaWidth(void); + int GetListWidth(void); + void SetTitleHeader(const char *title); + void SetChannelHeader(const cEvent *event); + void SetMessage(eMessageType type, const char *text); + void SetMenuButtons(const char *red, const char *green, const char *yellow, const char *blue); + void SetScrollbar(int total, int offset); + void SetTabs(int tab1, int tab2, int tab3, int tab4, int tab5); + void SetItem(const char *text, int index, bool current, bool selectable); + bool SetItemEvent(const cEvent *event, int index, bool current, bool selectable, const cChannel *channel, bool withDate, eTimerMatch timerMatch); + bool SetItemTimer(const cTimer *timer, int index, bool current, bool selectable); + bool SetItemChannel(const cChannel *channel, int index, bool current, bool selectable, bool withProvider); + bool SetItemRecording(const cRecording *recording, int index, bool current, bool selectable, int level, int total, int New); + bool SetItemPlugin(skindesignerapi::cTokenContainer *tk, int index, bool current, bool selectable); + void SetEvent(const cEvent *event); + void SetRecording(const cRecording *recording); + void SetText(const char *text); + bool SetPluginText(skindesignerapi::cTokenContainer *tk); + void SetCurrentRecording(const char *currentRec); + void KeyDetailView(bool up, bool page); + bool Init(void); + void Close(void); + void Clear(void); + void Flush(void); + void SetTransparency(int transparency, bool forceDetached = false); + void Debug(void); +}; + +/*********************************************************** +* cSubView +***********************************************************/ +class cSubView : public cView { +protected: + eMenuCategory menuCat; + int plugId; + int plugMenuId; + cViewList *viewList; + cViewList *viewListVertical; + cViewList *viewListHorizontal; + cViewElement *background; + cVeDmHeader *header; + cVeDateTime *datetime; + cVeTime *time; + cVeMessage *message; + cVeDmSortmode *sortmode; + cVeDmColorbuttons *colorbuttons; + cVeDmScrollbar *scrollbar; + virtual void SetViewElementObjects(void); + virtual void SetViewElements(void); +public: + cSubView(const char *name); + virtual ~cSubView(void); + virtual void SetGlobals(cGlobals *globals); + virtual void PreCache(void); + bool ViewElementSet(int ve); + bool ViewElementHorizontalSet(int ve); + void SetViewElement(eVeDisplayMenu ve, cViewElement *viewElement); + void SetViewElementHorizontal(eVeDisplayMenu ve, cViewElement *viewElement); + void AddViewList(cViewList *viewList); + virtual void AddTab(cArea *tab) {}; + int NumListItems(void); + eMenuOrientation MenuOrientation(void); + void SetMenuCategory(eMenuCategory menuCat) { this->menuCat = menuCat; }; + void SetPlugId(int id) { plugId = id; }; + void SetPlugMenuId(int id) { plugMenuId = id; }; + void SetTitle(const char *title); + void SetMessage(eMessageType type, const char *text); + void SetChannel(const cChannel *channel); + void SetMenuButtons(const char *red, const char *green, const char *yellow, const char *blue); + void SetScrollbar(int total, int offset); + void SetSortMode(eMenuSortMode sortMode); + virtual void Close(void); + virtual void Clear(void); + void ClearViewList(void); + void WakeViewElements(void); + virtual void DrawStaticVEs(void); + virtual void DrawDynamicVEs(void); + void DrawList(void); + virtual void DrawDetailedView(void) {}; + virtual void UpdateDetailedView(void) {}; + void SetTransparency(int transparency, bool forceDetached = false); +}; +/*********************************************************** +* cViewMenuDefault +***********************************************************/ +class cViewMenuDefault : public cSubView { +private: + cViewListDefault *listDefault; + void SetViewElementObjects(void); +public: + cViewMenuDefault(const char *name); + virtual ~cViewMenuDefault(void); + void SetTabs(int tab1, int tab2, int tab3, int tab4, int tab5); + void SetPlugin(const char *plugName); + void SetItem(const char *text, int index, bool current, bool selectable); + const cFont *GetTextAreaFont(void); + int GetListWidth(void); +}; +/*********************************************************** +* cViewMenuMain +***********************************************************/ +class cViewMenuMain : public cSubView { +private: + cViewListMain *listMain; + cVeDmTimers *timers; + cVeDevices *devices; + cVeCurrentWeather *weather; + cVeDmDiscusage *discusage; + cVeDmSystemload *load; + cVeDmSystemmemory *memory; + cVeDmVdrstatistics *vdrstats; + cVeDmTemperatures *temperatures; + cVeDmCurrentschedule *currentSchedule; + cVeDmLastrecordings *lastRecordings; + cVeCustomTokens *customTokens; + uint64_t lastDrawDynamic; + void ClearVariables(void); + void SetViewElements(void); + void SetViewElementObjects(void); +public: + cViewMenuMain(const char *name); + virtual ~cViewMenuMain(void); + void Clear(void); + void SetItem(const char *text, int index, bool current, bool selectable); + void SetCurrentRecording(const char *currentRec); + void DrawStaticVEs(void); + void DrawDynamicVEs(void); + const char *GetPlugin(void); +}; +/*********************************************************** +* cViewMenuSetup +***********************************************************/ +class cViewMenuSetup : public cSubView { +private: + cViewListMain *listSetup; + void SetViewElementObjects(void); +public: + cViewMenuSetup(const char *name); + virtual ~cViewMenuSetup(void); + void SetItem(const char *text, int index, bool current, bool selectable); +}; +/*********************************************************** +* cViewMenuSchedules +***********************************************************/ +class cViewMenuSchedules : public cSubView { +private: + cViewListSchedules *listSchedules; + void SetViewElementObjects(void); +public: + cViewMenuSchedules(const char *name); + virtual ~cViewMenuSchedules(void); + void SetItem(const cEvent *event, int index, bool current, bool selectable, const cChannel *channel, bool withDate, eTimerMatch timerMatch); +}; +/*********************************************************** +* cViewMenuChannels +***********************************************************/ +class cViewMenuChannels : public cSubView { +private: + cViewListChannels *listChannels; + void SetViewElementObjects(void); +public: + cViewMenuChannels(const char *name); + virtual ~cViewMenuChannels(void); + void SetItem(const cChannel *channel, int index, bool current, bool selectable, bool withProvider); +}; +/*********************************************************** +* cViewMenuTimers +***********************************************************/ +class cViewMenuTimers : public cSubView { +private: + cViewListTimers *listTimers; + void SetViewElementObjects(void); +public: + cViewMenuTimers(const char *name); + virtual ~cViewMenuTimers(void); + void SetItem(const cTimer *timer, int index, bool current, bool selectable); +}; +/*********************************************************** +* cViewMenuRecordings +***********************************************************/ +class cViewMenuRecordings : public cSubView { +private: + cViewListRecordings *listRecordings; + void SetViewElementObjects(void); +public: + cViewMenuRecordings(const char *name); + virtual ~cViewMenuRecordings(void); + void SetItem(const cRecording *recording, int index, bool current, bool selectable, int level, int total, int New); +}; + +/*********************************************************** +* cViewMenuPlugins +***********************************************************/ +class cViewMenuPlugin : public cSubView { +private: + cViewListPlugin *listPlugin; + void SetViewElementObjects(void); +public: + cViewMenuPlugin(const char *name); + virtual ~cViewMenuPlugin(void); + void SetItem(skindesignerapi::cTokenContainer *tk, int index, bool current, bool selectable); +}; + +/*********************************************************** +* cViewMenuDetail +***********************************************************/ +class cViewMenuDetail : public cSubView { +private: + bool firstTab; + cVeDmDetailheaderEpg *detailedheaderEpg; + cVeDmDetailheaderRec *detailedheaderRec; + cVeDmDetailheaderPlugin *detailedheaderPlug; + cVeDmTablabels *tablabels; + cViewDetail *detailView; + cViewDetailEpg *detailViewEpg; + cViewDetailRec *detailViewRec; + cViewDetailText *detailViewText; + cViewDetailPlugin *detailViewPlugin; + void SetDetailedView(void); + void SetViewElements(void); + void SetViewElementObjects(void); + void DrawScrollbar(void); +public: + cViewMenuDetail(const char *name); + virtual ~cViewMenuDetail(void); + void SetGlobals(cGlobals *globals); + void AddTab(cArea *tab); + void PreCache(void); + int GetWidth(void); + void SetEvent(const cEvent *event); + void SetRecording(const cRecording *recording); + void SetText(const char *text); + void SetPluginText(skindesignerapi::cTokenContainer *tk); + void Clear(void); + void Close(void); + void DrawStaticVEs(void); + void DrawDynamicVEs(void); + void DrawDetailedView(void); + void KeyLeft(void); + void KeyRight(void); + void KeyUp(void); + void KeyDown(void); + void SetTransparency(int transparency, bool forceDetached = false); +}; + +#endif //__VIEWDISPLAYMENU_H \ No newline at end of file -- cgit v1.2.3