!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorParticle / Widgets / NodeIcons.h
blobbe9eab72daad23a31c96de903b25b9cdd7cede88
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include <CryParticleSystem/IParticlesPfx2.h>
7 #include <NodeGraph/ICryGraphEditor.h>
8 #include <NodeGraph/HeaderIconWidget.h>
10 namespace CryParticleEditor {
12 class CParentPinItem;
13 class CFeaturePinItem;
14 class CFeatureItem;
16 typedef std::vector<CFeatureItem*> FeatureItemArray;
18 enum EIcon : int16
20 Icon_Enabled,
21 Icon_Disabled,
22 Icon_NodeSelected,
23 Icon_NodeDeactivated,
25 Icon_Count
28 typedef CryGraphEditor::CIconArray<Icon_Count> IconMap;
30 class CEmitterActiveIcon : public CryGraphEditor::CHeaderIconWidget
32 public:
33 CEmitterActiveIcon(CryGraphEditor::CNodeWidget& nodeWidget);
34 ~CEmitterActiveIcon();
36 // CryGraphEditor::CHeaderIconWidget
37 virtual void OnClicked();
38 // ~CryGraphEditor::CHeaderIconWidget
40 protected:
41 void OnNodeSelectionChanged(bool isSelected);
42 void OnDeactivatedChanged(bool isDeactivated);
44 private:
45 static IconMap s_iconMap;
48 class CSoloEmitterModeIcon : public CryGraphEditor::CHeaderIconWidget
50 public:
51 CSoloEmitterModeIcon(CryGraphEditor::CNodeWidget& nodeWidget);
52 ~CSoloEmitterModeIcon();
54 // CryGraphEditor::CHeaderIconWidget
55 virtual void OnClicked();
56 // ~CryGraphEditor::CHeaderIconWidget
58 protected:
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);
65 private:
66 static IconMap s_iconMap;
69 class CEmitterVisibleIcon : public CryGraphEditor::CHeaderIconWidget
71 public:
72 CEmitterVisibleIcon(CryGraphEditor::CNodeWidget& nodeWidget);
73 ~CEmitterVisibleIcon();
75 // CryGraphEditor::CHeaderIconWidget
76 virtual void OnClicked();
77 // ~CryGraphEditor::CHeaderIconWidget
79 protected:
80 void OnNodeSelectionChanged(bool isSelected);
81 void OnVisibilityChanged(bool isVisible);
82 void OnDeactivatedChanged(bool isDeactivated);
84 void UpdateIcon(bool isSelected, bool isVisible, bool isDeactivated);
86 private:
87 static IconMap s_iconMap;