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

📄 osddg.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 3 页
字号:
#include "winav.h"#include "ctkav.h"#include "infofilter.h"#include "osd.h"#include "gdi.h"
#include "fontindex.h" //++CoCo2.37P
#include "osdnd.h"#include "cc.h"#include "setup.h"#include "hal.h"#include "Digest.h"#include "OSDDG.h"#include "osddlg.h"
#include "notransl.h"
#ifndef NO_DIGEST#define OSDDG_MAIN_FILE
#endif
//#include "string.lan"
#include "OSDString\\strextrn.h"#ifndef NO_DIGEST//***************************************************************************//Note: The following strings will be translated. And they may be moved to other string file./*WORD aDGDlgBtnTrackDigest[] = {12, CHAR_T, CHAR_r, CHAR_a, CHAR_c, CHAR_k, CHAR_SPACE, CHAR_D, CHAR_i, CHAR_g, CHAR_e, CHAR_s, CHAR_t};WORD aDGDlgBtnDiscInterval[] = {13, CHAR_D, CHAR_i, CHAR_s, CHAR_c, CHAR_SPACE, CHAR_I, CHAR_n, CHAR_t, CHAR_e, CHAR_r, CHAR_v, CHAR_a, CHAR_l};WORD aDGPage[] = {5, CHAR_P, CHAR_a, CHAR_g, CHAR_e, CHAR_COLON};WORD aDGTitleTrackDigest[] = {12, CHAR_T, CHAR_r, CHAR_a, CHAR_c, CHAR_k, CHAR_SPACE, CHAR_D, CHAR_i, CHAR_g, CHAR_e, CHAR_s, CHAR_t};WORD aDGTitleDiscInterval[] = {13, CHAR_D, CHAR_i, CHAR_s, CHAR_c, CHAR_SPACE, CHAR_I, CHAR_n, CHAR_t, CHAR_e, CHAR_r, CHAR_v, CHAR_a, CHAR_l};WORD aDGInfoTrack[] = {6, CHAR_T, CHAR_r, CHAR_a, CHAR_c, CHAR_k, CHAR_COLON};WORD aDGBtnMenu[] = {4, CHAR_M, CHAR_e, CHAR_n, CHAR_u};WORD aDGBtnExit[] = {4, CHAR_E, CHAR_x, CHAR_i, CHAR_t};*///***************************************************************************//***************************************************************************//Note: Define the palettes for the skinDWORD _dwOSDDGDlgBackgroundColor[] = {OSDDG_PALETTE_COLOR_DLG_BACKGROUND_1, OSDDG_PALETTE_COLOR_DLG_BACKGROUND_2, OSDDG_PALETTE_COLOR_DLG_BACKGROUND_3, OSDDG_PALETTE_COLOR_DLG_BACKGROUND_4};DWORD _dwOSDDGDlgHighlightButtonColor[] = {OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_BACKGROUND_1, OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_BACKGROUND_2, OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_BACKGROUND_3, OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_BACKGROUND_4};DWORD _dwOSDDGDlgEnableButtonColor[] = {OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_BACKGROUND_1, OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_BACKGROUND_2, OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_BACKGROUND_3, OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_BACKGROUND_4};DWORD _dwOSDDGDlgFrameColor[] = {OSDDG_PALETTE_COLOR_DLG_FRAME_1, OSDDG_PALETTE_COLOR_DLG_FRAME_2, OSDDG_PALETTE_COLOR_DLG_FRAME_3, OSDDG_PALETTE_COLOR_DLG_FRAME_4};DWORD _dwOSDDGInfoRegionColor[] = {OSDDG_PALETTE_COLOR_INFO_REGION_BACKGROUND_1, OSDDG_PALETTE_COLOR_INFO_REGION_BACKGROUND_2, OSDDG_PALETTE_COLOR_INFO_REGION_BACKGROUND_3, OSDDG_PALETTE_COLOR_INFO_REGION_BACKGROUND_4};DWORD _dwOSDDGEnableButtonColor[] = {OSDDG_PALETTE_COLOR_ENABLE_BUTTON_BACKGROUND_1, OSDDG_PALETTE_COLOR_ENABLE_BUTTON_BACKGROUND_2, OSDDG_PALETTE_COLOR_ENABLE_BUTTON_BACKGROUND_3, OSDDG_PALETTE_COLOR_ENABLE_BUTTON_BACKGROUND_4};DWORD _dwOSDDGHighlightButtonColor[] = {OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_BACKGROUND_1, OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_BACKGROUND_2, OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_BACKGROUND_3, OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_BACKGROUND_4};//***************************************************************************//Declare global variables.PARM_RECT _OSDDGRect;PARM_DRAW_STRING _OSDDGStringAttr;PARM_DRAW_BITMAP _OSDDGDrawBitmap;PARM_DRAW_STRING _OSDDGStringAttr;PARM_FRAME _OSDDGFrame;BYTE _bOSDDGTemp, _bOSDDGTemp1;WORD _wOSDDGTemp, _wOSDDGTemp1;BYTE _bDGTuneFrame_H, _bDGTuneFrame_V;extern DLG_ATTRIBUTE _OSDDLGAttribute;extern WORD _wOSDDLGButtonWidth;extern PARM_RECT _OSDDLGRect;extern PARM_DRAW_STRING _OSDDLGStringAttr;extern  BYTE    __bTVType;//The following variable will be declared in Digest UI and will be removed in the future.extern DIGESTUI __DigestUIAttr;//***************************************************************************//  Function    :   OSDDG_Update//  Abstract    :   This function will be called by Digest module to draw UI.//  Arguments   :   bMessage: the message.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************void OSDDG_Update(BYTE bMessage){    switch (bMessage)    {    case OSDDG_MSG_DLG_INITIAL:        _OSDDG_DLG_Initial(FALSE);        break;    case OSDDG_MSG_CLEAR_HIGHLIGHT:        _OSDDG_UpdateHighlight(OSDDG_CLEAR);        break;    case OSDDG_MSG_UPDATE_HIGHLIGHT:        _OSDDG_UpdateHighlight(OSDDG_DRAW);        break;    case OSDDG_MSG_DLG_EXIT:        _OSDDG_DLG_UpdateBackground(OSDDG_CLEAR);        break;    case OSDDG_MSG_INITIAL:        _OSDDG_Initial();        break;    case OSDDG_MSG_DRAW_NORMAL_FRAME:        _OSDDG_DrawFrame(__DigestUIAttr.bCurFrameNo, OSDDG_FRAME_NORMAL);        break;    case OSDDG_MSG_DRAW_SELECT_FRAME:        _OSDDG_DrawFrame(__DigestUIAttr.bCurFrameNo, OSDDG_FRAME_SELECT);        break;    case OSDDG_MSG_UPDATE_FRAME_TIME:        _OSDDG_UpdteFrameInfo(__DigestUIAttr.bCurFrameNo);        break;    case OSDDG_MSG_CLEAR_ALL_FRAME:        _OSDDG_ClearFrameRegion();        break;    case OSDDG_MSG_UPDATE_UI_INFO:        _OSDDG_UpdateInfoRegion();        break;    case OSDDG_MSG_CHANGE_TV_MODE:        _OSDDG_ChangeTVMode();        break;    case OSDDG_MSG_EXIT:        _OSDDG_Exit();        break;    case OSDDG_MSG_CHANGE_PAGE:        _OSDDG_ClearPageInfoRegion();        _OSDDG_DisplayPageInfo();        break;    default:        break;    }}//***************************************************************************//  Function    :   OSDDG_Recover//  Abstract    :   This function will be called by OSD to do Digest UI's recovery//  Arguments   :   bRecoverRegion: //  Return		:   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************BYTE OSDDG_Recover(BYTE bRecoverRegion){    switch (bRecoverRegion)    {    case OSD_RECOVER_UPPER_REGION:        //Recover the "page info".        if (__DigestUIAttr.bDigestMode != DIGEST_MODE_DIALOG)        {            //Draw the title            _OSDDG_DisplayTitle();            _OSDDG_DisplayPageInfo();        }        break;    case OSD_RECOVER_BOTTOM_REGION:        if (__DigestUIAttr.bDigestMode != DIGEST_MODE_DIALOG)        {            //Recover the help string in the info. region.            _OSDDG_UpdateInfoRegion();        }        break;    case OSD_RECOVER_ALL:        //Recover all Digest UI.        _OSDDG_RecoverAll();        break;    default:        return FALSE;    }    return TRUE;}//***************************************************************************//  Function    :   OSDDG_ClearRegion//  Abstract    :   This function will be called by OSD to clear the normal upper //              :   region or normal bottom region if the UI accepts the normal display//              :   message is displayed in its UI.//  Arguments   :   bClearRegion: OSD_ND_UPPER_RIGHT_REGION/OSD_ND_BOTTOM_REGION.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************void OSDDG_ClearRegion(BYTE bClearRegion){    switch (bClearRegion)    {    case OSD_ND_UPPER_RIGHT_REGION:        //Clear the "page info." region.        _OSDDG_ClearPageInfoRegion();        break;    case OSD_ND_BOTTOM_REGION:        _OSDDG_DrawInfoRegion();        break;    default:        return;    }}//***************************************************************************//  Function    :   _OSDDG_InitializeGDI//  Abstract    :   This function will initialize GDI-relative attributes like palette.//  Arguments   :   none.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************void _OSDDG_InitializeGDI(void){    _bOSDDGTemp = __SetupInfo.bUIStyle-SETUP_CUSTOM_UI_STYLE_BEGIN;    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_BACKGROUND, _dwOSDDGDlgBackgroundColor[_bOSDDGTemp], TRUE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_ENABLE_BUTTON_BACKGROUND, _dwOSDDGDlgEnableButtonColor[_bOSDDGTemp], FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_HIGHLIGHT_BUTTON_BACKGROUND, _dwOSDDGDlgHighlightButtonColor[_bOSDDGTemp], FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_FRAME, _dwOSDDGDlgFrameColor[_bOSDDGTemp], FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_INFO_REGION_BACKGROUND, _dwOSDDGInfoRegionColor[_bOSDDGTemp], FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_ENABLE_BUTTON_BACKGROUND, _dwOSDDGEnableButtonColor[_bOSDDGTemp], FALSE); //Will be removed if use Bitmap button    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_HIGHLIGHT_BUTTON_BACKGROUND, _dwOSDDGHighlightButtonColor[_bOSDDGTemp], FALSE); //Will be removed if use Bitmap button    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_BACKGROUND, OSDDG_PALETTE_COLOR_DLG_BACKGROUND, TRUE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_TITLE_STRING, OSDDG_PALETTE_COLOR_TITLE_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_HELP_STRING, OSDDG_PALETTE_COLOR_HELP_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_ENABLE_BUTTON_STRING, OSDDG_PALETTE_COLOR_ENABLE_BUTTON_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_HIGHLIGHT_BUTTON_STRING, OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_NORMAL_FRAME_BRIGHT, OSDDG_PALETTE_COLOR_NORMAL_FRAME_BRIGHT, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_NORMAL_FRAME_DARK, OSDDG_PALETTE_COLOR_NORMAL_FRAME_DARK, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_SELECT_FRAME_BRIGHT, OSDDG_PALETTE_COLOR_SELECT_FRAME_BRIGHT, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_SELECT_FRAME_DARK, OSDDG_PALETTE_COLOR_SELECT_FRAME_DARK, FALSE);    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_ENABLE_BUTTON_BACKGROUND, OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_BACKGROUND, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_DISABLE_BUTTON_BACKGROUND, OSDDG_PALETTE_COLOR_DLG_DISABLE_BUTTON_BACKGROUND, FALSE);    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_HIGHLIGHT_BUTTON_BACKGROUND, OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_BACKGROUND, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_ENABLE_BUTTON_STRING, OSDDG_PALETTE_COLOR_DLG_ENABLE_BUTTON_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_DISABLE_BUTTON_STRING, OSDDG_PALETTE_COLOR_DLG_DISABLE_BUTTON_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_HIGHLIGHT_BUTTON_STRING, OSDDG_PALETTE_COLOR_DLG_HIGHLIGHT_BUTTON_STRING, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_FRAME_INFO_BACKGROUND, OSDDG_PALETTE_COLOR_FRAME_INFO_BACKGROUND, FALSE);    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_FRAME_INFO_STRING, OSDDG_PALETTE_COLOR_FRAME_INFO_STRING, FALSE);    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_INFO_REGION_BACKGROUND, OSDDG_PALETTE_COLOR_INFO_REGION_BACKGROUND, FALSE);    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_ENABLE_BUTTON_BACKGROUND, OSDDG_PALETTE_COLOR_ENABLE_BUTTON_BACKGROUND, FALSE); //Will be removed if use Bitmap button    //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_HIGHLIGHT_BUTTON_BACKGROUND, OSDDG_PALETTE_COLOR_HIGHLIGHT_BUTTON_BACKGROUND, FALSE); //Will be removed if use Bitmap button    GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_BUTTON_FRAME, OSDDG_PALETTE_COLOR_BUTTON_FRAME, FALSE);     //GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_DLG_FRAME, OSDDG_PALETTE_COLOR_DLG_FRAME, FALSE);     GDI_ChangePALEntry(OSDDG_PALETTE_ENTRY_INFO_REGION_FRAME, OSDDG_PALETTE_COLOR_INFO_REGION_FRAME, FALSE);     //CoCo0.95    GDI_WaitPaletteComplete();    GDI_ActivateRegion(0); //open GDI}//***************************************************************************//  Function    :   _OSDDG_DLG_Initial//  Abstract    :   This function will initialize Digest's dialog when the dialog is//              :   pop up.//  Arguments   :   bRecover: TRUE==>This function is called by the recovery routine.//              :             FALSE==>This function is called by the normal message.  //  Return		:   none.//  Side Effect :   none.//  Notes       :   //***************************************************************************void _OSDDG_DLG_Initial(BYTE bRecover){    //Clear the background    GDI_ClearRegion(0); //clear region 0    //Tell OSD that Digest UI exits.    if (!bRecover)    {        OSD_ChangeUI(OSD_UI_DIGEST, OSD_ENTER_UI);        //Initialize the attribute of the dialog box.        _OSDDLGAttribute.wWidth = _OSDDG_DLG_GetMaxButtonWidth()+(WORD)((OSDDG_DLG_BACKGROUND_BUTTON_DISTANCE_H<<1));        _OSDDLGAttribute.wHeight = _OSDDG_DLG_GetDlgHeight();        _OSDDLGAttribute.wStartH = ((OSD_PLANE_WIDTH -  _OSDDLGAttribute.wWidth) >> 1);        _OSDDLGAttribute.wStartV = ((OSD_PLANE_HEIGHT - _OSDDLGAttribute.wHeight) >> 1);    }    _OSDDG_InitializeGDI();    //Draw the dialog's background.    _OSDDG_DLG_UpdateBackground(OSDDG_DRAW);    //Draw the buttons.    for (_bOSDDGTemp = 0; _bOSDDGTemp < OSDDG_DLG_BUTTON_NUM; _bOSDDGTemp++)    {        if (_bOSDDGTemp == __DigestUIAttr.bButtonIndex) //The button is highlighted.        {            _OSDDG_DLG_DrawButton(_bOSDDGTemp, TRUE);        }        else        {            _OSDDG_DLG_DrawButton(_bOSDDGTemp, FALSE);        }    }}//*********************************************************************************************************//  Function    :   _OSDDG_DLG_GetMaxButtonWidth//  Abstract    :   This function will fill the string of the button.//  Arguments   :   none.//  Return		:   Max. button width.//  Side Effect :   none.//  Notes       :   //*********************************************************************************************************WORD _OSDDG_DLG_GetMaxButtonWidth(void){    BYTE bIndex = 0;    _wOSDDGTemp1 = 0; //Use it and max. width.    for (bIndex = 0; bIndex < OSDDG_DLG_BUTTON_NUM; bIndex++)    {        //Fill string        _OSDDG_DLG_FillButtonString(bIndex);        _wOSDDGTemp = GDI_GetStringWidth_909(__pOSDUTLOutputString);        if (_wOSDDGTemp1 < _wOSDDGTemp)            _wOSDDGTemp1 = _wOSDDGTemp;    }    _wOSDDGTemp1 += (OSDDG_DLG_BUTTON_TEXT_DISTANCE_H << 1);    return _wOSDDGTemp1;}//*********************************************************************************************************//  Function    :   _OSDDG_DLG_FillButtonString//  Abstract    :   This function will fill the string of the button.//  Arguments   :   bIndex: the index of the button.//  Return		:   none.//  Side Effect :   none.//  Notes       :   //*********************************************************************************************************void _OSDDG_DLG_FillButtonString(BYTE bIndex){    switch (bIndex)    {    case OSDDG_DLG_BUTTON_TRACK_DIGEST:        __pOSDUTLOutputString = aDGDlgBtnTrackDigest;        break;    case OSDDG_DLG_BUTTON_BUTTON_DISC_INTERVAL:        __pOSDUTLOutputString = aDGDlgBtnDiscInterval;        break;    default:        break;    }}//*********************************************************************************************************//  Function    :   _OSDDG_DLG_GetDlgHeight//  Abstract    :   This function will calculate the height of the dialog box.//  Arguments   :   none.//  Return		:   The height of the dialog box.

⌨️ 快捷键说明

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