gui: introduce virtual RenderItem method in ScrollList
- so derived lists can draw whatever they want (multi-line etc.)
- replace GetListItem with RenderItem
- minor cleanup
Change-Id: I062e0a354f1c18ce0a5232b7542c4987b480e232
diff --git a/gui/objects.hpp b/gui/objects.hpp
index 0f853ac..d5c3b27 100644
--- a/gui/objects.hpp
+++ b/gui/objects.hpp
@@ -533,12 +533,14 @@
// derived classes need to implement these
// get number of items
virtual size_t GetItemCount() { return 0; }
- // get data for one item
- virtual int GetListItem(size_t item_index, ImageResource*& icon, std::string &text)
- { icon = NULL; text = ""; return -1; }
+ // render a single item in rect (mRenderX, yPos, mRenderW, actualItemHeight)
+ virtual void RenderItem(size_t itemindex, int yPos, bool selected);
// an item was selected
virtual void NotifySelect(size_t item_selected) {}
+ // render a standard-layout list item with optional icon and text
+ void RenderStdItem(int yPos, bool selected, ImageResource* icon, const char* text, int iconAndTextH = 0);
+
enum { NO_ITEM = (size_t)-1 };
// returns item index at coordinates or NO_ITEM if there is no item there
size_t HitTestItem(int x, int y);
@@ -562,7 +564,6 @@
// Background
COLOR mBackgroundColor;
ImageResource* mBackground; // background image, if any, automatically centered
- int mBackgroundW, mBackgroundH; // background width and height if using an image for the background
// Header
COLOR mHeaderBackgroundColor;
@@ -630,7 +631,7 @@
virtual void SetPageFocus(int inFocus);
virtual size_t GetItemCount();
- virtual int GetListItem(size_t item_index, ImageResource*& icon, std::string &text);
+ virtual void RenderItem(size_t itemindex, int yPos, bool selected);
virtual void NotifySelect(size_t item_selected);
protected:
@@ -685,7 +686,7 @@
virtual void SetPageFocus(int inFocus);
virtual size_t GetItemCount();
- virtual int GetListItem(size_t item_index, ImageResource*& icon, std::string &text);
+ virtual void RenderItem(size_t itemindex, int yPos, bool selected);
virtual void NotifySelect(size_t item_selected);
protected:
@@ -721,7 +722,7 @@
virtual void SetPageFocus(int inFocus);
virtual size_t GetItemCount();
- virtual int GetListItem(size_t item_index, ImageResource*& icon, std::string &text);
+ virtual void RenderItem(size_t itemindex, int yPos, bool selected);
virtual void NotifySelect(size_t item_selected);
protected: