You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.8 KiB
98 lines
2.8 KiB
//========= 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
|
|
|