📄 setupshow.c
字号:
//Joey modify for unlock show bug
CleanCheckBlk();
DrawText(setupHDC,UnLockIcon,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
break;
case LOCK:
DrawText(setupHDC,LockIcon,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
break;
case NORMAL:
DrawText(setupHDC,EmptyStr,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
break;
case RATINGCHECK:
if(bCurChoice == 0)
CleanCheckBlk();
DrawText(setupHDC,CheckIcon,2,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER|DT_CENTER);
break;
}
SetRect(&rect,RATINGCHOICE_TEXT_STARTX,RATINGCHOICE_STARTY+curChoice*(RATINGCHOICE_HIGH),
RATINGCHOICE_TEXT_STARTX+RATINGCHOICE_WIDTH,RATINGCHOICE_STARTY+curChoice*(RATINGCHOICE_HIGH)+RATINGCHOICE_HIGH);
count = LoadText(p->wItemChoiceIDs[curChoice], TextStr, STR_LEN);
DrawText(setupHDC,TextStr,count,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER);
}
CHOICETYPE GetChoiceType(pITEM_S p,CHOICEID curChoice,BYTE bItemType)
{
BYTE realChoice;
realChoice = GetCurChoice(p);
if(curChoice == realChoice)
return RATINGCHECK;
else if(curChoice == 0&&curChoice<realChoice)
return NORMAL;
else if(curChoice<realChoice)
return LOCK;
else
return NORMAL;
}
static void ShowChoicesIn(pITEM_S p, CHOICEID f, CHOICEID l, ITEMID itemid, CHOICETYPE choice)
{
int i,count, interval;
BYTE Str[STR_LEN];
RECT rect;
BYTE CurChoice;
CurChoice = GetCurChoice(p);
CleanChoiceBlk();
interval = CHOICE_CONTENT_HIGH;
if((choice == CHOICE_ALIGN)&&(itemid+l>=CHOICE_NUM_MAX))
ItemID = CHOICE_NUM_MAX-(itemid+l +1-CHOICE_NUM_MAX)-1;
else
ItemID = itemid;
SetRect(&rect,
CHOICE_CONTENT_STARTX,
CHOICE_CONTENT_STARTY + ItemID*interval,
CHOICE_CONTENT_STARTX + CHOICE_CONTENT_WIDTH,
CHOICE_CONTENT_STARTY + ItemID*interval + CHOICE_CONTENT_HIGH);
if (itemid+f+CHOICE_NUM_MAX-1<l)
return;
for (i = f; i <= l; i++)
{
count = LoadText(p->wItemChoiceIDs[i], Str, STR_LEN);
_SetColorMode(CHOICE_BG_COLOR, CHOICE_TEXT_COLOR, FALSE, 0);
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
SetTextColor(setupHDC, GetColorInDef256Palette(CHOICE_TEXT_COLOR));
SetBkColor(setupHDC, GetColorInDef256Palette(CHOICE_BG_COLOR));
#endif
DrawText(setupHDC,Str,count,&rect, DT_OPAQUE|DT_SINGLELINE|DT_VCENTER);
OffsetRect(&rect, 0, interval);
}
/* unlock icon */
if (choice == UNLOCK)
{
ShowUnLock();
}
/* lock icon */
else if (choice == LOCK)
{
ShowLock(CurChoice, interval);
}
/* the chosen one */
//if (choice != UNLOCK && choice != CHOICE_ALIGN)
if (choice != UNLOCK )
ShowCheck(CurChoice, f, l, interval,HL_OFF);
#if (_SETUP_MIXCHOICE_MODE ==_SETUP_MIXCHOICE_ENABLE_)
/* show other number */
if (choice == OTHER && l == p->bRange)
ShowOtherNum(f,l,p->bRange,interval,p->CurPara,HL_OFF);
#endif
}
static void ShowCountryCode(pITEM_S p, CHOICEID f)
{
BYTE text[2];
RECT rect;
int seq[2] = {0,0};
int i;
BYTE ArrowStr[2][4] ={{0xe0,0x17,0x00,0x00},{0xe0,0x18,0x00,0x00}};
HBRUSH hbr;
UINT iBitMapID;//added by xianzhong Aug.4.2004
SetRect(&rect, COUNTRYCODE_BOX_X, COUNTRYCODE_BOX_ARROW_UP_Y,
COUNTRYCODE_BOX_X+56, COUNTRYCODE_BOX_ARROW_DOWN_Y+10);
hbr = CreateSolidBrush(GetColorInDef256Palette(CHOICE_BG_COLOR));
FillRect(setupHDC,&rect,hbr);
DeleteObject((HGDIOBJ)hbr);
for (i = 0; i <2; i++)
{
SetRect(&rect,COUNTRYCODE_BOX_X+i*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W),COUNTRYCODE_BOX_Y,
COUNTRYCODE_BOX_X+i*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W)+COUNTRYCODE_BOX_W,COUNTRYCODE_BOX_Y+COUNTRYCODE_BOX_H);
text[0]=p->wItemChoiceIDs[i];
text[1]=0x00;
if(f==i)
{
iBitMapID = IM_MAIN_COUNTRY_CODE_SELECT_BOX;
_SetColorMode(CHOICE_TEXT_HL_COLOR, CHOICE_BG_COLOR, FALSE, 0);
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_MAIN_COUNTRY_CODE_SELECT_BOX, 0, 0);
#else
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_MAIN_COUNTRY_CODE_SELECT_BOX, 0, 0);
#endif
rect.left +=2;
rect.top +=4;
rect.right -=2;
rect.bottom -=4;
_SetColorMode(CHOICE_BG_COLOR, CHOICE_TEXT_HL_COLOR, FALSE, 0);
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
SetTextColor(setupHDC,GetColorInDef256Palette(CHOICE_BG_COLOR));
SetBkColor(setupHDC,GetColorInDef256Palette(CHOICE_TEXT_HL_COLOR));
#endif
DrawText(setupHDC, UNICODE(text), 1, &rect, DT_OPAQUE|DT_CHARCLIP|DT_CENTER);
#endif
}
else
{
iBitMapID = IM_MAIN_COUNTRY_CODE_UNSELECT_BOX;
_SetColorMode(CHOICE_BG_COLOR, CHOICE_TEXT_HL_COLOR, FALSE, 0);
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_MAIN_COUNTRY_CODE_UNSELECT_BOX, 0, 0);
#else
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, IM_MAIN_COUNTRY_CODE_UNSELECT_BOX, 0, 0);
#endif
rect.left +=2;
rect.top +=4;
rect.right -=2;
rect.bottom -=4;
#if 0
SetTextColor(setupHDC,GetColorInDef256Palette(CHOICE_TEXT_HL_COLOR ));
SetBkColor(setupHDC,GetColorInDef256Palette(CHOICE_BG_COLOR));
#endif
DrawText(setupHDC, UNICODE(text), 1, &rect, DT_OPAQUE|DT_CHARCLIP|DT_CENTER);
#endif
}
/*modify by xianzhong to down size. Aug.4.2004*/
#if (_OSD_COLOR_SETUP_==_16_COLOR_SETUP_)
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, iBitMapID, 0, 0);
#else
GUI_CreateBitmapControl(setupHDC, &rect, CL_BKNOCARE, CL_BKNOCARE, CL_BKNOCARE, iBitMapID, 0, 0);
#endif
rect.left +=2;
rect.top +=4;
rect.right -=2;
rect.bottom -=4;
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
SetTextColor(setupHDC,GetColorInDef256Palette(CHOICE_BG_COLOR));
SetBkColor(setupHDC,GetColorInDef256Palette(CHOICE_TEXT_HL_COLOR));
#endif
DrawText(setupHDC, UNICODE(text), 1, &rect, DT_OPAQUE|DT_CHARCLIP|DT_CENTER);
}
/* draw up down icon */
if (f ==1||f==0)
{
SetRect(&rect,
COUNTRYCODE_BOX_X+f*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W),
COUNTRYCODE_BOX_ARROW_UP_Y,
COUNTRYCODE_BOX_X+f*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W)+COUNTRYCODE_BOX_W,
COUNTRYCODE_BOX_ARROW_UP_Y+10);
/*modify by xianzhong to down size. Aug.4.2004*/
_SetColorMode(CHOICE_BG_COLOR, CHOICE_TEXT_HL_COLOR, FALSE, 0);
#if 0/*modify by xianzhong to down size. Aug.4.2004*/
SetTextColor(setupHDC,GetColorInDef256Palette(CHOICE_TEXT_HL_COLOR ));
SetBkColor(setupHDC,GetColorInDef256Palette(CHOICE_BG_COLOR));
#endif
DrawText(setupHDC,ArrowStr[0],-1,&rect, DT_CHARCLIP|DT_SINGLELINE|DT_CENTER);
SetRect(&rect,
COUNTRYCODE_BOX_X+f*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W),
COUNTRYCODE_BOX_ARROW_DOWN_Y,
COUNTRYCODE_BOX_X+f*(COUNTRYCODE_BOX_OFF+COUNTRYCODE_BOX_W)+COUNTRYCODE_BOX_W,
COUNTRYCODE_BOX_ARROW_DOWN_Y+10);
DrawText(setupHDC,ArrowStr[1],-1,&rect, DT_CHARCLIP|DT_SINGLELINE|DT_CENTER);
}
}
#if 0
static void ShowCountryCode(pITEM_S p, CHOICEID f)
{
COLORREF ref[2][4];
BYTE text[2];
RECT rect;
int seq[2] = {0,0};
int i;
ref[0][0]=GetColorInDef256Palette(COUNTRYCODE_FACE_N);
ref[0][1]=GetColorInDef256Palette(39);//highlight color
ref[0][2]=GetColorInDef256Palette(30);//shadow color
ref[0][3]=GetColorInDef256Palette(TITLE_TEXT_NORMAL);
ref[1][0]=GetColorInDef256Palette(COUNTRYCODE_FACE_H);
ref[1][1]=GetColorInDef256Palette(155);//highlight color
ref[1][2]=GetColorInDef256Palette(163);//shadow color
ref[1][3]=GetColorInDef256Palette(30);
CleanChoiceBlk();
switch (f)
{
case 2:
{/* normal show */break;
}
case 1:
{/* hl no 1 box */seq[1]=1;
break;
}
case 0: /* hl no 2 box */
seq[0]=1;
break;
default:
return;
}
for (i = 0; i <2; i++)
{
SetRect(&rect,
COUNTRYCODE_BOX_X + i*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_Y,
COUNTRYCODE_BOX_X + COUNTRYCODE_BOX_W + i*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_Y + COUNTRYCODE_BOX_H);
Draw3DRect(hdc,&rect,ref[seq[i]][0],ref[seq[i]][1], ref[seq[i]][2],
EDGE_SUNKEN,BF_RECT | BF_MIDDLE );
SetRect(&rect,
COUNTRYCODE_BOX_TEXT_X +
i*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_TEXT_Y,
COUNTRYCODE_BOX_TEXT_X
+ COUNTRYCODE_BOX_TEXT_W + i*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_TEXT_Y + COUNTRYCODE_BOX_TEXT_H);
text[0]=p->wItemChoiceIDs[i];
text[1]=0x00;
SetTextColor(hdc, ref[seq[i]][3]);
SetBkColor(hdc, ref[seq[i]][0]);
DrawText(hdc, UNICODE(text), 1, &rect, DT_OPAQUE|DT_CHARCLIP);
}
/* draw up down icon */
if (f ==1||f==0)
{
SetRect(&rect,
COUNTRYCODE_BOX_ARROW_X
+ (f)*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_ARROW_Y,
COUNTRYCODE_BOX_ARROW_X + COUNTRYCODE_BOX_ARROW_W
+ (f)*(COUNTRYCODE_BOX_W + COUNTRYCODE_BOX_OFF),
COUNTRYCODE_BOX_ARROW_Y + COUNTRYCODE_BOX_ARROW_H_ALL);
SetTextColor(hdc,
GetColorInDef256Palette(ITEM_TEXT_HL));
SetBkColor(hdc,
GetColorInDef256Palette(29));
DrawText(hdc,Help_Move.massIndex,-1,&rect, DT_CHARCLIP|DT_SINGLELINE|DT_TOP|DT_LEFT);
}
}
#endif
void ShowChoices(pITEM_S p, ITEMID f, CHOICETYPE choice)
{
if (choice == COUNTRY_CODE)
{
CleanChoiceBlk();
ShowCountryCode(p, 2);
return;
}
FirstChoiceID = 0;
if (p->bRange -1 <= f + CHOICE_NUM_MAX -1)
{
LastChoiceID = p->bRange - 1;
}
else
{
LastChoiceID = FirstChoiceID + CHOICE_NUM_MAX -1;
}
if (choice == CHOICE_ALIGN)
{
ShowChoicesIn(p, FirstChoiceID, LastChoiceID, f, choice);
return;
}
ShowChoicesIn(p, FirstChoiceID, LastChoiceID, 0, choice);
ShowChoiceArrow(p->bRange);
}
void HighLightChoice(pITEM_S p, CHOICEID id, CHOICETYPE choice, MODETYPE mode)
{
int i,count, idx_t, idx_b, interval;
BYTE Str[STR_LEN];
RECT rect, rect2;
HBITMAP hbmp;
BYTE CheckChoice;
int pos;
interval = CHOICE_HIGH + CHOICE_DISTANCE;
CheckChoice = GetCurChoice(p);
if (choice == COUNTRY_CODE)
{
if (mode == HL_OFF)
ShowCountryCode(p,0);
else
ShowCountryCode(p,id);
return;
}
if (id > LastChoiceID)
{
LastChoiceID = id;
FirstChoiceID = LastChoiceID - CHOICE_NUM_MAX + 1;
ShowChoicesIn(p, FirstChoiceID, LastChoiceID, 0, choice);
}
else if (id < FirstChoiceID)
{
FirstChoiceID = id;
if (p->bRange-1 <= FirstChoiceID +CHOICE_NUM_MAX-1)
LastChoiceID = p->bRange-1;
else
LastChoiceID = id + CHOICE_NUM_MAX -1;
ShowChoicesIn(p, FirstChoiceID, LastChoiceID, 0, choice);
}
if (LOCK == choice)
{
ShowLock(CheckChoice, interval);
}
pos = ItemID + id - FirstChoiceID;
SetRect(&rect,
CHOICE_MENU_STARTX,
CHOICE_CONTENT_STARTY + pos * interval,
CHOICE_MENU_STARTX + CHOICE_MENU_WIDTH,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -