diff options
| author | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
|---|---|---|
| committer | FluorescentCIAAfricanAmerican <[email protected]> | 2020-04-22 12:56:21 -0400 |
| commit | 3bf9df6b2785fa6d951086978a3e66f49427166a (patch) | |
| tree | 2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/dme_controls/dmepresetgroupeditorpanel.h | |
| download | archived-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.h | 178 |
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 |