//========= 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