summaryrefslogtreecommitdiff
path: root/game/client/econ/item_style_select_dialog.h
blob: 46d45d5553f52c7d83f212c352e67a7bf1cb1c13 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose: 
//
// $NoKeywords: $
//=============================================================================//

#ifndef ITEM_STYLE_SELECT_DIALOG_H
#define ITEM_STYLE_SELECT_DIALOG_H

#ifdef _WIN32
#pragma once
#endif

class CItemModelPanel;

#include "vgui_controls/EditablePanel.h"
#include "vgui_controls/ComboBox.h"

//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CComboBoxBackpackOverlayDialogBase : public vgui::EditablePanel
{
	DECLARE_CLASS_SIMPLE( CComboBoxBackpackOverlayDialogBase, vgui::EditablePanel );

protected:
	CComboBoxBackpackOverlayDialogBase( vgui::Panel *pParent, CEconItemView *pItem );

public:
	virtual ~CComboBoxBackpackOverlayDialogBase() { }

	virtual void	ApplySchemeSettings( vgui::IScheme *scheme );
	virtual void	OnCommand( const char *command );
	void			Show();

protected:
	CItemModelPanel *GetPreviewModelPanel() { return m_pPreviewModelPanel; }
	vgui::ComboBox *GetComboBox() { return m_pComboBox; }

	CEconItemView			*m_pItem;
private:
	virtual void PopulateComboBoxOptions() = 0;
	virtual void OnComboBoxApplication() = 0;
	virtual void OnComboBoxChanged( int iNewSelection ) { }
	virtual const char *GetTitleLabelLocalizationToken() const = 0;

	MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", data );

	CItemModelPanel			*m_pPreviewModelPanel;
	vgui::ComboBox			*m_pComboBox;
};

//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
class CStyleSelectDialog : public CComboBoxBackpackOverlayDialogBase
{
	DECLARE_CLASS_SIMPLE( CStyleSelectDialog, CComboBoxBackpackOverlayDialogBase );

public:
	CStyleSelectDialog( vgui::Panel *pParent, CEconItemView *pItem ) : CComboBoxBackpackOverlayDialogBase( pParent, pItem ) { }

protected:
	virtual void PopulateComboBoxOptions();
	virtual void OnComboBoxApplication();
	virtual void OnComboBoxChanged( int iNewSelection );
	virtual const char *GetTitleLabelLocalizationToken() const { return "#TF_Item_SelectStyle"; }
};

#endif // ITEM_STYLE_SELECT_DIALOG_H