#ifndef __QUICK_CONTAINER_H__ #define __QUICK_CONTAINER_H__ //======================================================================================================================= /** ´ÜÃàâ Ŭ·¡½º @author À¯À翵 @since @remarks */ #pragma once #include "uiBase.h" #include #include "QuickSlotContainer.h" class CControlWZ; class ItemUnitRenderer; class QuickContainer : public QuickSlotContainer, public uiBase { enum eQUICK_POS { QUICK_BT00 = 0, QUICK_BT01, QUICK_BT02, QUICK_BT03, QUICK_BT04, QUICK_BT05, QUICK_BT06, QUICK_BT07, QUICK_BT08, QUICK_BT09,//10 QUICK_BT10, QUICK_BT11, QUICK_BT12, QUICK_BT13, QUICK_BT14, QUICK_BT15, QUICK_BT16, QUICK_BT17, QUICK_BT18, QUICK_BT19,//20 QUICK_BT20, QUICK_BT21, QUICK_BT22, QUICK_BT23, QUICK_BT24, QUICK_BT25, QUICK_BT26, QUICK_BT27, QUICK_BT28, QUICK_BT29,//30 QUICK_BT30, QUICK_BT31, QUICK_BT32, QUICK_BT33, QUICK_BT34, QUICK_BT35, QUICK_BT36, QUICK_BT37, QUICK_BT38, QUICK_BT39,//40 QUICK_UPBT, QUICK_DNBT, QUICK_CHANGE_SLOT, QUICK_BACKGROUND_SINGLE, QUICK_BACKGROUND_DOUBLE, #ifdef _NA_000000_20130114_RENEWER_UI //exp QUICK_PICTURE_EXPP002, QUICK_PICTURE_EXPP000, QUICK_STATIC_TEXT009, #else QUICK_NUMBER_BOTTOM_LINE, #endif QUICK_MAX, }; enum { QUICK_SLOT_MAX = QUICK_BT39+1, QUICK_SLOT_HALF = QUICK_BT19+1 }; enum { RECTANGEL_OF_UI, RECTANGEL_OF_CONTROL, RECTANGLE_MAX }; enum { QUICK_START_SLOT = 0 }; public: QuickContainer(); virtual ~QuickContainer(); virtual VOID Init( CDrawBase * pDrawBase ); virtual VOID Release(); // ¾ÆÀÌÅÛ Ã³¸® virtual RC::eSLOT_INSERT_RESULT InsertSlot( POSTYPE AtPos, SCSlot & IN rSlot ); // ½½·Ô¿¡ °´Ã¼ Ãß°¡ virtual BOOL DeleteSlot( POSTYPE AtPos, SCSlot * pSlotOut ); // ½½·ÔÀÇ °´Ã¼ »èÁ¦ // ÀÎÅÍÆäÀ̽º ó¸® virtual VOID MessageProc( SI_MESSAGE * pMessage ); virtual VOID MouseOver_MsgProc( SI_MESSAGE * pMessage ); virtual VOID NetworkProc( MSG_BASE * pMsg ); virtual VOID OnShowWindow(BOOL val); virtual void MoveDefaultWindowPos(); VOID FlushUnitDraw(); VOID InitItemRender(); ItemUnitRenderer * GetItemUnitRender() const; // ½ÇÁ¦ ½½·ÔÁ¤º¸°ü·ÃÇÑ À§Ä¡ POSTYPE GetRealSlotPos( POSTYPE pos ); // ÀÎÅÍÆäÀ̽º ÄÁÆ®·Ñ À§Ä¡. POSTYPE GetRelativeSlotPos( POSTYPE pos ); BOOL IsExistSameSerialItem(DBSERIAL Serial); BOOL IsExistSameCodeItem( CODETYPE Code ); POSTYPE GetPosByCode(CODETYPE code , POSTYPE AfterPos = 0); VOID ReFreshRenderSlot(); int GetCurTabNum() const { return m_TabNum; } VOID PrevQuickTab(); VOID NextQuickTab(); void SetCurQuickSlot(int iIndex = -1); void ChangeSlotLine(bool double_size); void ToggleChangeSlotSize(); void ToggleSlot(); void UpdateDialogSize(); bool double_size(){ return double_size_; } void ProcessToolTip(bool bMouseOver, int tooltip_string_code); void UpdateEquip(SLOTIDX slot_index_prev, POSTYPE inven_pos_prev, SLOTCODE slot_code_prev, SLOTIDX slot_index_next, POSTYPE inven_pos_next, SLOTCODE slot_code_next); // Àκ¥Å丮 °»½Å ¶§ ã¾Æ¼­ ÀÖÀ¸¸é À§Ä¡ °»½Å void set_is_item_move(bool is_value){ is_item_move_ = is_value; } bool is_item_move(){ return is_item_move_; } protected: virtual CControlWZ * getControl( POSTYPE AtPos ); POSTYPE getCtrlIDToPos( WzID wzId ); virtual VOID OnUpdateSolarDialog(); virtual VOID OnRenderSolarDialog(); VOID getControlPos( POSTYPE AtPos, RECT & rectOut ); POSTYPE m_TabNum; POSTYPE m_TabIndex; POSTYPE m_PrevTabIndex; static WzID m_wzId[QUICK_MAX]; bool double_size_; #ifdef _NA_000000_20130114_RENEWER_UI #else CCtrlPictureWZ* numbers_of_bottom_line_; #endif //_NA_000000_20130114_RENEWER_UI CCtrlPictureWZ* background_of_double_slot_; CCtrlPictureWZ* background_of_single_slot_; CCtrlButtonWZ* button_of_double_;//+ CCtrlButtonWZ* button_of_single_;//- RECT rectangles_[RECTANGLE_MAX]; SI_FRECT rectangle_of_texture_; SI_TFORMAT* format_of_image_control_; ItemUnitRenderer * m_pItemUnitRenderer; bool is_item_move_; #ifdef _NA_000000_20130114_RENEWER_UI float exp_gauge_size; CCtrlPictureWZ* exp_line_; CCtrlStaticWZ * Text_EXP_Info_; TCHAR m_szRenderInfo[256]; bool is_double_slot_; public: VOID SetHeroExp(float fPercent); void RenderText(); #endif }; #endif // __QUICK_CONTAINER_H__