/********************************************************************* * * DROPDOWN_AddString */ void DROPDOWN_AddString(DROPDOWN_Handle hObj, const char* s) { DROPDOWN_Obj* pObj; if (hObj && s) { WM_LOCK(); pObj = DROPDOWN_H2P(hObj); GUI_ARRAY_AddItem(&pObj->Handles, s, strlen(s) + 1); DROPDOWN_Invalidate(hObj); WM_UNLOCK(); } }
/********************************************************************* * * DROPDOWN_SetColor */ void DROPDOWN_SetColor(DROPDOWN_Handle hObj, unsigned int Index, GUI_COLOR Color) { DROPDOWN_Obj * pObj; if (hObj) { if (Index < GUI_COUNTOF(pObj->Props.aColor)) { WM_LOCK(); pObj = DROPDOWN_H2P(hObj); if (pObj->Props.aColor[Index] != Color) { pObj->Props.aColor[Index] = Color; DROPDOWN_Invalidate(hObj); } WM_UNLOCK(); } } }
/********************************************************************* * * DROPDOWN_SetTextColor */ void DROPDOWN_SetTextColor(DROPDOWN_Handle hObj, unsigned int Index, GUI_COLOR color) { DROPDOWN_Obj* pObj; if (hObj) { if (Index < GUI_COUNTOF(pObj->Props.aBackColor)) { WM_LOCK(); pObj = DROPDOWN_H2P(hObj); ASSERT_IS_VALID_PTR(pObj); pObj->Props.aTextColor[Index] = color; DROPDOWN_Invalidate(hObj); if (pObj->hListWin) { LISTBOX_SetTextColor(pObj->hListWin, Index, color); } WM_UNLOCK(); } } }
/********************************************************************* * * DROPDOWN_SetSel */ void DROPDOWN_SetSel(DROPDOWN_Handle hObj, int Sel) { int NumItems, MaxSel; DROPDOWN_Obj* pObj; if (hObj) { WM_LOCK(); pObj = DROPDOWN_H2P(hObj); ASSERT_IS_VALID_PTR(pObj); NumItems = _GetNumItems(pObj); MaxSel = NumItems ? NumItems-1 : 0; if (Sel > MaxSel) { Sel = MaxSel; } if (Sel != pObj->Sel) { pObj->Sel = Sel; DROPDOWN_Invalidate(hObj); WM_NotifyParent(hObj, WM_NOTIFICATION_SEL_CHANGED); } WM_UNLOCK(); } }
/********************************************************************* * * DROPDOWN_SetFont */ void DROPDOWN_SetFont(DROPDOWN_Handle hObj, const GUI_FONT GUI_UNI_PTR * pfont) { int OldHeight; DROPDOWN_Obj* pObj; if (hObj) { WM_LOCK(); pObj = DROPDOWN_H2P(hObj); ASSERT_IS_VALID_PTR(pObj); OldHeight = GUI_GetYDistOfFont(pObj->Props.pFont); pObj->Props.pFont = pfont; DROPDOWN__AdjustHeight(hObj, pObj); DROPDOWN_Invalidate(hObj); if (pObj->hListWin) { if (OldHeight != GUI_GetYDistOfFont(pObj->Props.pFont)) { DROPDOWN_Collapse(hObj); DROPDOWN_Expand(hObj); } LISTBOX_SetFont(pObj->hListWin, pfont); } WM_UNLOCK(); } }