1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
5 #include <CryParticleSystem/IParticlesPfx2.h>
7 #include <NodeGraph/ICryGraphEditor.h>
8 #include <NodeGraph/HeaderIconWidget.h>
10 namespace CryParticleEditor
{
13 class CFeaturePinItem
;
16 typedef std::vector
<CFeatureItem
*> FeatureItemArray
;
28 typedef CryGraphEditor::CIconArray
<Icon_Count
> IconMap
;
30 class CEmitterActiveIcon
: public CryGraphEditor::CHeaderIconWidget
33 CEmitterActiveIcon(CryGraphEditor::CNodeWidget
& nodeWidget
);
34 ~CEmitterActiveIcon();
36 // CryGraphEditor::CHeaderIconWidget
37 virtual void OnClicked();
38 // ~CryGraphEditor::CHeaderIconWidget
41 void OnNodeSelectionChanged(bool isSelected
);
42 void OnDeactivatedChanged(bool isDeactivated
);
45 static IconMap s_iconMap
;
48 class CSoloEmitterModeIcon
: public CryGraphEditor::CHeaderIconWidget
51 CSoloEmitterModeIcon(CryGraphEditor::CNodeWidget
& nodeWidget
);
52 ~CSoloEmitterModeIcon();
54 // CryGraphEditor::CHeaderIconWidget
55 virtual void OnClicked();
56 // ~CryGraphEditor::CHeaderIconWidget
59 void OnNodeSelectionChanged(bool isSelected
);
60 void OnVisibilityChanged(bool isVisible
);
61 void OnDeactivatedChanged(bool isDeactivated
);
63 void UpdateIcon(bool isSelected
, bool isVisible
, bool isDeactivated
, bool isSoloNode
);
66 static IconMap s_iconMap
;
69 class CEmitterVisibleIcon
: public CryGraphEditor::CHeaderIconWidget
72 CEmitterVisibleIcon(CryGraphEditor::CNodeWidget
& nodeWidget
);
73 ~CEmitterVisibleIcon();
75 // CryGraphEditor::CHeaderIconWidget
76 virtual void OnClicked();
77 // ~CryGraphEditor::CHeaderIconWidget
80 void OnNodeSelectionChanged(bool isSelected
);
81 void OnVisibilityChanged(bool isVisible
);
82 void OnDeactivatedChanged(bool isDeactivated
);
84 void UpdateIcon(bool isSelected
, bool isVisible
, bool isDeactivated
);
87 static IconMap s_iconMap
;