#include "mywin_inc.h" #include "mywin_user_menu.h" #include "mywin_user_light.h" #include "date.h" #include "system_file.h" const static MENU_ItemStruct ptr[]={ {0, "5 秒"}, {0, "15 秒" } , {0, "30 秒" } , {0, "90 秒" } , {0, "常亮" } , }; const static u8 g_time[5]={5,15,30,90,0}; //进入 WIN_MenuStruct *MENU_LightSet (WIN_WindowStruct *base) { WIN_MenuStruct *menu=WIN_CreatMenu (base,(void (*)(WIN_WindowStruct *,WIN_MsgStruct *))MENU_LightSetMsgLoop, 0,0,base->x_size,base->y_size); ((WIN_WindowStruct *)menu)->intercept=1;//不发送按键消息到父窗口 WIN_SetBackPicPath ((WIN_WindowStruct *)menu,base->pic_path); MENU_SetTitle (menu,0,"背光设置"); MENU_SetMaxItem(menu,5); for (int i=0;i<5;i++) { MENU_AddItem (menu,ptr[i].img,(char *)ptr[i].txt); } WIN_ShowWindow((WIN_WindowStruct*)menu); return menu; } static void MENU_Enter (WIN_MenuStruct *menu) { SysFile_GetSysFile()->screenOffTime=g_time[MENU_GetIndex(menu)]; char txt[20]={0}; sprintf(txt,"将在 %d 秒后熄屏",g_time[MENU_GetIndex(menu)]); MSGBOX_TipsTime ((WIN_WindowStruct*)menu,"提示",txt ,"确定",5000); } //消息处理函数 void MENU_LightSetMsgLoop (WIN_MenuStruct *menu,WIN_MsgStruct *msg) { WIN_MoveStruct *m=0; WIN_TouchStruct *t=0; WIN_KeyStruct *k=0; switch (msg->msg) { case WIN_MSG_KEY: k=msg->data.p; if (k->shortPress&KEY_VALUE_ENTER) { MENU_Enter(menu); } else { MENU_DefaultMsgLoop (menu,msg); } break;//case WIN_MSG_KEY: case WIN_MSG_MOVE: m=msg->data.p; switch (m->moveType) { case MOVE_DATA_SHORT: if (m->y_move>((WIN_WindowStruct *)menu)->y_size/2-20&&m->y_move<((WIN_WindowStruct *)menu)->y_size/2+20) { MENU_Enter(menu); } break; default: MENU_DefaultMsgLoop (menu,msg); break; } break; case WIN_MSG_CHID: switch (msg->data.v) { case CHID_DELETE: break; case CHID_USER: { if (msg->srcWin==menu->bar) { if (msg->data2.v==SCROLLBAR_PRESSED) { MENU_Enter(menu); } } else { MENU_DefaultMsgLoop (menu,msg); } } break; default: break; } break; default: MENU_DefaultMsgLoop (menu,msg); break; } }