!XT (BREAK-16) (Sandbox) Remove double-newlines at the end of files.
[CRYENGINE.git] / Code / Sandbox / Plugins / EditorCommon / NodeGraph / AbstractConnectionItem.h
blob6b63646bd8ab9e089e0e66fe520e95f94f8c75fd
1 // Copyright 2001-2018 Crytek GmbH / Crytek Group. All rights reserved.
3 #pragma once
5 #include "AbstractNodeGraphViewModelItem.h"
7 #include <CrySandbox/CrySignal.h>
9 class QColor;
11 namespace CryGraphEditor {
13 class CNodeGraphViewModel;
14 class CNodeGraphView;
16 class CAbstractPinItem;
17 class CConnectionWidget;
19 class EDITOR_COMMON_API CAbstractConnectionItem : public CAbstractNodeGraphViewModelItem
21 public:
22 enum : int32 { Type = eItemType_Connection };
24 public:
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.");
45 return *m_pSourcePin;
47 virtual CAbstractPinItem& GetTargetPinItem() const
49 CRY_ASSERT_MESSAGE(m_pTargetPin, "Target pin not set. Application about to crash.");
50 return *m_pTargetPin;
53 public:
54 CCrySignal<void()> SignalDeactivatedChanged;
56 private:
57 CAbstractPinItem* m_pSourcePin;
58 CAbstractPinItem* m_pTargetPin;
60 bool m_isDeactivated : 1;