//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef ITEM_PICKUP_PANEL_H #define ITEM_PICKUP_PANEL_H #ifdef _WIN32 #pragma once #endif #include #include #include "GameEventListener.h" #include "basemodel_panel.h" #include "basemodelpanel.h" #include "econ_item_inventory.h" #include "econ_item_view.h" #include "item_model_panel.h" #include "vgui_controls/TextEntry.h" #include "econ_controls.h" class CEconItemView; class CBackpackPanel; #define ITEMPICKUP_NUM_MODELPANELS 5 // 1 in the center of the screen, 2 to each side to handle smooth sliding. #define ITEMPICKUP_MODELPANEL_CENTER 2 // Panel that's in the center of the queue //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CItemPickupPanel : public vgui::Frame, public CGameEventListener { DECLARE_CLASS_SIMPLE( CItemPickupPanel, vgui::Frame ); public: CItemPickupPanel( Panel *parent ); virtual ~CItemPickupPanel(); virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); virtual void ApplySettings( KeyValues *inResourceData ); virtual void PerformLayout( void ); virtual void OnCommand( const char *command ); virtual void ShowPanel( bool bShow ); virtual void FireGameEvent( IGameEvent *event ); virtual void OnKeyCodeTyped( vgui::KeyCode code ); virtual void OnKeyCodePressed( vgui::KeyCode code ); void AddItem( CEconItemView *pItem ); void SetReturnToGame( bool bReturn ) { m_bReturnToGame = bReturn; } #ifdef DEBUG void DebugRandomizePickupMethods( void ) { m_bRandomizePickupMethods = true; } #endif MESSAGE_FUNC_PARAMS( OnConfirmDelete, "ConfirmDlgResult", data ); protected: virtual void UpdateModelPanels( void ); virtual void AcknowledgeItems ( void ); protected: int m_iSelectedItem; struct founditem_t { CEconItemView pItem; bool bDiscarded; }; CUtlVector m_aItems; CItemModelPanel *m_aModelPanels[ITEMPICKUP_NUM_MODELPANELS]; vgui::Button *m_pNextButton; vgui::Button *m_pPrevButton; vgui::Button *m_pOpenLoadoutButton; CExButton *m_pCloseButton; CExImageButton *m_pDiscardButton; vgui::Label *m_pItemsFoundLabel; vgui::Label *m_pItemFoundMethod; KeyValues *m_pModelPanelsKV; vgui::EditablePanel *m_pConfirmDeleteDialog; vgui::Label *m_pDiscardedLabel; bool m_bRandomizePickupMethods; CSimplePanelToolTip *m_pToolTip; bool m_bReturnToGame; CPanelAnimationVarAliasType( float, m_iModelPanelSpacing, "modelpanels_spacing", "40", "proportional_float" ); CPanelAnimationVarAliasType( float, m_iModelPanelW, "modelpanels_width", "128", "proportional_float" ); CPanelAnimationVarAliasType( float, m_iModelPanelH, "modelpanels_height", "80", "proportional_float" ); CPanelAnimationVarAliasType( float, m_iModelPanelY, "modelpanels_ypos", "120", "proportional_float" ); }; //----------------------------------------------------------------------------- // Purpose: //----------------------------------------------------------------------------- class CItemDiscardPanel : public vgui::Frame, public CGameEventListener { DECLARE_CLASS_SIMPLE( CItemDiscardPanel, vgui::Frame ); public: CItemDiscardPanel( Panel *parent ); virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); virtual void PerformLayout( void ); virtual void OnCommand( const char *command ); virtual void ShowPanel( bool bShow ); virtual void FireGameEvent( IGameEvent *event ); virtual void OnKeyCodeTyped( vgui::KeyCode code ); virtual void OnKeyCodePressed( vgui::KeyCode code ); void SetItem( CEconItemView *pItem ); MESSAGE_FUNC_PARAMS( OnConfirmDelete, "ConfirmDlgResult", data ); protected: CItemModelPanel *m_pModelPanel; CBackpackPanel *m_pBackpackPanel; vgui::EditablePanel *m_pConfirmDeleteDialog; vgui::Label *m_pDiscardedLabel; vgui::Label *m_pDiscardedLabelCarat; bool m_bDiscardedNewItem; bool m_bMadeRoom; CExButton *m_pDiscardButton; CExButton *m_pCloseButton; CSimplePanelToolTip *m_pItemToolTip; CItemModelPanel *m_pItemMouseOverPanel; }; #endif // ITEM_PICKUP_PANEL_H