Пример #1
0
void MFrameDrawer::Text(MDrawContext* pDC, MRECT& r, const char* szText, MAlignmentMode am, MFDTextStyle nTextStyle, bool bHighlight)
{
    MRECT rc;
    rc = pDC->GetClipRect();
    pDC->SetClipRect(r);

    switch(nTextStyle) {
    case MFDTS_ACTIVE:
        pDC->SetColor(MCOLOR(255, 255, 255));
        if(bHighlight==true) pDC->TextWithHighlight(r, szText, am);
        else pDC->Text(r, szText, am);
        break;
    case MFDTS_DISABLE:
    {
        pDC->SetColor(MCOLOR(96, 96, 96));
        MCOLOR PrevHCol = pDC->SetHighlightColor(MCOLOR(128, 128, 128));
        if(bHighlight==true) pDC->TextWithHighlight(r, szText, am);
        else pDC->Text(r, szText, am);
        pDC->SetHighlightColor(PrevHCol);
    }
    break;
    case MFDTS_NORMAL:
    default:
        pDC->SetColor(MCOLOR(196, 196, 196));
        if(bHighlight==true) pDC->TextWithHighlight(r, szText, am);
        else pDC->Text(r, szText, am);
        break;
    }

    pDC->SetClipRect(rc);
}
Пример #2
0
void Mint::DrawIndicator(MDrawContext* pDC, MRECT& r)
{
	MFont* pFont = pDC->GetFont();
	int nFontHeight = pFont->GetHeight();

	// ÇØ´ç ¾ð¾î¿¡ µû¶ó Ç¥±â
	const char* szLanguageIndicator = GetLanguageIndicatorString();

	int nIdicatorWidth = pFont->GetWidth(szLanguageIndicator);
	MCOLOR c = pDC->GetColor();

	MRECT fr(r.x+r.w-nIdicatorWidth-4, r.y+2, nIdicatorWidth+3, r.h-4);

	if(IsNativeIME()==true){
		pDC->SetColor(MCOLOR(130,130,130));
		pDC->FillRectangle(fr);
		pDC->SetColor(MCOLOR(0, 0, 0));
		pDC->Text(r.x+r.w-nIdicatorWidth-2, r.y + (r.h-nFontHeight)/2, szLanguageIndicator);
	}
	else{
//		pDC->SetColor(MCOLOR(0, 0, 0));
//		pDC->FillRectangle(fr);
//		pDC->SetColor(MCOLOR(DEFCOLOR_NORMAL));
	}

//	pDC->Text(r.x+r.w-nIdicatorWidth-2, r.y + (r.h-nFontHeight)/2, szLanguageIndicator);
	pDC->SetColor(c);
}
Пример #3
0
bool ZSurvival::OnSurvivalPrivateRanking(MCommand* pCmd)
{
	if( 0 == pCmd ) return false;
	
	MTextArea* pWidgetRank = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_MyRank");
	MTextArea* pWidgetName = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_MyName");
	MTextArea* pWidgetPoint = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_MyRankPoint");
	if (!pWidgetRank || !pWidgetName || !pWidgetPoint) return false;

	pWidgetRank->Clear();
	pWidgetName->Clear();
	pWidgetPoint->Clear();

	unsigned int nRank, nPoint;
	pCmd->GetParameter( &nRank, 0, MPT_UINT );
	pCmd->GetParameter( &nPoint, 1, MPT_UINT );

	char szText[128];
	
	if (nRank != 0)
		sprintf(szText, "%d", nRank);
	else
		sprintf(szText, "--", nRank);
	pWidgetRank->AddText(szText, MCOLOR( 0xFFFFFFCC));

	sprintf(szText, "%d", nPoint);
	pWidgetPoint->AddText(szText, MCOLOR( 0xFFFFFFCC));

	pWidgetName->AddText(ZGetGame()->m_pMyCharacter->GetUserName(), MCOLOR( 0xFFFFFFCC));

	return true;
}
Пример #4
0
void ZVoteInterface::DrawVoteTargetlist(MDrawContext* pDC)
{
	if(GetShowTargetList() == false) return;

	MFont *pFont=ZGetGameInterface()->GetCombatInterface()->GetGameFont();
	pDC->SetFont(pFont);

	float y = 0.3f;
	float linespace = (float)pFont->GetHeight() * 1.1 / (float)MGetWorkspaceHeight();

	pDC->SetColor(MCOLOR(0xFFFFFFFF));

	TextRelative( pDC, .05f, y, ZMsg(MSG_VOTE_SELECT_PLAYER_TO_KICK) );

	y+=2.f*linespace;

	for (int i=0; i<(int)m_TargetList.size(); i++) 
	{
		string& strName = m_TargetList[i];

		char szBuffer[256];
		sprintf(szBuffer,"[%c] %s", ConvIndexToKey(i), strName.c_str());

		pDC->SetColor(MCOLOR(0xFFFFFFFF));
		TextRelative(pDC,.05f,y,szBuffer);

		y+=linespace;
	}

	y+=linespace;
	pDC->SetColor(MCOLOR(0xFFFFFFFF));
	
	TextRelative(pDC,.05f,y, ZMsg(MSG_VOTE_SELECT_PLAYER_CANCEL));
}
Пример #5
0
// ¸ÖƼ¶óÀÎ Áö¿øÀ» À§ÇØ ±ÛÀÚ ´ÜÀ§ Ãâ·Â
int Mint::DrawCompositionAttribute(MDrawContext* pDC, MPOINT& p, const char* szComposition, int i)
{
	if(i>=(int)strlen(szComposition)) return 0;
	//if(pMint->GetPrimaryLanguageIdentifier()!=LANG_JAPANESE) return;

	const BYTE* pCompAttr = GetCompositionAttributes();
	DWORD nCompAttrSize = GetCompositionAttributeSize();

	if(i>=(int)nCompAttrSize) return 0;	// Composition Attribute ¹üÀ§¸¦ ¹þ¾î³ª´Â °æ¿ì

	MFont* pFont = pDC->GetFont();
	int nFontHeight = pFont->GetHeight();
	MCOLOR c = pDC->GetColor();

	int nCharSize = 1;
	bool bTwoByteChar = IsHangul(szComposition[i]);
	if(bTwoByteChar) nCharSize = 2;
	int nWidth = pFont->GetWidth(&(szComposition[i]), nCharSize);

	if(pCompAttr[i]==ATTR_TARGET_CONVERTED)				// º¯È¯µÉ ³»¿ë
		pDC->SetColor(MCOLOR(255, 0, 0, 128));
	else if(pCompAttr[i]==ATTR_TARGET_NOTCONVERTED)		// º¯È¯µÇÁö ¾Ê´Â ³»¿ë
		pDC->SetColor(MCOLOR(0, 196, 0, 128));
	else												// º¯È¯ °¡´É Àý
		pDC->SetColor(MCOLOR(128, 128, 128, 128));

	pDC->FillRectangle(p.x, p.y, nWidth, nFontHeight);

	pDC->SetColor(c);

	return nWidth;
}
Пример #6
0
void MPopupMenuLook::OnFrameDraw(MPopupMenu* pPopupMenu, MDrawContext* pDC)
{
	MRECT r = pPopupMenu->GetClientRect();
	pDC->SetColor(MCOLOR(DEFCOLOR_MPOPUP_PLANE));
	pDC->FillRectangle(r);
	pDC->SetColor(MCOLOR(DEFCOLOR_FRAME_OUTLINE));
	pDC->Rectangle(r);
}
Пример #7
0
//// MMenuItem ////
void MMenuItem::OnDrawMenuItem(MDrawContext* pDC, bool bSelected)
{
	MRECT r = GetClientRect();	
	pDC->SetColor(bSelected==true?MCOLOR(DEFCOLOR_MPOPUP_SELECTEDPLANE):MCOLOR(DEFCOLOR_MPOPUP_PLANE));
	pDC->FillRectangle(r);
	pDC->SetColor(bSelected==true?MCOLOR(DEFCOLOR_MPOPUP_SELECTEDTEXT):MCOLOR(DEFCOLOR_MPOPUP_TEXT));
	pDC->Text(r, GetText(), MAM_LEFT);
}
Пример #8
0
void MFrameDrawer::DrawOuterBevel(MDrawContext* pDC, MRECT& r)
{
    pDC->SetColor(MCOLOR(128, 128, 128));
    pDC->HLine(r.x, r.y, r.w);
    pDC->VLine(r.x, r.y, r.h);
    pDC->SetColor(MCOLOR(64, 64, 64));
    pDC->HLine(r.x, r.y+r.h-1, r.w);
    pDC->VLine(r.x+r.w-1, r.y, r.h);
}
Пример #9
0
		virtual void OnDraw(MDrawContext* pDC){
			MFrame::OnDraw(pDC);

			MRECT r = GetClientRect();
			char temp[256];

			pDC->SetColor(MCOLOR(255,255,255));

			// FPS
			DWORD nCurrTime = timeGetTime();
			if(nCurrTime-m_nPrevTime>1000){
				m_nFPS = m_nRenderCount;
				m_nPrevTime = nCurrTime;
				m_nRenderCount = 0;
			}
			m_nRenderCount++;
			sprintf(temp, "FPS = %d", m_nFPS);
			pDC->Text(r.x, r.y, temp);

			// Cursor Pos
			/*
			POINT p;
			GetCursorPos(&p);
			ScreenToClient(m_hWnd, &p);
			*/
			MPOINT p = MEvent::GetMousePos();
			sprintf(temp, "Cursor Pos = %d, %d", p.x, p.y);
			pDC->Text(r.x, r.y+GetFont()->GetHeight(), temp);

		}
Пример #10
0
MBPopupMenuLook::MBPopupMenuLook()
{
	for(int i=0; i<9; i++){
		m_pFrameBitmaps[i] = NULL;
	}
	m_pFont=NULL;
	m_FontColor = MCOLOR(255, 255, 255);
}
Пример #11
0
void MFrameLook::OnDraw(MFrame* pFrame, MDrawContext* pDC)
{
	MRECT r = pFrame->GetInitialClientRect();
	pDC->SetColor(MCOLOR(DEFCOLOR_MFRAME_PLANE));
	pDC->FillRectangle(r);
	pDC->SetColor(128,128,128,255);
	pDC->Rectangle(r);

	// TitleBar
	if(pFrame->m_bTitleBar==true){
		MRECT TitleBarRect(r.x, r.y, r.w, MTITLEBAR_HEIGHT);
		pDC->SetColor(MCOLOR(DEFCOLOR_MMENUBAR_PLANE));
		pDC->FillRectangle(TitleBarRect);
		pDC->SetColor(MCOLOR(DEFCOLOR_MMENUBAR_TEXT));
		pDC->Text(TitleBarRect, pFrame->m_szName, MAM_LEFT);
	}
}
Пример #12
0
void ZGameClient::OnClanMemberConnected(const char* szMember)
{
	if (!strcmp(ZGetMyInfo()->GetCharName(), szMember)) return;

	char szMsg[256];
//	ZTransMsg(szMsg, MSG_CLAN_MEMBER_CONNECTED, 1, szMember);
	ZTransMsg(szMsg, MSG_CLAN_MEMBER_CONNECTED, 1, szMember);
	ZChatOutput(MCOLOR(ZCOLOR_CHAT_CLANMSG), szMsg);
}
Пример #13
0
void MPopupMenuLook::OnDraw(MPopupMenu* pPopupMenu, MDrawContext* pDC)
{
	OnFrameDraw(pPopupMenu, pDC);

	if(pPopupMenu->GetPopupMenuType()==MPMT_VERTICAL){
		pDC->SetColor(MCOLOR(DEFCOLOR_FRAME_OUTLINE));
		pDC->Rectangle(pPopupMenu->GetInitialClientRect());
	}
}
Пример #14
0
void MBEditLook::OnFrameDraw(MEdit* pEdit, MDrawContext* pDC)
{
	MRECT r = pEdit->GetInitialClientRect();
 	if(GetCustomLook())
	{
		pDC->SetColor(MCOLOR(200,200,200,255));
		pDC->Rectangle(r);
		HLineBitmap( pDC, r.x+1, r.y+1, r.w-2, m_pFrameBitmaps[4], false );
		return;
	}
	DrawBitmapFrame9(pDC, r, m_pFrameBitmaps);
}
Пример #15
0
void MBScrollBarLook::OnDraw(MScrollBar* pScrollBar, MDrawContext* pDC)
{
	MRECT r = pScrollBar->GetInitialClientRect();
	//if(pScrollBar->GetType()==MSBT_VERTICAL)
	//	DrawBitmapFrameV3(pDC, r, m_pVFrameBitmaps);
	//else 
	//	DrawBitmapFrameH3(pDC, r, m_pHFrameBitmaps);
	MRECT rtemp  = pDC->GetClipRect();
	pDC->SetClipRect(rtemp.x, rtemp.y, rtemp.w, rtemp.h );
	pDC->SetColor(MCOLOR(0xFF000000));
	pDC->FillRectangle( r.x, r.y, r.w, r.h );
	pDC->SetClipRect(rtemp);
}
Пример #16
0
		virtual void OnDraw(MDrawContext* pDC){
			MFrame::OnDraw(pDC);

			MRECT r = GetClientRect();
			int nRawSize = sizeof(szStar)/sizeof(char*);
			static int nRaw = 0;
			pDC->SetColor(MCOLOR(128,128,255));
			for(int i=0; i<20; i++){
				pDC->Text(r.x, r.y+i*(GetFont()->GetHeight()+2), szStar[(nRaw+i)%nRawSize]);
			}
			nRaw++;
			nRaw%=nRawSize;
		}
Пример #17
0
bool ZSurvival::OnSurvivalRankingList(MCommand* pCmd)
{
	if( 0 == pCmd ) return false;

	MTextArea* pWidgetRank = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_PlayerRankList");
	MTextArea* pWidgetName = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_PlayerNameList");
	MTextArea* pWidgetPoint = (MTextArea*)ZApplication::GetGameInterface()->GetIDLResource()->FindWidget( "SurvivalResult_PlayerRankPointList");
	if (!pWidgetRank || !pWidgetName || !pWidgetPoint) return false;

	pWidgetRank->Clear();
	pWidgetName->Clear();
	pWidgetPoint->Clear();

	MCommandParameter* pParam = pCmd->GetParameter( 0 );
	void* pRankBlob = (MTD_SurvivalRanking*)pParam->GetPointer();
	MTD_SurvivalRanking* pRank;
	char szText[128];

	int sizeBlob = MGetBlobArrayCount( pRankBlob );
	int size = min(sizeBlob, MAX_SURVIVAL_RANKING_LIST);

	for (int i = 0; i < size; ++i)
	{
		pRank = reinterpret_cast< MTD_SurvivalRanking* >( MGetBlobArrayElement(pRankBlob, i) );

		if (pRank->m_dwRank == 0) break;

		sprintf(szText, "%d", pRank->m_dwRank);
		pWidgetRank->AddText( szText, MCOLOR( 0xFFFFF794));

		if (strlen(pRank->m_szCharName) != 0) pWidgetName->AddText( pRank->m_szCharName, MCOLOR( 0xFFFFF794));
		else								  pWidgetName->AddText( " ", MCOLOR( 0xFFFFF794));			

		sprintf(szText, "%d", pRank->m_dwPoint);
		pWidgetPoint->AddText( szText, MCOLOR( 0xFFFFF794));
	}
	return true;
}
Пример #18
0
void MFrameDrawer::Text(MDrawContext* pDC, MPOINT& p, const char* szText, MFDTextStyle nTextStyle, bool bHighlight, MRECT* r)
{
    bool bClip = false;

    MRECT rc;
    if(r!=NULL) {
        rc = pDC->GetClipRect();
        pDC->SetClipRect(*r);
        bClip = true;
    }

    switch(nTextStyle) {
    case MFDTS_ACTIVE:
        pDC->SetColor(MCOLOR(255, 255, 255));
        if(bHighlight==true) pDC->TextWithHighlight(p.x, p.y, szText);
        else pDC->Text(p.x, p.y, szText);
        break;
    case MFDTS_DISABLE:
    {
        pDC->SetColor(MCOLOR(96, 96, 96));
        MCOLOR PrevHCol = pDC->SetHighlightColor(MCOLOR(128, 128, 128));
        if(bHighlight==true) pDC->TextWithHighlight(p.x, p.y, szText);
        else pDC->Text(p.x, p.y, szText);
        pDC->SetHighlightColor(PrevHCol);
    }
    break;
    case MFDTS_NORMAL:
    default:
        pDC->SetColor(MCOLOR(196, 196, 196));
        if(bHighlight==true) pDC->TextWithHighlight(p.x, p.y, szText);
        else pDC->Text(p.x, p.y, szText);
        break;
    }

    if(r!=NULL) {
        pDC->SetClipRect(rc);
    }
}
Пример #19
0
void ZGameClient::OnClanMsg(const char* szSenderName, const char* szMsg)
{
	char szText[512];
	sprintf(szText, "%s(%s) : %s", ZMsg( MSG_CHARINFO_CLAN), szSenderName, szMsg);

	if ( ZGetGame())
	{
		if ( (ZGetGame()->GetMatch()->GetMatchType() == MMATCH_GAMETYPE_DUEL)	&& !ZGetGame()->m_pMyCharacter->IsDie())
			sprintf(szText, "%s(%s) : %s", ZMsg( MSG_CHARINFO_CLAN), szSenderName, ". . . . .");
	}

	ZChatOutput(MCOLOR(ZCOLOR_CHAT_CLANMSG), szText);

}
Пример #20
0
bool ZSurvival::OnQuestCombatState(MCommand* pCommand)
{
	char nState;
	pCommand->GetParameter(&nState,		0, MPT_CHAR);

	MQuestCombatState nCombatState = MQuestCombatState(nState);

	m_QuestCombatState = nCombatState; // 보관..

	switch (nCombatState)
	{
	case MQUEST_COMBAT_PREPARE:
		{
		}
		break;
	case MQUEST_COMBAT_PLAY:
		{
			ZGetObjectManager()->GetNPCObjectMap()->ForceInvisibleNewNpc(false);
			ZGetEffectManager()->Clear();
			ZGetEffectManager()->EnableDraw(true);
			ZGetGame()->m_WeaponManager.EnableRender(true);
			ZGetWorldItemManager()->EnableDraw(true);
		}
		break;
	case MQUEST_COMBAT_COMPLETED:
		{
			// 서바이벌이므로 마지막 섹터라도 포탈을 찍어야 한다. 그러나 마지막 반복의 막판이라면 포탈을 없게한다
			if (!m_GameInfo.IsLastSectorInSurvival())
			{
				if (ZGetGame())
				{
					rvector portal_pos;
					int nCurrSectorIndex = m_GameInfo.GetCurrSectorIndex();
					int nLinkIndex = m_GameInfo.GetMapSectorLink(nCurrSectorIndex);
					portal_pos = ZGetGame()->GetMapDesc()->GetQuestSectorLink(nLinkIndex);
					ZGetWorldItemManager()->AddQuestPortal(portal_pos);
					m_GameInfo.SetPortalPos(portal_pos);

					ZChatOutput(MCOLOR(ZCOLOR_CHAT_SYSTEM_GAME), ZMsg(MSG_GAME_OPEN_PORTAL));

					m_tRemainedTime = timeGetTime() + PORTAL_MOVING_TIME;
					m_bIsRoundClear = true;
				}
			}
		}
		break;
	};

	return true;
}
Пример #21
0
MBFrameLook::MBFrameLook(void)	: MScalableLook()
{
	m_szDefaultTitle[0]=0;
	m_TitlePosition = MPOINT(14, 10);
	m_FontColor = MCOLOR(255,255,255,255);
	m_bStretch = true;

	for(int i=0; i<FRAME_BITMAP_COUNT; i++){
		m_pFrameBitmaps[i] = NULL;
	}
	for (int i=0; i<FRAME_BUTTON_BITMAP_COUNT; i++)
	{
		m_pCloseButtonBitmaps[i] = NULL;
		m_pMinimizeButtonBitmaps[i] = NULL;
	}
	m_iCustomLook = 0;
}
Пример #22
0
void ZVoteInterface::DrawVoteMessage(MDrawContext* pDC)		// 투표가 진행중일때 메시지
{
	// 투표 진행중일때 메시지
	if ( (ZGetGameInterface()->GetState() == GUNZ_GAME) &&
		ZGetGameClient() &&
		ZGetGameClient()->IsVoteInProgress() && 
		ZGetGameClient()->CanVote() ) 
	{
		MFont *pFont=ZGetGameInterface()->GetCombatInterface()->GetGameFont();
		pDC->SetFont(pFont);
		pDC->SetColor(MCOLOR(0x80ffffff));
		TextRelative(pDC,300.f/800.f,550/600.f,ZGetGameClient()->GetVoteMessage());

		if(timeGetTime()/500 % 2 == 0 ) {

			TextRelative(pDC,300.f/800.f,565/600.f, ZMsg(MSG_VOTE_YESNO));
		}
	}
}
Пример #23
0
bool ZSurvival::OnObtainZItem(MCommand* pCommand)
{
	unsigned long int nItemID;
	pCommand->GetParameter(&nItemID,	0, MPT_UINT);

	m_GameInfo.IncreaseObtainQuestItem();

#ifdef _QUEST_ITEM
	MMatchItemDesc* pItemDesc = MGetMatchItemDescMgr()->GetItemDesc(nItemID);
	if (pItemDesc)
	{
		char szMsg[ 128];
		ZTransMsg( szMsg, MSG_GAME_GET_QUEST_ITEM, 1, pItemDesc->m_pMItemName->Ref().m_szItemName);
		ZChatOutput( MCOLOR(ZCOLOR_CHAT_SYSTEM_GAME), szMsg);
	}
#endif


	return true;
}
Пример #24
0
bool ZSurvival::OnObtainQuestItem(MCommand* pCommand)
{
	unsigned long int nQuestItemID;
	pCommand->GetParameter(&nQuestItemID,	0, MPT_UINT);

	m_GameInfo.IncreaseObtainQuestItem();

#ifdef _QUEST_ITEM
	MQuestItemDesc* pQuestItemDesc = GetQuestItemDescMgr().FindQItemDesc((int)nQuestItemID);
	if (pQuestItemDesc)
	{
		char szMsg[ 128];
		ZTransMsg( szMsg, MSG_GAME_GET_QUEST_ITEM, 1, pQuestItemDesc->m_szQuestItemName);
		ZChatOutput( MCOLOR(ZCOLOR_CHAT_SYSTEM_GAME), szMsg);
	}
#endif


	return true;
}
Пример #25
0
void Mint::DrawCandidateList(MDrawContext* pDC, MPOINT& p)
{
	if(GetCandidateCount()>0){
		MCOLOR c = pDC->GetColor();

		MRECT r(p.x, p.y, GetCandidateListWidth(), GetCandidateListHeight());

//		pDC->SetColor(MCOLOR(0x30000000));		// ±×¸²ÀÚ
//		pDC->FillRectangle( r.x+5, r.y+5, r.w, r.h);
		
		pDC->SetColor(MCOLOR(0xFF050505));		// ÇÁ·¹ÀÓ ¹ÙÅÁ
		pDC->FillRectangle(r);

		pDC->SetColor(MCOLOR(0xFF505050));		// ÇÁ·¹ÀÓ ¾îµÎ¿î ºÎºÐ
		pDC->Rectangle( r.x+1, r.y+1, r.w,   r.h);

		pDC->SetColor(MCOLOR(0xFFB0B0B0));		// ÇÁ·¹ÀÓ ¹àÀº ºÎºÐ
		pDC->Rectangle(r);

		MFont* pFont = pDC->GetFont();
		pDC->SetFont( MFontManager::Get( "Default"));		// °­Á¦·Î ÆùÆ®¸¦ µðÆúÆ®·Î °íÁ¤ÇÑ´Ù.

		int nStart = GetCandidatePageStart();

		char temp[MIMECOMPOSITIONSTRING_LENGTH+4];
		for(int i=nStart; i<(int)min(GetCandidateCount(), nStart+GetCandidatePageSize()); i++)
		{
			const char* szCandidate = GetCandidate(i);
			if(i==GetCandidateSelection())
				pDC->SetColor(MCOLOR(DEFCOLOR_NORMAL));
			else
				pDC->SetColor(MCOLOR(0xFF909090));
			int nIndexInPage = i-nStart;
			sprintf(temp, "%d: %s", nIndexInPage+1, szCandidate);
			pDC->Text(p.x+4, p.y + nIndexInPage*pDC->GetFont()->GetHeight() + 4, temp);
		}

		// ÇöÀç ¼±Åà À妽º ¹× ÃÑ °³¼ö Ãâ·Â
		sprintf(temp, "(%d/%d)", GetCandidateSelection()+1, GetCandidateCount());
		pDC->SetColor(MCOLOR(DEFCOLOR_NORMAL));
		pDC->Text(p.x + 4, p.y + GetCandidatePageSize()*pDC->GetFont()->GetHeight() + 4, temp);

		pDC->SetColor(c);
		pDC->SetFont( MFontManager::Get( pFont->m_szName));		// ¿ø·¡ ÆùÆ®·Î º¹±¸
	}
}
Пример #26
0
void MBFrameLook::OnDraw(MFrame* pFrame, MDrawContext* pDC)
{
	MRECT r = pFrame->GetInitialClientRect();

	// 땜.. 장비창의 tooltip frame -
	// DrawBitmapFrame2 로 2장의 이미지를 사용해서 그림..

	if(GetCustomLook()==3) { 

		if(pFrame->GetVisible()==false)
			return;

		MRECT rr = r; // 툴팁이라서 그리는 영역을 조금 보정..

		rr.x -= 10;
		rr.y -= 10;
		rr.w += 20;
		rr.h += 20;

		// 지금은 툴팁 대용으로 쓰기때문에 cliprect 를 무시..

		MRECT cliprect = MRECT(0,0,MGetWorkspaceWidth(),MGetWorkspaceHeight());

		DrawBitmapFrame2(pDC,rr,cliprect,m_pFrameBitmaps);

		return;
	}

	MCOLOR color = MCOLOR(0xFF, 0xFF, 0xFF, pFrame->GetOpacity());

	if( GetCustomLook() == 1 )
		DrawBitmapFrameCustom1(pDC, r, m_pFrameBitmaps, m_bStretch);
	else if( GetCustomLook() == 2)
		DrawBitmapFrameCustom2(pDC, r, m_pFrameBitmaps, m_BGColor, m_bStretch );
	else if( GetCustomLook() == 3 )
	{
		pDC->SetColor( 128, 128, 128 );
		//r = pFrame->GetRect();
		pDC->Rectangle( r );
	}
	else
		DrawBitmapFrame9(pDC, r, m_pFrameBitmaps, m_bStretch, GetScale());
	

	if(pFrame->m_bTitleBar==true){
		if (pFrame->GetCloseButton()->m_bVisible)
		{
			MBitmap* pBitmap;
			if (pFrame->GetCloseButton()->IsButtonDown() == false)
			{
				pBitmap = m_pCloseButtonBitmaps[0];
			}
			else
			{
				pBitmap = m_pCloseButtonBitmaps[1];
				if (pBitmap == NULL) pBitmap = m_pCloseButtonBitmaps[0];
			}

			if (pBitmap!=NULL)
			{
				int x, y;
				x = pFrame->GetCloseButton()->m_Rect.x;
				y = pFrame->GetCloseButton()->m_Rect.y;

				pDC->SetBitmap(pBitmap);
				pDC->Draw(x, y);
			}

		}
		if (pFrame->GetMinimizeButton()->m_bVisible)
		{
			MBitmap* pBitmap;
			if (pFrame->GetMinimizeButton()->IsButtonDown() == false)
			{
				pBitmap = m_pMinimizeButtonBitmaps[0];
			}
			else
			{
				pBitmap = m_pMinimizeButtonBitmaps[1];
				if (pBitmap == NULL) pBitmap = m_pMinimizeButtonBitmaps[0];
			}

			if (pBitmap!=NULL)
			{
				int x, y;
				x = pFrame->GetMinimizeButton()->m_Rect.x;
				y = pFrame->GetMinimizeButton()->m_Rect.y;

				pDC->SetBitmap(pBitmap);
				pDC->Draw(x, y);
			}

		}

		if(m_pFont!=NULL) pDC->SetFont(m_pFont);
		pDC->SetColor(MCOLOR(0x0));
		if( GetCustomLook() == 0 ) pDC->Text(r.x+16, r.y+12, pFrame->m_szName);
		/*
		pDC->Text(r.x+12, r.y+8, pFrame->m_szName);
		pDC->Text(r.x+16, r.y+8, pFrame->m_szName);
		pDC->Text(r.x+12, r.y+12, pFrame->m_szName);
		*/

		pDC->SetColor(m_FontColor);

		// 나중에 align고려해서 다시 수정해야 함
		
		int y = int(m_TitlePosition.y*GetScale());

		if(m_pFrameBitmaps[7])
		{
			int au = (int)(GetScale() * m_pFrameBitmaps[7]->GetHeight());
			y = (au - m_pFont->GetHeight())/2;
		}

		pDC->Text(int(r.x+m_TitlePosition.x*GetScale()), r.y+y, pFrame->m_szName);
//		pDC->Text(r.x+m_TitlePosition.x*GetScale(), r.y+m_TitlePosition.y*GetScale(), pFrame->m_szName);

	//	pDC->Text(r.x+14, r.y+10, pFrame->m_szName);
	}
}
Пример #27
0
void ZToolTip::OnDraw(MDrawContext* pDC)
{
/*
	if(IsToolTipEnable()==false) {
		return;
	}
*/
	MRECT r = GetClientRect();

//	pDC->SetColor(MCOLOR(DEFCOLOR_MTOOLTIP_PLANE));
//	pDC->FillRectangle(r);
//	pDC->SetColor(MCOLOR(DEFCOLOR_MTOOLTIP_OUTLINE));
//	pDC->Rectangle(r);

	// 최소사이즈 32 x 32 -> 16 2개씩은 찍을 수 있도록~
	if(m_pBitmap1&&m_pBitmap2) {

		//자신의 영역을 둘러싸는 이미지를 그려준다..
		// 9곳 회전해서 그리기..
		// 1 2 3 
		// 4 5 6
		// 7 8 9

		m_pBitmap1->SetDrawMode(MBM_Normal);
		m_pBitmap2->SetDrawMode(MBM_Normal);

		pDC->SetBitmap( m_pBitmap1 );
		pDC->Draw(r.x, r.y, 16, 16);

		pDC->SetBitmap( m_pBitmap2 );
		pDC->Draw(r.x+16, r.y, r.w-32,16);

		m_pBitmap1->SetDrawMode(MBM_FlipLR);

		pDC->SetBitmap( m_pBitmap1 );
		pDC->Draw(r.x+r.w-16, r.y, 16, 16);

		//그려야할사이즈가있다면~ 중간단계
		if(r.h > 32) {

			m_pBitmap2->SetDrawMode(MBM_RotL90);
			pDC->SetBitmap( m_pBitmap2 );
			pDC->Draw(r.x, r.y+16, 16, r.h-32);

			//중간색채우기
			pDC->SetColor(MCOLOR(0xffD9D9D9));//임시
			pDC->FillRectangle(MRECT(r.x+16,r.y+16,r.w-32,r.h-32));

			m_pBitmap2->SetDrawMode(MBM_RotR90);
			pDC->SetBitmap( m_pBitmap2 );
			pDC->Draw(r.x+r.w-16, r.y+16, 16, r.h-32);
		}

		// 아래부분~

		m_pBitmap1->SetDrawMode(MBM_FlipUD);
		pDC->SetBitmap( m_pBitmap1 );
		pDC->Draw(r.x, r.y+r.h-16, 16, 16);

		m_pBitmap2->SetDrawMode(MBM_FlipUD);
		pDC->SetBitmap( m_pBitmap2 );
		pDC->Draw(r.x+16, r.y+r.h-16, r.w-32,16);

		m_pBitmap1->SetDrawMode(MBM_FlipUD|MBM_FlipLR);
		pDC->SetBitmap( m_pBitmap1 );
		pDC->Draw(r.x+r.w-16, r.y+r.h-16, 16, 16);

		m_pBitmap1->SetDrawMode(MBM_Normal);
		m_pBitmap2->SetDrawMode(MBM_Normal);
	}

	char* szName = NULL;

	if(m_bUseParentName==true) 
		szName = GetParent()->m_szName;
	else 
		szName = m_szName;

	MRECT text_r = MRECT(r.x+10,r.y+10,r.w-10,r.h-10);

//	pDC->SetColor(MCOLOR(DEFCOLOR_MTOOLTIP_TEXT));//임시
	pDC->SetColor(MCOLOR(0xff000000));//임시
//	pDC->TextWithHighlight(text_r, szName, (MAM_HCENTER|MAM_VCENTER));
	pDC->TextMultiLine(text_r, szName,ZTOOLTIP_LINE_GAP);	
}
void ZDuelTournamentRankingListBox::OnDraw( MDrawContext* pDC )
{
	if (!m_pBmpRankingItemBg || !m_pBmpArrowUp || !m_pBmpArrowDown || !m_pBmpArrowBar) { _ASSERT(0); return; }

	const int nWidth = this->GetRect().w;
	const int nHeight = this->GetRect().h;
	const int nY_firstItem = nHeight * 0.17f;	// 리스트 첫째 항목의 y위치
	const int nItemHeight = (int)(nHeight / 7.f);

	char szTemp[128];
	MRECT rc;

	for (int i=0; i<NUM_DISPLAY_DUELTOURNAMENT_RANKING; ++i)
	{
		int y = (nY_firstItem + nItemHeight * i) - (nItemHeight * 0.04f);

		// 리스트아이템 배경이미지
		pDC->SetBitmap(m_pBmpRankingItemBg);
		pDC->Draw(0, y, nWidth, nItemHeight);

		// 항목 내용 그리기
		ZDUELTOURNAMENTRANKINGITEM* pRankItem = &m_rankingList[i];

		if (pRankItem->bEmptyItem) continue;

		y = nY_firstItem + nItemHeight * i;

		pDC->SetColor(MCOLOR(0xFFFFFFFF));

		// 순위
		if (pRankItem->nRank == -1)	// 초기화 직후 순위정렬되지 않았을때 -1로 되어 있음
			strcpy(szTemp, "--");
		else
			sprintf(szTemp, "%d", pRankItem->nRank);
		rc.Set((int)(0.01f*nWidth), y, (int)(fabs(0.01f - 0.11f)*nWidth), nItemHeight);
		pDC->Text(rc, szTemp, MAM_RIGHT|MAM_VCENTER);

		// 순위등락 화살표
		if (pRankItem->nFluctuation == 0)
		{
			pDC->SetBitmap(m_pBmpArrowBar);
			pDC->Draw((int)(0.13f*nWidth), y + (nItemHeight - m_pBmpArrowBar->GetHeight()) * 0.5f);
		}
		else
		{
			if (pRankItem->nFluctuation > 0)
				pDC->SetBitmap(m_pBmpArrowUp);
			else if (pRankItem->nFluctuation < 0)
				pDC->SetBitmap(m_pBmpArrowDown);

			pDC->Draw((int)(0.13f*nWidth), y + (nItemHeight - m_pBmpArrowBar->GetHeight()) * 0.5f);
			
			// 순위등락폭
			pDC->SetColor(MCOLOR(0xFFAAFF00));
			sprintf(szTemp, "%d", abs(pRankItem->nFluctuation));
			//pDC->Text((int)(0.04f*nWidth), y, szTemp);
			rc.Set((int)(0.16f*nWidth), y, (int)(fabs(0.16f - 0.26f)*nWidth), nItemHeight);
			pDC->Text(rc, szTemp, MAM_LEFT|MAM_VCENTER);
			pDC->SetColor(MCOLOR(0xFFFFFFFF));
		}

		// 토너먼트 등급 엠블렘
		GetDuelTournamentGradeIconFileName(szTemp, pRankItem->nGrade);
		MBitmap* pGradeIcon = MBitmapManager::Get(szTemp);
		if (pGradeIcon) {
			//int height1px = int(600.f/MGetWorkspaceHeight() + 0.5f);
			
			int margin = (nItemHeight * 0.05f + 0.5f);
			int size = nItemHeight-(margin*4);
			pDC->SetBitmap(pGradeIcon);
			rc.Set((int)(0.279f*nWidth), y+margin, size, size);//(int)(0.055f*nWidth), nItemHeight-3);
			pDC->Draw(rc);
		}


		// 이름
		rc.Set((int)(0.34f*nWidth), y, (int)(fabs(0.34f - 0.55f)*nWidth), nItemHeight);
		pDC->Text(rc, pRankItem->szCharName, MAM_HCENTER|MAM_VCENTER);

		// 승패
		sprintf(szTemp, "%d", pRankItem->nWins);
		rc.Set((int)(0.57f*nWidth), y, (int)(fabs(0.57f - 0.67f)*nWidth), nItemHeight);
		pDC->Text(rc, szTemp, MAM_RIGHT|MAM_VCENTER);
		rc.Set((int)(0.67f*nWidth), y, (int)(fabs(0.67f - 0.68f)*nWidth), nItemHeight);
		pDC->Text(rc, "/", MAM_HCENTER|MAM_VCENTER);
		sprintf(szTemp, "%d", pRankItem->nLosses);
		rc.Set((int)(0.68f*nWidth), y, (int)(fabs(0.68f - 0.78f)*nWidth), nItemHeight);
		pDC->Text(rc, szTemp, MAM_LEFT|MAM_VCENTER);

		// 우승수
		sprintf(szTemp, "%d", pRankItem->nWinners);
		rc.Set((int)(0.8f*nWidth), y, (int)(fabs(0.8f - 0.91f)*nWidth), nItemHeight);
		pDC->Text(rc, szTemp, MAM_RIGHT|MAM_VCENTER);

		// 토너먼트 포인트
		sprintf(szTemp, "%d", pRankItem->nPoint);
		rc.Set((int)(0.92f*nWidth), y, (int)(fabs(0.92f - 0.99f)*nWidth), nItemHeight);
		pDC->Text(rc, szTemp, MAM_RIGHT|MAM_VCENTER);

		// 내 랭킹 항목인 경우 하이라이트 이미지 덮어줌
		if (i == m_nMyRankIndex)
		{
			MBitmapR2 *pBitmap=(MBitmapR2*)MBitmapManager::Get("button_glow.png");
			if(pBitmap) {
				DWORD defaultcolor = 0x333333;
				DWORD opacity=(DWORD)pDC->GetOpacity();
				MRECT rt(0, y, nWidth, nItemHeight);
				MDrawEffect prevEffect = pDC->GetEffect();
				pDC->SetEffect(MDE_ADD);
				MCOLOR prevColor = pDC->GetBitmapColor();
				pDC->SetBitmapColor(MCOLOR(defaultcolor));
				unsigned char prevOpacity = pDC->GetOpacity();
				pDC->SetOpacity(opacity);
				pDC->SetBitmap(pBitmap);
				pDC->Draw(rt.x,rt.y,rt.w,rt.h,0,0,64,32);
				pDC->SetBitmapColor(prevColor);
				pDC->SetEffect(prevEffect);
				pDC->SetOpacity(prevOpacity);
			}
		}
	}
}
Пример #29
0
MBLabelLook::MBLabelLook(void)
{
	m_FontColor = MCOLOR(255, 255, 255);
}
Пример #30
0
void ZHelpScreen::DrawHelpScreen()
{
	if( !m_bDrawHelpScreen )
		return;

	// 필터링을 끄고..

	if(m_pHelpScreenBitmap==NULL) 
		return;

	if(m_pHelpScreenBitmap->m_pTexture==NULL)
		return;

	float mx = 0.f;
	float my = 0.f;
	float mw = (float)RGetScreenWidth();
	float mh = (float)RGetScreenHeight();

	float msx = 0.f;
	float msy = 0.f;
	float msw = 800.f;
	float msh = 600.f;

	float ftw = 800.f;//(float)m_pHelpScreenBitmap->m_pTexture->GetWidth();
	float fth = 600.f;//(float)m_pHelpScreenBitmap->m_pTexture->GetHeight();
	float msw2 = msw; 
	float msh2 = msh;

	D3DFORMAT d3dformat = m_pHelpScreenBitmap->m_pTexture->m_Info.Format;

	if( d3dformat==D3DFMT_DXT1 ||
		d3dformat==D3DFMT_DXT2 ||
		d3dformat==D3DFMT_DXT3 ||
		d3dformat==D3DFMT_DXT4 ||
		d3dformat==D3DFMT_DXT5 )
	{
		msw2 = (float)Floorer2PowerSize((int)msw);
		msh2 = (float)Floorer2PowerSize((int)msh);
	}

	RGetDevice()->SetRenderState( D3DRS_LIGHTING, FALSE);

	CUSTOMVERTEX Sprite[4] = 
	{
		{mx      - ADJUST_SIZE , my      - ADJUST_SIZE , 0, 1.0f, (msx)/ftw       , (msy)/fth },
		{mx + mw - ADJUST_SIZE2, my      - ADJUST_SIZE , 0, 1.0f, (msx + msw2)/ftw, (msy)/fth },
		{mx + mw - ADJUST_SIZE2, my + mh - ADJUST_SIZE2, 0, 1.0f, (msx + msw2)/ftw, (msy + msh2)/fth },
		{mx      - ADJUST_SIZE , my + mh - ADJUST_SIZE2, 0, 1.0f, (msx)/ftw       , (msy + msh2)/fth},
	};

//	RSetWBuffer(true);

	RGetDevice()->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
	RGetDevice()->SetRenderState( D3DRS_SRCBLEND,D3DBLEND_SRCALPHA );	
	RGetDevice()->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA );
	RGetDevice()->SetTextureStageState( 0, D3DTSS_COLORARG1 , D3DTA_TEXTURE );
	RGetDevice()->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_SELECTARG1 );
	RGetDevice()->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
	RGetDevice()->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );

	RGetDevice()->SetFVF(D3DFVF_CUSTOMVERTEX);
	RGetDevice()->SetTexture( 0, m_pHelpScreenBitmap->m_pTexture->GetTexture() );
	RGetDevice()->SetSamplerState( 0, D3DSAMP_MAGFILTER , D3DTEXF_POINT );
	RGetDevice()->SetSamplerState( 0, D3DSAMP_MINFILTER , D3DTEXF_POINT );
//	RGetDevice()->SetSamplerState( 0, D3DSAMP_MAGFILTER , D3DTEXF_NONE );
//	RGetDevice()->SetSamplerState( 0, D3DSAMP_MINFILTER , D3DTEXF_NONE );

	RGetDevice()->DrawPrimitiveUP(D3DPT_TRIANGLEFAN, 2, Sprite, sizeof(CUSTOMVERTEX));

//	RGetDevice()->SetTextureStageState( 0, D3DTSS_MAGFILTER , D3DTEXF_LINEAR );
//	RGetDevice()->SetTextureStageState( 0, D3DTSS_MINFILTER , D3DTEXF_LINEAR );
	RGetDevice()->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
	RGetDevice()->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );

	// 굵은 폰트로 바인딩된 키그려주기...

	g_pDC->SetColor(MCOLOR(0xFF000000));

//	g_pDC->SetFont(MFontManager::Get("FONTc8b"));
//	g_pDC->SetFont(MFontManager::Get("FONTa12_O1Blr"));
	g_pDC->SetFont(MFontManager::Get("FONTb11b"));

	float aspect_x = RGetScreenWidth()/800.f;
	float aspect_y = RGetScreenHeight()/600.f;

	MFontR2* pFont = (MFontR2*)g_pDC->GetFont();
	pFont->m_fScale = 1.0f * aspect_x;

	int nHeight = 193 * aspect_y;

	// x y 중앙
	TextOutKeymap(ZACTION_MELEE_WEAPON    ,  90 * aspect_x, nHeight);
	TextOutKeymap(ZACTION_PRIMARY_WEAPON  , 148 * aspect_x, nHeight);
	TextOutKeymap(ZACTION_SECONDARY_WEAPON, 209 * aspect_x, nHeight);
	TextOutKeymap(ZACTION_ITEM1           , 265 * aspect_x, nHeight);
	TextOutKeymap(ZACTION_ITEM2           , 323 * aspect_x, nHeight);

	nHeight = 258 * aspect_y;

	TextOutKeymap(ZACTION_PREV_WEAPON  ,105*aspect_x,nHeight);
	TextOutKeymap(ZACTION_FORWARD      ,162*aspect_x,nHeight);
	TextOutKeymap(ZACTION_NEXT_WEAPON  ,222*aspect_x,nHeight);
	TextOutKeymap(ZACTION_RELOAD       ,280*aspect_x,nHeight);

	nHeight = 323 * aspect_y;

	TextOutKeymap(ZACTION_LEFT     ,120*aspect_x,nHeight);
	TextOutKeymap(ZACTION_BACK     ,178*aspect_x,nHeight);
	TextOutKeymap(ZACTION_RIGHT    ,239*aspect_x,nHeight);

	nHeight = 390 * aspect_y;

	TextOutKeymap(ZACTION_JUMP     ,196*aspect_x,nHeight);


	// TodoH(상) - Help 화면은 무엇인가효?

	pFont->m_fScale = 1.0f;

//	RSetWBuffer(true);

}