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

📄 osd3.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
            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 + -