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.
154 lines
4.1 KiB
154 lines
4.1 KiB
//========= 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
|
|
|