summaryrefslogtreecommitdiff
path: root/recmenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'recmenu.h')
-rw-r--r--recmenu.h49
1 files changed, 24 insertions, 25 deletions
diff --git a/recmenu.h b/recmenu.h
index 8613780..99bf69c 100644
--- a/recmenu.h
+++ b/recmenu.h
@@ -6,59 +6,58 @@
// --- cRecMenu -------------------------------------------------------------
class cRecMenu : public cStyledPixmap {
+private:
+ std::list<cRecMenuItem*> menuItems;
+ int scrollbarWidth;
+ int numItems;
+ int startIndex, stopIndex;
+ void Activate(cRecMenuItem *itemOld, cRecMenuItem *item);
+ bool ActivateNext(void);
+ bool ActivatePrev(void);
+ void ScrollUp(void);
+ void ScrollDown(void);
+ void JumpBegin(void);
+ void JumpEnd(void);
protected:
int x, y;
int width, height;
int headerHeight, footerHeight;
- int scrollHeight;
- int scrollItemHeight;
- int scrollbarWidth;
+ int currentHeight;
+ bool deleteMenuItems;
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);
+ bool CalculateHeight(bool reDraw = false);
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 ClearMenuItems(void);
+ void InitMenu(bool complete);
+ bool AddMenuItemInitial(cRecMenuItem *item);
+ void AddMenuItem(cRecMenuItem *item, bool inFront = false);
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; };
+ cRecMenuItem *GetActiveMenuItem(void);
+ cRecMenuItem *GetMenuItemAt(int num);
+ int GetCurrentNumMenuItems(void) { return menuItems.size(); };
virtual int GetTotalNumMenuItems(void) { return 0; };
virtual void CreateMenuItems(void) {};
+ int GetStartIndex(void) { return startIndex; };
+ int GetActive(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);
- cTimer *GetTimerValue(int itemNumber);
virtual eRecMenuState ProcessKey(eKeys Key);
};
#endif //__TVGUIDE_RECMENU_H \ No newline at end of file