/*! * \file TextDisaplyManager.h * \brief ½Ã°£ÀÌ Áö³ª¸é ÆäÀÌµå¾Æ¿ô ÅØ½ºÆ®¸¦ °ü¸®ÇÏ´Â ¸Þ´ÏÁ® * \author ±è°æÇ¥ * \todo Á¦³×¸¯ÇÏ°Ô ¹Ù²Ü ÇÊ¿ä ÀÖÀ½. * \version 2009/02/02 ±è°æÇ¥ (lammy@webzen.co.kr) - doxygen ÁÖ¼® Ãß°¡ * \version 2008/12/12 ±è°æÇ¥ (lammy@webzen.co.kr) - first release */ #ifndef __TEXT_DISPLAY_MANAGER_H__ #define __TEXT_DISPLAY_MANAGER_H__ #include /*! * \class Text_Member class * \brief ÅØ½ºÆ® µ¥ÀÌÅÍ * \author ±è°æÇ¥ */ class Text_Member { public: /*! * »ý¼ºÀÚ * \param[in] str Ãâ·ÂÇÒ ÅØ½ºÆ® */ Text_Member( std::string str ); /*! * »ý¼ºÀÚ * \param[in] str Ãâ·ÂÇÒ ÅØ½ºÆ® * \param[in] Color ÅØ½ºÆ® »ö»ó */ Text_Member( std::string str, WzColor Color ); /// ¼Ò¸êÀÚ ~Text_Member() {} protected: /// ±âº»»ý¼ºÀÚ ºí·° Text_Member() {} public: /*! * °è»ê ÇÔ¼ö * \param[in] dwTick ½Ã°£Æ½ */ BOOL Process( DWORD dwTick ); /// µð½ºÇ÷¹ÀÌ ½Ã°£ ¼¼ÆÃ void SetDisplayTime( DWORD time ) { m_dwDisplayTime = time; } /// ¾ËÆÄ°ªÀ» ¸®ÅÏ BYTE GetAlpha() const { return m_Alpha; } /// ½ºÆ®¸µÀ» ¸®ÅÏ char * GetString() { return const_cast( m_str.c_str() ); } /// ½ºÆ®¸µ ±æÀÌ ¸®ÅÏ size_t GetStringSize() { return m_str.size(); } WzColor GetColor() { return m_Color; } private: /// ¹®ÀÚ¸¦ ÀúÀåÇÒ ½ºÆ®¸µ std::string m_str; /// µð½ºÇ÷¹ÀÌ ½Ã°£ DWORD m_dwDisplayTime; /// »ç¶óÁú ½Ã°£ DWORD m_dwDisappearTime; /// °è»êÁßÀÎÁö¸¦ üũ BOOL m_bProcess; /// »ç¶óÁú °ÍÀÎÁö¸¦ üũ BOOL m_bDisappear; /// ½ºÆ®¸µ ¾ËÆÄ°ª BYTE m_Alpha; /// ÅØ½ºÆ® »ö»ó WzColor m_Color; }; typedef boost::shared_ptr TEXT_MEMBER_SHARED_PTR_TYPE; /*! * \class TextDisplayManager class * \brief ÅØ½ºÆ® µ¥ÀÌÅ͸¦ °ü¸®ÇÏ´Â ¸Þ´ÏÁ® * \author ±è°æÇ¥ */ class TextDisplayManager { /// ÅØ½ºÆ®¸¦ °ü¸®ÇÏ´Â ¸®½ºÆ® typedef std::list TEXT_MEMBER_LIST_TYPE; typedef std::list::iterator TEXT_MEMBER_LIST_ITR_TYPE; public: enum { DEFAULT_HEIGHT_POS = 62, }; public: /// »ý¼ºÀÚ TextDisplayManager(); /*! * »ý¼ºÀÚ * \param[in] iHeightPosition Ãâ·ÂÇÒ ÅØ½ºÆ® * \param[in] FontID ÅØ½ºÆ® ÆùÆ® */ TextDisplayManager( int iHeightPosition, WzID FontID ); /// °è»ê ÇÔ¼ö BOOL Process( DWORD dwTick ); /// ÅØ½ºÆ®¸¦ ·»´õ¸µ ÇÑ´Ù. BOOL Render(); /// µ¥ÀÌÅ͸¦ Àμ­Æ® ÇÑ´Ù. BOOL Insert( TEXT_MEMBER_SHARED_PTR_TYPE data ); private: /// µ¥ÀÌÅÍ °ü¸® ¸®½ºÆ® TEXT_MEMBER_LIST_TYPE m_TextMemberList; /// ÅØ½ºÆ®°¡ Ãâ·ÂµÇ´Â ³ôÀ̰ª int m_iHeightPosition; /// ÅØ½ºÆ® ÆùÆ® WzID m_FontID; }; #endif