Files
Sun1602/Client/GameClient/Interface/uiCommunityReadMail/uiCommunityReadMail.h
T
2022-10-26 12:25:11 +08:00

163 lines
3.7 KiB
C++

#pragma once
//------------------------------------------------------------------------------
//
// ÀÛ¾÷ÀÚ: ÀÌÁö¿¬
// uiCommunityReadMail class
//------------------------------------------------------------------------------
#include "uibase.h"
#define SHOW_DEFAULT_READ_MAIL_LINE 3
struct MAIL_DATA;
class uiCommunityMan;
class uiCommunityReadMail: public uiBase
{
enum COMMUNITY_READ_MAIL_DIALOG_POS
{
COMMUNITY_READ_MAIL_BTN_EXIT = 0,
COMMUNITY_READ_MAIL_BTN_REPLY,
COMMUNITY_READ_MAIL_BTN_DEL,
COMMUNITY_READ_MAIL_BTN_CLOSE,
COMMUNITY_READ_MAIL_TXT_FROM,
COMMUNITY_READ_MAIL_TXT_DATE,
COMMUNITY_READ_MAIL_LST,
COMMUNITY_READ_MAIL_VSCROLL,
COMMUNITY_READ_MAIL_DIALOG__MAX,
};
enum
{
READ_MAIL_TXT_FROM = 0,
READ_MAIL_TXT_DATE,
READ_MAIL_TXT_MAX,
};
public:
uiCommunityReadMail(InterfaceManager *pUIMan);
virtual ~uiCommunityReadMail();
//-------------------------------- ------------------------------------------
// init/release
//
public:
virtual void Init(CDrawBase* pDrawBase);
virtual void Release();
protected:
void InitControls();
//--------------------------------------------------------------------------
// helper/comms.
//
public:
uiCommunityMan* GetManager();
//--------------------------------------------------------------------------
// functions
//
private:
BOOL _isEnable();
void _refreshList();
void _displaySetting();
public:
BOOL SetMailData(MAIL_DATA* pData);
void CloseAnswerBtn(BOOL bClose);
//--------------------------------------------------------------------------
// dialog functions
//
public:
void CloseDlg();
protected:
virtual void OnShowWindow( BOOL val );
virtual void OnUpdateSolarDialog();
protected:
CControlWZ * getControl( POSTYPE AtPos );
POSTYPE getCtrlIDToPos( WzID wzId );
static WzID m_wzId[COMMUNITY_READ_MAIL_DIALOG__MAX];
//--------------------------------------------------------------------------
// procedure
//
public:
virtual void MessageProc( SI_MESSAGE * pMessage ); // Pure
//--------------------------------------------------------------------------
// member vars
//
private:
void UpdateMouseWheel();
void DownScroll(int nRange);
void UpScroll(int nRange);
private:
uiCommunityMan* m_pCommunityMan;
bool m_bControlsInitialized;
CCtrlStaticWZ* m_pTxtCtrls[READ_MAIL_TXT_MAX];
CCtrlListWZ* m_pListCtrlRead;
CCtrlVScrollWZ* m_pScroll;
bool m_bShow;
int m_LinePerPage;
public:
std::vector<util::_tstring> m_vstr;
STRUCT_SUBJECT_PACKETINFO m_subject;
TCHAR m_ptszMemo[MAX_MEMO_STRLENGTH];
};
//------------------------------------------------------------------------------
/**
*/
inline
POSTYPE
uiCommunityReadMail::getCtrlIDToPos( WzID wzId )
{
for( POSTYPE i = 0 ; i < COMMUNITY_READ_MAIL_DIALOG__MAX ; ++i )
{
if( m_wzId[i] == wzId )
{
return i;
}
}
return COMMUNITY_READ_MAIL_DIALOG__MAX;
}
//------------------------------------------------------------------------------
/**
*/
inline
CControlWZ *
uiCommunityReadMail::getControl( POSTYPE AtPos )
{
ASSERT( AtPos < COMMUNITY_READ_MAIL_DIALOG__MAX );
return GetControlWZ( m_wzId[AtPos] );
}
//------------------------------------------------------------------------------
/**
*/
inline
uiCommunityMan*
uiCommunityReadMail::GetManager()
{
return this->m_pCommunityMan;
}
//------------------------------------------------------------------------------