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

87 lines
1.8 KiB
C++

#ifndef _uiSocketRemove_h_
#define _uiSocketRemove_h_
#include "uibase.h"
class uiSocketRemove : public uiBase
{
enum eDIALOG_POS
{
eDIALOG_BTN_EXIT,
eDIALOG_BTN_OK,
eDIALOG_BTN_CANCLE,
eDIALOG_TXT_CAPTION,
eDIALOG_LIST,
DLGPOS_MAX,
};
enum
{
BTN_MAX = eDIALOG_TXT_CAPTION,
};
enum
{
SOCKET_LOW = 0,
SOCKET_HIGH,
};
enum
{
SOCKET_STATE_MAX = 5,
};
struct SocketState
{
int socketType;
int socketPos;
};
public:
uiSocketRemove(InterfaceManager *pUIMan);
~uiSocketRemove();
virtual void Init(CDrawBase * pDrawBase);
virtual void Release();
virtual void OnUpdateSolarDialog();
virtual void OnRenderSolarDialog();
virtual void Process(DWORD dwTick);
virtual void OnShowWindow(BOOL val);
virtual void MessageProc(SI_MESSAGE * pMessage);
virtual void NetworkProc(MSG_BASE * pMsg);
BOOL IsAvaliableRemoveSocket(SLOTIDX SlotIdx, POSTYPE TargetPos);
BOOL InsertSocketOption(SLOTIDX SlotIdx, POSTYPE TargetPos);
void NET_SEND_CG_ITEM_SOCKET_EXTRACT_SYN();
protected:
CControlWZ * getControl(POSTYPE AtPos);
POSTYPE getControlIDToPos(WzID wzID);
private:
static WzID m_wzID[DLGPOS_MAX];
CCtrlButtonWZ * m_pButton[BTN_MAX];
CCtrlListWZ * m_pList;
CCtrlStaticWZ * m_pStatic;
SocketState m_iSocketState[SOCKET_STATE_MAX];
BOOL m_bShow;
POSTYPE m_TargetSocketItemPos;
BOOL m_bSendPacket;
BYTE zard_grades_[SOCKET_MAX];
TCHAR socket_names[SOCKET_STATE_MAX][INTERFACE_STRING_LENGTH];
};
inline CControlWZ * uiSocketRemove::getControl(POSTYPE AtPos)
{
assert(AtPos < DLGPOS_MAX);
return GetControlWZ(m_wzID[AtPos]);
}
inline POSTYPE uiSocketRemove::getControlIDToPos(WzID wzID)
{
for ( int i = 0; i < DLGPOS_MAX ; ++i)
{
if ( m_wzID[i] == wzID)
return i;
}
return DLGPOS_MAX;
}
#endif // _uiSocketRemove_h_