/** * @brief Update process manager view. * @param hItem: pointer to window handle * @retval None */ static void _UpdateProcessManagerView(WM_HWIN hItem) { int Idx; char str[3]; int16_t tasks_nbr; tasks_nbr = uxTaskGetSystemState( ProcessStatus, 16, NULL ); /*Limit view size */ if(tasks_nbr > 16) { tasks_nbr = 16; } for (Idx = 0; Idx < tasks_nbr ; Idx ++) { LISTVIEW_SetItemText(hItem, 0, Idx, (char *)(ProcessStatus[Idx].pcTaskName)); sprintf(str, "%lu", ProcessStatus[Idx].uxCurrentPriority); LISTVIEW_SetItemText(hItem, 1, Idx, str); switch (ProcessStatus[Idx].eCurrentState) { case eReady: LISTVIEW_SetItemText(hItem, 2, Idx, "Ready"); break; case eBlocked: LISTVIEW_SetItemText(hItem, 2, Idx, "Blocked"); break; case eDeleted: LISTVIEW_SetItemText(hItem, 2, Idx, "Deleted"); break; case eSuspended: LISTVIEW_SetItemText(hItem, 2, Idx, "Suspended"); break; case eRunning: LISTVIEW_SetItemText(hItem, 2, Idx, "Running"); break; default: LISTVIEW_SetItemText(hItem, 2, Idx, "Unknown"); break; } } LISTVIEW_SetSort(hItem, 1, 0); }
/********************************************************************* * * _Action * * Purpose: * Does some action with the widget */ static void _Action(WM_HWIN hList) { unsigned ColoredCol = 0; unsigned ColoredRow = 0; unsigned NumRows; unsigned Index; unsigned i; int SortedColumn = -1; int ColorIndex = 0; int Reverse = 0; Index = 0; do { if (_aAction[Index].pDescription) { GUIDEMO_ShowInfo(_aAction[Index].pDescription); } switch (_aAction[Index].Job) { case JOB_COLOR: NumRows = LISTVIEW_GetNumRows(hList); for (i = 0; i < NumRows; i++) { LISTVIEW_SetItemBkColor(hList, ColoredCol, ColoredRow, LISTVIEW_CI_UNSEL, _aColor[ColorIndex]); if (++ColorIndex == GUI_COUNTOF(_aColor)) { ColorIndex = 0; } if (++ColoredCol == LISTVIEW_GetNumColumns(hList)) { ColoredCol = 0; } if (++ColoredRow == NumRows) { ColoredRow = 0; } } break; case JOB_INCSEL: LISTVIEW_IncSel(hList); break; case JOB_DECSEL: LISTVIEW_DecSel(hList); break; case JOB_REVERSE: Reverse ^= 1; LISTVIEW_SetSort(hList, SortedColumn, Reverse); break; case JOB_ADDROWS: for (i = 0; i < 40; i++) { _AddRow(hList, 0); } break; case JOB_SETSORT: if (SortedColumn == -1) { SortedColumn = 0; } else { SortedColumn++; if (SortedColumn == (int)LISTVIEW_GetNumColumns(hList)) { SortedColumn = 0; } } LISTVIEW_SetSort(hList, SortedColumn, Reverse); break; } GUI_Delay(_aAction[Index].Delay); } while ((++Index < GUI_COUNTOF(_aAction)) && (GUIDEMO_CheckCancel() == 0)); }