summaryrefslogtreecommitdiff
path: root/views/displaymenuitemview.h
blob: fb818b02d79df6a722c850be61d8ab75c5472dd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#ifndef __DISPLAYMENUITEMVIEW_H
#define __DISPLAYMENUITEMVIEW_H

#include "../libtemplate/template.h"
#include "view.h"
#include "displaymenuitemcurrentview.h"

class cDisplayMenuItemView : public cViewListItem {
private:
protected:
    bool itemInit;
    bool dirty;
    bool current;
    bool selectable;
    int num;
    cTemplateViewList *tmplList;
    map < string, string > stringTokens;
    map < string, int > intTokens;
    cDisplayMenuItemCurrentView *currentView;
    virtual void Action(void);
public:
    cDisplayMenuItemView(cTemplateViewList *tmplList, bool current, bool selectable);
    virtual ~cDisplayMenuItemView();
    void SetCurrent(bool cur);
    void SetNumber(int n) { num = n; };
    void ArrangeContainer(void);
    bool Current(void) { return current; };
    void PrepareScrolling(void);
    void EndScrolling(void);
    virtual void SetTokens(void) {};
    virtual void Prepare(void) {};
    virtual void Render(void) {};
    virtual void Clear(void);
    bool Dirty(void) { return dirty; };
    void Stop(void);
    virtual void Debug(void);
};

class cDisplayMenuItemDefaultView: public cDisplayMenuItemView {
private:
    int *tabs;
    int *tabWidths;
    string *tabTexts;
    int maxTabs;
    string menuCategory;
public:
    cDisplayMenuItemDefaultView(cTemplateViewList *tmplList, string *tabTexts, int *tabs, int *tabWidths, bool current, bool selectable);
    virtual ~cDisplayMenuItemDefaultView();
    void SetTabTexts(string *tabTexts);
    void SetTokens(void);
    void SetMenuCategory(string cat) { menuCategory = cat; };
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemMainView: public cDisplayMenuItemView {
private:
    bool isPlugin;
    string plugName;
    string text;
    string number;
    string label;
    string icon;
    void SplitMenuText(void);
    void CheckPlugins(void);
public:
    cDisplayMenuItemMainView(cTemplateViewList *tmplList, string itemText, bool current, bool selectable);
    virtual ~cDisplayMenuItemMainView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    string GetPluginName(void);
    void Debug(void);
};

class cDisplayMenuItemSchedulesView: public cDisplayMenuItemView {
private:
    const cEvent *event;
    const cChannel *channel;
    string dayseparator;
    eTimerMatch timerMatch;
    eMenuCategory cat;
    bool isEpgSearchFav;
    string ParseSeparator(string sep);
public:
    cDisplayMenuItemSchedulesView(cTemplateViewList *tmplList, const cEvent *event, const cChannel *channel, eTimerMatch timerMatch, 
                                  eMenuCategory cat, bool isEpgSearchFav, bool current, bool selectable, string dayseparator);
    virtual ~cDisplayMenuItemSchedulesView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemChannelsView: public cDisplayMenuItemView {
private:
    const cChannel *channel;
    bool withProvider;
public:
    cDisplayMenuItemChannelsView(cTemplateViewList *tmplList, const cChannel *channel, bool withProvider, bool current, bool selectable);
    virtual ~cDisplayMenuItemChannelsView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemTimersView: public cDisplayMenuItemView {
private:
    const cTimer *timer;
public:
    cDisplayMenuItemTimersView(cTemplateViewList *tmplList, const cTimer *timer, bool current, bool selectable);
    virtual ~cDisplayMenuItemTimersView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemRecordingView: public cDisplayMenuItemView {
private:
    const cRecording *recording;
    int level;
    int total;
    int newRecs;
public:
    cDisplayMenuItemRecordingView(cTemplateViewList *tmplList, const cRecording *recording, int level, int total, int newRecs, bool current, bool selectable);
    virtual ~cDisplayMenuItemRecordingView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemPluginView: public cDisplayMenuItemView {
private:
    map<string,vector<map<string,string> > > loopTokens;
public:
    cDisplayMenuItemPluginView(cTemplateViewList *tmplList, map<string,string> *plugStringTokens, map<string,int> *plugIntTokens, map<string,vector<map<string,string> > > *pluginLoopTokens, int index, bool current, bool selectable);
    virtual ~cDisplayMenuItemPluginView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

class cDisplayMenuItemTrackView: public cDisplayMenuItemView {
private:
    const char *title;
    int numTracks;
public:
    cDisplayMenuItemTrackView(cTemplateViewList *tmplList, const char *title, bool current, bool selectable, int numTracks);
    virtual ~cDisplayMenuItemTrackView();
    void SetTokens(void);
    void Prepare(void);
    void Render(void);
    void Debug(void);
};

#endif //__DISPLAYMENUITEMVIEW_H