85 lines
1.8 KiB
C++
85 lines
1.8 KiB
C++
#pragma once
|
|
#include "uiBase.h"
|
|
|
|
class uiInPutNumTradeUIDialog : public uiBase
|
|
{
|
|
typedef std::string::iterator STRING_ITRTYPE;
|
|
|
|
enum eDIALOG_POS
|
|
{
|
|
DLGPOS_NUM0 = 0,
|
|
DLGPOS_NUM1,
|
|
DLGPOS_NUM2,
|
|
DLGPOS_NUM3,
|
|
DLGPOS_NUM4,
|
|
DLGPOS_NUM5,
|
|
DLGPOS_NUM6,
|
|
DLGPOS_NUM7,
|
|
DLGPOS_NUM8,
|
|
DLGPOS_NUM9,
|
|
DLGPOS_NUM00,
|
|
DLGPOS_NUM000,
|
|
|
|
DLGPOS_EDIT,
|
|
DLGPOS_BACK,
|
|
DLGPOS_CLEAR,
|
|
DLGPOS_INPUT,
|
|
DLGPOS_EXIT,
|
|
|
|
DIALOG_MAX
|
|
};
|
|
|
|
public:
|
|
uiInPutNumTradeUIDialog( InterfaceManager * pUIMan );
|
|
~uiInPutNumTradeUIDialog( void );
|
|
|
|
virtual void Init( CDrawBase * pDrawBase );
|
|
virtual void Release();
|
|
|
|
virtual void OnShowWindow( BOOL val );
|
|
|
|
virtual void NetworkProc( MSG_BASE * pMsg );
|
|
virtual void MessageProc( SI_MESSAGE * pMessage );
|
|
virtual void MouseOver_MsgProc( SI_MESSAGE * pMessage );
|
|
|
|
protected:
|
|
CControlWZ * getControl( POSTYPE AtPos );
|
|
POSTYPE getCtrlIDToPos( WzID wzId );
|
|
static WzID m_wzId[DIALOG_MAX];
|
|
|
|
private:
|
|
void InitControls();
|
|
void SetDigit( POSTYPE digit );
|
|
void DeleteEndString( void );
|
|
void StringClear( void );
|
|
void SendMoney( void );
|
|
void UpdateEdit( void );
|
|
void UpdateEditText( const char * szText );
|
|
void CalculateThousandDigit( void );
|
|
void DeleteComma( void );
|
|
|
|
|
|
private:
|
|
CCtrlStaticWZ * m_pEditText;
|
|
std::string m_MoneyString;
|
|
};
|
|
|
|
inline POSTYPE uiInPutNumTradeUIDialog::getCtrlIDToPos( WzID wzId )
|
|
{
|
|
for( POSTYPE i = 0 ; i < DIALOG_MAX ; ++i )
|
|
{
|
|
if( m_wzId[i] == wzId )
|
|
{
|
|
return i;
|
|
}
|
|
}
|
|
|
|
return DIALOG_MAX;
|
|
}
|
|
|
|
inline CControlWZ * uiInPutNumTradeUIDialog::getControl( POSTYPE AtPos )
|
|
{
|
|
assert( AtPos < DIALOG_MAX );
|
|
return GetControlWZ( m_wzId[AtPos] );
|
|
}
|