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

📄 setupshow.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
#include <comsub.h>
#include <gui.h>
#include <setupdefine.h>
#include "..\fileopenmenu\GUIControl.h"
#include "setupshow.h"


#if ( _SETUP_MODE==_SETUP_MENU_Enable )


/**  internal usage */
typedef struct
{
    BYTE massIndex[8];/*!< unknown */
    WORD strID;/*!< unknown */
}
MassStr_S, *pMassStr_S;

const MassStr_S Help_Prev={{0xe0,0x15,0x00,0x20 ,0x00,0x00},RS_SETUP_HELP_PREVIOUS};
const MassStr_S Help_Select = {{0xe0,0x16,0x00,0x20 ,0x00,0x00},RS_SETUP_HELP_SELECT};
const MassStr_S Help_SpeakerSelect = {{0xe0,0x15,0xe0,0x16,0x00,0x20 ,0x00,0x00},RS_SETUP_HELP_SELECT};
const MassStr_S Help_Enter = {{0xe0,0x13,0x00,0x20,0x00,0x00},RS_SETUP_HELP_ENTER};
const MassStr_S Help_Move = {{0xe0,0x19,0x00,0x20,0x00,0x00},RS_SETUP_HELP_MOVE};
const MassStr_S Help_Cancel = {{0xe0,0x15,0x00,0x20,0x00,0x00},RS_SETUP_HELP_CANCLE};
const MassStr_S Help_Del = {{0xe0,0x15,0x00,0x20,0x00,0x00},RS_SETUP_HELP_DELETE};
const MassStr_S Help_Clear = {{0xe0,0x2b,0x00,0x20,0x00,0x20,0x00,0x00},RS_SETUP_HELP_CLEAR_PW};
const MassStr_S Help_Input={{0xe0,0x14,0x00,0x20,0x00,0x00},RS_GUI_INPUT};
const MassStr_S Help_Return ={{0xe0,0x1b,0x00,0x20,0x00,0x00},RS_SETUP_HELP_RETURN};

const pMassStr_S pMS_Setup_Help[8][4] =

    {
        {&Help_Move,&Help_Select},
        {&Help_Prev,&Help_Move,&Help_Select},
        {&Help_Prev,&Help_Move,&Help_Enter},
        {&Help_Prev,&Help_Enter},
        {&Help_SpeakerSelect,&Help_Move,&Help_Enter,&Help_Return},
        {&Help_Clear,&Help_Del,&Help_Input},
        {&Help_Cancel,&Help_Input},
        {&Help_Clear,&Help_Del,&Help_Enter},
        //{&Help_Prev,&Help_Move,&Help_Enter,&Help_Clear},

    };

#if (_SETUP_51SPEAKER_MODE == _SETUP_51SPEAKER_ENABLE_)
/** internal usage */
typedef struct
{
    WORD ImgID[3];/*!< unknown */
    WORD x;/*!< unknown */
    WORD y;/*!< unknown */
    WORD width;/*!< unknown */
    WORD high;/*!< unknown */
}
SpeakerImg_S, *pSpeakerImg_S;

const SpeakerImg_S SetupSPKImg[8] =
    {
//16 vs 256 by Joey on Apr.16
	#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
		{{IM_SU_SPKR_FRONT_L_NONE,IM_SU_SPKR_FRONT_L_LG,IM_SU_SPKR_FRONT_L_LG},418,200,36,73},
        {{IM_SU_SPKR_FRONT_R_NONE,IM_SU_SPKR_FRONT_R_LG,IM_SU_SPKR_FRONT_R_LG},554,200,36,73},
        {{IM_SU_SPKR_CENTER_NONE,IM_SU_SPKR_CENTER_LG,IM_SU_SPKR_CENTER_LG},486,236,34,18},
        {{IM_SU_SPKR_REAR_L_NONE,IM_SU_SPKR_REAR_L_LG,IM_SU_SPKR_REAR_L_LG},430,318,36,59},
        {{IM_SU_SPKR_REAR_R_NONE,IM_SU_SPKR_REAR_R_LG,IM_SU_SPKR_REAR_R_LG},542,318,36,59},
        {{IM_SU_SPKR_WOOPER_NONE,IM_SU_SPKR_WOOPER,IM_SU_SPKR_WOOPER},528,230,22,24},
        {{IM_SU_SPKR_MAN,0,0},476,290,52,48},
        {{IM_SU_SPKR_TV,0,0},460,184,88,44},
	#else
        {{IM_SU_SPKR_FRONT_L_NONE,IM_SU_SPKR_FRONT_L_LG,IM_SU_SPKR_FRONT_L_LG},418,200,36,73},
        {{IM_SU_SPKR_FRONT_R_NONE,IM_SU_SPKR_FRONT_R_LG,IM_SU_SPKR_FRONT_R_LG},554,200,36,73},
        {{IM_SU_SPKR_CENTER_NONE,IM_SU_SPKR_CENTER_LG,IM_SU_SPKR_CENTER_LG},486,236,34,18},
        {{IM_SU_SPKR_REAR_L_NONE,IM_SU_SPKR_REAR_L_LG,IM_SU_SPKR_REAR_L_LG},430,318,36,59},
        {{IM_SU_SPKR_REAR_R_NONE,IM_SU_SPKR_REAR_R_LG,IM_SU_SPKR_REAR_R_LG},542,318,36,59},
        {{IM_SU_SPKR_WOOPER_NONE,IM_SU_SPKR_WOOPER,IM_SU_SPKR_WOOPER},528,230,22,24},
        {{IM_SU_SPKR_MAN,0,0},476,290,52,48},
        {{IM_SU_SPKR_TV,0,0},460,184,88,44},
	#endif 
    };
#endif
void SetupDraw3DFloatBox(WORD x,WORD y,WORD width,WORD high);

void ShowSPMenuFrame();


static void SetupShowLogo();
static BYTE LastChoiceID /* from zero start */;
static BYTE FirstChoiceID;
static BYTE ItemID;/* the aligned item id */
static HDC hdc;
static HDC setupHDC;
static DEVMODE setupDevMode;
void DCOp(DCOP op)
{
    RECT rect;
    if (op == DC_ON)
    {
        GUI_SetDevMode(&setupDevMode,720,480);
        GUI_InitializeDC(&setupHDC,&setupDevMode,0.7);
    }
    else
    {
        GUI_TerminizeDC(&setupHDC);
    }
}

static void SetupShowLogo()
{}

void ShowBGFrame()
{
	RECT titlebg_top_rec,titlebg_side_rec;
	RECT frame_rec,contentrect;
	COLORREF bgcolor;
	HBRUSH	hbr;

	SetRect(&titlebg_top_rec,TITLEBG_TOP_STARTX,TITLEBG_TOP_STARTY,TITLEBG_TOP_STARTX+TITLEBG_TOP_WIDTH,TITLEBG_TOP_STARTY+TITLEBG_TOP_HIGH);
	bgcolor = GetColorInDef256Palette(TITLEBG_TOP_COLOR);
	GUI_CreateButtonControl2(setupHDC,&titlebg_top_rec,bgcolor,bgcolor,bgcolor,bgcolor,NULL,0,DT_OPAQUE,0);

	SetRect(&titlebg_side_rec,TITLEBG_SIDE_STARTX,TITLEBG_SIDE_STARTY,TITLEBG_SIDE_STARTX+TITLEBG_SIDE_WIDTH,TITLEBG_SIDE_STARTY+TITLEBG_SIDE_HIGH);
	bgcolor = GetColorInDef256Palette(TITLEBG_SIDE_COLOR);
	GUI_CreateButtonControl2(setupHDC,&titlebg_side_rec,bgcolor,bgcolor,bgcolor,bgcolor,NULL,0,DT_OPAQUE,0);

	SetRect(&frame_rec,ITEMCHOICE_MENUFRAME_TOP_X,ITEMCHOICE_MENUFRAME_TOP_Y,ITEMCHOICE_MENUFRAME_TOP_X+ITEMCHOICE_MENUFRAME_TOP_WIDTH,ITEMCHOICE_MENUFRAME_TOP_Y+ITEMCHOICE_MENUFRAME_TOP_HIGH);
	bgcolor = GetColorInDef256Palette(255);
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_UP, 0, 0);
#else
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_UP, 0, 0);
#endif
	SetRect(&frame_rec,ITEMCHOICE_MENUFRAME_MID_X,ITEMCHOICE_MENUFRAME_MID_Y,ITEMCHOICE_MENUFRAME_MID_X+ITEMCHOICE_MENUFRAME_MID_WIDTH,ITEMCHOICE_MENUFRAME_MID_Y+ITEMCHOICE_MENUFRAME_MID_HIGH);
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_MIDDLE, 0, 0);
#else
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_MIDDLE, 0, 0);
#endif

	SetRect(&frame_rec,ITEMCHOICE_MENUFRAME_DOWN_X,ITEMCHOICE_MENUFRAME_DOWN_Y,ITEMCHOICE_MENUFRAME_DOWN_X+ITEMCHOICE_MENUFRAME_DOWN_WIDTH,ITEMCHOICE_MENUFRAME_DOWN_Y+ITEMCHOICE_MENUFRAME_DOWN_HIGH);
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_DOWN, 0, 0);
#else
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_DOWN, 0, 0);
#endif

	SetRect(&frame_rec,ITEMCHOICE_MENUFRAME_LEFT_X,ITEMCHOICE_MENUFRAME_LEFT_Y,ITEMCHOICE_MENUFRAME_LEFT_X+ITEMCHOICE_MENUFRAME_LEFT_WIDTH,ITEMCHOICE_MENUFRAME_LEFT_Y+ITEMCHOICE_MENUFRAME_LEFT_HIGH);
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_LEFT, 0, 0);
#else
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_LEFT, 0, 0);
#endif

	SetRect(&frame_rec,ITEMCHOICE_MENUFRAME_RIGHT_X,ITEMCHOICE_MENUFRAME_RIGHT_Y,ITEMCHOICE_MENUFRAME_RIGHT_X+ITEMCHOICE_MENUFRAME_RIGHT_WIDTH,ITEMCHOICE_MENUFRAME_RIGHT_Y+ITEMCHOICE_MENUFRAME_RIGHT_HIGH);
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_RIGHT, 0, 0);
#else
	GUI_CreateBitmapControl(setupHDC, &frame_rec, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE,IM_MAIN_CONTENTS_BACK_RIGHT, 0, 0);
#endif
	SetRect(&contentrect, ITEMCHOICE_CONTENT_STARTX, ITEMCHOICE_CONTENT_STARTY,
			ITEMCHOICE_CONTENT_STARTX+ITEMCHOICE_CONTENT_WIDTH, ITEMCHOICE_CONTENT_STARTY+ITEMCHOICE_CONTENT_HIGH);
    	hbr = CreateSolidBrush(GetColorInDef256Palette(ITEMCHOICE_BG_COLOR));
    	FillRect(setupHDC,&contentrect,hbr);
    	DeleteObject((HGDIOBJ)hbr);

}

//static RECT TitleRect={TITLE_TOP,TITLE_LEFT,200,80};

/*added by xianzhong to down size.   Aug.4.2004*/
void _SetColorMode(BYTE bkcolor, BYTE txtcolor, BOOL bMode, int ModeType)
{
    if(bMode) SetBkMode(setupHDC,ModeType);
    SetTextColor(setupHDC,GetColorInDef256Palette(txtcolor));
    SetBkColor(setupHDC, GetColorInDef256Palette(bkcolor));
}

/*added by xianzhong to down size.   Aug.4.2004*/
void _CommonshowTitle(UINT uID)
{
    BYTE Str[STR_LEN] ;
    RECT rect;
    int count, i;
    SetRect(&rect,
            TITLE_STARTX,
            TITLE_STARTY,
            TITLE_STARTX + TITLE_WIDTH,
            TITLE_STARTY + TITLE_HIGH
           );

    count = LoadText(uID, Str, STR_LEN);
    /*modify by xianzhong to down size.   Aug.4.2004*/
    _SetColorMode(TITLEBG_SIDE_COLOR, TITLE_TEXT_ON_COLOR, TRUE, OPAQUE);
    #if 0
    SetBkMode(setupHDC,OPAQUE);
    SetTextColor(setupHDC,GetColorInDef256Palette(TITLE_TEXT_ON_COLOR));
    SetBkColor(setupHDC, GetColorInDef256Palette(TITLEBG_SIDE_COLOR));
    #endif
    DrawText(setupHDC,Str,count, &rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
}
void ShowTitle(pPAGE_S p)
{/*modify by xianzhong to down size.   Aug.4.2004*/
   _CommonshowTitle(p->wLableID);
   #if 0
    BYTE Str[STR_LEN] ;
    RECT rect;
    int count, i;
    SetRect(&rect,
            TITLE_STARTX,
            TITLE_STARTY,
            TITLE_STARTX + TITLE_WIDTH,
            TITLE_STARTY + TITLE_HIGH
           );

    count = LoadText(p->wLableID, Str, STR_LEN);
    SetBkMode(setupHDC,OPAQUE);
    SetTextColor(setupHDC,GetColorInDef256Palette(TITLE_TEXT_ON_COLOR));
    SetBkColor(setupHDC, GetColorInDef256Palette(TITLEBG_SIDE_COLOR));
    DrawText(setupHDC,Str,count, &rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
#endif
}

void ShowTitle_Left(pPAGE_S p)
{/*modify by xianzhong to down size.   Aug.4.2004*/
    _CommonshowTitle(RS_SETUP_AUDIO_51CHANNEL_SETUP);
    #if 0
    BYTE Str[STR_LEN] ;
    RECT rect;
    int count;
    SetRect(&rect,
            TITLE_STARTX,
            TITLE_STARTY,
            TITLE_STARTX + TITLE_WIDTH,
            TITLE_STARTY + TITLE_HIGH
           );
    count = LoadText(RS_SETUP_AUDIO_SPEAKER_SETUP, Str, STR_LEN);
    SetBkMode(setupHDC,OPAQUE);
    SetTextColor(setupHDC,GetColorInDef256Palette(TITLE_TEXT_ON_COLOR));
    SetBkColor(setupHDC, GetColorInDef256Palette(TITLEBG_SIDE_COLOR));
    DrawText(setupHDC,Str,count, &rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_LEFT);
#endif
}

static RECT SubMenuRect = {100,100,200,200};
static RECT SubRect = {100,100,300,130};
void ShowSubMenu(pPAGE_S p)
{
    BYTE Str[STR_LEN] = {0xe0,0x4d,0x00,0x20,0x00,0x00};
    HBRUSH hbr;
    RECT rect;
    HBITMAP hbmp;
    int count, i;
    LPBYTE curpara;
    BYTE curchoice;
    COLORREF color;
    BYTE tmpStr [10]={0x00,0x2a,0x00,0x2a,0x00,0x2a,0x00,0x2a,0x00,0x00};

    ShowItems(p);

    hbr = CreateSolidBrush(GetColorInDef256Palette(ITEMCHOICE_BG_COLOR));
    SetRect(&rect,
            CHOICE_MENU_STARTX,
            CHOICE_CONTENT_STARTY,
            CHOICE_MENU_STARTX + CHOICE_MENU_WIDTH,
            CHOICE_CONTENT_STARTY + CHOICE_MENU_HIGH-3);
    FillRect(setupHDC,&rect,hbr);
    DeleteObject((HGDIOBJ)hbr);

    for (i = 0; i<7; i++)
    {
        SetRect(&rect,
       		CHOICE_CONTENT_STARTX,
            		CHOICE_CONTENT_STARTY+i*CHOICE_CONTENT_HIGH,
            		CHOICE_CONTENT_STARTX + CHOICE_CONTENT_WIDTH,
            		CHOICE_CONTENT_STARTY+(i+1)*CHOICE_CONTENT_HIGH);
        if(i<(p->bItemNums))
        {
	        curchoice = GetCurChoice(p->SetupItems[i]);

	        if(curchoice == PWD_CHOICE_STAR)
	        {
	            Str[4] = Str[5] = 0x00;
	            UNStringCat(Str,tmpStr);
	        }
	        else if(curchoice == COUNTRYCODE_CHOICE)
	        {
	            Str[4]=Str[6]=Str[8]=Str[9]=0x00;
	            Str[5] = p->SetupItems[i]->CurPara[0];
	            Str[7] = p->SetupItems[i]->CurPara[1];
	        }
	        else
	        {
	            count = LoadText((p->SetupItems[i]->wItemChoiceIDs)[curchoice],
	                             &(Str[4]), STR_LEN);
	            Str[4+count-1]=0x00;
	            Str[4+count]=0x00;
	        }
	        if ((((p->SetupItems[i])->bObjectType) & 0x80) == 0x80)
	        {
	        	GUI_CreateButtonControl2(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, GetColorInDef256Palette(ITEMCHOICE_TEXT_GRAY_COLOR),Str, UNICODE_STRING, DT_LEFT, 0);
	        }
	        else
	        {
	        	GUI_CreateButtonControl2(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, GetColorInDef256Palette(ITEMCHOICE_TEXT_COLOR),Str, UNICODE_STRING, DT_LEFT, 0);
	        
	        }
        }
        //else
	 //{
	 //  	hbr = CreateSolidBrush(GetColorInDef256Palette(ITEMCHOICE_BG_COLOR));
	//       FillRect(setupHDC,&rect,hbr);
	//       DeleteObject((HGDIOBJ)hbr);

        //}
       
    }
    //only change
    //ShowCountryCode((p->SetupItems)[0],0);
    //ShowWarning(ON,CONFIRM_OK);
    //ShowWarning(SWITCH,CONFIRM_OK);
   
}

void ShowChoiceMneu(pPAGE_S p)
{
    BYTE Str[STR_LEN];
    RECT rect;
    int count, i;
    LPBYTE curpara;
    BYTE curchoice;
    COLORREF color;
    BYTE tmpStr [10]={0x00,0x2a,0x00,0x2a,0x00,0x2a,0x00,0x2a,0x00,0x00};
/*modify by xianzhong to down size.   Aug.4.2004*/
    _SetColorMode(ITEM_TEXT_BK_NORMAL, ITEM_TEXT_NORMAL, FALSE, 0);
    #if 0
    SetTextColor(hdc, GetColorInDef256Palette(ITEM_TEXT_NORMAL));
    SetBkColor(hdc, GetColorInDef256Palette(ITEM_TEXT_BK_NORMAL));
#endif
    SetRect(&rect,
            ITEM_STARTX,
            ITEM_STARTY,
            ITEM_STARTX + ITEM_WIDTH,
            ITEM_STARTY + ITEM_HIGH );

    for (i = 0; i<(p->bItemNums); i++)
    {
        rect.left =CHOICE_STARTX+20;
        rect.right =CHOICE_STARTX+CHOICE_WIDTH;
        curchoice = GetCurChoice(p->SetupItems[i]);

        if(curchoice == PWD_CHOICE_STAR)
        {
            Str[0] = 0x00;
            Str[1] = 0x20;
            Str[2]=Str[3]=0x00;
            UNStringCat(Str,tmpStr);
        }
        else if(curchoice == COUNTRYCODE_CHOICE)
        {
            Str[0] = 0x00;
            Str[1] = 0x20;
            Str[2]=Str[4]=Str[6]=Str[7]=0x00;
            Str[3] = p->SetupItems[i]->CurPara[0];

⌨️ 快捷键说明

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