📄 mainmenu.h
字号:
#ifndef __MAIN_MENU_H__#define __MAIN_MENU_H__#ifdef SUPPORT_STB#ifdef IMAGE_FRAME_SETUP#include "OSDString\\strextrn.h"#else#include "..\\..\\OSDString\\strextrn.h"#endif //IMAGE_FRAME_SETUP#else#include "OSDString\\strextrn.h"#endif //SUPPORT_STB#ifdef SUPPORT_STB//extern#ifdef SUPPORT_GAME_MINERextern void GAME_MINE_Initial(void);extern BYTE GAME_MINE_ProcessKey(BYTE bKey);extern void GAME_MINE_Trigger(void);extern void GAME_MINE_Exit(BYTE bClearBackground);#endif //SUPPORT_GAME_MINER#ifdef SUPPORT_GAME_TETRISextern void GAME_TETRIS_Initial(void);extern BYTE GAME_TETRIS_ProcessKey(BYTE bKey);extern void GAME_TETRIS_Trigger(void);extern void GAME_TETRIS_Exit(BYTE bClearBackground);#endif //SUPPORT_GAME_TETRIS#ifdef SUPPORT_GAME_GOMOKUextern void GAME_GOMOKU_Initial(void);extern BYTE GAME_GOMOKU_ProcessKey(BYTE bKey);extern void GAME_GOMOKU_Exit(BYTE bClearBackground);#endif //SUPPORT_GAME_GOMOKU#ifdef SUPPORT_GAME_SOKOBANextern void GAME_SOKOBAN_Initial(void);extern BYTE GAME_SOKOBAN_ProcessKey(BYTE bKey);extern void GAME_SOKOBAN_Trigger(void);extern void GAME_SOKOBAN_Exit(BYTE bClearBackground);#endif //SUPPORT_GAME_SOKOBAN#ifdef SUPPORT_GAME_RUSHHOURextern void GAME_RUSHHOUR_Initial(void);extern BYTE GAME_RUSHHOUR_ProcessKey(BYTE bKey);extern void GAME_RUSHHOUR_Exit(BYTE bClearBackground);#endif //SUPPORT_GAME_RUSHHOUR#ifndef SUPPORT_POWERON_MENU#ifdef SUPPORT_CALENDARextern void CALENDAR_Initial(void);extern BYTE CALENDAR_ProcessKey(BYTE bKey);extern void CALENDAR_Exit(BYTE bClearBackground);#endif //SUPPORT_CALENDAR #endif //SUPPORT_POWERON_MENU#endif //#ifdef SUPPORT_STB//define the region of the title background#define MAINMENU_TITLE_REGION_START_X 0#define MAINMENU_TITLE_REGION_START_Y 0#define MAINMENU_TITLE_REGION_WIDTH 616#define MAINMENU_TITLE_REGION_HEIGHT 36//define the region of the menu content background#define MAINMENU_CONTENT_REGION_START_X MAINMENU_TITLE_REGION_START_X#define MAINMENU_CONTENT_REGION_START_Y (MAINMENU_TITLE_REGION_START_Y+MAINMENU_TITLE_REGION_HEIGHT)#define MAINMENU_CONTENT_REGION_WIDTH MAINMENU_TITLE_REGION_WIDTH#define MAINMENU_CONTENT_REGION_HEIGHT 320//define the region of the menu help background#define MAINMENU_HELP_REGION_START_X MAINMENU_TITLE_REGION_START_X#define MAINMENU_HELP_REGION_START_Y (MAINMENU_CONTENT_REGION_START_Y+MAINMENU_CONTENT_REGION_HEIGHT)#define MAINMENU_HELP_REGION_WIDTH MAINMENU_TITLE_REGION_WIDTH#define MAINMENU_HELP_REGION_HEIGHT 36//42 #define MAINMENU_HELP_BACKGROUND_STRING_DISTANCE_H 20#define MAINMENU_HELP_STRING_START_X (MAINMENU_HELP_REGION_START_X+MAINMENU_HELP_BACKGROUND_STRING_DISTANCE_H)#define MAINMENU_HELP_ICON_DISTANCE_H 4 #define MAINMENU_HELP_SELECT_EXIT_DISTANCE_H 12#define MAINMENU_TITLE_REGION_STRING_DISTANCE_H 20#define MAINMENU_TITLE_STRING_START_X (MAINMENU_TITLE_REGION_START_X+MAINMENU_TITLE_REGION_STRING_DISTANCE_H)#define MAINMENU_TITLE_STRING_REGION_WIDTH (MAINMENU_TITLE_REGION_WIDTH-MAINMENU_TITLE_REGION_STRING_DISTANCE_H*2)#define MAINMENU_TITLE_REGION_ARC 19#define MAINMENU_HELP_REGION_ARC 19#ifdef SUPPORT_STB//define the distance between the button and the string.#define MAINMENU_BUTTON_STRING_DISTANCE_H 24//define the distance between the background and button.#define MAINMENU_BUTTON_BACKGROUND_DISTANCE_V 40//Define the height of the button#define MAINMENU_BUTTON_HEIGHT 30#define MAINMENU_BUTTON_ARC_VALUE 19#endif //#ifdef SUPPORT_STB#define MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN GDI_MAIN_MENU_PALETTE_INDEX_START#define MAINMENU_TITLE_BACKGROUND_PALETTE_RESERVE_NUM 16#define MAINMENU_HELP_BACKGROUND_PALETTE_ENTRY_BEGIN (MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN+MAINMENU_TITLE_BACKGROUND_PALETTE_RESERVE_NUM)#define MAINMENU_HELP_BACKGROUND_PALETTE_RESERVE_NUM 16#ifdef SUPPORT_STB//define the type of the button#define MAINMENU_BUTTON_NORMAL 0#define MAINMENU_BUTTON_HIGHLIGHT 1#define MAINMENU_BUTTON_DISABLE 2#endif //#ifdef SUPPORT_STB//define the invalid entry of menu flow table#define MAINMENU_INVALID_MENU_FLOW_ENTRY 0xFF#ifdef SUPPORT_STB//define the invalid menu state#define MAINMENU_INVALID_MENU_STATE 0xFF#define MAINMENU_INVALID_DLG_SATE 0xFF#define DLG_ACTION_DONE 0#define DLG_ACTION_EXIT_RECOVER_NENU 1#define DLG_ACTION_EXIT_NEW_NENU 2#define DLG_ACTION_CHANGE_DLG 3#define DLG_ACTION_FORCE_EXIT 4//define state in menutypedef enum tagMENU_STATE_ITEM{ //Main menu MS_MAIN_MENU = 0, MS_DVD_SETUP, MS_DVB_MENU, MS_SYSTEM_SETTING, MS_GAME, //STB menu MS_DVB_TV_PROGRAM, MS_DVB_MUSIC_PROGRAM, MS_DVB_AUTO_SEARCH, MS_DVB_MANUAL_SEARCH, MS_DLG, MS_DVB_PARENTAL_SETTING, MS_DVB_LANGUAGE, MS_DVB_TIME_SETTING, MS_DVB_SCHEDULE, MS_DVB_SCHEDULE_TIME_SETTING, //Game menu MS_GAME_MINE, MS_GAME_TETRIS, MS_GAME_GOMOKU, MS_GAME_SOKOBAN, //xuli.osdgame MS_GAME_RUSHHOUR, //xuli.osdgame#ifndef SUPPORT_POWERON_MENU MS_CALENDAR,#endif //SUPPORT_POWERON_MENU} MENU_STATE_ITEM;typedef enum tagDLG_STATE_ITEM{ DS_PIN_DLG_CHANNEL_LOCK = 0, DS_PIN_DLG_PARENTAL_SETTING,#ifndef IMAGE_FRAME_SETUP DS_PIN_DLG_DVD_PARENTAL_LEVEL, DS_DVD_LANGUAGE_CODE_DLG,#endif //IMAGE_FRAME_SETUP //system setting DS_DCHANGE_PIN_DLG,} DLG_STATE_ITEM;typedef struct tagMENU_STATE{ MENU_STATE_ITEM MenuCurrentState; MENU_STATE_ITEM MenuChangeToStateAfterExit;} MENU_STATE; typedef struct tagMENU_FLOW{ MENU_STATE_ITEM MenuState; void (*Menu_Init_Func_Ptr)(void); BYTE (*Menu_Proc_Func_Ptr)(BYTE); void (*Menu_Trigger_Func_Ptr)(void); void (*Menu_Recover_Func_Ptr)(void); void (*Menu_Exit_Func_Ptr)(BYTE); } MENU_FLOW, *PMENU_FLOW;typedef struct tagBUTTON{ BYTE bButtonID; //WORD *pwButtonString[OSD_LANGUAGE_NUMBER]; WORD *pwButtonString;} BUTTON, *PBUTTON;//define the button IDtypedef enum tagBUTTON_ID{ MAINMENU_BUTTON_DVD_SETUP = 0, MAINMENU_BUTTON_DVB_MENU, MAINMENU_BUTTON_SYSTEM_SETTING,#ifndef SUPPORT_POWERON_MENU MAINMENU_BUTTON_GAME, MAINMENU_BUTTON_EXIT, MAINMENU_BUTTON_NUM,#else MAINMENU_BUTTON_EXIT, MAINMENU_BUTTON_NUM, MAINMENU_BUTTON_GAME,#endif //SUPPORT_POWERON_MENU} BUTTON_ID;typedef enum tagGAME_BUTTON_ID{#ifdef SUPPORT_GAME_MINER MAINMENU_GAME_BUTTON_MINE = 0,#endif#ifdef SUPPORT_GAME_TETRIS MAINMENU_GAME_BUTTON_TETRIS,#endif#ifdef SUPPORT_GAME_GOMOKU MAINMENU_GAME_BUTTON_GOMOKU,#endif#ifdef SUPPORT_GAME_SOKOBAN MAINMENU_GAME_BUTTON_SOKOBAN, //xuli.osdgame#endif#ifdef SUPPORT_GAME_RUSHHOUR MAINMENU_GAME_BUTTON_RUSHHOUR, //xuli.osdgame#endif#ifndef SUPPORT_POWERON_MENU#ifdef SUPPORT_CALENDAR MAINMENU_GAME_BUTTON_CALENDAR,#endif //SUPPORT_CALENDAR #endif //SUPPORT_POWERON_MENU MAINMENU_GAME_BUTTON_EXIT, MAINMENU_GAME_BUTTON_NUM} GAME_BUTTON_ID;typedef struct tagDLG_FLOW{ void (*Dlg_Init_Func_Ptr)(BYTE); BYTE (*Dlg_Proc_Func_Ptr)(BYTE); void (*Dlg_Trigger_Func_Ptr)(void); void (*Dlg_Recover_Func_Ptr)(void); void (*Dlg_Exit_Func_Ptr)(void); void (*Dlg_Call_Back_Ptr)(BYTE); BYTE bRecoverMenuState; BYTE bNewMenuState; BYTE bChangeDlgState;} DLG_FLOW, *PDLG_FLOW;typedef enum tagMAINMENU_NORMAL_BUTTON_PALETTE{ MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN = GDI_BITMAP_PALETTE_INDEX_START, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_0 = MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_1, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_2, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_3, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_4, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_5, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_6, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_7, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_8, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_9, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_10, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_11, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_12, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_13, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_14, MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_END,} MAINMENU_NORMAL_BUTTON_PALETTE;typedef enum tagMAINMENU_HIGHLIGHT_BUTTON_PALETTE{ MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN = MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_END, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_0 = MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_1, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_2, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_3, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_4, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_5, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_6, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_7, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_8, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_9, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_10, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_11, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_12, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_13, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_14, MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_END,} MAINMENU_HIGHLIGHT_BUTTON_PALETTE;typedef enum tagMAINMENU_DISABLE_BUTTON_PALETTE{ MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_BEGIN = MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_END, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_0 = MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_BEGIN, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_1, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_2, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_3, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_4, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_5, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_6, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_7, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_8, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_9, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_10, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_11, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_12, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_13, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_14, MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_END,} MAINMENU_DISABLE_BUTTON_PALETTE;#endif //#ifdef SUPPORT_STBtypedef enum tagMAINMENU_TITLE_REGION_PALETTE{ MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_0 = MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_1, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_2, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_3, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_4, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_5, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_6, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_7, MAINMENU_PALETTE_ENTRY_TITLE_REGION_PALETTE_8,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -