summaryrefslogtreecommitdiff
path: root/tracker/AdminServer/DialogCvarChange.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tracker/AdminServer/DialogCvarChange.cpp')
-rw-r--r--tracker/AdminServer/DialogCvarChange.cpp151
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();
+}
+
+
+
+