#pragma once //------------------------------------------------------------------------------ // // ÀÛ¾÷ÀÚ: ÀÌÁö¿¬ // uiCharPopupMenu class //------------------------------------------------------------------------------ #include "uiCharPopupMenu_def.h" #include "uibase.h" #include "interfacemanager.h" class uiCharPopupMan; class uiCharPopupMenu: public uiBase { enum eDIALOG_POS { DLGPOS_LST_MENU, DIALOG_MAX, }; enum ePOPUP_MENU { ePMENU_NORMAL_WHISPER, // ±Ó¼Ó¸» #ifdef _NA_002935_20110704_ITEM_SCORE ePMENU_SHOW_EQUIP, //Àåºñº¸±â #endif //_NA_002935_20110704_ITEM_SCORE ePMENU_NORMAL_FRIEND, // Ä£±¸Ãß°¡ ePMENU_NORMAL_TRADE, // °Å·¡ ePMENU_NORMAL_FOLLOW, // µû¶ó°¡±â #ifdef _KIKI_ADD_G_LOG_MENU ePMENU_NORMAL_G_LOG, // G-·Î±× #endif ePMENU_GROUP_ADD, // ±×·ìÃß°¡ ePMENU_GROUP_DEL, // ±×·ì»èÁ¦ ePMENU_PARTY_MASTER_INVITE, // ÆÄƼÃÊ´ë ePMENU_PARTY_MASTER_MIGRATION, // ÆÄÀåÀ§ÀÓ ePMENU_PARTY_MASTER_KICK, // °­Á¦Ãß¹æ #ifdef _NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL ePMENU_GUILD_INVITE, // ±æµåÃÊ´ë #endif //_NA_003923_20120222_GUILD_RENEWAL_UI_RENEWAL ePMENU_BLOCK_ADD, // Â÷´ÜÃß°¡ ePMENU_BLOCK_DELETE,// Â÷´ÜÇØÁ¦ #ifdef _NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM ePMENU_BATTLE_GROUND_VOTE, // ÀüÀå Ãß¹æÅõÇ¥ #endif //_NA_006800_20130703_BATTLE_GROUND_VOTE_SYSTEM ePMENU_CANCEL, ePMENU_MAX }; public: uiCharPopupMenu(InterfaceManager *pUIMan); virtual ~uiCharPopupMenu(); //-------------------------------- ------------------------------------------ // init/release // public: virtual void Init(CDrawBase* pDrawBase); virtual void Release(); protected: void InitControls(); //-------------------------------------------------------------------------- // helper/comms. // public: uiCharPopupMan* GetManager(); //-------------------------------------------------------------------------- // functions // private: BOOL _checkSkipMenu(int iMenuIndex); void _setListWidth(); // ½ºÆ®¸µ °¹¼ö¿¡ µû¶ó À¯µ¿ÀûÀ¸·Î º¯ÇϹǷΠShowWindow½Ã °è»êÇÒ°Í public: //-------------------------------------------------------------------------- // dialog functions // public: void updateMenu(); void renderMenu(); void ClearListSelect() { m_pListControl->SetCurSel(-1); } protected: virtual void OnShowWindow( BOOL val ); virtual void OnUpdateSolarDialog(); virtual void OnRenderSolarDialog(); virtual void Process(DWORD dwTick); protected: CControlWZ * getControl( POSTYPE AtPos ); POSTYPE getCtrlIDToPos( WzID wzId ); static WzID m_wzId[DIALOG_MAX]; //-------------------------------------------------------------------------- // procedure // public: virtual void NetworkProc( MSG_BASE * pMsg ); // Pure virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure //-------------------------------------------------------------------------- // member vars // private: uiCharPopupMan* m_pCharPopupMan; CCtrlListWZ* m_pListControl; bool m_bControlsInitialized; std::vector m_vMenu; static int m_PopupMenuArray[ePMENU_MAX]; int m_iSaveType; bool m_bSaveGroupType; bool block_member_type_; #ifdef _NA_002935_20110704_ITEM_SCORE bool show_equip_menu_; #endif //_NA_002935_20110704_ITEM_SCORE CTimerSimple m_timerShowoffLater; int m_iListWidth; }; //------------------------------------------------------------------------------ /** */ inline POSTYPE uiCharPopupMenu::getCtrlIDToPos( WzID wzId ) { for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i ) { if( m_wzId[i] == wzId ) { return i; } } return DIALOG_MAX; } //------------------------------------------------------------------------------ /** */ inline CControlWZ * uiCharPopupMenu::getControl( POSTYPE AtPos ) { assert( AtPos < DIALOG_MAX ); return GetControlWZ( m_wzId[AtPos] ); } //------------------------------------------------------------------------------ /** */ inline uiCharPopupMan* uiCharPopupMenu::GetManager() { return this->m_pCharPopupMan; }