// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved. #pragma once class STutorialEditableText : public SCompoundWidget { public: SLATE_BEGIN_ARGS( STutorialEditableText ){} SLATE_ATTRIBUTE(FText, Text) SLATE_ARGUMENT(FOnTextCommitted, OnTextCommitted) SLATE_ARGUMENT(FOnTextChanged, OnTextChanged) SLATE_END_ARGS() /** * Construct the widget * * @param InArgs Declaration from which to construct the widget */ void Construct(const FArguments& InArgs); virtual bool SupportsKeyboardFocus() const override { return true; } protected: TSharedPtr GetCurrentRun() const; void HandleRichEditableTextChanged(const FText& Text); void HandleRichEditableTextCommitted(const FText& Text, ETextCommit::Type Type); void HandleRichEditableTextCursorMoved(const FTextLocation& NewCursorPosition ); FText GetActiveStyleName() const; void OnActiveStyleChanged(TSharedPtr NewValue, ESelectInfo::Type); TSharedRef GenerateStyleComboEntry(TSharedPtr SourceEntry); void StyleSelectedText(); void HandleHyperlinkComboOpened(); bool IsHyperlinkComboEnabled() const; FReply HandleInsertHyperLinkClicked(); EVisibility GetToolbarVisibility() const; FText GetHyperlinkButtonText() const; void OnActiveHyperlinkChanged(TSharedPtr NewValue, ESelectInfo::Type SelectionType); TSharedRef GenerateHyperlinkComboEntry(TSharedPtr SourceEntry); FText GetActiveHyperlinkName() const; FText GetActiveHyperlinkTooltip() const; TSharedPtr GetHyperlinkTypeFromId(const FString& InId) const; EVisibility GetOpenAssetVisibility() const; void HandleOpenAssetCheckStateChanged(ECheckBoxState InCheckState); ECheckBoxState IsOpenAssetChecked() const; EVisibility GetExcerptVisibility() const; FReply HandleImageButtonClicked(); protected: TSharedPtr RichEditableTextBox; FSlateHyperlinkRun::FOnClick OnBrowserLinkClicked; FSlateHyperlinkRun::FOnClick OnDocLinkClicked; FSlateHyperlinkRun::FOnClick OnTutorialLinkClicked; FSlateHyperlinkRun::FOnClick OnCodeLinkClicked; FSlateHyperlinkRun::FOnClick OnAssetLinkClicked; TSharedPtr HyperlinkComboButton; TSharedPtr>> FontComboBox; TSharedPtr HyperlinkNameTextBlock; TSharedPtr HyperlinkURLTextBox; TSharedPtr UDNExcerptTextBox; TSharedPtr ActiveStyle; TSharedPtr HyperlinkStyle; TArray> StylesAndNames; FOnTextCommitted OnTextCommitted; FOnTextChanged OnTextChanged; TSharedPtr CurrentHyperlinkType; bool bOpenAsset; bool bNewHyperlink; };