summaryrefslogtreecommitdiff
path: root/game/client/tf/vgui/testitem_dialog.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/tf/vgui/testitem_dialog.h')
-rw-r--r--game/client/tf/vgui/testitem_dialog.h99
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