diff options
Diffstat (limited to 'vgui2/vgui_controls/PropertyPage.cpp')
| -rw-r--r-- | vgui2/vgui_controls/PropertyPage.cpp | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/vgui2/vgui_controls/PropertyPage.cpp b/vgui2/vgui_controls/PropertyPage.cpp new file mode 100644 index 0000000..36aa102 --- /dev/null +++ b/vgui2/vgui_controls/PropertyPage.cpp @@ -0,0 +1,114 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "vgui/IScheme.h" +#include "vgui/KeyCode.h" +#include "vgui/ISurface.h" +#include "KeyValues.h" + +#include "vgui_controls/PropertyPage.h" +#include "vgui_controls/Controls.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +using namespace vgui; + +//----------------------------------------------------------------------------- +// Purpose: Constructor +//----------------------------------------------------------------------------- +PropertyPage::PropertyPage(Panel *parent, const char *panelName) : EditablePanel(parent, panelName) +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Destructor +//----------------------------------------------------------------------------- +PropertyPage::~PropertyPage() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Called when page is loaded. Data should be reloaded from document into controls. +//----------------------------------------------------------------------------- +void PropertyPage::OnResetData() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Called when the OK / Apply button is pressed. Changed data should be written into document. +//----------------------------------------------------------------------------- +void PropertyPage::OnApplyChanges() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Designed to be overriden +//----------------------------------------------------------------------------- +void PropertyPage::OnPageShow() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: Designed to be overriden +//----------------------------------------------------------------------------- +void PropertyPage::OnPageHide() +{ +} + +//----------------------------------------------------------------------------- +// Purpose: +// Input : *pageTab - +//----------------------------------------------------------------------------- +void PropertyPage::OnPageTabActivated(Panel *pageTab) +{ + _pageTab = pageTab; +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void PropertyPage::OnKeyCodeTyped(KeyCode code) +{ + switch (code) + { + // left and right only get propogated to parents if our tab has focus + case KEY_RIGHT: + { + if (_pageTab != 0 && _pageTab->HasFocus()) + BaseClass::OnKeyCodeTyped(code); + break; + } + case KEY_LEFT: + { + if (_pageTab != 0 && _pageTab->HasFocus()) + BaseClass::OnKeyCodeTyped(code); + break; + } + default: + BaseClass::OnKeyCodeTyped(code); + break; + } +} + +//----------------------------------------------------------------------------- +// Purpose: +//----------------------------------------------------------------------------- +void PropertyPage::SetVisible(bool state) +{ + if (IsVisible() && !state) + { + // if we're going away and we have a current button, get rid of it + if (GetFocusNavGroup().GetCurrentDefaultButton()) + { + GetFocusNavGroup().SetCurrentDefaultButton(NULL); + } + } + + BaseClass::SetVisible(state); +} + |