Files
2022-10-26 12:25:11 +08:00

189 lines
4.6 KiB
Objective-C

#ifndef __USER_INTERFACE_GUILDWINDOW_H__
#define __USER_INTERFACE_GUILDWINDOW_H__
//------------------------------------------------------------------------------
/**
@class uiGuildWindow
guild window user interface
(C) 2005 ckbang
*/
#ifdef _NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
#else
#include "uiGuildWindow_def.h"
#include "uiBase.h"
#include "GlobalFunc.h"
#include "InterfaceManager.h"
class uiGuildMan;
class uiGuildWindow :
public uiBase
{
enum eDIALOG_POS
{
DLGPOS_CHKBTN_MEMBER_INFOS,
DLGPOS_CHKBTN_GUILD_INFO,
DLGPOS_CHKBTN_GUILD_STYLE,
DLGPOS_CHKBTN_GUILD_MAN,
DLGPOS_BTN_EXIT,
DLGPOS_TXT_GUILD_NAME,
DLGPOS_TXT_MASTER_NAME,
DLGPOS_TXT_GUILD_LEVEL,
DLGPOS_TXT_NUM_MEMBERS,
DLGPOS_TXT_GUILD_UP,
DLGPOS_TXT_PERSON_UP,
DLGPOS_TXT_GUILD_OWN_GP,
DLGPOS_TXT_DOMINATION_MAP_COUNT,
DLGPOS_TXT_DOMINATION_JOIN_COUNT,
DLGPOS_TXT_DOMINATION_DEFENSE_COUNT,
DLGPOS_TXT_DOMINATION_BOSS_HUNTTING_COUNT,
#ifdef __NA_000000_20070528_TAIWAN_GUILD_PVP
DLGPOS_TXT_GUILD_PVP_RESULT,
DLGPOS_TXT_GUILD_PVP_POINT,
#endif
DLGPOS_LST_GUILD_NOTICE,
DLGPOS_VSCROLL_NOTICE,
DLGPOS_TI_GUILD_MARK_REGISTER,
DLGPOS_TI_GUILD_GP_EXCHANGE,
DLGPOS_TI_GUILD_UP_DONATE,
DLGPOS_TI_GUILD_DOMINATION_MANAGEMENT,
DIALOG_MAX,
};
enum
{
POS_CHKBTN_BEGIN = DLGPOS_CHKBTN_MEMBER_INFOS,
POS_CHKBTN_END = DLGPOS_CHKBTN_GUILD_MAN + 1,
POS_CHKBTN_SIZE = POS_CHKBTN_END - POS_CHKBTN_BEGIN,
POS_TXT_BEGIN = DLGPOS_TXT_GUILD_NAME,
POS_TXT_END = DLGPOS_LST_GUILD_NOTICE,
POS_TXT_SIZE = POS_TXT_END - POS_TXT_BEGIN,
};
public:
uiGuildWindow(InterfaceManager *pUIMan);
virtual ~uiGuildWindow();
//-------------------------------- ------------------------------------------
// init/release
//
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void Release();
protected:
void InitControls();
//--------------------------------------------------------------------------
// helper/comms.
//
public:
uiGuildMan* GetManager();
//--------------------------------------------------------------------------
// functions
//
public:
void updateGuildInfo();
void setGuildNotice();
//--------------------------------------------------------------------------
// dialog functions
//
public:
protected:
virtual void OnShowWindow( BOOL val );
virtual void OnUpdateSolarDialog();
void refreshGuildNotice();
void ClickDominationManagementButton();
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:
uiGuildMan* m_pGuildMan;
CCtrlStaticWZ* m_pTxtControls[POS_TXT_SIZE];
CCtrlButtonCheckWZ* m_pChkBtnControls[POS_CHKBTN_SIZE];
CCtrlButtonWZ* m_pExitBtnControl;
bool m_bControlsInitialized;
//bool m_bShow;
UI_CONTROL_STATIC_PROPERTY(GuildGradeName, StrToWzID("ST00"));
CCtrlListWZ * m_pLstControlNotice;
std::vector<util::_tstring> m_vstrNotice;
CCtrlVScrollWZ* m_pScroll;
};
//------------------------------------------------------------------------------
/**
*/
inline
POSTYPE
uiGuildWindow::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return DIALOG_MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline
CControlWZ *
uiGuildWindow::getControl( POSTYPE AtPos )
{
assert( AtPos < DIALOG_MAX );
return GetControlWZ( m_wzId[AtPos] );
}
//------------------------------------------------------------------------------
/**
*/
inline
uiGuildMan*
uiGuildWindow::GetManager()
{
return this->m_pGuildMan;
}
#endif //_NA_003923_20120217_GUILD_RENEWAL_UI_GUILD_MANAGER
//------------------------------------------------------------------------------
#endif // __USER_INTERFACE_GUILDWINDOW_H__