38template <
typename ItemType>
130 ButtonStyle = InArgs._ButtonStyle;
131 TextStyle = InArgs._TextStyle;
132 ButtonContentPadding = InArgs._ButtonContentPadding;
133 DelimiterImage = InArgs._DelimiterImage;
134 ShowLeadingDelimiter = InArgs._ShowLeadingDelimiter;
135 OnCrumbPushed = InArgs._OnCrumbPushed;
136 OnCrumbPopped = InArgs._OnCrumbPopped;
137 OnCrumbClicked = InArgs._OnCrumbClicked;
138 bHasStaticBreadcrumbs = InArgs._PersistentBreadcrumbs;
139 HasCrumbMenuContentCallback = InArgs._HasCrumbMenuContent;
140 GetCrumbMenuContentCallback = InArgs._GetCrumbMenuContent;
141 GetCrumbButtonContentCallback = InArgs._GetCrumbButtonContent;
143 NextValidCrumbID = 0;
152 AddLeadingDelimiter();
177 .ButtonStyle(ButtonStyle)
178 .ContentPadding(ButtonContentPadding)
179 .TextStyle(TextStyle)
181 .OnClicked(
this, &SBreadcrumbTrail::CrumbButtonClicked, NextValidCrumbID )
190 if ( GetCrumbMenuContentCallback.IsBound() )
194 .VAlign(EVerticalAlignment::VAlign_Center)
195 .ButtonStyle(ButtonStyle)
196 .Visibility(
this, &SBreadcrumbTrail::GetCrumbDelimiterVisibility, NextValidCrumbID)
197 .OnClicked(
this, &SBreadcrumbTrail::OnCrumbDelimiterClicked, NextValidCrumbID)
201 .Image(DelimiterImage)
208 .VAlign(EVerticalAlignment::VAlign_Center)
209 .ButtonStyle(ButtonStyle)
210 .Visibility(
this, &SBreadcrumbTrail::GetDelimiterVisibility, NextValidCrumbID )
211 .ContentPadding(
FMargin(3, 0) )
214 .Image(DelimiterImage)
227 .OnGetMenuContent(
this, &SBreadcrumbTrail::GetCrumbMenuContent, NextValidCrumbID )
238 NextValidCrumbID = (NextValidCrumbID + 1) % (
INT_MAX - 1);
271 return CrumbList.
Last().CrumbData;
283 return CrumbList.
Num();
301 AddLeadingDelimiter();
318 if (
HasCrumbs() && CrumbList.
Last().CrumbID == CrumbID && HasCrumbMenuContentCallback.IsBound() && !HasCrumbMenuContentCallback.Execute(CrumbList.
Last().CrumbData))
329 if ( GetCrumbMenuContentCallback.IsBound() )
347 if ( !GetCrumbMenuContentCallback.IsBound() )
358 if (HasCrumbMenuContentCallback.IsBound() )
360 if (!HasCrumbMenuContentCallback.Execute( CrumbList[
CrumbListIdx].CrumbData ))
397 if (bHasStaticBreadcrumbs)
403 OnCrumbClicked.ExecuteIfBound(CrumbList[
CrumbListIdx].CrumbData);
426 OnCrumbClicked.ExecuteIfBound(CrumbList.
Last().CrumbData);
433 void AddLeadingDelimiter()
439 .Image(DelimiterImage)
440 .Visibility(
this, &SBreadcrumbTrail::GetLeadingDelimiterVisibility )
450 int32 NextValidCrumbID;
486 bool bHasStaticBreadcrumbs;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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 SAssignNew(ExposeAs, WidgetType,...)
Definition DeclarativeSyntaxSupport.h:41
#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
Definition CoreStyle.h:15
static FReply Unhandled()
Definition Reply.h:241
static FReply Handled()
Definition Reply.h:233
Definition SBreadcrumbTrail.h:25
TSharedPtr< SScrollBox > CrumbBox
Definition SBreadcrumbTrail.h:32
SLATE_API void ScrollToStart()
Definition SBreadcrumbTrail.cpp:5
SLATE_API void ScrollToEnd()
Definition SBreadcrumbTrail.cpp:10
Definition SBreadcrumbTrail.h:40
void ClearCrumbs(bool bPopAllCrumbsToClear=false)
Definition SBreadcrumbTrail.h:287
ItemType PopCrumb()
Definition SBreadcrumbTrail.h:248
DECLARE_DELEGATE_RetVal_OneParam(TSharedRef< SWidget >, FGetCrumbMenuContent, const ItemType &)
SLATE_BEGIN_ARGS(SBreadcrumbTrail)
Definition SBreadcrumbTrail.h:81
DECLARE_DELEGATE_OneParam(FOnCrumbPushed, const ItemType &)
void Construct(const FArguments &InArgs)
Definition SBreadcrumbTrail.h:128
void GetAllCrumbData(TArray< ItemType > &CrumbData) const
Definition SBreadcrumbTrail.h:306
bool HasCrumbs() const
Definition SBreadcrumbTrail.h:275
DECLARE_DELEGATE_OneParam(FOnCrumbPopped, const ItemType &)
DECLARE_DELEGATE_RetVal_TwoParams(TSharedRef< SWidget >, FGetCrumbButtonContent, const ItemType &, const FTextBlockStyle *InTextStyle)
int32 NumCrumbs() const
Definition SBreadcrumbTrail.h:281
DECLARE_DELEGATE_OneParam(FOnCrumbClicked, const ItemType &)
DECLARE_DELEGATE_RetVal_OneParam(bool, FHasCrumbMenuContent, const ItemType &)
ItemType PeekCrumb() const
Definition SBreadcrumbTrail.h:266
void PushCrumb(const TAttribute< FText > &CrumbText, const ItemType &NewCrumbData)
Definition SBreadcrumbTrail.h:156
Definition SBoxPanel.h:322
static FSlot::FSlotArguments Slot()
Definition SBoxPanel.h:424
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
UE_FORCEINLINE_HINT SizeType Emplace(ArgsType &&... Args)
Definition Array.h:2561
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
ElementType Pop(EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:1196
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition SharedPointer.h:692
Definition SharedPointer.h:153
@ false
Definition radaudio_common.h:23
Definition Visibility.h:12
static SLATECORE_API const EVisibility Visible
Definition Visibility.h:14
static SLATECORE_API const EVisibility Collapsed
Definition Visibility.h:17
Definition SlateBrush.h:239
static FSlateColor UseForeground()
Definition SlateColor.h:198
Definition SlateTypes.h:326