A Demo Project for the UnrealEngineSDK
Loading...
Searching...
No Matches
SDialogueGraphNode_Edge.h
Go to the documentation of this file.
1// Copyright Csaba Molnar, Daniel Butum. All Rights Reserved.
2#pragma once
3
4#include "Widgets/DeclarativeSyntaxSupport.h"
5#include "SGraphNode.h"
6
9
14{
17
18public:
20 SLATE_END_ARGS()
21
22 void Construct(const FArguments& InArgs, UDialogueGraphNode_Edge* InNode);
23
24 // Begin SWidget interface
25
32 void OnMouseEnter(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
33
39 void OnMouseLeave(const FPointerEvent& MouseEvent) override;
40
41 // End SWidget interface
42
43 // Begin SNodePanel::SNode Interface
44
49 void MoveTo(const FVector2D& NewPosition, FNodeSet& NodeFilter, bool bMarkDirty = true) override;
50
52 bool RequiresSecondPassLayout() const override { return true; }
53
55 void PerformSecondPassLayout(const TMap<UObject*, TSharedRef<SNode>>& InNodeToWidgetLookup) const override;
56
58 TArray<FOverlayWidgetInfo> GetOverlayWidgets(bool bSelected, const FVector2D& WidgetSize) const override;
59 // End SNodePanel::SNode Interface
60
61 // Begin SGraphNode Interface
63 void UpdateGraphNode() override;
64 // End SGraphNode Interface
65
66 // Begin SDialogueGraphNode_Base Interface
67 EVisibility GetNodeVisibility() const override
68 {
69 return DialogueGraphNode_Edge && DialogueGraphNode_Edge->ShouldDrawEdge() ? EVisibility::Visible : EVisibility::Hidden;
70 }
71 // End SDialogueGraphNode_Base Interface
72
73 // Begin own functions
75 void PositionBetweenTwoNodesWithOffset(const FGeometry& StartGeom, const FGeometry& EndGeom, int32 NodeIndex, int32 MaxNodes) const;
76
78 FSlateColor GetTransitionColor() const { return DialogueGraphNode_Edge->GetEdgeColor(IsHovered()); }
79
80 // End own functions
81
82protected:
85
87 EVisibility GetOverlayWidgetVisibility() const;
88
90 FSlateColor GetOverlayWidgetBackgroundColor(bool bHovered) const
91 {
92 return DialogueGraphNode_Edge->GetEdgeColor(bHovered);
93 }
94
95protected:
96 // The dialogue Edge this widget represents
98
100 TSharedPtr<SWidget> ConditionOverlayWidget;
101};
void MoveTo(const FVector2D &NewPosition, FNodeSet &NodeFilter, bool bMarkDirty=true) override
void PerformSecondPassLayout(const TMap< UObject *, TSharedRef< SNode > > &InNodeToWidgetLookup) const override
void OnMouseLeave(const FPointerEvent &MouseEvent) override
TArray< FOverlayWidgetInfo > GetOverlayWidgets(bool bSelected, const FVector2D &WidgetSize) const override
FSlateColor GetTransitionColor() const
TSharedPtr< SWidget > ConditionOverlayWidget
SDialogueGraphNode_Edge Self
bool RequiresSecondPassLayout() const override
void Construct(const FArguments &InArgs, UDialogueGraphNode_Edge *InNode)
EVisibility GetNodeVisibility() const override
UDialogueGraphNode_Edge * DialogueGraphNode_Edge
FSlateColor GetOverlayWidgetBackgroundColor(bool bHovered) const
SDialogueGraphNode_Base Super
EVisibility GetOverlayWidgetVisibility() const
void OnMouseEnter(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
void PositionBetweenTwoNodesWithOffset(const FGeometry &StartGeom, const FGeometry &EndGeom, int32 NodeIndex, int32 MaxNodes) const
FLinearColor GetEdgeColor(bool bIsHovered) const