3#include <GuiFoundation/GuiFoundationDLL.h>
4#include <GuiFoundation/NodeEditor/NodeScene.moc.h>
5#include <QGraphicsPathItem>
10enum class plQtPinHighlightState
14 CannotConnectSameDirection,
19class PL_GUIFOUNDATION_DLL
plQtPin :
public QGraphicsPathItem
24 virtual int type()
const override {
return plQtNodeScene::Pin; }
29 bool HasAnyConnections()
const {
return !m_Connections.
IsEmpty(); }
31 const plPin* GetPin()
const {
return m_pPin; }
32 virtual void SetPin(
const plPin& pin);
33 virtual void ConnectedStateChanged(
bool bConnected);
35 virtual QPointF GetPinPos()
const;
36 virtual QPointF GetPinDir()
const;
37 virtual QRectF GetPinRect()
const;
38 virtual void UpdateConnections();
39 void SetHighlightState(plQtPinHighlightState state);
41 void SetActive(
bool bActive);
43 virtual void ExtendContextMenu(QMenu& ref_menu) {}
44 virtual void keyPressEvent(QKeyEvent* pEvent)
override {}
47 virtual bool UpdatePinColors(
const plColorGammaUB* pOverwriteColor =
nullptr);
48 virtual QVariant itemChange(GraphicsItemChange change,
const QVariant& value)
override;
50 plQtPinHighlightState m_HighlightState = plQtPinHighlightState::None;
51 QGraphicsTextItem* m_pLabel;
54 bool m_bTranslatePinName =
true;
57 bool m_bIsActive =
true;
59 const plPin* m_pPin =
nullptr;
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
PL_ALWAYS_INLINE bool IsEmpty() const
Returns whether the array is empty.
Definition ArrayPtr.h:136
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
A hybrid array uses in-place storage to handle the first few elements without any allocation....
Definition HybridArray.h:12
Definition DocumentNodeManager.h:59
Definition Connection.h:10