UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SHyperlink.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Misc/Attribute.h"
9#include "Input/CursorReply.h"
10#include "Input/Reply.h"
11#include "Layout/Margin.h"
12#include "Styling/SlateTypes.h"
13#include "Styling/CoreStyle.h"
16#if WITH_ACCESSIBILITY
18#endif
19
20enum class ETextFlowDirection : uint8;
21enum class ETextShapingMethod : uint8;
22
28 : public SButton
29{
30public:
31
33 : _Text()
34 , _Style(&FCoreStyle::Get().GetWidgetStyle< FHyperlinkStyle >("Hyperlink"))
35 , _TextStyle(nullptr)
36 , _UnderlineStyle(nullptr)
37 , _Padding()
38 , _OnNavigate()
45 {}
46
50 SLATE_STYLE_ARGUMENT( FButtonStyle, UnderlineStyle )
55 SLATE_ATTRIBUTE( FLinearColor, HighlightColor )
56 SLATE_ATTRIBUTE( const FSlateBrush*, HighlightShape )
57 SLATE_ATTRIBUTE( FText, HighlightText )
60
61
66 void Construct( const FArguments& InArgs )
67 {
68 this->OnNavigate = InArgs._OnNavigate;
69
70 check (InArgs._Style);
71 const FButtonStyle* UnderlineStyle = InArgs._UnderlineStyle != nullptr ? InArgs._UnderlineStyle : &InArgs._Style->UnderlineStyle;
72 const FTextBlockStyle* TextStyle = InArgs._TextStyle != nullptr ? InArgs._TextStyle : &InArgs._Style->TextStyle;
73 TAttribute<FMargin> Padding = InArgs._Padding.IsSet() ? InArgs._Padding : InArgs._Style->Padding;
74
76 SButton::FArguments()
77 .ContentPadding(Padding)
78 .ButtonStyle(UnderlineStyle)
79 .OnClicked(this, &SHyperlink::Hyperlink_OnClicked)
80 .ForegroundColor(FSlateColor::UseForeground())
81 .TextShapingMethod(InArgs._TextShapingMethod)
82 .TextFlowDirection(InArgs._TextFlowDirection)
83 [
85 .TextStyle(TextStyle)
86 .Text(InArgs._Text)
87 .HighlightColor(InArgs._HighlightColor)
88 .HighlightShape(InArgs._HighlightShape)
89 .HighlightText(InArgs._HighlightText)
90 .OverflowPolicy(InArgs._OverflowPolicy)
91 ]
92 );
93 }
94
95public:
96
97 // SWidget overrides
98
100 {
102 }
103#if WITH_ACCESSIBILITY
105 {
107 }
108#endif
109
110protected:
111
114 {
115 OnNavigate.ExecuteIfBound();
116
117 return FReply::Handled();
118 }
119
122};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_STYLE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:280
#define SNew(WidgetType,...)
Definition DeclarativeSyntaxSupport.h:37
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_EVENT(DelegateName, EventName)
Definition DeclarativeSyntaxSupport.h:458
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
ETextShapingMethod
Definition FontCache.h:52
ETextFlowDirection
Definition TextLayout.h:81
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition CoreStyle.h:15
Definition CursorReply.h:16
static FCursorReply Cursor(EMouseCursor::Type InCursor)
Definition CursorReply.h:33
Definition Reply.h:24
static FReply Handled()
Definition Reply.h:233
Definition Text.h:385
Definition SButton.h:33
SLATE_API void Construct(const FArguments &InArgs)
Definition SButton.cpp:86
Definition STextBlock.h:45
Definition Attribute.h:17
bool IsSet() const
Definition Attribute.h:230
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis(OtherType *ThisPtr)
Definition SharedPointer.h:1780
Definition SharedPointer.h:153
@ Hand
Definition ICursor.h:47
Definition SlateTypes.h:509
Definition Geometry.h:40
Definition SlateTypes.h:832
Definition Color.h:48
Definition Margin.h:17
Definition Events.h:695
Definition SlateBrush.h:239
static FSlateColor UseForeground()
Definition SlateColor.h:198
Definition SlateTypes.h:326
FSlateColor HighlightColor
Definition SlateTypes.h:391
Definition Optional.h:131