Files
Leviathan/Client/Game/game/Interface/Party/SUIPartyWndMenuParty.h
T
2026-06-01 12:46:52 +02:00

106 lines
3.0 KiB
C++

#pragma once
//#include "SUIWnd.h"
#include <mmo/ArType.h>
class SUIDisplayInfo;
class KUIControlCheck;
class SUIPartyDualWnd;
/// 파티메뉴
class SUIPartyWndMenuParty : public SUIWnd
{
public:
SUIPartyWndMenuParty( SGameManager* pGameManager, SUIDisplayInfo* pDisplayInfo )
: SUIWnd( pGameManager )
, m_pDisplayInfo( pDisplayInfo )
{
m_pLinkPartyUI = NULL; // 2011.11.14 - servantes : 연결된 파티창 포인터
};
virtual bool InitControls( KPoint kPos );
virtual bool InitData( bool bReload = false );
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
void SetLinkPartyUIPtr(SUIPartyDualWnd* pLinkPartyUI) { m_pLinkPartyUI = pLinkPartyUI; } // 2011.11.14 - servantes : 연결된 파티창 포인터
SUIPartyDualWnd* GetLinkPartyUIPtr() { return m_pLinkPartyUI; } // 2011.11.14 - servantes : 연결된 파티창 포인터
private:
void RefreshMenu();
void RefreshPartyMenu();
void RefreshGuildMenu();
void SetControlEnableColor( const char * pControlName, const char * pColor );
void SetControlEnable( const char * pControlName, bool bEnable );
bool IsPartyMember( const AR_HANDLE handle );
void InitMenuList();
void RefreshMenuSlot();
void DisableMenuSlot();
void ShowSelectMenu( int nIndex );
bool SelectPartyMenu( int nIndex );
bool SelectGuildMenu( int nIndex );
protected:
/// 2011.11.09 팝업창 업데이트(show/hide 등등) - prodongi
void updatePopup(int x, int y);
/// 2011.11.09 버튼 다운에 의한 sViewStatus의 상태를 설정한다 - prodongi
void clickSetViewStatus(int type, byte status);
/// 2011.11.09 버튼 다운에 의한 sViewStatus의 상태를 토글한다 - prodongi
void clickToggleViewStatus(int type);
///
void setViewStatus(int type, int status);
///
// void swapButton(int type, byte status);
void enableDistributionCheck(bool enable, KUIControlCheck* checkControl, KUIControlStatic* staticControl);
private:
SUIDisplayInfo* m_pDisplayInfo;
enum
{
REQ_NONE,
REQ_INVITE,
REQ_KICK,
REQ_TRANSFER,
};
int m_nWorkMode; ///< 요청한 작업 모드
bool m_bOpen;
bool m_bCheck00;
bool m_bCheck01;
bool m_bCheck02;
std::string m_strSelectPartyName; // 선택한 파티 이름
/// 2011.11.09 뷰 상태
struct sViewStatus
{
enum { FOLDING, BUFF, CREATURE, SMALL_UI, STATUS_NUM }; /// 버프, 크리처, UI
byte m_status[STATUS_NUM];
};
sViewStatus m_viewStatus;
KUIControlCheck* m_check0;
KUIControlCheck* m_check1;
KUIControlCheck* m_check2;
KUIControlStatic* m_distributionStatic0;
KUIControlStatic* m_distributionStatic1;
KUIControlStatic* m_distributionStatic2;
KUIControl* m_button0;
KUIControl* m_button1;
KUIControl* m_button2;
KUIControl* m_button3;
KUIControl* m_button4;
SUIPartyDualWnd* m_pLinkPartyUI; // 2011.11.14 - servantes : 연결된 파티창 포인터
};