diff options
Diffstat (limited to 'game/client/tf/vgui/testitem_dialog.h')
| -rw-r--r-- | game/client/tf/vgui/testitem_dialog.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/game/client/tf/vgui/testitem_dialog.h b/game/client/tf/vgui/testitem_dialog.h new file mode 100644 index 0000000..ca7a518 --- /dev/null +++ b/game/client/tf/vgui/testitem_dialog.h @@ -0,0 +1,99 @@ +//========= 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 |