124 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#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;
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |