diff options
Diffstat (limited to 'public/dme_controls/dmedageditpanel.h')
| -rw-r--r-- | public/dme_controls/dmedageditpanel.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/public/dme_controls/dmedageditpanel.h b/public/dme_controls/dmedageditpanel.h new file mode 100644 index 0000000..f5cb1f3 --- /dev/null +++ b/public/dme_controls/dmedageditpanel.h @@ -0,0 +1,96 @@ +//========= 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
\ No newline at end of file |