231 lines
7.0 KiB
C++
231 lines
7.0 KiB
C++
#pragma once
|
|
|
|
|
|
//#include "SUIWnd.h" // UI 공통 클래스
|
|
|
|
|
|
//---------------------------------------------------------------------------------------------
|
|
//---------------------------------------------------------------------------------------------
|
|
//
|
|
// class SUIGuildMemberTab
|
|
//
|
|
// 길드원들의 정보를 리스트로 표현한다.
|
|
//
|
|
//
|
|
//---------------------------------------------------------------------------------------------
|
|
|
|
|
|
class KUIListItem;
|
|
class KUIListControl;
|
|
|
|
// Guild 창
|
|
|
|
#define MAX_BTN_SORT_STATE 4 // 정렬상태 3가지.
|
|
#define MAX_BTN_SORT_STATE_SIZE 5 // 정렬상태를 가지는 버튼 4개.
|
|
#define MAX_LIST_COUNT 14
|
|
|
|
class SUIGuildMemberTab : public SUIWnd
|
|
{
|
|
protected:
|
|
//-----------------------------
|
|
// 2010.12.07. 길드정보 변경시 UI 갱신방식 => 길드윈도우 open 시 UI 갱신 으로 변경.
|
|
|
|
DWORD m_nRefresh; // 갱신조건.
|
|
bool m_bUIRefresh; // 길드윈도우 open 시에 UI를 갱신할지 여부.
|
|
int m_beforeGuildMember; // 이전 길드원수.
|
|
|
|
//-----------------------------
|
|
|
|
|
|
|
|
|
|
// 길드원목록.
|
|
KUIListControl * m_pListGuild;
|
|
|
|
// 관리모드시 셀렉트 표시용 컨트롤.
|
|
KUIWnd * m_pTabSelectControl;
|
|
KUIWnd * m_pSelectPosControl; // 셀렉트 위치좌표용 컨트롤.
|
|
|
|
bool m_bFirstOpen; // 최초 오픈.
|
|
bool m_bFirstDataMapping; // 최초 데이타 맵핑.
|
|
|
|
// 스크롤바.
|
|
// 2010.09.20 - prodongi
|
|
KUIControlVScrollEx* m_pScrollBar;
|
|
//KUIControlVScroll* m_pScrollBar;
|
|
int m_nPrevScrollPos; // 이전 스크롤값.
|
|
int m_nScrollPos; // scroll bar의 변경 정보.
|
|
|
|
bool m_bExtendAll; // 전체 아이템 확장여부.
|
|
|
|
KUIWnd * m_pSelectedControl; // 선택된 아이템의 활성화 비쥬얼용 컨트롤.
|
|
KUIWnd * m_pSelectedControl_Red; // red.
|
|
KUIWnd * m_pSelectedControl_Orange; // orange.
|
|
|
|
|
|
// 정렬용 길드원 정보 배열.
|
|
KUIWnd * m_arrSortBtn[ MAX_BTN_SORT_STATE_SIZE ];
|
|
std::vector< SPlayerSlot * > m_arrMember;
|
|
int m_arrSortState[ MAX_BTN_SORT_STATE_SIZE ]; // 각버튼의 정렬상태. ( 0 비정렬, 1 내림차순, 2 오름차순 정렬 )
|
|
int m_nSortCondition; // 정렬조건. 0 온라인, 1 직업, 2 레벨, 3 아이디
|
|
|
|
//
|
|
// 맴버 팝업 관련.
|
|
class SUIMemberPopupWnd * m_pMemberPopupWnd; // 길드맴버팝업.
|
|
bool m_bOpenMemberPopup; // 맴버관련 팝업 오픈 여부.
|
|
|
|
|
|
KRect m_WndRect; // 자신의 Wnd 영역.
|
|
|
|
|
|
bool m_bManageMode; // 길드원 관리모드.
|
|
bool m_bMasterMode; // 길드마스터 모드.
|
|
|
|
|
|
public :
|
|
|
|
SUIGuildMemberTab( SGameManager * pGameManager );
|
|
bool isUIRefresh() const { return m_bUIRefresh; }
|
|
|
|
virtual ~SUIGuildMemberTab();
|
|
|
|
|
|
//------------------------------------------
|
|
|
|
//SUIWnd* CreateWnd( const char* szFile, KUIWndManager* pWndManager, KPoint kPos, int nWindowID );
|
|
virtual bool InitControls( KPoint kPos );
|
|
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
|
|
virtual DWORD OnMouseMessage(DWORD dwMessage, int x, int y);
|
|
|
|
virtual void ForcedProcess(DWORD dwTime); //강제 프로세스
|
|
|
|
virtual void PumpUpMsgDBClick( DWORD lparam ); // 2011. 10. 28 - marine 더블클릭
|
|
virtual void PumpUpMsgRBtnClick( DWORD lparam ); // 2011. 10. 28 - marine 우 클릭
|
|
virtual void PumpUpMsgLBtnClick_V( DWORD lparam ); // 2011. 10. 28 - marine 좌 클릭
|
|
void PumpUpMsgLBtnClick( DWORD lparam ); // 2011. 10. 28 - marine 좌 클릭
|
|
//------------------------------------------
|
|
|
|
void Release(); // 메모리 해제.
|
|
|
|
// 리스트아이템 확대,축소
|
|
void ListItemExtend( KUIControl * pButton, bool bExtension );
|
|
|
|
// ListControl 의 해당 아이템열의 각 컨트롤에 Player의 정보 맵핑
|
|
void DataMapping( KUIListItem * pItem, SPlayerSlot * pPlayer );
|
|
|
|
|
|
bool SelectedControl( KUIControl * pSelectionControl ); // 선택한 컨트롤의 활성화 비쥬얼 처리.
|
|
|
|
void RevitalizeSelectItem(); // 선택된 아이템 활성화 비쥬얼 처리.
|
|
|
|
// 멤버리스트 초기화.
|
|
void InitMemberList( unsigned int nUpdateState );
|
|
|
|
// 길드원 업데이트.
|
|
void UpdateGuildMember( unsigned int nUpdateState );
|
|
|
|
// 스크롤바 설정.
|
|
void RefreshScrollbar();
|
|
|
|
// 스크롤바 설정( 확장적용 ).
|
|
void RefreshScrollbarExtend();
|
|
|
|
// 길드원정보 갱신.
|
|
void RefreshListMember( int nScroll );
|
|
|
|
|
|
//
|
|
// 멤버관련 팝업.
|
|
void ShowMemberPopup( int x, int y, const char * strName );
|
|
|
|
// 선택된 인덱스의 길드원 명 반환.
|
|
const char * GetSelectedMemberName( int nRow );
|
|
|
|
|
|
// 메모뷰 오픈.
|
|
void ShowMemoView( KUIControl * pBaseControl, const std::string & strMemo );
|
|
|
|
|
|
// 길드원 관리 모드, 관리대상 길드원명 전송.
|
|
void MemberManageMode( const char * pStrName, const char * pStrClassName );
|
|
|
|
// 길드마스터 모드, 길드장인계 대상 길드원명 전송.
|
|
void GuildMasterMode( const char * pStrName, const char * pStrClassName );
|
|
|
|
// 관리모드시 셀렉트 표시.
|
|
void ShowSelectManageMode();
|
|
|
|
// 마스터모드시 셀렉트 표시.
|
|
void ShowSelectMasterMode();
|
|
|
|
// 버튼정렬상태 토글.
|
|
void ToggleBtnSortState( int index );
|
|
/*{
|
|
int num = m_arrSortState[ index ] + 1;
|
|
if( num >= MAX_BTN_SORT_STATE )
|
|
num = 0;
|
|
m_arrSortState[ index ] = num;
|
|
}*/
|
|
|
|
// 모든 버튼정렬상태 해제.
|
|
void ClearBtnSortStateAll();
|
|
|
|
// 버튼정렬상태 토글.
|
|
int GetToggleBtnSortState( int index ){
|
|
return m_arrSortState[ index ];
|
|
}
|
|
|
|
// 리스트 정렬.
|
|
void SortMemberList();
|
|
//void SortMemberList( KUIControl * pControl );
|
|
|
|
// 리스트 정렬. 맴버 Update.
|
|
void UpdateNSortMemberList();
|
|
|
|
|
|
// 권한처리.
|
|
void AuthorityProcess();
|
|
inline void EnableBtnCtrl( const char * pStr ); // 해당버튼 활성화.
|
|
inline void DisableBtnCtrl( const char * pStr );// 해당버튼 비활성화.
|
|
};
|
|
|
|
// 2011. 10. 26 - marine
|
|
// 길드UI의 길드원 탭의 내용을 상속받아서 사용
|
|
// 용도 : 공대관련 공대파티장초대, 공대파티원 초대에 사용 된다.
|
|
class SUIGuildMemberList :public SUIGuildMemberTab
|
|
{
|
|
public :
|
|
|
|
SUIGuildMemberList( SGameManager * pGameManager );
|
|
|
|
virtual ~SUIGuildMemberList();
|
|
|
|
virtual bool InitControls( KPoint kPos );
|
|
virtual void PumpUpMsgDBClick( DWORD lparam ); // 2011. 10. 28 - marine 더블클릭
|
|
virtual void PumpUpMsgRBtnClick( DWORD lparam ); // 2011. 10. 28 - marine 우 클릭
|
|
virtual void PumpUpMsgLBtnClick_V( DWORD lparam ); // 2011. 10. 28 - marine 좌 클릭
|
|
|
|
};
|
|
// 2011. 10 .26 - marine
|
|
// SUIGuildMemberList 의 겉껍데기..
|
|
class SUIGuildMemberListView : public SUIWnd
|
|
{
|
|
public:
|
|
|
|
SUIGuildMemberListView( SGameManager * pGameManager );
|
|
virtual ~SUIGuildMemberListView();
|
|
virtual void OnNotifyUIWindowOpen( bool bOpen, bool bLimitWnd = true );
|
|
virtual SUIWnd* CreateWnd( const char* szFile, KUIWndManager* pWndManager, KPoint kPos, int nWindowID );
|
|
virtual void PumpUpMessage( LPCSTR lpszControlID, DWORD nMessage, DWORD lparam, DWORD wparam );
|
|
virtual void ProcMsgAtStatic( SGameMessage* pMsg );
|
|
|
|
protected:
|
|
void updateGuildMemberList();
|
|
|
|
private:
|
|
KUIWnd *m_pMemberWnd;
|
|
std::string m_strSelectedName;
|
|
};
|