aboutsummaryrefslogtreecommitdiff
path: root/sp/src/vgui2/vgui_controls/ToggleButton.cpp
diff options
context:
space:
mode:
authorJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
committerJoe Ludwig <[email protected]>2013-06-26 15:22:04 -0700
commit39ed87570bdb2f86969d4be821c94b722dc71179 (patch)
treeabc53757f75f40c80278e87650ea92808274aa59 /sp/src/vgui2/vgui_controls/ToggleButton.cpp
downloadsource-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.tar.xz
source-sdk-2013-39ed87570bdb2f86969d4be821c94b722dc71179.zip
First version of the SOurce SDK 2013
Diffstat (limited to 'sp/src/vgui2/vgui_controls/ToggleButton.cpp')
-rw-r--r--sp/src/vgui2/vgui_controls/ToggleButton.cpp102
1 files changed, 102 insertions, 0 deletions
diff --git a/sp/src/vgui2/vgui_controls/ToggleButton.cpp b/sp/src/vgui2/vgui_controls/ToggleButton.cpp
new file mode 100644
index 00000000..292faa38
--- /dev/null
+++ b/sp/src/vgui2/vgui_controls/ToggleButton.cpp
@@ -0,0 +1,102 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#include <vgui/KeyCode.h>
+
+#include <vgui_controls/ToggleButton.h>
+
+#include <KeyValues.h>
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include <tier0/memdbgon.h>
+
+using namespace vgui;
+
+DECLARE_BUILD_FACTORY_DEFAULT_TEXT( ToggleButton, ToggleButton );
+
+//-----------------------------------------------------------------------------
+// Purpose: Constructor
+//-----------------------------------------------------------------------------
+ToggleButton::ToggleButton(Panel *parent, const char *panelName, const char* text) : Button(parent, panelName, text)
+{
+ SetButtonActivationType(ACTIVATE_ONPRESSED);
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Turns double-click into normal click
+//-----------------------------------------------------------------------------
+void ToggleButton::OnMouseDoublePressed(MouseCode code)
+{
+ OnMousePressed(code);
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+Color ToggleButton::GetButtonFgColor()
+{
+ if (IsSelected())
+ {
+ // highlight the text when depressed
+ return _selectedColor;
+ }
+ else
+ {
+ return BaseClass::GetButtonFgColor();
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+bool ToggleButton::CanBeDefaultButton(void)
+{
+ return false;
+}
+
+//-----------------------------------------------------------------------------
+// Purpose: Toggles the state of the button
+//-----------------------------------------------------------------------------
+void ToggleButton::DoClick()
+{
+ if (IsSelected())
+ {
+ ForceDepressed(false);
+ }
+ else if (!IsSelected())
+ {
+ ForceDepressed(true);
+ }
+
+ SetSelected(!IsSelected());
+ FireActionSignal();
+
+ // post a button toggled message
+ KeyValues *msg = new KeyValues("ButtonToggled");
+ msg->SetInt("state", (int)IsSelected());
+ PostActionSignal(msg);
+
+ Repaint();
+}
+
+//-----------------------------------------------------------------------------
+// Purpose:
+//-----------------------------------------------------------------------------
+void ToggleButton::ApplySchemeSettings(IScheme *pScheme)
+{
+ BaseClass::ApplySchemeSettings(pScheme);
+ _selectedColor = GetSchemeColor("ToggleButton.SelectedTextColor", pScheme);
+}
+
+void ToggleButton::OnKeyCodePressed(KeyCode code)
+{
+ if (code != KEY_ENTER)
+ {
+ BaseClass::OnKeyCodePressed(code);
+ }
+}
+