//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: // // $NoKeywords: $ //=============================================================================// #ifndef TESTITEM_DIALOG_H #define TESTITEM_DIALOG_H #ifdef _WIN32 #pragma once #endif #include "vgui_controls/EditablePanel.h" #include "vgui_controls/ScrollableEditablePanel.h" #include "tf_controls.h" enum testitem_entrysteps_t { TI_STEP_MODELNAME, TI_STEP_WPN_ITEMREPLACED, TI_STEP_NONWPN_BODYGROUPS, TI_STEP_OTHER_OPTIONS, TI_STEP_CUSTOMIZATION, TI_STEP_FINISHED, }; enum testitem_bodygroups_to_hide_t { TI_HIDEBG_HAT, TI_HIDEBG_HEADPHONES, TI_HIDEBG_MEDALS, TI_HIDEBG_GRENADES, TI_HIDEBG_BULLETS, TI_HIDEBG_ARROWS, TI_HIDEBG_RIGHTARM, TI_HIDEBG_SHOES_SOCKS, TI_HIDEBG_COUNT, }; //----------------------------------------------------------------------------- // A dialog that handles adding or modifying an item we're testing //----------------------------------------------------------------------------- class CTestItemDialog : public vgui::EditablePanel, public CGameEventListener { DECLARE_CLASS_SIMPLE( CTestItemDialog, vgui::EditablePanel ); public: CTestItemDialog( vgui::Panel *parent, testitem_itemtypes_t iItemType, int iClassUsage, KeyValues *pExistingKVs ); ~CTestItemDialog( void ); virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); virtual void PerformLayout( void ); virtual void OnCommand( const char *command ); virtual void FireGameEvent( IGameEvent *event ); void Close( void ); void CloseAndUpdateItem( void ); MESSAGE_FUNC_PARAMS( OnTextChanged, "TextChanged", data ); MESSAGE_FUNC_CHARPTR( OnFileSelected, "FileSelected", fullpath ); private: void InitializeFromExistingKVs( KeyValues *pExistingKVs ); void SetEntryStep( testitem_entrysteps_t iStep ); void OpenSelectModelDialog( void ); void SetupItemComboBox( vgui::ComboBox *pComboBox ); void SetupPaintColorComboBox( void ); void SetupUnusualEffectComboBox( void ); void HandleClassCheckbuttonChecked( vgui::Panel *pPanel ); private: testitem_entrysteps_t m_iEntryStep; testitem_itemtypes_t m_iItemType; int m_iClassUsage; vgui::FileOpenDialog *m_hImportModelDialog; char m_szRelativePath[MAX_PATH]; CExLabel *m_pModelLabel; CExLabel *m_pSelectModelLabel; CExLabel *m_pNoItemsToReplaceLabel; CExButton *m_pSelectModelButton; CExButton *m_pOkButton; vgui::ComboBox *m_pItemReplacedComboBox; vgui::EditablePanel *m_pBodygroupPanel; vgui::EditablePanel *m_pItemReplacedPanel; vgui::CheckButton *m_pBodygroupCheckButtons[TI_HIDEBG_COUNT]; vgui::EditablePanel *m_pCustomizationsPanel; vgui::ComboBox *m_pPaintColorComboBox; vgui::ComboBox *m_pUnusualEffectComboBox; vgui::EditablePanel *m_pExistingItemToTestPanel; vgui::ComboBox *m_pExistingItemComboBox; }; #endif // TESTITEM_DIALOG_H