list update
This commit is contained in:
parent
632566e243
commit
31f3554602
2 changed files with 22 additions and 5 deletions
|
@ -45,6 +45,12 @@ typedef struct GEventGWinList {
|
|||
// A list window
|
||||
typedef struct GListObject {
|
||||
GWidgetObject w;
|
||||
|
||||
#if GINPUT_NEED_TOGGLE
|
||||
uint16_t t_up;
|
||||
uint16_t t_dn;
|
||||
#endif
|
||||
|
||||
int cnt; // Number of items currently in the list (quicker than counting each time)
|
||||
gfxQueueASync list_head; // The list of items
|
||||
} GListObject;
|
||||
|
|
|
@ -201,19 +201,30 @@ static void gwinListDefaultDraw(GWidgetObject* gw, void* param) {
|
|||
#define gcw ((GListObject *)gw)
|
||||
|
||||
switch (role) {
|
||||
// select up
|
||||
// select down
|
||||
case 0:
|
||||
_selectUp(gw);
|
||||
_selectDown(gw);
|
||||
break;
|
||||
|
||||
// select down
|
||||
// select up
|
||||
case 1:
|
||||
_selectDown(gw);
|
||||
_selectUp(gw);
|
||||
break;
|
||||
}
|
||||
|
||||
#undef gcw
|
||||
}
|
||||
|
||||
static void ToggleAssign(GWidgetObject *gw, uint16_t role, uint16_t instance) {
|
||||
if (role)
|
||||
((GListObject *)gw)->t_up = instance;
|
||||
else
|
||||
((GListObject *)gw)->t_dn = instance;
|
||||
}
|
||||
|
||||
static uint16_t ToggleGet(GWidgetObject *gw, uint16_t role) {
|
||||
return role ? ((GListObject *)gw)->t_up : ((GListObject *)gw)->t_dn;
|
||||
}
|
||||
#endif
|
||||
|
||||
static void _destroy(GHandle gh) {
|
||||
|
@ -244,7 +255,7 @@ static const gwidgetVMT listVMT = {
|
|||
#if GINPUT_NEED_TOGGLE
|
||||
{
|
||||
2, // two toggle roles
|
||||
ToggleAssin, // Assign toggles
|
||||
ToggleAssign, // Assign toggles
|
||||
ToggleGet, // get toggles
|
||||
0,
|
||||
ToggleOn, // process toggle on event
|
||||
|
|
Loading…
Add table
Reference in a new issue