mirror of
https://github.com/dashr9230/SA-MP.git
synced 2024-12-22 14:37:29 +08:00
158 lines
3.2 KiB
C++
158 lines
3.2 KiB
C++
|
|
#include "main.h"
|
|
|
|
extern CGame *pGame;
|
|
extern CConfig *pConfig;
|
|
|
|
//----------------------------------------------------
|
|
|
|
CCmdWindow::CCmdWindow(IDirect3DDevice9 *pD3DDevice)
|
|
{
|
|
m_bEnabled = FALSE;
|
|
m_pD3DDevice = pD3DDevice;
|
|
m_iCmdCount = 0;
|
|
field_1AF4 = 0;
|
|
m_pEditControl = NULL;
|
|
field_1AF0 = -1;
|
|
|
|
memset(&field_1565[0],0,1290);
|
|
memset(&m_szInputBuffer[0],0,(MAX_CMD_INPUT+1));
|
|
memset(&field_1A6F[0],0,129);
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
CCmdWindow::~CCmdWindow()
|
|
{
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::ResetDialogControls(CDXUTDialog *pGameUI)
|
|
{
|
|
m_pGameUI = pGameUI;
|
|
|
|
if(pGameUI) {
|
|
pGameUI->AddIMEEditBox(IDC_CMDEDIT,"",10,175,570,40,true,&m_pEditControl);
|
|
if(pConfig->GetIntVariable("ime")) {
|
|
CDXUTIMEEditBox::EnableImeSystem(true);
|
|
CDXUTIMEEditBox::StaticOnCreateDevice();
|
|
}
|
|
m_pEditControl->GetElement(0)->TextureColor.Init(D3DCOLOR_ARGB( 240, 5, 5, 5 ));
|
|
m_pEditControl->SetTextColor(D3DCOLOR_ARGB( 255, 255, 255, 255 ));
|
|
m_pEditControl->SetCaretColor(D3DCOLOR_ARGB( 255, 150, 150, 150 ));
|
|
m_pEditControl->SetSelectedBackColor(D3DCOLOR_ARGB( 255, 185, 34, 40 ));
|
|
m_pEditControl->SetSelectedTextColor(D3DCOLOR_ARGB( 255, 10, 10, 15 ));
|
|
m_pEditControl->SetEnabled(false);
|
|
m_pEditControl->SetVisible(false);
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::GetDialogSize(RECT *pRect)
|
|
{
|
|
memset(pRect,0,sizeof(RECT));
|
|
|
|
if(m_pGameUI) {
|
|
pRect->right = m_pGameUI->GetWidth();
|
|
pRect->bottom = m_pGameUI->GetHeight();
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::Enable()
|
|
{
|
|
if(m_bEnabled) return;
|
|
|
|
if(m_pEditControl) {
|
|
RECT rect;
|
|
GetClientRect(pGame->GetMainWindowHwnd(), &rect);
|
|
|
|
m_pEditControl->SetEnabled(true);
|
|
m_pEditControl->SetVisible(true);
|
|
|
|
// TODO: CCmdWindow::Enable()
|
|
}
|
|
|
|
m_bEnabled = TRUE;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::Disable()
|
|
{
|
|
if(!m_bEnabled) return;
|
|
|
|
if(m_pEditControl) {
|
|
m_pEditControl->OnFocusOut();
|
|
m_pEditControl->SetEnabled(false);
|
|
m_pEditControl->SetVisible(false);
|
|
}
|
|
pGame->ToggleKeyInputsDisabled(0, TRUE);
|
|
m_bEnabled = FALSE;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::ProcessInput()
|
|
{
|
|
if(!m_pEditControl) return;
|
|
|
|
strncpy(m_szInputBuffer,m_pEditControl->GetTextA(),MAX_CMD_INPUT);
|
|
m_szInputBuffer[MAX_CMD_INPUT] = '\0';
|
|
|
|
// TODO: CCmdWindow::ProcessInput()
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
CMDPROC CCmdWindow::GetCmdHandler(PCHAR szCmdName)
|
|
{
|
|
int x=0;
|
|
while(x!=m_iCmdCount) {
|
|
if(!stricmp(szCmdName,m_szCmdNames[x])) {
|
|
return m_pCmds[x];
|
|
}
|
|
x++;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::AddDefaultCmdProc(CMDPROC cmdDefault)
|
|
{
|
|
m_pDefaultCmd = cmdDefault;
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
void CCmdWindow::AddCmdProc(PCHAR szCmdName, CMDPROC cmdHandler)
|
|
{
|
|
if(m_iCmdCount < MAX_CMDS && (strlen(szCmdName) < MAX_CMD_STRLEN)) {
|
|
m_pCmds[m_iCmdCount] = cmdHandler;
|
|
strcpy(m_szCmdNames[m_iCmdCount],szCmdName);
|
|
m_iCmdCount++;
|
|
}
|
|
}
|
|
|
|
//----------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|