From addbf47bdbc0c0ca9b217c9001b31e747c57ff95 Mon Sep 17 00:00:00 2001 From: inmarket Date: Wed, 17 Feb 2016 20:00:23 +1000 Subject: Move GWIN widget internal flags into the public header so that all the state flags are available for custom draw routines. --- src/gwin/gwin_list.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/gwin/gwin_list.h') diff --git a/src/gwin/gwin_list.h b/src/gwin/gwin_list.h index 2ab06960..a60ded9d 100644 --- a/src/gwin/gwin_list.h +++ b/src/gwin/gwin_list.h @@ -76,6 +76,35 @@ typedef struct GListObject { */ typedef enum scroll_t { scrollAlways, scrollAuto, scrollSmooth } scroll_t; +/** + * @brief The internal list object flags + * @note Used only for writing a custom draw routine. + * @{ + */ +#define GLIST_FLG_MULTISELECT (GWIN_FIRST_CONTROL_FLAG << 0) +#define GLIST_FLG_HASIMAGES (GWIN_FIRST_CONTROL_FLAG << 1) +#define GLIST_FLG_SCROLLALWAYS (GWIN_FIRST_CONTROL_FLAG << 2) +#define GLIST_FLG_SCROLLSMOOTH (GWIN_FIRST_CONTROL_FLAG << 3) +#define GLIST_FLG_ENABLERENDER (GWIN_FIRST_CONTROL_FLAG << 4) +/** @} */ + +/** + * @brief The internal list item structure + * @note Used only for writing a custom draw routine. + */ +typedef struct ListItem { + gfxQueueASyncItem q_item; // This must be the first member in the struct + + uint16_t flags; + #define GLIST_FLG_SELECTED 0x0001 + uint16_t param; // A parameter the user can specify himself + const char* text; + #if GWIN_NEED_LIST_IMAGES + gdispImage* pimg; + #endif +} ListItem; + + #ifdef __cplusplus extern "C" { #endif -- cgit v1.2.3