diff options
Diffstat (limited to 'tracker/AdminServer/DialogCvarChange.cpp')
| -rw-r--r-- | tracker/AdminServer/DialogCvarChange.cpp | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/tracker/AdminServer/DialogCvarChange.cpp b/tracker/AdminServer/DialogCvarChange.cpp new file mode 100644 index 0000000..3c94d3a --- /dev/null +++ b/tracker/AdminServer/DialogCvarChange.cpp @@ -0,0 +1,151 @@ +//========= 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(); +} + + + + |