hl2_src-leak-2017/src/Tracker/AdminServer/DialogKickPlayer.cpp

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();
}