/********************************************************************* * * _InitMultipage * * Purpose: * Creates the pages of the multipage widget */ static void _InitMultipage(WM_HWIN hWin) { WM_HWIN hPage0, hPage1; hPage0 = GUI_CreateDialogBox(_aPage0, GUI_COUNTOF(_aPage0), &_cbPage0, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hWin, hPage0, "Properties"); hPage1 = GUI_CreateDialogBox(_aPage1, GUI_COUNTOF(_aPage1), &_cbPage1, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hWin, hPage1, "Data"); }
/********************************************************************* * * MainTask */ void CreateWindow(void) { WM_HWIN hMultiPage; WM_HWIN hFrameWin; WM_HWIN hDialog; // // Check if recommended memory for the sample is available // if (GUI_ALLOC_GetNumFreeBytes() < RECOMMENDED_MEMORY) { GUI_ErrorOut("Not enough memory available."); return; } WM_SetCallback(WM_HBKWIN, _cbBkWindow); // // Create the frame window // hFrameWin = FRAMEWIN_Create("Sample", NULL, WM_CF_SHOW, 0, 0, 240, 152); FRAMEWIN_SetClientColor(hFrameWin, GUI_GREEN); FRAMEWIN_SetActive(hFrameWin, 1); FRAMEWIN_SetMoveable(hFrameWin, 1); // // Create the MULTIPAGE widget // hMultiPage = MULTIPAGE_CreateEx(7, 6, 220, 120, WM_GetClientWindow(hFrameWin), WM_CF_SHOW, 0, 0); GUI_Delay(500); // // Create and attach the MULTIPAGE dialog windows // hDialog = GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 1"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 2"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 3"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate4, GUI_COUNTOF(_aDialogCreate4), _cbDialog4, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 4"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate5, GUI_COUNTOF(_aDialogCreate5), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 5"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate6, GUI_COUNTOF(_aDialogCreate6), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 6"); GUI_Delay(500); // // Demonstrate the use of MULTIPAGE_SetAlign // MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT); GUI_Delay(500); MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT | MULTIPAGE_ALIGN_BOTTOM); GUI_Delay(500); MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_LEFT | MULTIPAGE_ALIGN_BOTTOM); while (1) { GUI_Delay(100); } }
/********************************************************************* * * MainTask */ void MainTask(void) { WM_HWIN hMultiPage; WM_HWIN hFrameWin; WM_HWIN hDialog; // // Enable use of memory devices // WM_SetCreateFlags(WM_CF_MEMDEV); GUI_Init(); WM_SetCallback(WM_HBKWIN, _cbBkWindow); // // Create the frame window // hFrameWin = FRAMEWIN_Create("FrameWindow", NULL, WM_CF_SHOW, 40, 44, 240, 152); FRAMEWIN_SetClientColor(hFrameWin, GUI_GREEN); FRAMEWIN_SetActive(hFrameWin, 1); FRAMEWIN_SetMoveable(hFrameWin, 1); // // Create the MULTIPAGE widget // hMultiPage = MULTIPAGE_CreateEx(7, 6, 220, 120, WM_GetClientWindow(hFrameWin), WM_CF_SHOW, 0, 0); GUI_Delay(500); // // Create and attach the MULTIPAGE dialog windows // hDialog = GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 1"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 2"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 3"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate4, GUI_COUNTOF(_aDialogCreate4), _cbDialog4, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 4"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate5, GUI_COUNTOF(_aDialogCreate5), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 5"); GUI_Delay(500); hDialog = GUI_CreateDialogBox(_aDialogCreate6, GUI_COUNTOF(_aDialogCreate6), NULL, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hMultiPage, hDialog, "Page 6"); GUI_Delay(500); // // Demonstrate the use of MULTIPAGE_SetAlign // MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT); GUI_Delay(500); MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT | MULTIPAGE_ALIGN_BOTTOM); GUI_Delay(500); MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_LEFT | MULTIPAGE_ALIGN_BOTTOM); while (1) { GUI_Delay(100); } }
/********************************************************************* * * _cbDialog */ static void _cbDialog(WM_MESSAGE * pMsg) { WM_HWIN hItem; int NCode; int Id; // USER START (Optionally insert additional variables) // USER END switch (pMsg->MsgId) { case WM_INIT_DIALOG: // //Initialization of windows // hItem = pMsg->hWin; WINDOW_SetBkColor(hItem, GUI_LIGHTBLUE); // // Initialization of 'HeaderTop' // hItem = WM_GetDialogItem(pMsg->hWin, ID_HEADER_0); HEADER_AddItem(hItem, 80, "LeCoder", 14); // // Initialization of 'Back' // hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_BACK); BUTTON_SetFont(hItem, &GUI_FontSongTi12); BUTTON_SetText(hItem, StringHZ[0]); // // Initialization of 'Multipage' // hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIPAGE_0); MULTIPAGE_SetFont(hItem, &GUI_FontSongTi12); MULTIPAGE_AddPage(hItem, hDialog_Page1, StringHZ[12]); MULTIPAGE_AddPage(hItem, hDialog_Page2, StringHZ[13]); MULTIPAGE_AddPage(hItem, hDialog_Page3, StringHZ[8]); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch(Id) { case ID_BUTTON_BACK: // Notifications sent by 'Back' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: Key_Value = WINDOW_TOP; break; } break; case ID_MULTIPAGE_0: // Notifications sent by 'Multipage' switch(NCode) { case WM_NOTIFICATION_CLICKED: break; case WM_NOTIFICATION_RELEASED: break; case WM_NOTIFICATION_MOVED_OUT: break; case WM_NOTIFICATION_VALUE_CHANGED: break; } break; } break; default: WM_DefaultProc(pMsg); break; } }
/** * @brief Callback function of the Settings frame * @param pMsg: pointer to data structure of type WM_MESSAGE * @retval None */ static void _cbSettingsDialog(WM_MESSAGE * pMsg) { int Id, NCode; WM_HWIN hItem; switch (pMsg->MsgId) { case WM_INIT_DIALOG: /* Settings frame initialization */ hItem = pMsg->hWin; FRAMEWIN_AddCloseButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0); /* Create and attache the MULTIPAGE dialog windows */ hItem = WM_GetDialogItem(pMsg->hWin, ID_MULTIPAGE); hDialogCameraSettings = GUI_CreateDialogBox(_aDialogCameraSettings, GUI_COUNTOF(_aDialogCameraSettings), &_cbCameraSettings, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hItem, hDialogCameraSettings, "Camera Settings"); hDialogFileControl = GUI_CreateDialogBox(_aDialogFileControl, GUI_COUNTOF(_aDialogFileControl), &_cbFileControl, WM_UNATTACHED, 0, 0); MULTIPAGE_AddPage(hItem, hDialogFileControl, "File Settings"); MULTIPAGE_SelectPage(hItem, 0); /* 'OK' button initialization */ hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_OK); BUTTON_SetFont(hItem, GUI_FONT_13B_1); /* 'Cancel' button initialization */ hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_CANCEL); BUTTON_SetFont(hItem, GUI_FONT_13B_1); break; case WM_DELETE: camera_disabled = 0; hSettings = 0; if(SD_Configured == 1) { BSP_CAMERA_Init(RESOLUTION_R160x120); CAMERA_Configured = 1; /* Apply new settings*/ SD_Configured = 0; } /* Delete choosfile window */ WM_DeleteWindow(chooser_select_folder); break; case WM_NOTIFY_PARENT: Id = WM_GetId(pMsg->hWinSrc); NCode = pMsg->Data.v; switch (Id) { case ID_BUTTON_OK: /* Notification sent by "OK" button */ switch (NCode) { case WM_NOTIFICATION_RELEASED: /* Save camera settings before delete settings frame */ hItem = WM_GetDialogItem(hDialogCameraSettings, ID_SLIDER_0); CameraSettings.b.brightness = SLIDER_GetValue(hItem); hItem = WM_GetDialogItem(hDialogCameraSettings, ID_SLIDER_1); CameraSettings.b.contrast = SLIDER_GetValue(hItem); /* Back to normal mode (no effects) */ hItem = WM_GetDialogItem(CAMERA_hWin, ID_RADIO); RADIO_SetValue(hItem, 0); if(CAMERA_GetState() != CAMERA_ERROR) { /* Apply new settings*/ CAMERA_Set_ContrastBrightness(CameraSettings.b.contrast, CameraSettings.b.brightness); BSP_CAMERA_BlackWhiteConfig(CAMERA_BLACK_WHITE_NORMAL); } GUI_EndDialog(pMsg->hWin, 0); break; } break; case ID_BUTTON_CANCEL: /* Notification sent by "Cancel" button */ switch (NCode) { case WM_NOTIFICATION_RELEASED: GUI_EndDialog(pMsg->hWin, 0); break; } break; } break; } }
/********************************************************************* * * _cbCallbackWidgets * * Purpose: * Initializes the widgets of the main dialog box */ static void _cbCallbackWidgets(WM_MESSAGE * pMsg) { GRAPH_SCALE_Handle hScaleH, hScaleV; int i; WM_HWIN hDlg, hMenu; hDlg = pMsg->hWin; switch (pMsg->MsgId) { case WM_INIT_DIALOG: /* Get handles of widgets */ for (i = 0; i < NUM_WIDGETS; i++) { _ahWin[i] = WM_GetDialogItem(hDlg, _aID[i]); } /* Init dropdown widget */ for (i = 0; i < 8; i++) { char acBuffer[] = {"Item x"}; int Len = strlen(acBuffer); acBuffer[Len - 1] = '1' + i; DROPDOWN_AddString(_ahWin[DROPDOWN0], acBuffer); } /* Init edit widget */ EDIT_SetText(_ahWin[EDIT0], "Edit"); /* Init listbox widget */ LISTBOX_SetAutoScrollV(_ahWin[LISTBOX0], 1); for (i = 0; i < 4; i++) { char acBuffer[] = {"Item x"}; int Len = strlen(acBuffer); acBuffer[Len - 1] = '1' + i; LISTBOX_AddString(_ahWin[LISTBOX0], acBuffer); } /* Init listview widget */ for (i = 0; i < 2; i++) { char acBuffer[] = {"Col. x"}; int Len = strlen(acBuffer); acBuffer[Len - 1] = '1' + i; LISTVIEW_AddColumn(_ahWin[LISTVIEW0], 60, acBuffer, GUI_TA_CENTER); } for (i = 0; i < 9; i++) { int j; LISTVIEW_AddRow(_ahWin[LISTVIEW0], NULL); for (j = 0; j < (int)LISTVIEW_GetNumColumns(_ahWin[LISTVIEW0]); j++) { char acBuffer[] = {"Rx/Cx"}; acBuffer[1] = '1' + i; acBuffer[4] = '1' + j; LISTVIEW_SetItemText(_ahWin[LISTVIEW0], j, i, acBuffer); } } LISTVIEW_SetGridVis(_ahWin[LISTVIEW0], 1); SCROLLBAR_CreateAttached(_ahWin[LISTVIEW0], SCROLLBAR_CF_VERTICAL); /* Init multiedit widget */ MULTIEDIT_SetText(_ahWin[MULTIEDIT0], "This text could be modified by the MULTIEDIT widget"); MULTIEDIT_SetWrapWord(_ahWin[MULTIEDIT0]); MULTIEDIT_SetAutoScrollV(_ahWin[MULTIEDIT0], 1); /* Init progbar widget */ WIDGET_SetEffect(_ahWin[PROGBAR0], &WIDGET_Effect_3D); /* Init graph widget */ for (i = 0; i < GUI_COUNTOF(_aColor); i++) { _aValue[i] = rand() % 95; _ahData[i] = GRAPH_DATA_YT_Create(_aColor[i], 500, 0, 0); GRAPH_AttachData(_ahWin[GRAPH0], _ahData[i]); } GRAPH_SetGridDistY(_ahWin[GRAPH0], 25); GRAPH_SetGridVis(_ahWin[GRAPH0], 1); GRAPH_SetGridFixedX(_ahWin[GRAPH0], 1); GRAPH_SetBorder(_ahWin[GRAPH0], 20, 4, 5, 4); /* Create and add vertical scale of graph widget */ hScaleV = GRAPH_SCALE_Create(18, GUI_TA_RIGHT, GRAPH_SCALE_CF_VERTICAL, 25); GRAPH_SCALE_SetTextColor(hScaleV, GUI_RED); GRAPH_AttachScale(_ahWin[GRAPH0], hScaleV); /* Create and add horizontal scale of graph widget */ hScaleH = GRAPH_SCALE_Create(46, GUI_TA_HCENTER | GUI_TA_VCENTER, GRAPH_SCALE_CF_HORIZONTAL, 50); GRAPH_SCALE_SetTextColor(hScaleH, GUI_DARKGREEN); GRAPH_AttachScale(_ahWin[GRAPH0], hScaleH); /* Init multipage widget */ MULTIPAGE_AddPage(_ahWin[MULTIPAGE0], GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), &_cbDialogPage, WM_UNATTACHED, 0, 0), "Page 1"); MULTIPAGE_AddPage(_ahWin[MULTIPAGE0], GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), &_cbDialogPage, WM_UNATTACHED, 0, 0), "Page 2"); /* Create and attach menu */ hMenu = _CreateMenu(hDlg);/**/ break; default: WM_DefaultProc(pMsg); } }
static void GUIMakeWinOut() { hWinOut = WINDOW_CreateEx( 20, 140, 200, 150, 0, WM_CF_SHOW, 0, ++curId, 0 ); hMultipage = MULTIPAGE_CreateEx( 10, 10, 180, 130, hWinOut, WM_CF_SHOW, 0, ++curId ); MULTIPAGE_SetSkin(hMultipage, MULTIPAGE_SKIN_FLEX); WM_HWIN hMultipageWindow1 = WINDOW_CreateEx( 0, 0, 180, 110, hMultipage, 0, 0, ++curId, _cbPage1 ); WINDOW_SetBkColor(hMultipageWindow1, GUI_RED); MULTIPAGE_AddPage(hMultipage, hMultipageWindow1, "Custom"); hListview = LISTVIEW_CreateEx(0, 0, 180, 130, hMultipageWindow1, WM_CF_SHOW, 0, ++curId ); LISTVIEW_AddColumn( hListview, 120 , "Cloth", GUI_TA_HCENTER | GUI_TA_VCENTER ); LISTVIEW_AddColumn( hListview, 60 , "Position", GUI_TA_HCENTER | GUI_TA_VCENTER ); const char* name[][2] = { {"Polka dot long dress", "40"}, {"White Shirt", "60"} }; LISTVIEW_AddRow( hListview, (GUI_ConstString*)name[0] ); LISTVIEW_AddRow( hListview, (GUI_ConstString*)name[1] ); WM_HWIN hMultipageWindow2 = WINDOW_CreateEx( 0, 0, 180, 110, hMultipage, 0, 0, ++curId, NULL ); WINDOW_SetBkColor(hMultipageWindow2, GUI_BLUE); MULTIPAGE_AddPage(hMultipage, hMultipageWindow2, "Suggest"); }