1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
5 #include "AbstractNodeGraphViewModelItem.h"
7 #include <CrySandbox/CrySignal.h>
11 namespace CryGraphEditor
{
13 class CNodeGraphViewModel
;
16 class CAbstractPinItem
;
17 class CConnectionWidget
;
19 class EDITOR_COMMON_API CAbstractConnectionItem
: public CAbstractNodeGraphViewModelItem
22 enum : int32
{ Type
= eItemType_Connection
};
25 CAbstractConnectionItem(CNodeGraphViewModel
& viewModel
); //[[deprecated("Use new constructor that requires to set source and target pin.")]]
26 CAbstractConnectionItem(CAbstractPinItem
& sourcePin
, CAbstractPinItem
& targetPin
, CNodeGraphViewModel
& viewModel
);
27 virtual ~CAbstractConnectionItem();
29 // CAbstractNodeGraphViewModelItem
30 virtual int32
GetType() const override
{ return Type
; }
32 virtual bool IsDeactivated() const override
{ return m_isDeactivated
; }
33 virtual void SetDeactivated(bool isDeactivated
) override
;
34 // ~CAbstractNodeGraphViewModelItem
36 virtual QVariant
GetId() const = 0;
37 virtual bool HasId(QVariant id
) const = 0;
39 virtual CConnectionWidget
* CreateWidget(CNodeGraphView
& view
) = 0;
40 virtual const char* GetStyleId() const { return "Connection"; }
42 virtual CAbstractPinItem
& GetSourcePinItem() const
44 CRY_ASSERT_MESSAGE(m_pSourcePin
, "Source pin not set. Application about to crash.");
47 virtual CAbstractPinItem
& GetTargetPinItem() const
49 CRY_ASSERT_MESSAGE(m_pTargetPin
, "Target pin not set. Application about to crash.");
54 CCrySignal
<void()> SignalDeactivatedChanged
;
57 CAbstractPinItem
* m_pSourcePin
;
58 CAbstractPinItem
* m_pTargetPin
;
60 bool m_isDeactivated
: 1;