Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BSP_DISCO_F746NG_patch mbed-rtos mbed
k_menu.c
00001 /** 00002 ****************************************************************************** 00003 * @file k_menu.c 00004 * @author MCD Application Team 00005 * @version V1.1.0 00006 * @date 21-September-2015 00007 * @brief This file provides the kernel menu functions 00008 ****************************************************************************** 00009 * @attention 00010 * 00011 * <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2> 00012 * 00013 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); 00014 * You may not use this file except in compliance with the License. 00015 * You may obtain a copy of the License at: 00016 * 00017 * http://www.st.com/software_license_agreement_liberty_v2 00018 * 00019 * Unless required by applicable law or agreed to in writing, software 00020 * distributed under the License is distributed on an "AS IS" BASIS, 00021 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00022 * See the License for the specific language governing permissions and 00023 * limitations under the License. 00024 * 00025 ****************************************************************************** 00026 */ 00027 00028 /* Includes ------------------------------------------------------------------*/ 00029 00030 #include "main.h" 00031 00032 /** @addtogroup CORE 00033 * @{ 00034 */ 00035 00036 /** @defgroup KERNEL_MENU 00037 * @brief Kernel menu routines 00038 * @{ 00039 */ 00040 00041 /* Private defines -----------------------------------------------------------*/ 00042 #define ID_ICONVIEW_MENU (GUI_ID_USER + 0x00) 00043 #define ID_FEATURES_FPU (GUI_ID_USER + 0x44) 00044 #define ID_FEATURES_IC (GUI_ID_USER + 0x45) 00045 #define ID_FEATURES_DC (GUI_ID_USER + 0x46) 00046 #define ID_FEATURES_CPU (GUI_ID_USER + 0x47) 00047 #define ID_FEATURES_FREQ (GUI_ID_USER + 0x48) 00048 00049 /* External variables --------------------------------------------------------*/ 00050 uint32_t module_active = 0; 00051 ICONVIEW_Handle hIcon ; 00052 WM_HWIN hCPULoad; 00053 WM_HTIMER hRefreshTimer; 00054 extern GUI_CONST_STORAGE GUI_BITMAP bmF7Logo; 00055 /* Private typedef -----------------------------------------------------------*/ 00056 /* Private macros ------------------------------------------------------------*/ 00057 /* Private function prototypes -----------------------------------------------*/ 00058 /* Private functions ---------------------------------------------------------*/ 00059 00060 /** 00061 * @brief Callback routine of desktop window. 00062 * @param pMsg: pointer to data structure of type WM_MESSAGE 00063 * @retval None 00064 */ 00065 static void _cbBk(WM_MESSAGE * pMsg) { 00066 00067 uint32_t NCode, Id; 00068 static uint8_t sel; 00069 WM_HWIN hItem; 00070 char tmp[16]; 00071 00072 switch (pMsg->MsgId) 00073 { 00074 case WM_PAINT: 00075 GUI_SetBkColor(GUI_WHITE); 00076 GUI_Clear(); 00077 00078 /*H/W Information */ 00079 GUI_SetColor(0x007C18CC); 00080 GUI_AA_FillRoundedRect(400, 31, 780, 238, 15); 00081 GUI_DrawBitmap(&bmF7Logo, 400, 47); 00082 break; 00083 00084 00085 case WM_TIMER: 00086 00087 hItem = WM_GetDialogItem(pMsg->hWin, ID_FEATURES_CPU); 00088 00089 sprintf((char *)tmp , "MCU Load : %d%%", osGetCPUUsage()); 00090 TEXT_SetText(hItem, tmp); 00091 00092 WM_InvalidateWindow(hItem); 00093 WM_Update(hItem); 00094 WM_RestartTimer(pMsg->Data.v, 1000); 00095 break; 00096 00097 00098 case WM_NOTIFY_PARENT: 00099 Id = WM_GetId(pMsg->hWinSrc); 00100 NCode = pMsg->Data.v; 00101 00102 switch (NCode) 00103 { 00104 00105 case WM_NOTIFICATION_RELEASED: 00106 if (Id == ID_ICONVIEW_MENU) 00107 { 00108 sel = ST_AnimatedIconView_GetSel(pMsg->hWinSrc); 00109 00110 if(sel < k_ModuleGetNumber()) 00111 { 00112 ST_AnimatedIconView_SetSel(pMsg->hWinSrc, -1); 00113 if(module_prop[sel].in_use == 0) 00114 { 00115 module_prop[sel].module->startup(pMsg->hWin, 0, 0); 00116 module_prop[sel].in_use = 1; 00117 } 00118 00119 else if(module_prop[sel].win_state == 1) 00120 { 00121 module_prop[sel].module->startup(pMsg->hWin, 0, 0); 00122 } 00123 } 00124 else 00125 { 00126 WM_InvalidateWindow (pMsg->hWinSrc); 00127 } 00128 } 00129 break; 00130 00131 case WM_NOTIFICATION_CHILD_DELETED: 00132 module_prop[sel].in_use = 0; 00133 module_prop[sel].win_state = 0; 00134 break; 00135 00136 default: 00137 break; 00138 } 00139 break; 00140 default: 00141 WM_DefaultProc(pMsg); 00142 } 00143 } 00144 00145 /** 00146 * @brief set the GUI profile 00147 * @param None. 00148 * @retval None. 00149 */ 00150 void k_SetGuiProfile(void) 00151 { 00152 BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX); 00153 DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX); 00154 00155 FRAMEWIN_SetDefaultTextColor(0, GUI_WHITE); 00156 FRAMEWIN_SetDefaultTextColor(1, GUI_WHITE); 00157 00158 FRAMEWIN_SetDefaultBarColor(0, GUI_STCOLOR_LIGHTBLUE); 00159 FRAMEWIN_SetDefaultBarColor(1, GUI_STCOLOR_LIGHTBLUE); 00160 00161 FRAMEWIN_SetDefaultFont(&GUI_FontAvantGarde20B); 00162 00163 FRAMEWIN_SetDefaultClientColor(GUI_WHITE); 00164 FRAMEWIN_SetDefaultTitleHeight(25); 00165 00166 00167 WINDOW_SetDefaultBkColor(GUI_WHITE); 00168 00169 LISTVIEW_SetDefaultGridColor(GUI_WHITE); 00170 LISTVIEW_SetDefaultBkColor(LISTVIEW_CI_SEL, GUI_STCOLOR_LIGHTBLUE); 00171 DROPDOWN_SetDefaultColor(DROPDOWN_CI_SEL, GUI_STCOLOR_LIGHTBLUE); 00172 LISTVIEW_SetDefaultBkColor(LISTVIEW_CI_SELFOCUS, GUI_STCOLOR_LIGHTBLUE); 00173 DROPDOWN_SetDefaultColor(DROPDOWN_CI_SELFOCUS, GUI_STCOLOR_LIGHTBLUE); 00174 SCROLLBAR_SetDefaultWidth(8); 00175 SCROLLBAR_SetDefaultSTSkin(); 00176 00177 HEADER_SetDefaultBkColor(GUI_STCOLOR_LIGHTBLUE); 00178 HEADER_SetDefaultTextColor(GUI_WHITE); 00179 HEADER_SetDefaultFont(GUI_FONT_16_1); 00180 HEADER_SetDefaultSTSkin(); 00181 SCROLLBAR_SetDefaultColor(GUI_STCOLOR_LIGHTBLUE, SCROLLBAR_CI_THUMB); 00182 SCROLLBAR_SetDefaultColor(GUI_STCOLOR_LIGHTBLUE, SCROLLBAR_CI_SHAFT); 00183 SCROLLBAR_SetDefaultColor(GUI_STCOLOR_LIGHTBLUE, SCROLLBAR_CI_ARROW); 00184 CHOOSEFILE_SetDelim('/'); 00185 GUI_SetDefaultFont(GUI_FONT_20_ASCII); 00186 00187 TEXT_SetDefaultTextColor(GUI_STCOLOR_LIGHTBLUE); 00188 TEXT_SetDefaultFont(&GUI_FontLubalGraph20); 00189 } 00190 00191 /** 00192 * @brief Initializes the menu. 00193 * @param None. 00194 * @retval None. 00195 */ 00196 void k_InitMenu(void) 00197 { 00198 uint8_t i = 0; 00199 WM_HWIN hItem; 00200 00201 00202 WM_SetCallback(WM_GetDesktopWindowEx(0), _cbBk); 00203 00204 hIcon = ST_AnimatedIconView_CreateEx(0, 00205 0, 00206 LCD_GetXSize() - 80, 00207 LCD_GetYSize() - 0, 00208 WM_GetDesktopWindowEx(0), 00209 WM_CF_SHOW | WM_CF_HASTRANS , 00210 0, 00211 ID_ICONVIEW_MENU, 00212 100, 00213 120, 40, 5); 00214 00215 ST_AnimatedIconView_SetDualFont(hIcon, &GUI_FontLubalGraph16, &GUI_FontLubalGraph16); 00216 00217 ST_AnimatedIconView_SetSpace(hIcon, GUI_COORD_Y, 0); 00218 ST_AnimatedIconView_SetSpace(hIcon, GUI_COORD_X, 0); 00219 ST_AnimatedIconView_SetFrame(hIcon, GUI_COORD_Y, 0); 00220 ST_AnimatedIconView_SetFrame(hIcon, GUI_COORD_X, 0); 00221 00222 ST_AnimatedIconView_SetTextColor(hIcon, ICONVIEW_CI_UNSEL, GUI_STCOLOR_LIGHTBLUE); 00223 ST_AnimatedIconView_SetBkColor(hIcon, ICONVIEW_CI_UNSEL, GUI_WHITE); 00224 ST_AnimatedIconView_SetBkColor(hIcon, ICONVIEW_CI_SEL, GUI_WHITE); 00225 ST_AnimatedIconView_SetSel(hIcon, -1); 00226 ST_AnimatedIconView_SetDualTextColor(hIcon, ICONVIEW_CI_SEL, GUI_STCOLOR_LIGHTBLUE, GUI_STCOLOR_DARKBLUE ); 00227 00228 for (i = 0; i < k_ModuleGetNumber(); i++) 00229 { 00230 ST_AnimatedIconView_AddIcon(hIcon, module_prop[i].module->open_icon, module_prop[i].module->close_icon, (char *)module_prop[i].module->name); 00231 } 00232 00233 hItem = TEXT_CreateEx(407, 152, 260, 20, WM_GetDesktopWindowEx(0), WM_CF_SHOW, TEXT_CF_LEFT, ID_FEATURES_FPU, "FPU : ON"); 00234 TEXT_SetFont(hItem, GUI_FONT_8_1); 00235 TEXT_SetTextColor(hItem, GUI_WHITE); 00236 00237 hItem = TEXT_CreateEx(407, 167, 260, 20, WM_GetDesktopWindowEx(0), WM_CF_SHOW, TEXT_CF_LEFT, ID_FEATURES_IC, "I-Cache : ON"); 00238 TEXT_SetFont(hItem, GUI_FONT_8_1); 00239 TEXT_SetTextColor(hItem, GUI_WHITE); 00240 00241 hItem = TEXT_CreateEx(407, 182, 260, 20, WM_GetDesktopWindowEx(0), WM_CF_SHOW, TEXT_CF_LEFT, ID_FEATURES_DC, "D-Cache : ON"); 00242 TEXT_SetFont(hItem, GUI_FONT_8_1); 00243 TEXT_SetTextColor(hItem, GUI_WHITE); 00244 00245 hCPULoad = TEXT_CreateEx(407, 198, 260, 20, WM_GetDesktopWindowEx(0), WM_CF_SHOW, TEXT_CF_LEFT, ID_FEATURES_CPU, "MCU Load : --%"); 00246 TEXT_SetFont(hCPULoad, GUI_FONT_8_1); 00247 TEXT_SetTextColor(hCPULoad, GUI_WHITE); 00248 00249 hItem = TEXT_CreateEx(407, 212, 260, 20, WM_GetDesktopWindowEx(0), WM_CF_SHOW, TEXT_CF_LEFT, ID_FEATURES_FREQ, "Clk : 200 MHz"); 00250 TEXT_SetFont(hItem, GUI_FONT_8_1); 00251 TEXT_SetTextColor(hItem, GUI_WHITE); 00252 00253 hRefreshTimer = WM_CreateTimer(WM_GetDesktopWindowEx(0), 0, 500, 0); 00254 } 00255 00256 /** 00257 * @} 00258 */ 00259 00260 /** 00261 * @} 00262 */ 00263 00264 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
Generated on Tue Jul 12 2022 14:57:34 by
1.7.2