Team Fortress 2 Source Code as on 22/4/2020
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.

113 lines
3.1 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef OPTIONSSUBMULTIPLAYER_H
  8. #define OPTIONSSUBMULTIPLAYER_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #include <vgui_controls/PropertyPage.h>
  13. #include <vgui_controls/ImagePanel.h>
  14. #include "imageutils.h"
  15. class CLabeledCommandComboBox;
  16. class CBitmapImagePanel;
  17. class CCvarToggleCheckButton;
  18. class CCvarTextEntry;
  19. class CCvarSlider;
  20. class CMultiplayerAdvancedDialog;
  21. class COptionsSubMultiplayer;
  22. class CrosshairImagePanelBase : public vgui::ImagePanel
  23. {
  24. DECLARE_CLASS_SIMPLE( CrosshairImagePanelBase, vgui::ImagePanel );
  25. public:
  26. CrosshairImagePanelBase( Panel *parent, const char *name ) : BaseClass(parent, name) {}
  27. virtual void ResetData() {}
  28. virtual void ApplyChanges() {}
  29. virtual void UpdateVisibility() {}
  30. };
  31. //-----------------------------------------------------------------------------
  32. // Purpose: multiplayer options property page
  33. //-----------------------------------------------------------------------------
  34. class COptionsSubMultiplayer : public vgui::PropertyPage
  35. {
  36. DECLARE_CLASS_SIMPLE( COptionsSubMultiplayer, vgui::PropertyPage );
  37. public:
  38. COptionsSubMultiplayer(vgui::Panel *parent);
  39. ~COptionsSubMultiplayer();
  40. virtual vgui::Panel *CreateControlByName(const char *controlName);
  41. MESSAGE_FUNC( OnControlModified, "ControlModified" );
  42. protected:
  43. // Called when page is loaded. Data should be reloaded from document into controls.
  44. virtual void OnResetData();
  45. // Called when the OK / Apply button is pressed. Changed data should be written into document.
  46. virtual void OnApplyChanges();
  47. virtual void OnCommand( const char *command );
  48. private:
  49. void InitModelList(CLabeledCommandComboBox *cb);
  50. void InitLogoList(CLabeledCommandComboBox *cb);
  51. void RemapModel();
  52. void RemapLogo();
  53. void ConversionError( ConversionErrorType nError );
  54. MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel );
  55. MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath );
  56. void ColorForName(char const *pszColorName, int &r, int &g, int &b);
  57. CBitmapImagePanel *m_pModelImage;
  58. CLabeledCommandComboBox *m_pModelList;
  59. char m_ModelName[128];
  60. vgui::ImagePanel *m_pLogoImage;
  61. CLabeledCommandComboBox *m_pLogoList;
  62. char m_LogoName[128];
  63. CCvarSlider *m_pPrimaryColorSlider;
  64. CCvarSlider *m_pSecondaryColorSlider;
  65. CCvarToggleCheckButton *m_pHighQualityModelCheckBox;
  66. // Mod specific general checkboxes
  67. vgui::Dar< CCvarToggleCheckButton * > m_cvarToggleCheckButtons;
  68. CCvarToggleCheckButton *m_pLockRadarRotationCheckbox;
  69. CrosshairImagePanelBase *m_pCrosshairImage;
  70. // --- client download filter
  71. vgui::ComboBox *m_pDownloadFilterCombo;
  72. // Begin Spray Import Functions
  73. ConversionErrorType WriteSprayVMT(const char *vtfPath);
  74. void SelectLogo(const char *logoName);
  75. // End Spray Import Functions
  76. int m_nLogoR;
  77. int m_nLogoG;
  78. int m_nLogoB;
  79. #ifndef _XBOX
  80. vgui::DHANDLE<CMultiplayerAdvancedDialog> m_hMultiplayerAdvancedDialog;
  81. #endif
  82. vgui::FileOpenDialog *m_hImportSprayDialog;
  83. };
  84. #endif // OPTIONSSUBMULTIPLAYER_H