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

📄 setupshow.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
			//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 + -