From 39ed87570bdb2f86969d4be821c94b722dc71179 Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Wed, 26 Jun 2013 15:22:04 -0700 Subject: First version of the SOurce SDK 2013 --- mp/src/vgui2/vgui_controls/ToggleButton.cpp | 102 ++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 mp/src/vgui2/vgui_controls/ToggleButton.cpp (limited to 'mp/src/vgui2/vgui_controls/ToggleButton.cpp') diff --git a/mp/src/vgui2/vgui_controls/ToggleButton.cpp b/mp/src/vgui2/vgui_controls/ToggleButton.cpp new file mode 100644 index 00000000..292faa38 --- /dev/null +++ b/mp/src/vgui2/vgui_controls/ToggleButton.cpp @@ -0,0 +1,102 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include + +#include + +#include + +// memdbgon must be the last include file in a .cpp file!!! +#include + +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); + } +} + -- cgit v1.2.3