mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-07 17:29:36 +00:00
1
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user