static int _OwnerDrawListview(const WIDGET_ITEM_DRAW_INFO * pDrawItemInfo) { char acBuffer[64]; int Sel; switch (pDrawItemInfo->Cmd) { case WIDGET_ITEM_GET_XSIZE: // // Return x-size of item // return LISTVIEW_OwnerDraw(pDrawItemInfo); case WIDGET_ITEM_GET_YSIZE: // // Return y-size of item // return LISTVIEW_OwnerDraw(pDrawItemInfo); case WIDGET_ITEM_DRAW: // // Draw item / row // GUI_SetTextMode(GUI_TM_TRANS); LISTVIEW_GetItemText(pDrawItemInfo->hWin, pDrawItemInfo->Col, pDrawItemInfo->ItemIndex, acBuffer, sizeof(acBuffer)); Sel = LISTVIEW_GetSel(pDrawItemInfo->hWin); if(Sel == pDrawItemInfo->ItemIndex) { GUI_SetColor(GUI_WHITE); } else { GUI_SetColor(GUI_BLACK); } GUI_DispStringAt(acBuffer, pDrawItemInfo->x0, pDrawItemInfo->y0); return 0; case WIDGET_ITEM_DRAW_BACKGROUND: GUI_SetColor(GUI_BLACK); GUI_DrawHLine(pDrawItemInfo->y0, pDrawItemInfo->x0, pDrawItemInfo->x1); // // Draw item / row background // GUI_DrawGradientV(pDrawItemInfo->x0, pDrawItemInfo->y0, pDrawItemInfo->x1, pDrawItemInfo->y1, GUI_GRAY_C8, GUI_GRAY_D0); return 0; default: return LISTVIEW_OwnerDraw(pDrawItemInfo); } }