diff options
Diffstat (limited to 'public/vgui_controls/InputDialog.h')
| -rw-r--r-- | public/vgui_controls/InputDialog.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/public/vgui_controls/InputDialog.h b/public/vgui_controls/InputDialog.h new file mode 100644 index 0000000..00b8d6f --- /dev/null +++ b/public/vgui_controls/InputDialog.h @@ -0,0 +1,106 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//=============================================================================// + +#ifndef INPUTDIALOG_H +#define INPUTDIALOG_H +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui_controls/Controls.h> +#include <vgui_controls/Frame.h> + +namespace vgui +{ + +class Label; +class Button; +class TextEntry; + + +//----------------------------------------------------------------------------- +// Purpose: Utility dialog base class - just has context kv and ok/cancel buttons +//----------------------------------------------------------------------------- +class BaseInputDialog : public Frame +{ + DECLARE_CLASS_SIMPLE( BaseInputDialog, Frame ); + +public: + BaseInputDialog( vgui::Panel *parent, const char *title ); + ~BaseInputDialog(); + + void DoModal( KeyValues *pContextKeyValues = NULL ); + +protected: + virtual void PerformLayout(); + virtual void PerformLayout( int x, int y, int w, int h ) {} + + // command buttons + virtual void OnCommand( const char *command ); + + void CleanUpContextKeyValues(); + KeyValues *m_pContextKeyValues; + +private: + vgui::Button *m_pCancelButton; + vgui::Button *m_pOKButton; +}; + +//----------------------------------------------------------------------------- +// Purpose: Utility dialog, used to ask yes/no questions of the user +//----------------------------------------------------------------------------- +class InputMessageBox : public BaseInputDialog +{ + DECLARE_CLASS_SIMPLE( InputMessageBox, BaseInputDialog ); + +public: + InputMessageBox( vgui::Panel *parent, const char *title, char const *prompt ); + ~InputMessageBox(); + +protected: + virtual void PerformLayout( int x, int y, int w, int h ); + +private: + vgui::Label *m_pPrompt; +}; + +//----------------------------------------------------------------------------- +// Purpose: Utility dialog, used to let user type in some text +//----------------------------------------------------------------------------- +class InputDialog : public BaseInputDialog +{ + DECLARE_CLASS_SIMPLE( InputDialog, BaseInputDialog ); + +public: + InputDialog( vgui::Panel *parent, const char *title, char const *prompt, char const *defaultValue = "" ); + ~InputDialog(); + + void SetMultiline( bool state ); + + /* action signals + + "InputCompleted" + "text" - the text entered + + "InputCanceled" + */ + void AllowNumericInputOnly( bool bOnlyNumeric ); + +protected: + virtual void PerformLayout( int x, int y, int w, int h ); + + // command buttons + virtual void OnCommand(const char *command); + +private: + vgui::Label *m_pPrompt; + vgui::TextEntry *m_pInput; +}; + +} // namespace vgui + + +#endif // INPUTDIALOG_H |