summaryrefslogtreecommitdiff
path: root/public/vgui_controls/MessageDialog.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/vgui_controls/MessageDialog.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/vgui_controls/MessageDialog.h')
-rw-r--r--public/vgui_controls/MessageDialog.h154
1 files changed, 154 insertions, 0 deletions
diff --git a/public/vgui_controls/MessageDialog.h b/public/vgui_controls/MessageDialog.h
new file mode 100644
index 0000000..191bb2b
--- /dev/null
+++ b/public/vgui_controls/MessageDialog.h
@@ -0,0 +1,154 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose: Contains the CMessageDialog declaration
+//
+// $NoKeywords: $
+//=============================================================================//
+
+#ifndef MESSAGEDIALOG_H
+#define MESSAGEDIALOG_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+// styles
+#define MD_WARNING 0x0001
+#define MD_ERROR 0x0002
+
+// button configurations
+#define MD_OK 0x0004 // 1 button - OK
+#define MD_CANCEL 0x0008 // 1 button - CANCEL
+#define MD_OKCANCEL 0x0010 // 2 buttons - OK and CANCEL
+#define MD_YESNO 0x0020 // 2 buttons - YES and NO
+
+// behavior
+#define MD_SIMPLEFRAME 0x0100 // legacy corners
+#define MD_COMMANDAFTERCLOSE 0x0200 // send command at dialog termination (i.e. after fade)
+#define MD_RESTRICTPAINT 0x0400 // only paint this dialog (hide any other ui elements)
+#define MD_COMMANDONFORCECLOSE 0x0800 // send command when the dialog is closed assuming A input
+
+// dialog type
+enum EDialogType
+{
+ MD_SAVE_BEFORE_QUIT,
+ MD_QUIT_CONFIRMATION,
+ MD_QUIT_CONFIRMATION_TF,
+ MD_KICK_CONFIRMATION,
+ MD_CLIENT_KICKED,
+ MD_LOST_HOST,
+ MD_LOST_SERVER,
+ MD_SEARCHING_FOR_GAMES,
+ MD_CREATING_GAME,
+ MD_MODIFYING_SESSION,
+ MD_SESSION_SEARCH_FAILED,
+ MD_SESSION_CREATE_FAILED,
+ MD_SESSION_CONNECTING,
+ MD_SESSION_CONNECT_NOTAVAILABLE,
+ MD_SESSION_CONNECT_SESSIONFULL,
+ MD_SESSION_CONNECT_FAILED,
+ MD_EXIT_SESSION_CONFIRMATION,
+ MD_STORAGE_DEVICES_NEEDED,
+ MD_STORAGE_DEVICES_CHANGED,
+ MD_STORAGE_DEVICES_TOO_FULL,
+ MD_NOT_ONLINE_ENABLED,
+ MD_NOT_ONLINE_SIGNEDIN,
+ MD_DEFAULT_CONTROLS_CONFIRM,
+ MD_AUTOSAVE_EXPLANATION,
+ MD_COMMENTARY_EXPLANATION,
+ MD_COMMENTARY_EXPLANATION_MULTI,
+ MD_COMMENTARY_CHAPTER_UNLOCK_EXPLANATION,
+ MD_SAVE_BEFORE_LANGUAGE_CHANGE,
+ MD_SAVE_BEFORE_NEW_GAME,
+ MD_SAVE_BEFORE_LOAD,
+ MD_DELETE_SAVE_CONFIRM,
+ MD_SAVE_OVERWRITE,
+ MD_SAVING_WARNING,
+ MD_SAVE_COMPLETE,
+ MD_STANDARD_SAMPLE,
+ MD_WARNING_SAMPLE,
+ MD_ERROR_SAMPLE,
+ MD_PROMPT_SIGNIN,
+ MD_PROMPT_SIGNIN_REQUIRED,
+ MD_PROMPT_STORAGE_DEVICE,
+ MD_PROMPT_STORAGE_DEVICE_REQUIRED,
+ MD_DISCONNECT_CONFIRMATION,
+ MD_DISCONNECT_CONFIRMATION_HOST,
+ MD_LOAD_FAILED_WARNING,
+ MD_OPTION_CHANGE_FROM_X360_DASHBOARD,
+ MD_STORAGE_DEVICES_CORRUPT,
+ MD_CHECKING_STORAGE_DEVICE
+};
+
+#include "vgui_controls/Frame.h"
+#include "vgui_controls/Label.h"
+#include "vgui_controls/AnimatingImagePanel.h"
+#include "vgui_controls/ImagePanel.h"
+
+//-----------------------------------------------------------------------------
+// Purpose: Simple modal dialog box for Xbox 360 warnings and messages
+//-----------------------------------------------------------------------------
+class CMessageDialog : public vgui::Frame
+{
+ DECLARE_CLASS_SIMPLE( CMessageDialog, vgui::Frame );
+
+public:
+ CMessageDialog( vgui::Panel *parent, const uint nType, const char *pTitle, const char *pMsg, const char *pCmdA, const char *pCmdB, vgui::Panel *pParent, bool bShowActivity );
+ ~CMessageDialog();
+
+ enum
+ {
+ BTN_INVALID = -1,
+ BTN_B,
+ BTN_A,
+ MAX_BUTTONS,
+ };
+
+ struct ButtonLabel_s
+ {
+ vgui::Label *pIcon;
+ vgui::Label *pText;
+ int nWide;
+ bool bCreated;
+ };
+
+ virtual void OnKeyCodePressed( vgui::KeyCode code );
+ virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
+ virtual void ApplySettings( KeyValues *inResourceData );
+ virtual void PaintBackground();
+ uint GetType( void );
+ void SetControlSettingsKeys( KeyValues *pKeys );
+
+private:
+ void CreateButtonLabel( ButtonLabel_s *pButton, const char *pIcon, const char *pText );
+ void DoCommand( int button );
+
+ vgui::Panel *m_pCreator;
+
+ vgui::Label *m_pTitle;
+ vgui::Label *m_pMsg;
+ vgui::ImagePanel *m_pBackground;
+
+ vgui::AnimatingImagePanel *m_pAnimatingPanel;
+
+ vgui::HFont m_hButtonFont;
+ vgui::HFont m_hTextFont;
+ uint m_nType;
+ Color m_ButtonTextColor;
+ int m_ButtonPressed;
+ KeyValues *m_pControlSettings;
+
+ int m_FooterTall;
+ int m_ButtonMargin;
+ Color m_clrNotSimpleBG;
+ Color m_clrNotSimpleBGBlack;
+ int m_ButtonIconLabelSpace;
+
+ int m_ActivityIndent;
+
+ bool m_bShowActivity; // should we show an animating image panel?
+
+ ButtonLabel_s m_Buttons[MAX_BUTTONS];
+ char *m_pCommands[MAX_BUTTONS];
+};
+
+#endif // MESSAGEDIALOG_H