diff options
Diffstat (limited to 'public/vgui_controls/MessageBox.h')
| -rw-r--r-- | public/vgui_controls/MessageBox.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/public/vgui_controls/MessageBox.h b/public/vgui_controls/MessageBox.h new file mode 100644 index 0000000..4791822 --- /dev/null +++ b/public/vgui_controls/MessageBox.h @@ -0,0 +1,98 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef MESSAGEBOX_H +#define MESSAGEBOX_H + +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui/VGUI.h> +#include <vgui_controls/Frame.h> + +// prevent windows macros from messing with the class +#ifdef MessageBox +#undef MessageBox +#endif + +namespace vgui +{ + +//----------------------------------------------------------------------------- +// Purpose: Popup discardable message box +//----------------------------------------------------------------------------- +class MessageBox : public Frame +{ + DECLARE_CLASS_SIMPLE( MessageBox, Frame ); + +public: + // title - Text to be displayed in the title bar of the window + // text - Text message in the message box + // startMinimized - wether message box starts minimized. Starts invisible by default + // parent - parent panel of the message box, by default it has no parent. This will keep the box visible until the OK button is pressed. + MessageBox(const char *title, const char *text, Panel *parent = NULL); + MessageBox(const wchar_t *wszTitle, const wchar_t *wszText, Panel *parent = NULL); + ~MessageBox(); + + // Put the message box into a modal state + virtual void DoModal(Frame *pFrameOver = NULL); + + // make the message box appear and in a modeless state + virtual void ShowWindow(Frame *pFrameOver = NULL); + + // Set a string command to be sent when the OK button is pressed + // Use AddActionSignalTarget() to mark yourself as a recipient of the command + virtual void SetCommand(const char *command); + virtual void SetCommand(KeyValues *command); + + // Set the visibility of the OK button. + virtual void SetOKButtonVisible(bool state); + + // Set the text on the OK button + virtual void SetOKButtonText(const char *buttonText); + virtual void SetOKButtonText(const wchar_t *wszButtonText); + + // Cancel button (off by default) + void SetCancelButtonVisible(bool state); + void SetCancelButtonText(const char *buttonText); + void SetCancelButtonText(const wchar_t *wszButtonText); + void SetCancelCommand( KeyValues *command ); + + // Toggles visibility of the close box. + virtual void DisableCloseButton(bool state); + + virtual void OnCommand( const char *pCommand ); + + // Shows the message box over the cursor + void ShowMessageBoxOverCursor( bool bEnable ); + +protected: + virtual void PerformLayout(); + virtual void ApplySchemeSettings(IScheme *pScheme); + +protected: + Button *m_pOkButton; + Button *m_pCancelButton; + Label *m_pMessageLabel; + +private: + MESSAGE_FUNC( OnShutdownRequest, "ShutdownRequest" ); + + void Init(); + + KeyValues *m_OkCommand; + KeyValues *m_CancelCommand; + vgui::Frame *m_pFrameOver; + bool m_bNoAutoClose : 1; + bool m_bShowMessageBoxOverCursor : 1; +}; + +} // namespace vgui + + +#endif // MESSAGEBOX_H |