|

楼主 |
发表于 2020-1-3 12:15:04
|
显示全部楼层
#include "GUI.h"
#include "DIALOG.h"
#include "Menu_GUI.h"
#include "Menu_FUN.h"
#define Desk_BKColor 0x00E8E8E8
extern WM_HWIN Menu_WM_hWin;
extern GUI_RECT Header_RECT;
extern GUI_RECT Mid_RECT;
extern Header_Setting Header_Setting_Val;
extern Mid_Setting Mid_Setting_Val;
WM_HWIN Setting_hWin;
#define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_TEXT_0 (GUI_ID_USER + 0x01)
#define ID_BUTTON_0 (GUI_ID_USER + 0x02)
#define ID_BUTTON_1 (GUI_ID_USER + 0x03)
#define ID_BUTTON_2 (GUI_ID_USER + 0x04)
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
{
{ WINDOW_CreateIndirect, "Setting_WM", ID_WINDOW_0, 0, 0, 240, 320, 0, 0x0, 0 },
{ TEXT_CreateIndirect, "Setting_TXT", ID_TEXT_0, 5, 10, 230, 20, 0, 0x64, 0 },
{ BUTTON_CreateIndirect, "Sound_Setting_Button", ID_BUTTON_0, 5, 40, 230, 30, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Brightness_Setting_Button", ID_BUTTON_1, 5, 72, 230, 30, 0, 0x0, 0 },
{ BUTTON_CreateIndirect, "Shutdown_Setting_Button", ID_BUTTON_2, 5, 104, 230, 30, 0, 0x0, 0 },
};
static void _cbDialog(WM_MESSAGE * pMsg)
{
WM_HWIN hItem;
WM_HWIN hDlg;
int NCode;
int Id;
hDlg = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_PAINT: //2D内容需要手动重绘制
GUI_SetBkColor(Desk_BKColor); //设置菜单栏的背景色
GUI_Clear();
GUI_SetColor(Header_Setting_Val.Header_Bk_Color);
GUI_FillRectEx(&Header_RECT); //头部背景色填充
GUI_SetColor(Mid_Setting_Val.Mid_Bk_Color);
GUI_FillRectEx(&Mid_RECT); //中部背景色填充
break;
case WM_INIT_DIALOG:
// Initialization of 'Setting_TXT'
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
TEXT_SetText(hItem, "Setting");
TEXT_SetTextColor(hItem, GUI_MAKE_COLOR(0x00000000));
TEXT_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
TEXT_SetFont(hItem, GUI_FONT_20B_ASCII);
// Initialization of 'Sound_Setting_Button'
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetFont(hItem, GUI_FONT_20B_ASCII);
BUTTON_SetText(hItem, "Sound Setting");
// Initialization of 'Brightness_Setting_Button'
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_1);
BUTTON_SetFont(hItem, GUI_FONT_20B_ASCII);
BUTTON_SetText(hItem, "Brightness Setting");
// Initialization of 'Shutdown_Setting_Button'
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_2);
BUTTON_SetFont(hItem, GUI_FONT_20B_ASCII);
BUTTON_SetText(hItem, "Shutdown Setting");
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case ID_BUTTON_0: // Notifications sent by 'Sound_Setting_Button'
switch (NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
CreateSound_Setting_GUI();
break;
}
break;
case ID_BUTTON_1: // Notifications sent by 'Brightness_Setting_Button'
switch (NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
CreateBrightness_Setting_GUI();
break;
}
break;
case ID_BUTTON_2: // Notifications sent by Shutdown_Setting_Button'
switch (NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
CreateShutdown_Setting_GUI();
break;
}
break;
}
break;
case WM_KEY: //上下键切换选型控件焦点切换 退出键返回 确认键进入相应设置
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(pMsg->hWin, 1);
break;
default:
break;
}
break;
default:
WM_DefaultProc(pMsg);
break;
}
}
void FUN_SettingClicked(void)
{
Setting_hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, Menu_WM_hWin, 0, 0);
GUI_Delay(5);
} |
|