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.
120 lines
3.2 KiB
120 lines
3.2 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: All matchmaking dialogs inherit from this |
|
// |
|
//=============================================================================// |
|
|
|
#ifndef BASEDIALOG_H |
|
#define BASEDIALOG_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include "dialogmenu.h" |
|
#include "vgui_controls/Label.h" |
|
#include "vgui_controls/KeyRepeat.h" |
|
#include "KeyValues.h" |
|
#include "BasePanel.h" |
|
|
|
#if !defined( _X360 ) |
|
#include "xbox/xboxstubs.h" |
|
#endif |
|
|
|
class CFooterPanel; |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: A Label with an extra string to hold a session property lookup key |
|
//----------------------------------------------------------------------------- |
|
class CPropertyLabel : public vgui::Label |
|
{ |
|
DECLARE_CLASS_SIMPLE( CPropertyLabel, vgui::Label ); |
|
|
|
public: |
|
CPropertyLabel( Panel *parent, const char *panelName, const char *text ) : BaseClass( parent, panelName, text ) |
|
{ |
|
} |
|
|
|
virtual void ApplySettings( KeyValues *pResourceData ) |
|
{ |
|
BaseClass::ApplySettings( pResourceData ); |
|
|
|
m_szPropertyString[0] = 0; |
|
const char *pString = pResourceData->GetString( "PropertyString", NULL ); |
|
if ( pString ) |
|
{ |
|
Q_strncpy( m_szPropertyString, pString, sizeof( m_szPropertyString ) ); |
|
} |
|
} |
|
|
|
char m_szPropertyString[ MAX_PATH ]; |
|
}; |
|
|
|
//-------------------------------- |
|
// CBaseDialog |
|
//-------------------------------- |
|
class CBaseDialog : public vgui::Frame |
|
{ |
|
DECLARE_CLASS_SIMPLE( CBaseDialog, vgui::Frame ); |
|
|
|
public: |
|
CBaseDialog( vgui::Panel *parent, const char *pName ); |
|
~CBaseDialog(); |
|
|
|
// IPanel interface |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); |
|
virtual void ApplySettings( KeyValues *pResourceData ); |
|
virtual void PerformLayout(); |
|
virtual void Activate(); |
|
|
|
virtual void OnKeyCodePressed( vgui::KeyCode code ); |
|
virtual void OnKeyCodeReleased( vgui::KeyCode code); |
|
virtual void OnCommand( const char *pCommand ); |
|
virtual void OnClose(); |
|
virtual void OnThink(); |
|
|
|
virtual void OverrideMenuItem( KeyValues *pKeys ); |
|
virtual void SwapMenuItems( int iOne, int iTwo ); |
|
|
|
virtual void HandleKeyRepeated( vgui::KeyCode code ); |
|
|
|
protected: |
|
int m_nBorderWidth; |
|
int m_nMinWide; |
|
|
|
CDialogMenu m_Menu; |
|
vgui::Label *m_pTitle; |
|
vgui::Panel *m_pParent; |
|
|
|
KeyValues *m_pFooterInfo; |
|
int m_nButtonGap; |
|
|
|
vgui::CKeyRepeatHandler m_KeyRepeat; |
|
}; |
|
|
|
|
|
//--------------------------------------------------------------------- |
|
// Helper object to display the map picture and descriptive text |
|
//--------------------------------------------------------------------- |
|
class CScenarioInfoPanel : public vgui::EditablePanel |
|
{ |
|
DECLARE_CLASS_SIMPLE( CScenarioInfoPanel, vgui::EditablePanel ); |
|
|
|
public: |
|
CScenarioInfoPanel( vgui::Panel *parent, const char *pName ); |
|
~CScenarioInfoPanel(); |
|
|
|
virtual void PerformLayout(); |
|
virtual void ApplySettings( KeyValues *pResourceData ); |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); |
|
|
|
vgui::ImagePanel *m_pMapImage; |
|
CPropertyLabel *m_pTitle; |
|
CPropertyLabel *m_pSubtitle; |
|
CPropertyLabel *m_pDescOne; |
|
CPropertyLabel *m_pDescTwo; |
|
CPropertyLabel *m_pDescThree; |
|
CPropertyLabel *m_pValueTwo; |
|
CPropertyLabel *m_pValueThree; |
|
}; |
|
|
|
#endif // BASEDIALOG_H
|