diff options
| author | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
|---|---|---|
| committer | Joe Ludwig <[email protected]> | 2013-06-26 15:22:04 -0700 |
| commit | 39ed87570bdb2f86969d4be821c94b722dc71179 (patch) | |
| tree | abc53757f75f40c80278e87650ea92808274aa59 /sp/src/vgui2/vgui_controls/ToggleButton.cpp | |
| download | source-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.cpp | 102 |
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);
+ }
+}
+
|