📄 setupshow.c
字号:
#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 + -