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.

71 lines
2.2 KiB

  1. //========= Copyright Valve Corporation, All rights reserved. ============//
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================//
  7. #ifndef ITEM_STYLE_SELECT_DIALOG_H
  8. #define ITEM_STYLE_SELECT_DIALOG_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. class CItemModelPanel;
  13. #include "vgui_controls/EditablePanel.h"
  14. #include "vgui_controls/ComboBox.h"
  15. //-----------------------------------------------------------------------------
  16. // Purpose:
  17. //-----------------------------------------------------------------------------
  18. class CComboBoxBackpackOverlayDialogBase : public vgui::EditablePanel
  19. {
  20. DECLARE_CLASS_SIMPLE( CComboBoxBackpackOverlayDialogBase, vgui::EditablePanel );
  21. protected:
  22. CComboBoxBackpackOverlayDialogBase( vgui::Panel *pParent, CEconItemView *pItem );
  23. public:
  24. virtual ~CComboBoxBackpackOverlayDialogBase() { }
  25. virtual void ApplySchemeSettings( vgui::IScheme *scheme );
  26. virtual void OnCommand( const char *command );
  27. void Show();
  28. protected:
  29. CItemModelPanel *GetPreviewModelPanel() { return m_pPreviewModelPanel; }
  30. vgui::ComboBox *GetComboBox() { return m_pComboBox; }
  31. CEconItemView *m_pItem;
  32. private:
  33. virtual void PopulateComboBoxOptions() = 0;
  34. virtual void OnComboBoxApplication() = 0;
  35. virtual void OnComboBoxChanged( int iNewSelection ) { }
  36. virtual const char *GetTitleLabelLocalizationToken() const = 0;
  37. MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", data );
  38. CItemModelPanel *m_pPreviewModelPanel;
  39. vgui::ComboBox *m_pComboBox;
  40. };
  41. //-----------------------------------------------------------------------------
  42. // Purpose:
  43. //-----------------------------------------------------------------------------
  44. class CStyleSelectDialog : public CComboBoxBackpackOverlayDialogBase
  45. {
  46. DECLARE_CLASS_SIMPLE( CStyleSelectDialog, CComboBoxBackpackOverlayDialogBase );
  47. public:
  48. CStyleSelectDialog( vgui::Panel *pParent, CEconItemView *pItem ) : CComboBoxBackpackOverlayDialogBase( pParent, pItem ) { }
  49. protected:
  50. virtual void PopulateComboBoxOptions();
  51. virtual void OnComboBoxApplication();
  52. virtual void OnComboBoxChanged( int iNewSelection );
  53. virtual const char *GetTitleLabelLocalizationToken() const { return "#TF_Item_SelectStyle"; }
  54. };
  55. #endif // ITEM_STYLE_SELECT_DIALOG_H