/* ========================================================================== * ÆÄ ÀÏ : MultiEditBox.h * ¸ñ Àû : ¸ÖƼ¶óÀÎ ¿¡µðÆ®¹Ú½º * ÀÛ ¼º ÀÚ : ±è°¡¶÷ * ÀÛ ¼º ÀÏ : 2007-03-15 * ÁÖÀÇ»çÇ× : *===========================================================================*/ #pragma once #include "UIIMENode.h" class cMultiEditBox : public cUIIMENode { public: cMultiEditBox( eUINodeType type = eUINODE_MULTIEDITBOX ); virtual ~cMultiEditBox(); /// ÅØ½ºÆ® ¼¼ÆÃ void SetText( LPCTSTR text, eText_Align align = eALIGN_LEFT ); void SetTextColor( unsigned long color ){ mDefaultColor = color; } protected: /// ÀûÇÕ ¿©ºÎ¸¦ ¸®ÅÏ virtual bool OnCreate( cUINodeProperty* ); virtual void OnProcess( unsigned long deltaTime, unsigned long accumTime ); virtual void OnRender( cUIFontItemKeeper* pKeeper ); virtual bool SetSkin( const cUINodeSkin* pskin ); virtual void OnMouseMove( const cUIPos& pos ); virtual void OnKeyDown( eKeyCode code ); virtual void OnLButtonDown( const cUIPos& pos, bool ctrl, bool /*AltPress*/, bool /*shiftPress*/ ); virtual void OnMouseLeft( const cUIPos& pos ); /// ÅØ½ºÆ® °ü·Ã µ¥ÀÌÅÍ ÀúÀå void SetTextData(); /// ÅØ½ºÆ® ·»´õ ¹× »Ñ¸± À§Ä¡ ¼³Á¤ void RenderText( cUIFontItemKeeper* pKeeper ); /// ij·µ °è»ê void RenderCaret(cUIFontItemKeeper* pKeeper ); /// ij·µ º¸ÀÌ´Â ½Ã°£ °è»ê void UpdateCaretTime( unsigned long accumTime ); /// ÇØ´ç ÁÂÇ¥¿¡ ÀÖ´Â ¹®ÀÚ¸¦ ã¾Æ³½´Ù. ( ¸¶¿ì½º·Î ÆíÁý ÁÂÇ¥ ¿Å±â±â ) void FindTextCaret( const cUIPos& pos ); private: /// ÅØ½ºÆ® ¶óÀÎ ÀúÀå ( °¢ ±ÛÀÚ¸¶´Ù ¾î´À ¶óÀο¡ ¼ÓÇÏ´ÂÁö ÀúÀå ) typedef tArray cTextLine; cTextLine mTextLineArray; /// °¢ ¶óÀκ° Æ÷ÇÔÇÏ´Â À妽º ÀúÀå /// ex ) 0 ¹ø¶óÀÎÀº 11¹ø À妽º±îÁö, 1¹ø¶óÀÎÀº 12¹øºÎÅÍ 23¹ø±îÁö typedef tArray cTextLen; cTextLen mTextIndexArray; /// ij·µ ½Ã°£ Ç÷¡±× bool mCaretTimeFlag; /// ij·µ Ç÷¡±× bool mShowCaretFlag; /// ij·µ ½Ã°£¿ë unsigned long mLastTick; /// ¿¡µðÆ® ¹Ú½º¿¡¼­ ±ÛÀÚ Ãâ·Â ½ÃÀÛÀ§Ä¡ cUIPos mEditingPos; /// ¿¡µðÆ®ÀÇ À§Ä¡ int mEditX, mEditY; /// ¿¡µðÆ®ÀÇ Ãâ·ÂµÇ´Â ¹®ÀÚ¿­ ÃÖ´ë width unsigned int mEditWidth; /// ÅØ½ºÆ® Á¤·Ä int mTextAlign; /// ½ÇÁ¦·Î ¿¡µðÆ®¿¡ »Ñ·ÁÁö´Â ÅØ½ºÆ® TCHAR mShowText[MAX_TEXT_LENGTH]; /// ¿¡µðÆ®ÅÇÀ妽º (ÅÇÀÌ ´­·ÈÀ»½Ã¿¡ Æ÷Ä¿½º¸¦ °¡Áö±â À§ÇÑ ÇÒ´çµÈ ¹øÈ£ ) int mEditTabIndex; };