!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorCommon / NodeGraph / AbstractNodeContentWidget.h
blob6fb99d3fedccdfd4c23ff16c5572b3f1d4220361
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 // TODO: Replace when CConnectionPoint has it's own header.
6 #include "ICryGraphEditor.h"
7 // ~TODO
9 #include <QGraphicsWidget>
11 class QGraphicsGridLayout;
12 class QGraphicsWidget;
14 namespace CryGraphEditor {
16 class CNodeWidget;
17 class CNodeGraphView;
19 class CPinWidget;
20 typedef std::vector<CPinWidget*> PinWidgetArray;
22 class EDITOR_COMMON_API CAbstractNodeContentWidget : public QGraphicsWidget
24 Q_OBJECT
26 // TODO: Type system!
28 public:
29 CAbstractNodeContentWidget(CNodeWidget& node, CNodeGraphView& view);
30 virtual ~CAbstractNodeContentWidget();
32 CNodeGraphView& GetView() const { return m_view; }
33 CNodeWidget& GetNode() const { return m_node; }
35 bool IsCollapsible() const { return m_isCollapsible; }
36 void SetCollapsible(bool collapsible) { m_isCollapsible = collapsible; }
38 CPinWidget* GetPinWidget(const CAbstractPinItem& pin) const;
39 CConnectionPoint* GetConnectionPoint(const CAbstractPinItem& pin) const;
40 const PinWidgetArray& GetPinWidgets() const { return m_pins; }
42 virtual void DeleteLater();
43 virtual void OnLayoutChanged() {}
44 virtual void OnItemInvalidated() {}
46 virtual void OnInputEvent(CNodeWidget* pSender, SMouseInputEventArgs& args) {}
48 protected:
49 void OnNodeMoved();
50 void UpdateLayout(QGraphicsLayout* pLayout);
52 virtual void updateGeometry() override;
54 protected:
55 PinWidgetArray m_pins;
57 private:
58 CNodeWidget& m_node;
59 CNodeGraphView& m_view;
60 bool m_isCollapsible;