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

77 lines
1.7 KiB
C++

#include "uiBase.h"
#pragma once
class InterfaceManager;
class uiChatMan;
class ChatPropertyDialog : public uiBase
{
enum eDIALOG_POS
{
DLGPOS_CHECK_SYSTEM,
DLGPOS_CHECK_SHOUT,
DLGPOS_CHECK_GENERAL,
DLGPOS_CHECK_WHISPER,
DLGPOS_CHECK_PARTY,
DLGPOS_CHECK_GUILD,
DLGPOS_CHECK_CHANNEL,
DLGPOS_BTN_EXIT,
DLGPOS_MAX,
};
enum
{
DLGPOS_CHECK_MAX = DLGPOS_BTN_EXIT,
};
public:
ChatPropertyDialog(InterfaceManager* pUIMan);
~ChatPropertyDialog();
virtual void Init(CDrawBase * pDrawBase);
virtual void Release();
virtual void Process(DWORD dwTick);
virtual void OnShowWindow(BOOL val);
virtual void MessageProc(SI_MESSAGE * pMessage);
virtual void NetworkProc(MSG_BASE * pMsg);
//virtual void UpdatePosition();
public:
void SetPropertyDlgFilter(int filterType , int filterValue);
void MoveDefaultPosition();
protected:
CControlWZ * getControl(POSTYPE AtPos);
POSTYPE getControlIDToPos(WzID wzID);
CCtrlButtonCheckWZ * m_pCheck[DLGPOS_CHECK_MAX];
// üũ ¹öư ¾÷µ¥ÀÌÆ®
void updateAllCheckButton();
void ComposeBitFilter();
void _setEachBitFilter(int id , int bit);
void _updatEachCheckButton(int id, int bit);
void ForceSettingCheckButton();
private:
static WzID m_wzID[DLGPOS_MAX];
uiChatMan * m_pChatMan;
int m_iFilterType;
int m_iFilterValue;
int m_iGapOfDialogYPosition;
};
inline CControlWZ * ChatPropertyDialog::getControl(POSTYPE AtPos)
{
ASSERT(AtPos < DLGPOS_MAX);
return GetControlWZ(m_wzID[AtPos]);
}
inline POSTYPE ChatPropertyDialog::getControlIDToPos(WzID wzID)
{
for ( int i = 0; i < DLGPOS_MAX ; ++i)
{
if ( m_wzID[i] == wzID)
return i;
}
return DLGPOS_MAX;
}