Пример #1
0
void Window_Selectable::DrawContentItem(int index, BYTE fontColor) const{
	TCHAR buf[WND_SELECTABLE_TITLELENGTH];
	WINDOWAREA tmpArea;
	int ddx=0;	// 中央揃え・右揃えの時の描画位置のずれ

	tmpArea = GetDrawArea(index);
	GetContent(buf, index);
	switch(windowFont.align){
	case 0:
		ddx = 0;
		break;
	case 1:
		ddx = (tmpArea.w - GetStrWidth(buf, strlen(buf), windowFont.hFont))/2;
		break;
	case 2:
		ddx = tmpArea.w - GetStrWidth(buf, strlen(buf), windowFont.hFont);
		break;
	}
	int color = fontColor;
	switch(color){
	case WND_SELECTABLE_COLOR_SELECTED:
		color = windowFont.color;
		break;
	case WND_SELECTABLE_COLOR_ACTIVE:
		color = windowFont.iColor;
		break;
	case WND_SELECTABLE_COLOR_INACTIVE:
		color = windowFont.nColor;
		break;
	}
	DrawStringToHandle(
		tmpArea.x+ddx, tmpArea.y, 
		buf, color,
		windowFont.hFont);
}
Пример #2
0
void Window_Selectable::DrawFocus() const{
	WINDOWAREA tmpArea;
	// フォーカスの描画
	tmpArea = GetDrawArea(select.index);
	pSkin->DrawFocusRect(
		tmpArea.x, tmpArea.y,
		tmpArea.w, tmpArea.h, count);
}
Пример #3
0
void Window_Selectable::DrawContentBack() const{
	WINDOWAREA area;
	for(int n=0; n<num; n++){
		area = GetDrawArea(n);
		pSkin->DrawContentBack(
			area.x, area.y,
			area.w, area.h,
			n
			);
	}
}
Пример #4
0
//	--------------------------------------------------------------------
//	背景を塗りつぶす関数
//	--------------------------------------------------------------------
void DrawBG()
{
    RECT screenRect;	//	描画エリアを格納する変数

    //	描画エリアを取得する
    GetDrawArea(&screenRect);

    //	背景を塗りつぶす
    DrawBox(screenRect.left,		//	X1座標
            screenRect.top,			//	Y1座標
            screenRect.right - 1,	//	X2座標 この引数は幅を指定するのではなく座標をしているので-1している。
            screenRect.bottom - 1,	//	Y2座標 この引数は幅を指定するのではなく座標をしているので-1している。
            BG_COLOR,				//	塗りつぶし色
            TRUE);					//	塗りつぶしモード(TRUEで塗りつぶし、FALSE)

    return;
}
Пример #5
0
void Window_Selectable::DrawContentItem(int index, BYTE _fontColorType) const{
	TCHAR buf[WND_SELECTABLE_TITLELENGTH];
	WINDOWAREA tmpArea;
	int ddx=0;	// 中央揃え・右揃えの時の描画位置のずれ

	tmpArea = GetDrawArea(index, false);
	GetContent(buf, index);
	switch(align){
	case 0:
		ddx = 0;
		break;
	case 1:
		ddx = (tmpArea.w - GetStrWidth(buf, strlen(buf), fontBandle.hFont))/2;
		break;
	case 2:
		ddx = tmpArea.w - GetStrWidth(buf, strlen(buf), fontBandle.hFont);
		break;
	}
	int color = 0;
	switch(_fontColorType){
	case WND_SELECTABLE_COLOR_SELECTED:
		color = GetPresetColor(presetColorIndex, COLORSET_COLOR_ACTIVE);
		break;
	case WND_SELECTABLE_COLOR_ACTIVE:
		color = GetPresetColor(presetColorIndex, COLORSET_COLOR_NORMAL);
		break;
	case WND_SELECTABLE_COLOR_INACTIVE:
		color = GetPresetColor(presetColorIndex, COLORSET_COLOR_INACTIVE);
		break;
	}

	DrawStringToHandle(
		tmpArea.x+ddx, tmpArea.y, 
		buf, color,
		fontBandle.hFont);
}
Пример #6
0
void Window_Selectable::DrawContent() const{
	TCHAR buf[WND_SELECTABLE_TITLELENGTH];
	WINDOWAREA tmpArea;
	BYTE color;
	int contentSize = 0;
	if(GetActive()){
		int cntX = frameArea.x + contentArea.x;
		int cntY = frameArea.y + contentArea.y;
		// タイトルを描画する場合
		if(content.useTitle){
			GetTitle(buf);
			DrawStringToHandle(
				cntX + GetDrawDeltaX(buf, -1, content.hTitleFont), 
				cntY, 
				buf,
				windowFont.color, content.hTitleFont);
			cntY += content.titleHeight;
		}

		// 各選択肢の描画
		contentSize = GetContentSize();
		for(int n=0; n<contentSize; n++){
			tmpArea = GetDrawArea(n);
			color = select.isActive[n] ? ((select.index == n) 
			? WND_SELECTABLE_COLOR_SELECTED : WND_SELECTABLE_COLOR_ACTIVE) 
			: WND_SELECTABLE_COLOR_INACTIVE,
			DrawContentItem(n, color);
			if(n == select.index){
				// フォーカスの描画
				pSkin->DrawFocus(
					tmpArea.x, tmpArea.y,
					tmpArea.w, tmpArea.h, count);
			}
		}
		/*
		for(int h=0; h<row; h++){
			for(int w=0; w<column; w++){
				cell = w+h*column;
				GetContent(buf, cell);
				cntX = frameArea.x + contentArea.x 
					 + (item_width+item_margin_x)*w;
				switch(windowFont.align){
				case 0:
					ddx = 0;
					break;
				case 1:
					ddx = (item_width - 
						GetDrawStringWidthToHandle(buf, strlen(buf), windowFont.hFont))/2;
					break;
				case 2:
					ddx = item_width - 
						GetDrawStringWidthToHandle(buf, strlen(buf), windowFont.hFont);
					break;
				}
				DrawStringToHandle(
					cntX+ddx, cntY, 
					buf,
					select.isActive[cell] ? ((select.index == cell) 
					? windowFont.color : windowFont.iColor) : windowFont.nColor,
					windowFont.hFont);
				if(cell == select.index){
					// フォーカスの描画
					pSkin->DrawFocus(
						cntX, cntY,
						item_width,
						windowFont.fontSize, count);
				}
			}
			cntY += windowFont.lineHeight;
		}
		*/
	}
	SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 255);
}