/********************************************************************* * * _cbCellEdit * * Function description * Callback function of the EDIT widget which is created above a * LISTVIEW cell. */ static void _cbCellEdit(WM_MESSAGE * pMsg) { CELL_EDIT_ORG CellEditOrg; WM_KEY_INFO * pKeyInfo; WM_HWIN hList; char acText[LEN_ITEM_TEXT]; switch (pMsg->MsgId) { case WM_KEY: pKeyInfo = (WM_KEY_INFO *)pMsg->Data.p; if (pKeyInfo->PressedCnt == 0) { if (pKeyInfo->Key == GUI_KEY_ENTER) { WM_SetFocus(WM_GetParent(pMsg->hWin)); WM_DeleteWindow(pMsg->hWin); break; } } EDIT_Callback(pMsg); break; case WM_SET_FOCUS: if (pMsg->Data.v == 0) { WM_DeleteWindow(pMsg->hWin); } else { EDIT_Callback(pMsg); } break; case WM_DELETE: EDIT_GetUserData(pMsg->hWin, &CellEditOrg, sizeof(CELL_EDIT_ORG)); hList = WM_GetParent(pMsg->hWin); EDIT_GetText(pMsg->hWin, acText, LEN_ITEM_TEXT); LISTVIEW_SetItemTextSorted(hList, CellEditOrg.Col, CellEditOrg.Row, acText); break; default: EDIT_Callback(pMsg); } }
static void myEditTextListener(WM_MESSAGE* pMsg) { const WM_KEY_INFO* pInfo; WM_HWIN thisEditText; switch(pMsg->MsgId) { case WM_KEY: pInfo = (WM_KEY_INFO*)pMsg->Data.p; switch(pInfo->Key) { case GUI_KEY_LEFT: WM_SetFocus(menuWin); break; default: EDIT_Callback(pMsg); break; } break; default: EDIT_Callback(pMsg); break; } }
/********************************************************************* * * _cbEdit */ static void _cbEdit(WM_MESSAGE * pMsg) { const WM_KEY_INFO * pInfo; WM_MESSAGE Msg; switch (pMsg->MsgId) { case WM_KEY: pInfo = pMsg->Data.p; if (pInfo->Key == GUI_KEY_ENTER) { if (pInfo->PressedCnt == 0) { Msg.MsgId = WM_APP_SHOW_TEXT; Msg.hWinSrc = pMsg->hWin; WM_SendMessage(WM_HBKWIN, &Msg); return; } } } EDIT_Callback(pMsg); }