#pragma once #include "EtUIEditBox.h" #include "EtUIIME.h" class CEtUIIMEEditBox : public CEtUIEditBox, public CEtUIIME { public: CEtUIIMEEditBox( CEtUIDialog *pParent ); virtual ~CEtUIIMEEditBox(void); protected: DWORD m_dwCompTargetNonBkColor; DWORD m_dwCompTargetBkColor; DWORD m_dwCompTargetColor; DWORD m_dwCompTargetNonColor; SUICoord m_IndicatorCoord; // Note: Á¶ÇÕÁßÀÎ ¹®ÀÚ¿­ÀÌ ³Ê¹« ±æ¾î¼­ ¿Ï¼ºµÈ ¹®ÀÚ¿­À» ¹Ð¾î³»¼­ Çϳªµµ º¸ÀÌÁö ¾Ê°Ô µÇ´Â °æ¿ì¸¦ ¸·´Â´Ù. // ¾È±×·¯¸é m_nFirstVisible °ªÀÌ ¹®ÀÚ¿­ ±æÀ̸¦ ³Ñ¾î°¡°Ô µÇ¾î¹ö¸². bool m_bFirstVisibleOver; int m_nTempCompSize; // ÀϺ» È常®½ºÆ® ·»´õ¸µÇÒ¶§ ±âº»ÀûÀ¸·Î´Â Á¶ÇÕÁßÀÎ ±ÛÀÚ ¾Æ·¡¿¡ ·»´õ¸µÇϰí, // ´ÙÀ̾ó·Î±× ¿µ¿ªÀ» ³Ñ¾î°£´Ù¸é À§¿¡´Ù ·»´õ¸µÇÑ´Ù. // ÀÌ°É °­Á¦·Î ¾Æ·¡¿¡´Ù ·»´õ¸µÇÏ·Á¸é true·Î ¹Ù²ãÁÖ¸é µÈ´Ù. bool m_bForceBottomPosition; public: void SetCompTextColor( DWORD dwColor ) { m_Property.IMEEditBoxProperty.dwCompTextColor = dwColor; } void CheckIMEToggleState(); void CancelIMEComposition(); void GetIMECompositionString(std::wstring& str); int GetMaxChar() const; void SetMaxChar( DWORD dwChar ); void ForceRenderCandidateReadingWindowBottomPosition( bool bForce ) { m_bForceBottomPosition = bForce; } public: virtual void Initialize( SUIControlProperty *pProperty ); virtual void SetTemplate( int nTemplateIndex ); virtual bool MsgProc( UINT uMsg, WPARAM wParam, LPARAM lParam ); virtual bool HandleMouse( UINT uMsg, float fX, float fY, WPARAM wParam, LPARAM lParam ); virtual void Focus( bool fFocus ); virtual void ClearText(); virtual void Show( bool bShow ); void PumpMessage(); virtual void UpdateRects(); virtual void Render( float fElapsedTime ); virtual void RenderCandidateReadingWindow( float fElapsedTime, bool bReading ); virtual void RenderComposition( float fElapsedTime ); virtual void RenderIndicator( float fElapsedTime ); protected: void TruncateCompString( bool bUseBackSpace = true, int iNewStrLen = 0 ); void FinalizeString( bool bSend ); void SendCompString(); // Note : IME¿¡¼­ ¹®ÀÚÁ¶Çսà ¹®ÀÚ¿­ÀÌ ¹þ¾î³ª´Â °ÍÀ» Á¶Á¤ÇØÁØ´Ù. // ½ÇÁ¦ ÇöÀç Ä¿¼­¸¦ ¼öÁ¤ÇÏÁö´Â ¾Ê´Â´Ù. ¹®ÀÚ¿­ÀÇ ½ÃÀÛ À§Ä¡¸¸ Á¶Á¤ÇÑ´Ù. // Á¶ÇÕÁßÀÎ ¹®ÀÚÀÇ ¼ö¸¦ ³Ñ°ÜÁØ´Ù. void PlaceCaret( int nCP ); };