1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
5 // TODO: Replace when CConnectionPoint has it's own header.
6 #include "ICryGraphEditor.h"
9 #include <QGraphicsWidget>
11 class QGraphicsGridLayout
;
12 class QGraphicsWidget
;
14 namespace CryGraphEditor
{
20 typedef std::vector
<CPinWidget
*> PinWidgetArray
;
22 class EDITOR_COMMON_API CAbstractNodeContentWidget
: public QGraphicsWidget
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
) {}
50 void UpdateLayout(QGraphicsLayout
* pLayout
);
52 virtual void updateGeometry() override
;
55 PinWidgetArray m_pins
;
59 CNodeGraphView
& m_view
;