/********************************************************************* * * _AddKey * * Returns: 1 if Key has been consumed * 0 else */ static int _AddKey(LISTBOX_Handle hObj, int Key) { LISTBOX_Obj* pObj; pObj = LISTBOX_H2P(hObj); switch (Key) { case ' ': _ToggleMultiSel(hObj, pObj, pObj->Sel); return 1; /* Key has been consumed */ case GUI_KEY_RIGHT: if (WM_SetScrollValue(&pObj->ScrollStateH, pObj->ScrollStateH.v + pObj->Props.ScrollStepH)) { LISTBOX_UpdateScrollers(hObj); LISTBOX__InvalidateInsideArea(hObj); } return 1; /* Key has been consumed */ case GUI_KEY_LEFT: if (WM_SetScrollValue(&pObj->ScrollStateH, pObj->ScrollStateH.v - pObj->Props.ScrollStepH)) { LISTBOX_UpdateScrollers(hObj); LISTBOX__InvalidateInsideArea(hObj); } return 1; /* Key has been consumed */ case GUI_KEY_DOWN: LISTBOX_IncSel(hObj); return 1; /* Key has been consumed */ case GUI_KEY_UP: LISTBOX_DecSel(hObj); return 1; /* Key has been consumed */ default: if(_IsAlphaNum(Key)) { _SelectByKey(hObj, Key); return 1; /* Key has been consumed */ } } return 0; }
/********************************************************************* * * DROPDOWN_AddKey */ void DROPDOWN_AddKey(DROPDOWN_Handle hObj, int Key) { if (hObj) { WM_LOCK(); switch (Key) { case GUI_KEY_DOWN: DROPDOWN_IncSel(hObj); break; case GUI_KEY_UP: DROPDOWN_DecSel(hObj); break; default: _SelectByKey(hObj, Key); break; } WM_UNLOCK(); } }
void LISTBOX_AddKey(LISTBOX_Handle hObj, int Key) { if (hObj) { WM_LOCK(); switch (Key) { case GUI_KEY_DOWN: LISTBOX_IncSel(hObj); break; case GUI_KEY_UP: LISTBOX_DecSel(hObj); break; default: _SelectByKey(hObj, Key); break; } WM_UNLOCK(); } }