//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef MESSAGEBOX_H #define MESSAGEBOX_H #ifdef _WIN32 #pragma once #endif #include #include // 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