📄 osd3.c
字号:
if (*(GET_MENU_ENABLE(_pTempMenu)+_bMENUTemp/8) & (1 << (_bMENUTemp%8))) {#ifndef REMOVE_SETUP_ICON // item is enabled, set the text color as normal color if (_bMENUTemp == __bMENUSelect[__bMENUCurrentLevel]) _wMENUTemp = BUTTON_HIGHLIGHT; else _wMENUTemp = BUTTON_NORMAL; //|BUTTON_WITH_TEXT;#else // item is enabled, set the text color as normal color if (_bMENUTemp == __bMENUSelect[__bMENUCurrentLevel]) { _wMENUTemp = OSDMENU_ENTRY_ITEM_COLOR_HIGHLIGHT; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_BLUE; } else { _wMENUTemp = OSDMENU_ENTRY_ITEM_COLOR_NORMAL; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_BLUE; }#endif } else {#ifndef REMOVE_SETUP_ICON // item is disabled, set the text color as disable color _wMENUTemp = BUTTON_DISABLED; //|BUTTON_WITH_TEXT;#else _wMENUTemp = OSDMENU_ENTRY_ITEM_COLOR_NORMAL; _MENU_StrAttr.bTextColor = OSDMENU_ENTRY_TEXT_COLOR_DISABLE; _MENU_StrAttr.bShadow1 = OSDMENU_ENTRY_DESC_TEXT_COLOR; #endif } }#ifndef REMOVE_SETUP_ICON // just for test switch(_bMENUTemp) { case 0: _wMENUString[1] = BUTTON_ID_LANGUAGE; break; case 1: _wMENUString[1] = BUTTON_ID_SCREEN; break; case 2: _wMENUString[1] = BUTTON_ID_AUDIO; break; case 3: _wMENUString[1] = BUTTON_ID_CUSTOM; break; case 4: _wMENUString[1] = BUTTON_ID_EXIT; break; }// Brian1.08a#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU // arrange the icon menu in horizontal direction here _InitRect(&(_MENU_BtnAttr.rect), GET_MENU_X(_pTempMenu)+(MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp, GET_MENU_Y(_pTempMenu), GET_MENU_X(_pTempMenu)+(MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp+MENU_ICON_WIDTH-1, GET_MENU_Y(_pTempMenu)+MENU_ICON_HEIGHT-1); _MENU_BtnAttr.bButtonId = _wMENUString[1]; _MENU_BtnAttr.bStyle = _wMENUTemp; GDI_DrawButton_909(0, &_MENU_BtnAttr);#else _InitRect(&(_MENU_BtnAttr.rect), GET_MENU_X(_pTempMenu), GET_MENU_Y(_pTempMenu) + (MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT)*_bMENUTemp, GET_MENU_X(_pTempMenu)+GET_MENU_WIDTH(_pTempMenu)-1, GET_MENU_Y(_pTempMenu)+(MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT)*_bMENUTemp+MENU_ICON_HEIGHT-1); _MENU_BtnAttr.bButtonId = _wMENUString[1]; _MENU_BtnAttr.bStyle = _wMENUTemp; GDI_DrawButton_909(0, &_MENU_BtnAttr);#endif#else //#ifndef REMOVE_SETUP_ICON _MENU_StrAttr.bBackground = _wMENUTemp;#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU _InitRect((PURECT)&(_MENU_FrameAttr), GET_MENU_X(_pTempMenu)+(MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp - 2, GET_MENU_Y(_pTempMenu) - 2, GET_MENU_X(_pTempMenu)+(MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp+MENU_ICON_WIDTH-2, GET_MENU_Y(_pTempMenu)+MENU_ICON_HEIGHT+2);#else _InitRect((PURECT)&(_MENU_FrameAttr), GET_MENU_X(_pTempMenu), GET_MENU_Y(_pTempMenu)+ (MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT+4)*_bMENUTemp, GET_MENU_X(_pTempMenu)+ GET_MENU_WIDTH(_pTempMenu)-5, GET_MENU_Y(_pTempMenu)+ (MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT+4)*_bMENUTemp + MENU_ICON_HEIGHT + 3);#endif _OSDMENU_DrawFrame(FRAME_POP); //CoCo1.20, reduce code size. switch(_bMENUTemp) { case 0: _wMENUString[1] = CHAR_SETUP_LANG1; _wMENUString[2] = CHAR_SETUP_LANG2; break; case 1: _wMENUString[1] = CHAR_SETUP_SCRN1; _wMENUString[2] = CHAR_SETUP_SCRN2; break; case 2: _wMENUString[1] = CHAR_SETUP_AUDIO1; _wMENUString[2] = CHAR_SETUP_AUDIO2; _MENU_StrAttr.bShadow2 = OSDSETUP_ENTRY_ICON_COLOR_GREEN; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; case 3: _wMENUString[1] = CHAR_SETUP_CUSTOM1; _wMENUString[2] = CHAR_SETUP_CUSTOM2; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; case 4: _wMENUString[1] = CHAR_SETUP_EXIT1; _wMENUString[2] = CHAR_SETUP_EXIT2; _MENU_StrAttr.bShadow2 = OSDSETUP_ENTRY_ICON_COLOR_RED; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; } _wMENUString[0]=2;#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU _MENU_StrAttr.wX = GET_MENU_X(_pTempMenu) + (MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp, _MENU_StrAttr.wY = GET_MENU_Y(_pTempMenu);#else _MENU_StrAttr.wX = GET_MENU_X(_pTempMenu) + MENU_BORDER_THICKNESS; _MENU_StrAttr.wY = GET_MENU_Y(_pTempMenu) + (MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT+4) * _bMENUTemp + MENU_BORDER_THICKNESS;#endif _OSDMENU_DrawString(); //CoCo1.20, reduce code size. switch(_bMENUTemp) { case 0: _wMENUString[1] = CHAR_SETUP_LANG3; _wMENUString[2] = CHAR_SETUP_LANG4; break; case 1: _wMENUString[1] = CHAR_SETUP_SCRN3; _wMENUString[2] = CHAR_SETUP_SCRN4; break; case 2: _wMENUString[1] = CHAR_SETUP_AUDIO3; _wMENUString[2] = CHAR_SETUP_AUDIO4; _MENU_StrAttr.bShadow2 = OSDSETUP_ENTRY_ICON_COLOR_GREEN; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; case 3: _wMENUString[1] = CHAR_SETUP_CUSTOM3; _wMENUString[2] = CHAR_SETUP_CUSTOM4; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; case 4: _wMENUString[1] = CHAR_SETUP_EXIT3; _wMENUString[2] = CHAR_SETUP_EXIT4; _MENU_StrAttr.bShadow2 = OSDSETUP_ENTRY_ICON_COLOR_RED; _MENU_StrAttr.bTextColor = OSDSETUP_ENTRY_ICON_COLOR_ORANGE; break; } _wMENUString[0]=2;#ifdef SUPPORT_SETUP_HORIZONTAL_ICON_MENU _MENU_StrAttr.wX = GET_MENU_X(_pTempMenu) + (MENU_ICON_X_OFFSET+MENU_ICON_WIDTH)*_bMENUTemp, _MENU_StrAttr.wY = GET_MENU_Y(_pTempMenu) + MENU_TOP_ICON_HEIGHT; #else _MENU_StrAttr.wX = GET_MENU_X(_pTempMenu) + MENU_BORDER_THICKNESS; _MENU_StrAttr.wY = GET_MENU_Y(_pTempMenu) + (MENU_ICON_Y_OFFSET+MENU_ICON_HEIGHT+4) * _bMENUTemp + MENU_BORDER_THICKNESS+25;#endif _OSDMENU_DrawString(); //CoCo1.20, reduce code size. #endif //#ifndef REMOVE_SETUP_ICON }}// *********************************************************************// Function : _DisplayMenu// Description : This function display the single menu// Arguments : bItem: the item must be displayed.// : bLevel: the level of menu, root = 0, next is 1,2,...// Global Var : _pTempMenu: The menu// Return : None // Side Effect :// *********************************************************************void _DisplayMenu(BYTE bItem, BYTE bLevel){ BYTE i;/* Alan070#ifdef OFFSCREEN_MENU if(__bCurrentRegionId == 0) GDI_SetCurrentRegion(1); else GDI_SetCurrentRegion(0); // **** // clear the scroll-up/down area first, or there may be garbage#endif*/ _bMENUTemp = GET_MENU_ITEM_NUM(_pTempMenu); _bMENUTemp2 = GET_MENU_ROW(_pTempMenu); if (_bMENUTemp2 > _bMENUTemp) _wMENUTemp = _bMENUTemp; else _wMENUTemp = _bMENUTemp2; _InitRect((PURECT)&(_MENU_FrameAttr), GET_MENU_X(_pTempMenu), GET_MENU_Y(_pTempMenu), GET_MENU_X(_pTempMenu)+GET_MENU_WIDTH(_pTempMenu)-1, GET_MENU_Y(_pTempMenu)+MENU_ITEM_HEIGHT*_wMENUTemp+MENU_BORDER_THICKNESS*2-1); _OSDMENU_DrawFrame(FRAME_POP_SOLID); //CoCo1.20, reduce code size. _MENU_StrAttr.bTextColor = OSDMENU_ENTRY_TEXT_COLOR_NORMAL; _MENU_StrAttr.bBackground = OSDMENU_ENTRY_ITEM_COLOR_NORMAL; if (bItem != 0xFF) { // first display, calculate the display range. _wMENUTemp = (_bMENUTemp2 - 1)/2; //up-half if (_wMENUTemp > bItem) bItem = 0; // display starts from the first item else bItem = bItem - _wMENUTemp; if (_bMENUTemp2+bItem > _bMENUTemp) { _wMENUTemp = _bMENUTemp2+bItem-_bMENUTemp; if (_wMENUTemp > bItem) { if (_bMENUTemp2 > _bMENUTemp) _bMENUTemp2 = _bMENUTemp; bItem = 0; // display starts from the first item } else bItem = bItem - _wMENUTemp; } __bMENUDisplayStart[bLevel] = bItem; // record the start item of the displaying area } else { // not first time, use the __bMENUDisplayStart bItem = __bMENUDisplayStart[bLevel]; } for (_bMENUTemp=bItem; (_bMENUTemp<_bMENUTemp2+bItem) && (_bMENUTemp<GET_MENU_ITEM_NUM(_pTempMenu)); _bMENUTemp++) { if (_bMENUTemp==bItem) { if (bItem != 0) { { // Draw the scroll up mark if (!(__bMENUStatus[bLevel] & 0x01)) { _InitRect((PURECT)&(_MENU_FrameAttr), GET_MENU_X(_pTempMenu), GET_MENU_Y(_pTempMenu)-MENU_SCROLL_HEIGHT, GET_MENU_X(_pTempMenu)+GET_MENU_WIDTH(_pTempMenu)-1, GET_MENU_Y(_pTempMenu)-1); _OSDMENU_DrawFrame(FRAME_POP_SOLID); //CoCo1.20, reduce code size. }#ifdef SKIP_DISABLED_ITEM // Brian1.05, set Up mark color to disable if all the "Up" items are disbaled, ie., can't scroll up if(GET_ITEM_ATTRIBUTE(_pTempMenu, _bMENUTemp) == IS_ITEM|| GET_ITEM_ATTRIBUTE(_pTempMenu, _bMENUTemp) == IS_DIALOG) { for (i=0; i<bItem; i++) { if (*(GET_MENU_ENABLE(_pTempMenu)+i/8) & (1 << (i%8))) // if enabled { break; // find a enabled item } } if (i==bItem) _MENU_StrAttr.bTextColor = OSDMENU_ENTRY_TEXT_COLOR_DISABLE; else _MENU_StrAttr.bTextColor = OSDMENU_ENTRY_TEXT_COLOR_NORMAL; } else { // it is value, just set Up mark as normal color _MENU_StrAttr.bTextColor = OSDMENU_ENTRY_TEXT_COLOR_NORMAL; }#endif _wMENUString[1] = CHAR_N_UP_16; _wMENUString[0] = 1; _MENU_StrAttr.wX = GET_MENU_X(_pTempMenu) + MENU_BORDER_THICKNESS + GET_MENU_WIDTH(_pTempMenu)/2 - 16; _MENU_StrAttr.wY = GET_MENU_Y(_pTempMenu) - MENU_SCROLL_HEIGHT + MENU_BORDER_THICKNESS; _OSDMENU_DrawString(); //CoCo1.20, reduce code size. __bMENUStatus[bLevel] |= 0x01; // set scroll-up bit } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -