DragonNest/Common/EtInterface/EtUITextBoxData.cpp

144 lines
3.1 KiB
C++
Raw Permalink Normal View History

#include "StdAfx.h"
#include "EtUITextBoxData.h"
#include "EtTexture.h"
#include "EternityEngine.h"
#include "EtResourceMng.h"
// Note : Class Word
//
#ifdef _DEBUG
#define new new(_NORMAL_BLOCK,__FILE__,__LINE__)
#endif
CWord::CWord()
{
}
CWord::~CWord()
{
}
void CWord::UpdatePos( float fX, float fY )
{
m_sProperty.uiCoord.fX = fX;
m_sProperty.uiCoord.fY = fY;
}
void CWord::Clear()
{
m_sProperty.Clear();
m_strWord.clear();
m_strWordWithTag.clear();
}
/////////////////////////////////////////////////////////////////
// Note : Class Line
//
CLine::CLine()
: m_fLineSpace(0.0f)
, m_bSelected(false)
, m_bMouseInLine(false)
, m_uiCoord( 0.f, 0.f, 0.f, 0.f )
{
}
CLine::~CLine()
{
SAFE_DELETE_VEC( m_vecWord );
}
void CLine::SetLineSpace( float fLineSpace )
{
m_uiCoord.fHeight -= GetLineSpace();
this->m_fLineSpace = fLineSpace;
m_uiCoord.fHeight += GetLineSpace();
}
void CLine::UpdatePos( float fX, float fY )
{
m_uiCoord.fX = fX;
m_uiCoord.fY = fY;
fY += GetLineSpace();
for( int i=0; i<(int)m_vecWord.size(); i++ )
{
if( m_vecWord[i].m_sProperty.dwFormat & UITEXT_RIGHT )
{
// <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>.
// Word<72><64> Pos<6F><73> <20><><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD> <20>»<EFBFBD><C2BB><EFBFBD> <20><><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD> fX<66><58> <20><><EFBFBD>ؾ<EFBFBD><D8BE>ϴ°<CFB4> <20>ƴ϶<C6B4>,
// <20>θ<EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD> <20>»<EFBFBD><C2BB><EFBFBD> <20><><EFBFBD>ؿ<EFBFBD><D8BF><EFBFBD> fX<66><58> <20><><EFBFBD>ؾ<EFBFBD><D8BE>ϴ<EFBFBD> <20><><EFBFBD>̴<EFBFBD>.
// (<28>̰<EFBFBD> <20><><EFBFBD><EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> fX<66><58> <20><><EFBFBD>Ҷ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>.)
// <20><20>θ<EFBFBD> <20><><EFBFBD>̾<EFBFBD><CCBE>α<EFBFBD><CEB1><EFBFBD> DrawDlgText<78><74> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̴<EFBFBD>.
//
// <20>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Word<72><64> fX<66><58> <20><><EFBFBD>Ҷ<EFBFBD><D2B6><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fX<66><58>ŭ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
//
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><CFB6><EFBFBD> Append(<28>ش<EFBFBD><D8B4>ٿ<EFBFBD> <20>߰<EFBFBD>)<29><>, Add(<28><><EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD> <20>߰<EFBFBD>)<29><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʰ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
m_vecWord[i].UpdatePos( m_uiCoord.fX + m_uiCoord.fWidth - m_vecWord[i].m_sProperty.uiCoord.fWidth, fY );
// Note : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Word<72><64> <20><><EFBFBD>Ѵ<EFBFBD>.
return;
}
else if( m_vecWord[i].m_sProperty.dwFormat & UITEXT_CENTER )
{
// Append<6E><64> CENTER<45><52><EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD> <20>־<EFBFBD><D6BE>ϳ<EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD> <20>־<EFBFBD><D6BE>ϳ<EFBFBD>.
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Ϳ<EFBFBD> <20>дٸ<D0B4> Append<6E><64><EFBFBD><EFBFBD> CENTER<45><52>ü<EFBFBD><C3BC> <20>ް<EFBFBD> <20>ص<EFBFBD> <20><> <20><>ü<EFBFBD><C3BC> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״<EFBFBD>,
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CENTER<45><52> <20>ؾ߰ڴ<DFB0>.
float fEmptyWidth = m_uiCoord.fWidth - (fX - m_uiCoord.fX);
float fWordWidth = m_vecWord[i].m_sProperty.uiCoord.fWidth;
// RIGHT<48><54> <20>޸<EFBFBD> fX<66><58><EFBFBD>ٰ<EFBFBD> <20>߰<EFBFBD><DFB0>ؾ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʺ<EFBFBD><CABA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD> <20>ȴ<EFBFBD>.
m_vecWord[i].UpdatePos( fX + (fEmptyWidth - fWordWidth)*0.5f, fY );
}
else
{
m_vecWord[i].UpdatePos( fX, fY );
}
fX = m_vecWord[i].m_sProperty.uiCoord.Right();
}
}
std::wstring CLine::GetText()
{
std::wstring strTemp;
for( int i=0; i<(int)m_vecWord.size(); i++ )
{
strTemp += m_vecWord[i].m_strWord;
}
return strTemp;
}
CImageLine::CImageLine()
{
m_hTexture;
std::string m_szFileName;
}
CImageLine::~CImageLine()
{
SAFE_RELEASE_SPTR( m_hTexture );
}
void CImageLine::SetImage( WCHAR *wszFileName, SUICoord &Coord )
{
ToMultiString( wszFileName, m_szFileName );
SetImage( (char*)m_szFileName.c_str(), Coord );
}
void CImageLine::SetImage( char *szFileName, SUICoord &Coord )
{
m_szFileName = szFileName;
m_hTexture = EternityEngine::LoadTexture( CEtResourceMng::GetInstance().GetFullName( szFileName ).c_str() );
m_uiUV = Coord;
}
EtTextureHandle CImageLine::GetTexture()
{
return m_hTexture;
}