131 lines
3.2 KiB
C++
131 lines
3.2 KiB
C++
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
// Purpose:
|
|
//
|
|
// $NoKeywords: $
|
|
//=============================================================================
|
|
|
|
#include <stdio.h>
|
|
#include "DialogKickPlayer.h"
|
|
|
|
#include <VGUI_Button.h>
|
|
#include <VGUI_KeyValues.h>
|
|
#include <VGUI_Label.h>
|
|
#include <VGUI_TextEntry.h>
|
|
|
|
#include <VGUI_Controls.h>
|
|
#include <VGUI_ISurface.h>
|
|
|
|
using namespace vgui;
|
|
|
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Constructor
|
|
//-----------------------------------------------------------------------------
|
|
CDialogKickPlayer::CDialogKickPlayer() : Frame(NULL, "DialogKickPlayer")
|
|
{
|
|
SetSize(320, 200);
|
|
|
|
m_pInfoLabel = new Label(this, "InfoLabel", "Kick Player?");
|
|
m_pPlayerLabel = new Label(this, "PlayerLabel", "<player name>");
|
|
m_pOkayButton = new Button(this, "OkayButton", "&Okay");
|
|
|
|
LoadControlSettings("Admin\\DialogKickPlayer.res");
|
|
|
|
SetTitle("Kick/Ban/Status Player", true);
|
|
|
|
// set our initial position in the middle of the workspace
|
|
MoveToCenterOfScreen();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: Destructor
|
|
//-----------------------------------------------------------------------------
|
|
CDialogKickPlayer::~CDialogKickPlayer()
|
|
{
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: initializes the dialog and brings it to the foreground
|
|
//-----------------------------------------------------------------------------
|
|
void CDialogKickPlayer::Activate(const char *playerName,const char *question,const char *type)
|
|
{
|
|
m_pPlayerLabel->SetText(playerName);
|
|
m_pInfoLabel->SetText(question);
|
|
m_pInfoLabel->SizeToContents();
|
|
|
|
// SetSize(
|
|
int wide,tall;
|
|
m_pInfoLabel->GetSize(wide,tall);
|
|
|
|
SetWide(max(wide+50,GetWide()));
|
|
|
|
m_cType=type;
|
|
|
|
m_pOkayButton->SetAsDefaultButton(true);
|
|
MakePopup();
|
|
MoveToFront();
|
|
|
|
RequestFocus();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
// Input : *command -
|
|
//-----------------------------------------------------------------------------
|
|
void CDialogKickPlayer::OnCommand(const char *command)
|
|
{
|
|
bool bClose = false;
|
|
|
|
if (!stricmp(command, "Okay"))
|
|
{
|
|
KeyValues *msg = new KeyValues("KickPlayer");
|
|
char buf[64];
|
|
m_pPlayerLabel->GetText(buf,64);
|
|
msg->SetString("player", buf );
|
|
msg->SetString("type",m_cType);
|
|
|
|
PostActionSignal(msg);
|
|
|
|
bClose = true;
|
|
}
|
|
else if (!stricmp(command, "Close"))
|
|
{
|
|
bClose = true;
|
|
}
|
|
else
|
|
{
|
|
BaseClass::OnCommand(command);
|
|
}
|
|
|
|
if (bClose)
|
|
{
|
|
PostMessage(this, new KeyValues("Close"));
|
|
MarkForDeletion();
|
|
}
|
|
}
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose:
|
|
//-----------------------------------------------------------------------------
|
|
void CDialogKickPlayer::PerformLayout()
|
|
{
|
|
BaseClass::PerformLayout();
|
|
}
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Purpose: deletes the dialog on close
|
|
//-----------------------------------------------------------------------------
|
|
void CDialogKickPlayer::OnClose()
|
|
{
|
|
BaseClass::OnClose();
|
|
MarkForDeletion();
|
|
}
|
|
|
|
|
|
|
|
|