Counter Strike : Global Offensive Source Code
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.

95 lines
2.8 KiB

  1. //========= Copyright � 1996-2001, Valve LLC, All rights reserved. ============
  2. //
  3. // Purpose:
  4. //
  5. // $NoKeywords: $
  6. //=============================================================================
  7. #ifndef DMEDAGEDITPANEL_H
  8. #define DMEDAGEDITPANEL_H
  9. #ifdef _WIN32
  10. #pragma once
  11. #endif
  12. #include "tier1/utlvector.h"
  13. #include "vgui_controls/editablepanel.h"
  14. #include "datamodel/dmehandle.h"
  15. //-----------------------------------------------------------------------------
  16. // Forward declarations
  17. //-----------------------------------------------------------------------------
  18. class CDmeDagRenderPanel;
  19. class CDmeAnimationList;
  20. class CDmeChannelsClip;
  21. class CDmeSourceSkin;
  22. class CDmeSourceAnimation;
  23. class CDmeDCCMakefile;
  24. class CDmeCombinationOperatorPanel;
  25. class CDmeCombinationOperator;
  26. class CDmeAnimationListPanel;
  27. class CBaseAnimationSetEditor;
  28. class CDmeAnimationSet;
  29. class CDmeDag;
  30. namespace vgui
  31. {
  32. class Splitter;
  33. class PropertySheet;
  34. class PropertyPage;
  35. class ScrollableEditablePanel;
  36. }
  37. //-----------------------------------------------------------------------------
  38. // Dag editor panel
  39. //-----------------------------------------------------------------------------
  40. class CDmeDagEditPanel : public vgui::EditablePanel
  41. {
  42. DECLARE_CLASS_SIMPLE( CDmeDagEditPanel, vgui::EditablePanel );
  43. public:
  44. // constructor, destructor
  45. CDmeDagEditPanel( vgui::Panel *pParent, const char *pName );
  46. virtual ~CDmeDagEditPanel();
  47. // Overriden methods of vgui::Panel
  48. virtual void Paint();
  49. // Sets the current scene + animation list
  50. virtual void SetDmeElement( CDmeDag *pScene );
  51. void SetAnimationList( CDmeAnimationList *pAnimationList );
  52. void SetVertexAnimationList( CDmeAnimationList *pAnimationList );
  53. void SetCombinationOperator( CDmeCombinationOperator *pComboOp );
  54. void RefreshCombinationOperator();
  55. CDmeDag *GetDmeElement();
  56. // Other methods which hook into DmePanel
  57. void SetDmeElement( CDmeSourceSkin *pSkin );
  58. void SetDmeElement( CDmeSourceAnimation *pAnimation );
  59. void SetDmeElement( CDmeDCCMakefile *pDCCMakefile );
  60. protected:
  61. // Called when the selection changes moves
  62. MESSAGE_FUNC( OnPageChanged, "PageChanged" );
  63. MESSAGE_FUNC_PARAMS( OnAnimationSelected, "AnimationSelected", kv );
  64. MESSAGE_FUNC_PARAMS( OnAnimationDeselected, "AnimationDeselected", kv );
  65. // Sets up the various panels in the dag editor
  66. void SetMakefileRootElement( CDmElement *pRoot );
  67. vgui::PropertySheet *m_pEditorSheet;
  68. vgui::PropertyPage *m_pAnimationPage;
  69. vgui::PropertyPage *m_pVertexAnimationPage;
  70. vgui::PropertyPage *m_pCombinationPage;
  71. vgui::Splitter *m_pPropertiesSplitter;
  72. CDmeDagRenderPanel *m_pDagRenderPanel;
  73. CDmeAnimationListPanel *m_pAnimationListPanel;
  74. CDmeAnimationListPanel *m_pVertexAnimationListPanel;
  75. CDmeCombinationOperatorPanel *m_pCombinationPanel;
  76. };
  77. #endif // DMEDAGEDITPANEL_H