Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#include <stdio.h>
#include "DialogCvarChange.h"
#include <vgui/IInput.h>
#include <vgui/ISurface.h>
#include <KeyValues.h>
#include <vgui_controls/Button.h>
#include <vgui_controls/Panel.h>
#include <vgui_controls/Label.h>
#include <vgui_controls/TextEntry.h>
using namespace vgui;
//-----------------------------------------------------------------------------
// Purpose: Constructor
//-----------------------------------------------------------------------------
CDialogCvarChange::CDialogCvarChange(vgui::Panel *parent) : Frame(parent, "DialogCvarChange") { SetSize(320, 200);
m_bAddCvarText = true;
m_pInfoLabel = new Label(this, "InfoLabel", ""); m_pCvarLabel = new Label(this, "CvarLabel", ""); m_pCvarEntry = new TextEntry(this, "CvarEntry"); m_pOkayButton = new Button(this, "OkayButton", "#Okay_Button");
LoadControlSettings("Admin/DialogCvarChange.res", "PLATFORM");
SetTitle("#Cvar_Title", true);
SetSizeable(false); // set our initial position in the middle of the workspace
MoveToCenterOfScreen(); }
//-----------------------------------------------------------------------------
// Purpose: Destructor
//-----------------------------------------------------------------------------
CDialogCvarChange::~CDialogCvarChange() { }
//-----------------------------------------------------------------------------
// Purpose: Hides value text
//-----------------------------------------------------------------------------
void CDialogCvarChange::MakePassword() { m_pCvarEntry->SetTextHidden(true); m_bAddCvarText = false; // this isn't asking about a cvar
}
//-----------------------------------------------------------------------------
// Purpose: initializes the dialog and brings it to the foreground
//-----------------------------------------------------------------------------
void CDialogCvarChange::Activate(const char *cvarName, const char *curValue, const char *type, const char *question) { m_pCvarLabel->SetText(cvarName); if (!m_bAddCvarText) { m_pCvarLabel->SetVisible(false); // hide this
}
m_pInfoLabel->SetText(question);
m_cType=type;
m_pOkayButton->SetAsDefaultButton(true); MakePopup(); MoveToFront();
m_pCvarEntry->SetText(curValue); m_pCvarEntry->RequestFocus(); RequestFocus();
// make it modal
input()->SetAppModalSurface(GetVPanel()); SetVisible(true);
BaseClass::Activate(); }
//-----------------------------------------------------------------------------
// Purpose: Sets the text of a labell by name
//-----------------------------------------------------------------------------
void CDialogCvarChange::SetLabelText(const char *textEntryName, const char *text) { Label *entry = dynamic_cast<Label *>(FindChildByName(textEntryName)); if (entry) { entry->SetText(text); } }
//-----------------------------------------------------------------------------
// Purpose: Handles button presses
//-----------------------------------------------------------------------------
void CDialogCvarChange::OnCommand(const char *command) { bool bClose = false;
if (!stricmp(command, "Okay")) { KeyValues *msg = new KeyValues("CvarChangeValue"); char buf[64]; m_pCvarLabel->GetText(buf,64);
msg->SetString("player", buf ); m_pCvarEntry->GetText(buf, sizeof(buf)-1); msg->SetString("value", buf); msg->SetString("type",m_cType);
PostActionSignal(msg);
bClose = true; } else if (!stricmp(command, "Close")) { bClose = true; } else { BaseClass::OnCommand(command); }
if (bClose) { Close(); } }
//-----------------------------------------------------------------------------
// Purpose: deletes the dialog on close
//-----------------------------------------------------------------------------
void CDialogCvarChange::OnClose() { BaseClass::OnClose(); MarkForDeletion(); }
|