You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.7 KiB
96 lines
2.7 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose:
|
||
|
//
|
||
|
// $NoKeywords: $
|
||
|
//=============================================================================
|
||
|
|
||
|
#ifndef DMEDAGEDITPANEL_H
|
||
|
#define DMEDAGEDITPANEL_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "tier1/utlvector.h"
|
||
|
#include "vgui_controls/EditablePanel.h"
|
||
|
#include "datamodel/dmehandle.h"
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Forward declarations
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CDmeDagRenderPanel;
|
||
|
class CDmeAnimationList;
|
||
|
class CDmeChannelsClip;
|
||
|
class CDmeSourceSkin;
|
||
|
class CDmeSourceAnimation;
|
||
|
class CDmeDCCMakefile;
|
||
|
class CDmeCombinationOperatorPanel;
|
||
|
class CDmeCombinationOperator;
|
||
|
class CDmeAnimationListPanel;
|
||
|
class CBaseAnimationSetEditor;
|
||
|
class CDmeAnimationSet;
|
||
|
class CDmeDag;
|
||
|
|
||
|
namespace vgui
|
||
|
{
|
||
|
class Splitter;
|
||
|
class PropertySheet;
|
||
|
class PropertyPage;
|
||
|
class ScrollableEditablePanel;
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
//-----------------------------------------------------------------------------
|
||
|
// Dag editor panel
|
||
|
//-----------------------------------------------------------------------------
|
||
|
class CDmeDagEditPanel : public vgui::EditablePanel
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE( CDmeDagEditPanel, vgui::EditablePanel );
|
||
|
|
||
|
public:
|
||
|
// constructor, destructor
|
||
|
CDmeDagEditPanel( vgui::Panel *pParent, const char *pName );
|
||
|
virtual ~CDmeDagEditPanel();
|
||
|
|
||
|
// Overriden methods of vgui::Panel
|
||
|
virtual void Paint();
|
||
|
|
||
|
// Sets the current scene + animation list
|
||
|
void SetDmeElement( CDmeDag *pScene );
|
||
|
void SetAnimationList( CDmeAnimationList *pAnimationList );
|
||
|
void SetVertexAnimationList( CDmeAnimationList *pAnimationList );
|
||
|
void SetCombinationOperator( CDmeCombinationOperator *pComboOp );
|
||
|
void RefreshCombinationOperator();
|
||
|
|
||
|
CDmeDag *GetDmeElement();
|
||
|
|
||
|
// Other methods which hook into DmePanel
|
||
|
void SetDmeElement( CDmeSourceSkin *pSkin );
|
||
|
void SetDmeElement( CDmeSourceAnimation *pAnimation );
|
||
|
void SetDmeElement( CDmeDCCMakefile *pDCCMakefile );
|
||
|
|
||
|
private:
|
||
|
// Called when the selection changes moves
|
||
|
MESSAGE_FUNC( OnPageChanged, "PageChanged" );
|
||
|
MESSAGE_FUNC_PARAMS( OnAnimationSelected, "AnimationSelected", kv );
|
||
|
MESSAGE_FUNC_PARAMS( OnAnimationDeselected, "AnimationDeselected", kv );
|
||
|
|
||
|
// Sets up the various panels in the dag editor
|
||
|
void SetMakefileRootElement( CDmElement *pRoot );
|
||
|
|
||
|
vgui::PropertySheet *m_pEditorSheet;
|
||
|
vgui::PropertyPage *m_pAnimationPage;
|
||
|
vgui::PropertyPage *m_pVertexAnimationPage;
|
||
|
vgui::PropertyPage *m_pCombinationPage;
|
||
|
vgui::Splitter *m_pPropertiesSplitter;
|
||
|
CDmeDagRenderPanel *m_pDagRenderPanel;
|
||
|
CDmeAnimationListPanel *m_pAnimationListPanel;
|
||
|
CDmeAnimationListPanel *m_pVertexAnimationListPanel;
|
||
|
CDmeCombinationOperatorPanel *m_pCombinationPanel;
|
||
|
};
|
||
|
|
||
|
|
||
|
#endif // DMEDAGEDITPANEL_H
|