sRect CCBButtonLook::GetClientRect(CCButton* pButton, sRect& r)
{
	float fScale = GetScale();

	int al = (int)(fScale * GETWIDTH(m_pUpBitmaps[3]));
	int au = (int)(fScale * GETHEIGHT(m_pUpBitmaps[7]));
	int ar = (int)(fScale * GETWIDTH(m_pUpBitmaps[5]));
	int ab = (int)(fScale * GETHEIGHT(m_pUpBitmaps[1]));
	return sRect(r.x+al, r.y+au, r.w-(al+ar), r.h-(au+ab));
}
示例#2
0
MRECT MBEditLook::GetClientRect(MEdit* pEdit, MRECT& r)
{
	if( m_bCustomLook )
	{
		return MRECT(r.x+1, r.y+1, r.w-2, r.h-2);
	}
	int al = GETWIDTH(m_pFrameBitmaps[3]);
	int au = GETHEIGHT(m_pFrameBitmaps[7]);
	int ar = GETWIDTH(m_pFrameBitmaps[5]);
	int ab = GETHEIGHT(m_pFrameBitmaps[1]);
	return MRECT(r.x+al, r.y+au, r.w-(al+ar), r.h-(au+ab));
}
示例#3
0
MRECT MBTabCtrlLook::GetClientRect(MTabCtrl* pTabCtrl, MRECT& r)
{
    int al = GETWIDTH(m_pFrameBitmaps[3]);
    int au = GETHEIGHT(m_pFrameBitmaps[7]);
    int ar = GETWIDTH(m_pFrameBitmaps[5]);
    int ab = GETHEIGHT(m_pFrameBitmaps[1]);

    int nWidth = r.w-(al+ar);

    const int nMargin = 2;

    return MRECT(r.x+al + nMargin, r.y+au + nMargin, nWidth -nMargin*2, r.h-(au+ab) -nMargin*2);
}
示例#4
0
MRECT MBTextAreaLook::GetClientRect(MTextArea* pTextArea, MRECT& r)
{
	int al = GETWIDTH(m_pFrameBitmaps[3]);
	int au = GETHEIGHT(m_pFrameBitmaps[7]);
	int ar = GETWIDTH(m_pFrameBitmaps[5]);
	int ab = GETHEIGHT(m_pFrameBitmaps[1]);

	int nWidth = r.w-(al+ar);
	if(pTextArea->IsScrollBarVisible()) 
		nWidth-=pTextArea->GetScrollBarWidth();

	const int nMargin = 2;

	return MRECT(r.x+al + nMargin, r.y+au + nMargin, nWidth -nMargin*2, r.h-(au+ab) -nMargin*2);
}
void DrawBitmapFrameH3(CCDrawContext* pDC, sRect& r, CCBitmap* Bms[3])
{
	//if(IsNull(Bms, 3)==true) return;

	// 0 1 2

	// Left
	pDC->SetBitmap(Bms[0]);
	pDC->Draw(r.x, r.y);

	// Body
	int bw = r.w-GETWIDTH(Bms[0])-GETWIDTH(Bms[2]);
	int iw = GETWIDTH(Bms[1]);
	int c = bw / iw;
	pDC->SetBitmap(Bms[1]);
	for(int i=0; i<c; i++){
		pDC->Draw(r.x+GETWIDTH(Bms[0])+i*iw, r.y);
	}
	if((bw%iw)>0){
		pDC->Draw(r.x+r.w-GETWIDTH(Bms[1])-GETWIDTH(Bms[2]), r.y);
	}

	// Right
	pDC->SetBitmap(Bms[2]);
	pDC->Draw(r.x+r.w-GETWIDTH(Bms[2]), r.y);
}
void DrawBitmapFrameCustom1( CCDrawContext* pDC, sRect& r, CCBitmap* Bms[9], bool bStretch /* = true  */ )
{
	int upperFrame[2];
	upperFrame[0] = GETWIDTH(Bms[7]);
	upperFrame[1] = GETHEIGHT(Bms[7]);

//    pDC->SetOpacity(255);

	// Fill Frame innerSpace
	pDC->SetColor( 19,19,19,255);
	pDC->FillRectangle( r.x + FRAME_OUTLINE_WIDTH, r.y+FRAME_OUTLINE_WIDTH, r.w - 2*FRAME_OUTLINE_WIDTH, r.h - 2*FRAME_OUTLINE_WIDTH);

	//Draw Gradiation
	HLineBitmap(pDC, r.x+FRAME_OUTLINE_WIDTH+FRAME_WIDTH, r.y+FRAME_OUTLINE_WIDTH+upperFrame[1], r.w-2*FRAME_OUTLINE_WIDTH-2*FRAME_WIDTH, Bms[4], false);
 
	//Fill Frame OutLine...
  	pDC->SetColor(10,10,10,255);
	//pDC->FillRectangle( r.x, r.y, r.w, r.h );
	pDC->FillRectangle( r.x, r.y, r.w, FRAME_OUTLINE_WIDTH );
	pDC->FillRectangle( r.x, r.y, FRAME_OUTLINE_WIDTH, r.h );
	pDC->FillRectangle( r.x + r.w - FRAME_OUTLINE_WIDTH, r.y, FRAME_OUTLINE_WIDTH, r.h );
	pDC->FillRectangle( r.x, r.y + r.h - FRAME_OUTLINE_WIDTH, r.w, FRAME_OUTLINE_WIDTH );

//	//Draw Frame
  	HLineBitmap(pDC, r.x+FRAME_OUTLINE_WIDTH, r.y+FRAME_OUTLINE_WIDTH, r.w-2*FRAME_OUTLINE_WIDTH, Bms[7], bStretch);
//	
 	pDC->SetColor(61,61,61,255);
	pDC->FillRectangle( r.x+FRAME_OUTLINE_WIDTH, r.y+FRAME_OUTLINE_WIDTH+upperFrame[1], FRAME_WIDTH, r.h-(upperFrame[1]+FRAME_OUTLINE_WIDTH*2) );
  	pDC->FillRectangle( r.x + r.w - FRAME_OUTLINE_WIDTH-FRAME_WIDTH, r.y+upperFrame[1]+FRAME_OUTLINE_WIDTH, FRAME_WIDTH, r.h-(upperFrame[1]+FRAME_OUTLINE_WIDTH*2));
	pDC->FillRectangle( r.x+FRAME_OUTLINE_WIDTH+FRAME_WIDTH, r.y + r.h - FRAME_OUTLINE_WIDTH-FRAME_WIDTH, r.w-2*FRAME_OUTLINE_WIDTH-2*FRAME_WIDTH, FRAME_WIDTH );
//

	// Draw inOutline
  	pDC->SetColor( 0,0,0,255);
	pDC->FillRectangle( r.x + FRAME_OUTLINE_WIDTH + FRAME_WIDTH, r.y+FRAME_OUTLINE_WIDTH + upperFrame[1], r.w - 2*FRAME_OUTLINE_WIDTH - 2*FRAME_WIDTH, FRAME_INLINE_WIDTH);
	pDC->FillRectangle( r.x + FRAME_OUTLINE_WIDTH + FRAME_WIDTH, r.y+r.h - FRAME_OUTLINE_WIDTH -FRAME_WIDTH - FRAME_INLINE_WIDTH, r.w - 2*FRAME_OUTLINE_WIDTH - 2*FRAME_WIDTH, FRAME_INLINE_WIDTH);
	pDC->FillRectangle( r.x + FRAME_OUTLINE_WIDTH + FRAME_WIDTH,r.y+FRAME_OUTLINE_WIDTH + upperFrame[1], FRAME_INLINE_WIDTH, r.h-upperFrame[1]-2*FRAME_OUTLINE_WIDTH-FRAME_WIDTH);
	pDC->FillRectangle( r.x + r.w - FRAME_OUTLINE_WIDTH - FRAME_WIDTH-FRAME_INLINE_WIDTH,
		r.y+FRAME_OUTLINE_WIDTH + upperFrame[1]+FRAME_INLINE_WIDTH, 
		FRAME_INLINE_WIDTH, 
		r.h-upperFrame[1]-4*FRAME_OUTLINE_WIDTH-FRAME_WIDTH);	
}
void DrawBitmapFrame9(CCDrawContext* pDC, sRect& r, CCBitmap* Bms[9],bool bStretch,float fScale)
{
	//if(IsNull(Bms, 9)==true) return;

	/*
	6 7 8
	3 4 5
	0 1 2
	*/

	int add_h = 0;//버튼이 너무 작아졌을때 뭉개지는것 우선 땜질~

	//if(button && (r.h < 24)) add_h = 1;

	int bmw[9] = {0,};
	int bmh[9] = {0,};
	int dtw[9] = {0,};		// scale 이 감안된 크기
	int dth[9] = {0,};
	for(int i=0; i<9; i++){
		 bmw[i] = GETWIDTH(Bms[i]);
		 bmh[i] = GETHEIGHT(Bms[i]);
		 dtw[i] = (int)(fScale * bmw[i]);
		 dth[i] = (int)(fScale * bmh[i]);
	}

	// Body(4)
	pDC->SetBitmap(Bms[4]);

	int bdw = dtw[4];
	int bdh = dth[4];
	int sx = min(min(dtw[3], dtw[0]), dtw[6]);
	int sy = min(min(dth[7], dth[6]), dth[8]);
	int ex = min(min(dtw[5], dtw[8]), dtw[2]);
	int ey = min(min(dth[1], dth[0]), dth[2]);
	int bw = r.w-sx-ex;
	int bh = r.h-sy-ey;
	int wc = 0;
	if(bdw>0) wc = bw/bdw;
	int hc = 0;
	if(bdh>0) hc = bh/bdh;
	/*
	if(bw%bdw!=0) wc += 1;
	if(bh%bdh!=0) hc += 1;
	*/

	if (!bStretch)
	{
		for(int y=0; y<hc; y++){
			for(int x=0; x<wc; x++){
				pDC->Draw(r.x+sx+x*bdw, r.y+sy+y*bdh , bdw, bdh);
			}
		}
		// Bms[4] 크기로는 모자른 부분을 짤라서 맞춰 찍음
		if(bdw>0 && (bw%bdw)>0){
			for(int y=0; y<hc; y++){
				//pDC->Draw(r.x+sx+bw-bdw, r.y+sy+y*bdh, true);
				pDC->Draw(r.x+sx+wc*bdw, r.y+sy+y*bdh, bw%bdw, bdh, 0, 0, bw%bdw, bdh);
			}
		}
		if(bdh>0 && (bh%bdh)>0){
			for(int x=0; x<wc; x++){
				//pDC->Draw(r.x+sx+x*bdw, r.y+sy+bh-bdh, true);
				pDC->Draw(r.x+sx+x*bdw, r.y+sy+hc*bdh, bdw, bh%bdh, 0, 0, bdw, bh%bdh);
			}
		}
		//모서리
		if(bdw>0 && bdh>0 && (bw%bdw)>0 && (bh%bdh)>0){
			pDC->Draw(r.x+sx+wc*bdw, r.y+sy+hc*bdh, bw%bdw, bh%bdh, 0, 0, bw%bdw, bh%bdh);
			//pDC->Draw(r.x+sx+bw-bdw, r.y+sy+bh-bdh, true);
		}
	}
	else
	{
		sRect rcClient = sRect(sx, sy, bw, bh);
		pDC->Draw(rcClient);
	}

	// Upper
	int uw = r.w - (dtw[6]+dtw[8]);
	HLineBitmap(pDC, r.x+dtw[6], r.y, uw, Bms[7], bStretch, fScale);

	// Bottom
	int dw = r.w - (dtw[0]+dtw[2]);
	HLineBitmap(pDC, r.x+dtw[0], r.y+r.h-dth[1], dw, Bms[1], bStretch, fScale);


	// Left
	int lh = r.h - (dth[0]+dth[6]);
	VLineBitmap(pDC, r.x, r.y+dth[6]+add_h, lh, Bms[3], bStretch, fScale);
	
	// Right
	int rh = r.h - (dth[2]+dth[8]);
	VLineBitmap(pDC, r.x+r.w-dtw[5], r.y+dth[8]+add_h, rh, Bms[5], bStretch, fScale);


	// 6
	pDC->SetBitmap(Bms[6]);
	pDC->Draw(r.x, r.y, dtw[6], dth[6]);

	// 8
	pDC->SetBitmap(Bms[8]);
	pDC->Draw(r.x+r.w-dtw[8], r.y, dtw[8], dth[8]);

	// 0
	pDC->SetBitmap(Bms[0]);
	pDC->Draw(r.x, r.y+r.h-dth[0], dtw[0], dth[0]);

	// 2
	pDC->SetBitmap(Bms[2]);
	pDC->Draw(r.x+r.w-dtw[2], r.y+r.h-dth[2], dtw[2], dth[2]);
}