#pragma once // Note : Line #define UITEXT_NONE 0x00000000 #define UITEXT_CLIP 0x00000001 #define UITEXT_SYMBOL 0x00000010 // Note : Word #define UITEXT_RIGHT 0x00000100 #define UITEXT_CENTER 0x00001000 using namespace EtInterface; struct SWORD_PROPERTY { SUICoord uiCoord; // ÅØ½ºÆ®°¡ Ãâ·ÂµÉ ÁÂÇ¥¿Í Å©±â SUIColorEx uiColor; DWORD dwFormat; // ÅØ½ºÆ® Æ÷¸Ë(UITEXT_CLIP, UITEXT_SYMBOL) bool bSymbol; // ´Ü¾î ³¡¿¡ "..."¸¦ Ãß°¡ÇÒ °ÍÀÎÁö ¾Æ´ÑÁö ¿©ºÎ bool bAdd; // AddText()µÈ ´Ü¾î¶ó¸é true, AppendText()¶ó¸é false //int nFontIndex; // ´Ù¸¥ ÆùÆ®¸¦ »ç¿ëÇϱâ À§ÇÑ À妽º D3DCOLOR BgColor; SWORD_PROPERTY() : dwFormat(UITEXT_NONE) //, nFontIndex(-1) , bSymbol(false) , bAdd(false) , BgColor(0) { } void Clear() { uiCoord.SetCoord(0.f, 0.f, 0.f, 0.f); uiColor.Clear(); dwFormat = UITEXT_NONE; bSymbol = false; bAdd = false; BgColor = 0; } }; // Note : Ãß°¡ µÇ´Â ÅØ½ºÆ®´Â ÇѰ¡Áö »ö»óÀ» °¡Áø´Ù. // µû¶ó¼­ ¹®ÀåÀÌ µÇ´õ¶óµµ ÇϳªÀÇ ¿öµå·Î º»´Ù. class CWord { public: CWord(); ~CWord(); public: std::wstring m_strWord; SWORD_PROPERTY m_sProperty; std::wstring m_strWordWithTag; public: void UpdatePos( float fX, float fY ); void Clear(); }; typedef std::vector VECWORD; // °¢ ¶óÀο¡ º°µµÀÇ ½ºÆ®¸µ°ªÀ» ±â¾ïÇØµÐ´Ù. // äÆÃâ¿¡ ¶óÀΠŬ¸¯½Ã ÇØ´ç À¯Àú·Î ±Ó¸» ³Ö´Â °ÍÀ» ±¸ÇöÇϱâ À§ÇÔÀεí ÇÏ´Ù. struct SLineData { std::wstring m_strData; int m_nData; void Clear() { m_strData.clear(); m_nData = 0; } }; // Note : ¶óÀÎÀº Ãâ·ÂµÇ´Â ÅØ½ºÆ®¸¦ ¶óÀÎÀ¸·Î ºÐ¸®ÇÑ´Ù. // ³ªÁß¿¡ ¶óÀδÜÀ§·Î °ü¸®Çϱâ À§Çؼ­´Ù. class CLine { public: CLine(); virtual ~CLine(); enum LineTypeEnum { Line, Image, }; public: VECWORD m_vecWord; SUICoord m_uiCoord; float m_fLineSpace; // Note : ¶óÀΰú ¶óÀÎ »çÀÌÀÇ °£°Ý. protected: bool m_bSelected; bool m_bMouseInLine; SLineData m_sLineData; // ¶óÀÎÀÌ °¡Áö´Â º°µµÀÇ ½ºÆ®¸µ °ª. public: void Select( bool bSelect ) { m_bSelected = bSelect; } bool IsSelected() { return m_bSelected; } void SetMouseInLine( bool bMouseInCtl ) { m_bMouseInLine = bMouseInCtl; } bool IsMouseInLine() { return m_bMouseInLine; } public: std::wstring GetText(); void SetLineData( SLineData &sLineData ) { m_sLineData = sLineData; } SLineData &GetLineData() { return m_sLineData; } public: void SetLineSpace( float fLineSpace ); float GetLineSpace() { return m_fLineSpace; } void UpdatePos( float fX, float fY ); virtual LineTypeEnum GetLineType() { return CLine::Line; } }; class CImageLine : public CLine { public: CImageLine(); virtual ~CImageLine(); protected: EtTextureHandle m_hTexture; std::string m_szFileName; SUICoord m_uiUV; public: void SetImage( WCHAR *wszFileName, SUICoord &Coord ); void SetImage( char *szFileName, SUICoord &Coord ); EtTextureHandle GetTexture(); SUICoord &GetTextureUV() { return m_uiUV; } virtual LineTypeEnum GetLineType() { return CLine::Image; } }; typedef std::vector VECLINE; typedef VECLINE::iterator VECLINE_ITER;