diff options
Diffstat (limited to 'gameui/OptionsSubMultiplayer.h')
| -rw-r--r-- | gameui/OptionsSubMultiplayer.h | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/gameui/OptionsSubMultiplayer.h b/gameui/OptionsSubMultiplayer.h new file mode 100644 index 0000000..85577bb --- /dev/null +++ b/gameui/OptionsSubMultiplayer.h @@ -0,0 +1,113 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#ifndef OPTIONSSUBMULTIPLAYER_H +#define OPTIONSSUBMULTIPLAYER_H +#ifdef _WIN32 +#pragma once +#endif + +#include <vgui_controls/PropertyPage.h> +#include <vgui_controls/ImagePanel.h> +#include "imageutils.h" + +class CLabeledCommandComboBox; +class CBitmapImagePanel; + +class CCvarToggleCheckButton; +class CCvarTextEntry; +class CCvarSlider; + +class CMultiplayerAdvancedDialog; + +class COptionsSubMultiplayer; + +class CrosshairImagePanelBase : public vgui::ImagePanel +{ + DECLARE_CLASS_SIMPLE( CrosshairImagePanelBase, vgui::ImagePanel ); +public: + CrosshairImagePanelBase( Panel *parent, const char *name ) : BaseClass(parent, name) {} + virtual void ResetData() {} + virtual void ApplyChanges() {} + virtual void UpdateVisibility() {} +}; + +//----------------------------------------------------------------------------- +// Purpose: multiplayer options property page +//----------------------------------------------------------------------------- +class COptionsSubMultiplayer : public vgui::PropertyPage +{ + DECLARE_CLASS_SIMPLE( COptionsSubMultiplayer, vgui::PropertyPage ); + +public: + COptionsSubMultiplayer(vgui::Panel *parent); + ~COptionsSubMultiplayer(); + + virtual vgui::Panel *CreateControlByName(const char *controlName); + + MESSAGE_FUNC( OnControlModified, "ControlModified" ); + +protected: + // Called when page is loaded. Data should be reloaded from document into controls. + virtual void OnResetData(); + // Called when the OK / Apply button is pressed. Changed data should be written into document. + virtual void OnApplyChanges(); + + virtual void OnCommand( const char *command ); + +private: + void InitModelList(CLabeledCommandComboBox *cb); + void InitLogoList(CLabeledCommandComboBox *cb); + + void RemapModel(); + void RemapLogo(); + + void ConversionError( ConversionErrorType nError ); + + MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel ); + MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath ); + + void ColorForName(char const *pszColorName, int &r, int &g, int &b); + + CBitmapImagePanel *m_pModelImage; + CLabeledCommandComboBox *m_pModelList; + char m_ModelName[128]; + + vgui::ImagePanel *m_pLogoImage; + CLabeledCommandComboBox *m_pLogoList; + char m_LogoName[128]; + + CCvarSlider *m_pPrimaryColorSlider; + CCvarSlider *m_pSecondaryColorSlider; + CCvarToggleCheckButton *m_pHighQualityModelCheckBox; + + // Mod specific general checkboxes + vgui::Dar< CCvarToggleCheckButton * > m_cvarToggleCheckButtons; + + CCvarToggleCheckButton *m_pLockRadarRotationCheckbox; + + CrosshairImagePanelBase *m_pCrosshairImage; + + // --- client download filter + vgui::ComboBox *m_pDownloadFilterCombo; + + // Begin Spray Import Functions + ConversionErrorType WriteSprayVMT(const char *vtfPath); + void SelectLogo(const char *logoName); + // End Spray Import Functions + + int m_nLogoR; + int m_nLogoG; + int m_nLogoB; + +#ifndef _XBOX + vgui::DHANDLE<CMultiplayerAdvancedDialog> m_hMultiplayerAdvancedDialog; +#endif + vgui::FileOpenDialog *m_hImportSprayDialog; +}; + +#endif // OPTIONSSUBMULTIPLAYER_H |