text: //========= Copyright Valve Corporation, All rights reserved. ============//
  //
  // Purpose: 
  //
  // $NoKeywords: $
  //=============================================================================//
  #ifndef ITEM_SLOT_PANEL_H
  #define ITEM_SLOT_PANEL_H
  #include "base_loadout_panel.h"
  
  class CItemCriteriaSelectionPanel;
  
  //-----------------------------------------------------------------------------
  // A loadout screen that handles modifying the loadout of a specific item
  //-----------------------------------------------------------------------------
  class CItemSlotPanel : public CBaseLoadoutPanel
  {
  	DECLARE_CLASS_SIMPLE( CItemSlotPanel, CBaseLoadoutPanel );
  public:
  	CItemSlotPanel( vgui::Panel *parent );
  	~CItemSlotPanel();
  
  	virtual void ApplySchemeSettings( vgui::IScheme *pScheme );
  	virtual void PerformLayout( void );
  
  	virtual void AddNewItemPanel( int iPanelIndex ) OVERRIDE;
  	virtual void UpdateModelPanels( void ) OVERRIDE;
  	virtual int	 GetNumItemPanels( void ) OVERRIDE;
  	virtual void OnShowPanel( bool bVisible, bool bReturningFromArmory ) OVERRIDE;
  
  	MESSAGE_FUNC_PTR( OnItemPanelMouseReleased, "ItemPanelMouseReleased", panel );
  	MESSAGE_FUNC_PARAMS( OnSelectionReturned, "SelectionReturned", data );
  	MESSAGE_FUNC( OnCancelSelection, "CancelSelection" );
  	virtual void OnCommand( const char *command );
  
  	void	SetItem( CEconItem* pItem );
  
  private:
  	CEconItem	*m_pItem;
  
  	struct ItemSlot_t
  	{
  		CAttribute_ItemSlotCriteria m_slotCriteriaAttribute;
  		itemid_t m_ulOriginalID;
  		bool m_bHasSlot;
  	};
  	CUtlVector< ItemSlot_t > m_itemSlots;
  
  	int m_iCurrentSlotIndex;
  	CItemSelectionCriteria m_selectionCriteria;
  	CItemCriteriaSelectionPanel	*m_pSelectionPanel;
  };
  
  #endif // ITEM_SLOT_PANEL_H
  