summaryrefslogtreecommitdiff
path: root/recmenu.h
blob: 3445a63a7f0c03397c2b71301e3b07a907edb57d (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
#ifndef __TVGUIDE_RECMENU_H
#define __TVGUIDE_RECMENU_H

#include "recmenuitem.h"

// --- cRecMenu  -------------------------------------------------------------

class cRecMenu : public cStyledPixmap {
protected:
    int x, y;
    int width, height;
    int headerHeight, footerHeight;
    int scrollHeight;
    int scrollItemHeight;
    int scrollbarWidth;
    cPixmap *pixmapScrollBar;
    cImage *imgScrollBar;
    int border;
    bool scrollable;
    int numItems;
    int startIndex, stopIndex;
    cRecMenuItem *header;
    cRecMenuItem *footer;
    cList<cRecMenuItem> menuItems;
    void SetWidthPercent(int percentOSDWidth);
    void SetWidthPixel(int pixel);
    int CalculateOptimalWidth(void);
    bool CheckHeight(void);
    void CalculateHeight(void);
    void CreatePixmap(void);
    void SetHeader(cRecMenuItem *header);
    void SetFooter(cRecMenuItem *footer);
    void AddMenuItemScroll(cRecMenuItem *item);
    void AddMenuItem(cRecMenuItem *item, cRecMenuItem *before = NULL);
    cRecMenuItem *GetActiveMenuItem(void);
    bool ActivateNext(void);
    bool ActivatePrev(void);
    void Activate(cRecMenuItem *itemOld, cRecMenuItem *item);
    void ScrollUp(void);
    void ScrollDown(void);
    void JumpBegin(void);
    void JumpEnd(void);
    void DrawScrollBar(void);
    cImage *createScrollbar(int width, int height, tColor clrBgr, tColor clrBlend);
    void Arrange(bool scroll = false);
    virtual cRecMenuItem *GetMenuItem(int number) { return NULL; };
    virtual int GetTotalNumMenuItems(void) { return 0; };
    virtual void CreateMenuItems(void) {};
public:
    cRecMenu(void);
    virtual ~cRecMenu(void);
    void Display(bool scroll = false);
    void Hide(void);
    void Show(void);
    int GetActive(bool withOffset);
    int GetIntValue(int itemNumber);
    time_t GetTimeValue(int itemNumber);
    bool GetBoolValue(int itemNumber);
    cString GetStringValue(int itemNumber);
    const cEvent *GetEventValue(int itemNumber);
    eRecMenuState ProcessKey(eKeys Key);
};
#endif //__TVGUIDE_RECMENU_H