⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmenu.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 4 页
字号:
}//***************************************************************************//  Function    :   MAINMENU_Game_Menu_Exit//  Abstract    :   Each UI needs to offer the exit function. When user presses KEY_OPEN_CLOSE or KEY_POWER, //              :   the main menu will call the UI's exit function to exit the control.//              :   Each sub-menu can reset your control or clear some flags here.//  Arguments   :   none.//  Return      :   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************void MAINMENU_Game_Menu_Exit(BYTE bClearBackground){    //Clear UI background.#ifdef SUPPORT_POWERON_MENU    GDI_ClearRegion(0);#else    if (bClearBackground)    {        MAINMENU_ClearMainBackground();    }#endif //SUPPORT_POWERON_MENU    _bDMAINMENUGameMenu = FALSE;}//***************************************************************************//  Function    :   MAINMENU_Game_Menu_ProcessKey//  Abstract    :   When the menu is active, IR key will be sent to this menu's processing key function.//  Arguments   :   none.//  Return      :   MENU_ACTION_DONE: The key has been processed OK. If the key is invalid, it will be skipped by this function.//                  MENU_ACTION_EXIT: The menu (sub-UI) exists.//  Side Effect :   none.//  Notes       :   //***************************************************************************BYTE MAINMENU_Game_Menu_ProcessKey(BYTE bKey){    if (!_bDMAINMENUGameMenu)    {        return MENU_ACTION_DONE;    }    #ifdef SUPPORT_POWERON_MENU    switch (__bMenuState)    {#ifdef SUPPORT_GAME_MINER        case MS_GAME_MINE:        return GAME_MINE_ProcessKey(__bKey);#endif //SUPPORT_GAME_MINER       #ifdef SUPPORT_GAME_TETRIS    case MS_GAME_TETRIS:        return GAME_TETRIS_ProcessKey(__bKey);#endif //SUPPORT_GAME_TETRIS    #ifdef SUPPORT_GAME_GOMOKU    case MS_GAME_GOMOKU:        return GAME_GOMOKU_ProcessKey(__bKey);#endif#ifdef SUPPORT_GAME_SOKOBAN    case MS_GAME_SOKOBAN:        return GAME_SOKOBAN_ProcessKey(__bKey);#endif#ifdef SUPPORT_GAME_RUSHHOUR    case MS_GAME_RUSHHOUR:        return GAME_RUSHHOUR_ProcessKey(__bKey);#endif    default:        break;    }#endif //SUPPORT_POWERON_MENU    switch (bKey)    {    case KEY_UP:        if (_bMAINMENUGameCursorIndex != 0)        {            _MAINMENU_DrawButton(_bMAINMENUGameCursorIndex, MAINMENU_BUTTON_NORMAL, _bMAINMENUGameButton);            _bMAINMENUGameCursorIndex--;            _MAINMENU_DrawButton(_bMAINMENUGameCursorIndex, MAINMENU_BUTTON_HIGHLIGHT, _bMAINMENUGameButton);        }        break;    case KEY_DOWN:        if (_bMAINMENUGameCursorIndex != (MAINMENU_GAME_BUTTON_NUM-1))        {            _MAINMENU_DrawButton(_bMAINMENUGameCursorIndex, MAINMENU_BUTTON_NORMAL, _bMAINMENUGameButton);            _bMAINMENUGameCursorIndex++;            _MAINMENU_DrawButton(_bMAINMENUGameCursorIndex, MAINMENU_BUTTON_HIGHLIGHT, _bMAINMENUGameButton);        }        break;    case KEY_PLAY:    case KEY_ENTER:        _MAINMENU_Game_Menu_ProcessButton();        if(_bDMAINMENUGameMenu == FALSE) //xuli.osdgame            return MENU_ACTION_EXIT;    default:        break;    }    return MENU_ACTION_DONE;}void MAINMENU_Game_Menu_Trigger(void){#ifdef SUPPORT_POWERON_MENU    switch (__bMenuState)    {#ifdef SUPPORT_GAME_MINER        case MS_GAME_MINE:        GAME_MINE_Trigger();        break;#endif //SUPPORT_GAME_MINER       #ifdef SUPPORT_GAME_TETRIS    case MS_GAME_TETRIS:        GAME_TETRIS_Trigger();        break;#endif //SUPPORT_GAME_TETRIS    #ifdef SUPPORT_GAME_GOMOKU    case MS_GAME_GOMOKU:        break;#endif#ifdef SUPPORT_GAME_SOKOBAN    case MS_GAME_SOKOBAN:        GAME_SOKOBAN_Trigger();        break;#endif#ifdef SUPPORT_GAME_RUSHHOUR    case MS_GAME_RUSHHOUR:        break;#endif    default:        break;    }#endif //SUPPORT_POWERON_MENU}void _MAINMENU_Game_Menu_ProcessButton(void){    switch (_bMAINMENUGameCursorIndex)    {#ifdef SUPPORT_GAME_MINER        case MAINMENU_GAME_BUTTON_MINE:        __bMenuState = MS_GAME_MINE; //xuli.osdgame        break;#endif        #ifdef SUPPORT_GAME_TETRIS    case MAINMENU_GAME_BUTTON_TETRIS:        __bMenuState = MS_GAME_TETRIS; //xuli.osdgame        break;#endif    #ifdef SUPPORT_GAME_GOMOKU    case MAINMENU_GAME_BUTTON_GOMOKU:        __bMenuState = MS_GAME_GOMOKU; //xuli.osdgame        break;#endif#ifdef SUPPORT_GAME_SOKOBAN    case MAINMENU_GAME_BUTTON_SOKOBAN:        __bMenuState = MS_GAME_SOKOBAN; //xuli.osdgame        break;#endif#ifdef SUPPORT_GAME_RUSHHOUR    case MAINMENU_GAME_BUTTON_RUSHHOUR:        __bMenuState = MS_GAME_RUSHHOUR; //xuli.osdgame        break;#endif#ifndef SUPPORT_POWERON_MENU#ifdef SUPPORT_CALENDAR    case MAINMENU_GAME_BUTTON_CALENDAR:        __bMenuState = MS_CALENDAR; //xuli.osdgame            break;#endif //SUPPORT_CALENDAR#endif //SUPPORT_POWERON_MENU    case MAINMENU_GAME_BUTTON_EXIT:        MAINMENU_Game_Menu_Exit(TRUE);#ifdef SUPPORT_POWERON_MENU        //__bMenuState = MS_GAME;        POWERONMENU_BackToMainMenu();#endif //SUPPORT_POWERON_MENU        return;    default:        break;    }    MAINMENU_SubUIInitial();}void MAINMENU_Game_Menu_BackToPowerOnMenu(void){#ifdef SUPPORT_POWERON_MENU    MAINMENU_Game_Menu_Exit(TRUE);        __bMenuState = MS_GAME;    POWERONMENU_BackToMainMenu();    #endif //SUPPORT_POWERON_MENU}void MAINMENU_JumpToState(BYTE bState){    //Initialize the variables.    _bMAINMENUMode = TRUE;    __bMenuState = bState;    _bMAINMENUCursorIndex = 0;    MAINMENU_InitializeGDI(__SetupInfo.bUIStyle - MENU_SYS_PREFERENCE_UI_STYLE_BEGIN);    MAINMENU_SubUIInitial();}#endif //SUPPORT_STBvoid MAINMENU_LoadGroupPalette(BYTE bPaletteStartIndex, DWORD *dwPalette, BYTE bMixEnable){    BYTE i;    for (i = 0; i < dwPalette[0]; i++)    {		GDI_ChangePALEntry(bPaletteStartIndex+i, dwPalette[i+1], bMixEnable);    }}void MAINMENU_InitializeGDI(BYTE bUIStyle){    switch (bUIStyle)    {    case 1:        MAINMENU_LoadGroupPalette(MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN, _dwMAINMENUTitleRegionPalette2, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_HELP_BACKGROUND_PALETTE_ENTRY_BEGIN, _dwMAINMENUHelpRegionPalette2, FALSE);#ifdef SUPPORT_STB        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN, _dwMAINMENUNormalButtonPalette2, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN, _dwMAINMENUHighlightButtonPalette2, FALSE);#endif //#ifdef SUPPORT_STB        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_CONTENT_REGION, MAINMENU_PALETTE_COLOR_CONTENT_REGION_2, TRUE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_1ST, MAINMENU_PALETTE_COLOR_TITLE_STRING_1ST_2, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_2ND, MAINMENU_PALETTE_COLOR_TITLE_STRING_2ND_2, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_3RD, MAINMENU_PALETTE_COLOR_TITLE_STRING_3RD_2, FALSE);        break;    case 2:        MAINMENU_LoadGroupPalette(MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN,_dwMAINMENUTitleRegionPalette3, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_HELP_BACKGROUND_PALETTE_ENTRY_BEGIN, _dwMAINMENUHelpRegionPalette3, FALSE);#ifdef SUPPORT_STB        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN, _dwMAINMENUNormalButtonPalette3, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN, _dwMAINMENUHighlightButtonPalette3, FALSE);#endif //#ifdef SUPPORT_STB        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_CONTENT_REGION, MAINMENU_PALETTE_COLOR_CONTENT_REGION_3, TRUE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_1ST, MAINMENU_PALETTE_COLOR_TITLE_STRING_1ST_3, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_2ND, MAINMENU_PALETTE_COLOR_TITLE_STRING_2ND_3, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_3RD, MAINMENU_PALETTE_COLOR_TITLE_STRING_3RD_3, FALSE);        break;    case 3:        MAINMENU_LoadGroupPalette(MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN,_dwMAINMENUTitleRegionPalette4, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_HELP_BACKGROUND_PALETTE_ENTRY_BEGIN, _dwMAINMENUHelpRegionPalette4, FALSE);#ifdef SUPPORT_STB        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN, _dwMAINMENUNormalButtonPalette4, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN, _dwMAINMENUHighlightButtonPalette4, FALSE);#endif //#ifdef SUPPORT_STB        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_CONTENT_REGION, MAINMENU_PALETTE_COLOR_CONTENT_REGION_4, TRUE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_1ST, MAINMENU_PALETTE_COLOR_TITLE_STRING_1ST_4, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_2ND, MAINMENU_PALETTE_COLOR_TITLE_STRING_2ND_4, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_3RD, MAINMENU_PALETTE_COLOR_TITLE_STRING_3RD_4, FALSE);        break;    case 0:    default:        MAINMENU_LoadGroupPalette(MAINMENU_TITLE_BACKGROUND_PALETTE_ENTRY_BERIN,_dwMAINMENUTitleRegionPalette1, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_HELP_BACKGROUND_PALETTE_ENTRY_BEGIN, _dwMAINMENUHelpRegionPalette1, FALSE);#ifdef SUPPORT_STB        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_NORMAL_BUTTON_PALETTE_BEGIN, _dwMAINMENUNormalButtonPalette1, FALSE);        MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_HIGHLIGHT_BUTTON_PALETTE_BEGIN, _dwMAINMENUHighlightButtonPalette1, FALSE);#endif //#ifdef SUPPORT_STB        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_CONTENT_REGION, MAINMENU_PALETTE_COLOR_CONTENT_REGION_1, TRUE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_1ST, MAINMENU_PALETTE_COLOR_TITLE_STRING_1ST_1, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_2ND, MAINMENU_PALETTE_COLOR_TITLE_STRING_2ND_1, FALSE);        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_TITLE_STRING_3RD, MAINMENU_PALETTE_COLOR_TITLE_STRING_3RD_1, FALSE);        break;    }    #ifdef SUPPORT_STB    MAINMENU_LoadGroupPalette(MAINMENU_PALETTE_ENTRY_DISABLE_BUTTON_PALETTE_BEGIN, _dwMAINMENUDisableButtonPalette, FALSE);    GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_BUTTON_STRING, MAINMENU_PALETTE_COLOR_BUTTON_STRING, FALSE);#endif //#ifdef SUPPORT_STB        GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_HELP_STRING, MAINMENU_PALETTE_COLOR_HELP_STRING, FALSE);    GDI_ChangePALEntry(MAINMENU_PALETTE_ENTRY_BACKDOOR_STRING, MAINMENU_PALETTE_COLOR_BACKDOOR_STRING, FALSE);        GDI_WaitPaletteComplete();}void _MAINMENU_DrawAllUI(void){#ifdef SUPPORT_STB    BYTE bButtonIndex;#endif //SUPPORT_STB    MAINMENU_InitializeGDI(__SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN);        GDI_ClearRegion(0);    //Draw background	MAINMENU_DrawMainBackground();#ifdef SUPPORT_STB    //Draw the title    MAINMENU_DrawTitleString(aMENUMainMenu, NULL, NULL);        //Draw the buttons.    for (bButtonIndex = 0; bButtonIndex < MAINMENU_BUTTON_NUM; bButtonIndex++)    {        if (bButtonIndex == _bMAINMENUCursorIndex)        {            _MAINMENU_DrawButton(bButtonIndex, MAINMENU_BUTTON_HIGHLIGHT, _bMAINMENUButton);        }        else        {            if (((__bChooseMedia != MEDIA_SELECT_STB) && (bButtonIndex == MAINMENU_BUTTON_DVB_MENU)) ||                ((__bChooseMedia == MEDIA_SELECT_STB) && (bButtonIndex == MAINMENU_BUTTON_DVD_SETUP)))            {                _MAINMENU_DrawButton(bButtonIndex, MAINMENU_BUTTON_DISABLE, _bMAINMENUButton);            }            else            {                _MAINMENU_DrawButton(bButtonIndex, MAINMENU_BUTTON_NORMAL, _bMAINMENUButton);            }        }    }#endif //SUPPORT_STB    MAINMENU_DrawSelectionHelp(FALSE, FALSE);}void MAINMENU_DrawMainTitleBackground(BYTE bUIStyle){	PARM_RECT TitleRect;    TitleRect.bColor = MAINMENU_TITLE_REGION_HEIGHT;    TitleRect.rect.wLeft = MAINMENU_TITLE_REGION_START_X;    TitleRect.rect.wTop = MAINMENU_TITLE_REGION_START_Y;    TitleRect.rect.wRight = TitleRect.rect.wLeft+MAINMENU_TITLE_REGION_WIDTH-1;    TitleRect.rect.wBottom = TitleRect.rect.wTop+MAINMENU_TITLE_REGION_HEIGHT-1;    switch (bUIStyle)    {    case 1:        TitleRect.bShadePtr = _bMAINMENUTitlePalette2;        break;    case 2:        TitleRect.bShadePtr = _bMAINMENUTitlePalette3;        break;    case 3:        TitleRect.bShadePtr = _bMAINMENUTitlePalette4;        break;    case 0:    default:        TitleRect.bShadePtr = _bMAINMENUTitlePalette1;        GDI_FillRect(0|GDI_SHADING_OPERATION, &TitleRect);        return;    }    GDI_FillRoundRectTop(0|GDI_SHADING_OPERATION, MAINMENU_TITLE_REGION_ARC, &TitleRect);}void MAINMENU_DrawMainContentBackground(void){	PARM_RECT ContentRect;    ContentRect.bColor = MAINMENU_PALETTE_ENTRY_CONTENT_REGION;    ContentRect.rect.wLeft = MAINMENU_CONTENT_REGION_START_X;    ContentRect.rect.wTop = MAINMENU_CONTENT_REGION_START_Y;    ContentRect.rect.wRight = ContentRect.rect.wLeft+MAINMENU_CONTENT_REGION_WIDTH-1;    ContentRect.rect.wBottom = ContentRect.rect.wTop+MAINMENU_CONTENT_REGION_HEIGHT-1;    GDI_FillRect(0, &ContentRect);}void MAINMENU_DrawMainHelpBackground(BYTE bUIStyle){	PARM_RECT HelpRect;    HelpRect.bColor = MAINMENU_HELP_REGION_HEIGHT;    HelpRect.rect.wLeft = MAINMENU_HELP_REGION_START_X;    HelpRect.rect.wTop = MAINMENU_HELP_REGION_START_Y;    HelpRect.rect.wRight = HelpRect.rect.wLeft+MAINMENU_HELP_REGION_WIDTH-1;    HelpRect.rect.wBottom = HelpRect.rect.wTop+MAINMENU_HELP_REGION_HEIGHT-1;    switch (bUIStyle)    {    case 1:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -