summaryrefslogtreecommitdiff
path: root/public/dme_controls/dmepresetgroupeditorpanel.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/dme_controls/dmepresetgroupeditorpanel.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/dme_controls/dmepresetgroupeditorpanel.h')
-rw-r--r--public/dme_controls/dmepresetgroupeditorpanel.h178
1 files changed, 178 insertions, 0 deletions
diff --git a/public/dme_controls/dmepresetgroupeditorpanel.h b/public/dme_controls/dmepresetgroupeditorpanel.h
new file mode 100644
index 0000000..71d9e1b
--- /dev/null
+++ b/public/dme_controls/dmepresetgroupeditorpanel.h
@@ -0,0 +1,178 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Purpose:
+//
+// $NoKeywords: $
+//=============================================================================
+
+#ifndef PRESETGROUPEDITORPANEL_H
+#define PRESETGROUPEDITORPANEL_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "tier1/utlvector.h"
+#include "vgui_controls/Frame.h"
+#include "datamodel/dmehandle.h"
+#include "vgui_controls/fileopenstatemachine.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+class CDmeAnimationSet;
+class CDmePresetListPanel;
+class CDmePresetGroupListPanel;
+class CDmePresetGroup;
+class CDmePreset;
+namespace vgui
+{
+ class PropertySheet;
+ class PropertyPage;
+ class Button;
+}
+
+
+//-----------------------------------------------------------------------------
+// Dag editor panel
+//-----------------------------------------------------------------------------
+class CDmePresetGroupEditorPanel : public vgui::EditablePanel, public vgui::IFileOpenStateMachineClient
+{
+ DECLARE_CLASS_SIMPLE( CDmePresetGroupEditorPanel, vgui::EditablePanel );
+
+public:
+ // constructor, destructor
+ CDmePresetGroupEditorPanel( vgui::Panel *pParent, const char *pName );
+ virtual ~CDmePresetGroupEditorPanel();
+
+ // Sets the current scene + animation list
+ void SetAnimationSet( CDmeAnimationSet *pAnimationSet );
+ CDmeAnimationSet *GetAnimationSet();
+
+ void RefreshAnimationSet();
+ void NotifyDataChanged();
+
+ // Returns selected presets/groups
+ CDmePresetGroup* GetSelectedPresetGroup( );
+ CDmePreset* GetSelectedPreset( );
+
+ // Drag/drop reordering of preset groups
+ void MovePresetGroupInFrontOf( CDmePresetGroup *pDragGroup, CDmePresetGroup *pDropGroup );
+
+ // Drag/drop reordering of presets
+ void MovePresetInFrontOf( CDmePreset *pDragPreset, CDmePreset *pDropPreset );
+
+ // Drag/drop preset moving
+ void MovePresetIntoGroup( CDmePreset *pPreset, CDmePresetGroup *pGroup );
+
+ // Toggle group visibility
+ void ToggleGroupVisibility( CDmePresetGroup *pPresetGroup );
+
+ MESSAGE_FUNC( OnMovePresetUp, "MovePresetUp" );
+ MESSAGE_FUNC( OnMovePresetDown, "MovePresetDown" );
+ MESSAGE_FUNC( OnMoveGroupUp, "MoveGroupUp" );
+ MESSAGE_FUNC( OnMoveGroupDown, "MoveGroupDown" );
+ MESSAGE_FUNC( OnRemoveGroup, "RemoveGroup" );
+ MESSAGE_FUNC( OnRemovePreset, "RemovePreset" );
+
+ // Inherited from IFileOpenStateMachineClient
+ virtual void SetupFileOpenDialog( vgui::FileOpenDialog *pDialog, bool bOpenFile, const char *pFileFormat, KeyValues *pContextKeyValues );
+ virtual bool OnReadFileFromDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues );
+ virtual bool OnWriteFileToDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues );
+
+private:
+ MESSAGE_FUNC_PARAMS( OnOpenContextMenu, "OpenContextMenu", kv );
+ MESSAGE_FUNC_PARAMS( OnInputCompleted, "InputCompleted", kv );
+ MESSAGE_FUNC( OnAddGroup, "AddGroup" );
+ MESSAGE_FUNC( OnAddPhonemeGroup, "AddPhonemeGroup" );
+ MESSAGE_FUNC( OnRenameGroup, "RenameGroup" );
+ MESSAGE_FUNC( OnEditPresetRemapping, "EditPresetRemapping" );
+ MESSAGE_FUNC( OnRemoveDefaultControls, "RemoveDefaultControls" );
+ MESSAGE_FUNC( OnRemapPresets, "RemapPresets" );
+ MESSAGE_FUNC( OnAddPreset, "AddPreset" );
+ MESSAGE_FUNC( OnRenamePreset, "RenamePreset" );
+ MESSAGE_FUNC( OnToggleGroupVisibility, "ToggleGroupVisibility" );
+ MESSAGE_FUNC( OnToggleGroupSharing, "ToggleGroupSharing" );
+ MESSAGE_FUNC_PARAMS( OnItemSelected, "ItemSelected", kv );
+ MESSAGE_FUNC_PARAMS( OnItemDeselected, "ItemDeselected", kv );
+ MESSAGE_FUNC( OnImportPresets, "ImportPresets" );
+ MESSAGE_FUNC( OnExportPresets, "ExportPresets" );
+ MESSAGE_FUNC( OnImportPresetGroups, "ImportPresetGroups" );
+ MESSAGE_FUNC( OnExportPresetGroups, "ExportPresetGroups" );
+ MESSAGE_FUNC( OnExportPresetGroupToVFE, "ExportPresetGroupsToVFE" );
+ MESSAGE_FUNC( OnExportPresetGroupToTXT, "ExportPresetGroupsToTXT" );
+ MESSAGE_FUNC_PARAMS( OnPresetPicked, "PresetPicked", params );
+ MESSAGE_FUNC_PARAMS( OnPresetPickCancelled, "PresetPickCancelled", params );
+ MESSAGE_FUNC_PARAMS( OnFileStateMachineFinished, "FileStateMachineFinished", params );
+
+ // Cleans up the context menu
+ void CleanupContextMenu();
+
+ // If it finds a duplicate group/preset name, reports an error message and returns it found one
+ bool HasDuplicatePresetName( const char *pPresetName, CDmePreset *pIgnorePreset = NULL );
+ bool HasDuplicateGroupName( const char *pControlName, CDmePresetGroup *pIgnoreGroup = NULL );
+
+ // Refreshes the list of presets
+ void RefreshPresetNames( );
+
+ // Called by OnInputCompleted after we get a new group or preset name
+ void PerformAddGroup( const char *pNewGroupName );
+ void PerformAddPhonemeGroup( const char *pNewGroupName );
+ void PerformRenameGroup( const char *pNewGroupName );
+ void PerformAddPreset( const char *pNewPresetName );
+ void PerformRenamePreset( const char *pNewPresetName );
+
+ // Called to open a context-sensitive menu for a particular preset
+ void OnOpenPresetContextMenu( );
+
+ // Gets/sets a selected preset
+ void SetSelectedPreset( CDmePreset* pPreset );
+
+ // Selects a particular preset group
+ void SetSelectedPresetGroup( CDmePresetGroup* pPresetGroup );
+
+ // Imports presets
+ void ImportPresets( const CUtlVector< CDmePreset * >& presets );
+
+ CDmeHandle< CDmeAnimationSet > m_hAnimationSet;
+ vgui::Splitter *m_pSplitter;
+ CDmePresetGroupListPanel *m_pPresetGroupList;
+ CDmePresetListPanel *m_pPresetList;
+ vgui::DHANDLE< vgui::Menu > m_hContextMenu;
+ vgui::DHANDLE< vgui::FileOpenStateMachine > m_hFileOpenStateMachine;
+};
+
+
+//-----------------------------------------------------------------------------
+// Frame for combination system
+//-----------------------------------------------------------------------------
+class CDmePresetGroupEditorFrame : public vgui::Frame, public IDmNotify
+{
+ DECLARE_CLASS_SIMPLE( CDmePresetGroupEditorFrame, vgui::Frame );
+
+public:
+ CDmePresetGroupEditorFrame( vgui::Panel *pParent, const char *pTitle );
+ ~CDmePresetGroupEditorFrame();
+
+ // Sets the current scene + animation list
+ void SetAnimationSet( CDmeAnimationSet *pAnimationSet );
+
+ // Inherited from IDmNotify
+ virtual void NotifyDataChanged( const char *pReason, int nNotifySource, int nNotifyFlags );
+
+private:
+ MESSAGE_FUNC( OnPresetsChanged, "PresetsChanged" );
+ MESSAGE_FUNC_PARAMS( OnAddNewPreset, "AddNewPreset", params );
+ KEYBINDING_FUNC( undo, KEY_Z, vgui::MODIFIER_CONTROL, OnUndo, "#undo_help", 0 );
+ KEYBINDING_FUNC( redo, KEY_Z, vgui::MODIFIER_CONTROL | vgui::MODIFIER_SHIFT, OnRedo, "#redo_help", 0 );
+
+ // Inherited from Frame
+ virtual void OnCommand( const char *pCommand );
+
+ CDmePresetGroupEditorPanel *m_pEditor;
+ vgui::Button *m_pOkButton;
+};
+
+
+#endif // PRESETGROUPEDITORPANEL_H \ No newline at end of file