Files
UnrealEngineUWP/Engine/Source/Runtime/UMG/Private/Components/MultiLineEditableText.cpp
Matthew Griffin bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00

132 lines
3.9 KiB
C++

// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
#include "UMGPrivatePCH.h"
#define LOCTEXT_NAMESPACE "UMG"
/////////////////////////////////////////////////////
// UMultiLineEditableText
UMultiLineEditableText::UMultiLineEditableText(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
SMultiLineEditableText::FArguments Defaults;
WidgetStyle = *Defaults._TextStyle;
AllowContextMenu = Defaults._AllowContextMenu.Get();
AutoWrapText = true;
if (!UE_SERVER)
{
static ConstructorHelpers::FObjectFinder<UFont> RobotoFontObj(TEXT("/Engine/EngineFonts/Roboto"));
Font_DEPRECATED = FSlateFontInfo(RobotoFontObj.Object, 12, FName("Bold"));
}
}
void UMultiLineEditableText::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
MyMultiLineEditableText.Reset();
}
TSharedRef<SWidget> UMultiLineEditableText::RebuildWidget()
{
MyMultiLineEditableText = SNew(SMultiLineEditableText)
.TextStyle(&WidgetStyle)
.AllowContextMenu(AllowContextMenu)
// .MinDesiredWidth(MinimumDesiredWidth)
// .IsCaretMovedWhenGainFocus(IsCaretMovedWhenGainFocus)
// .SelectAllTextWhenFocused(SelectAllTextWhenFocused)
// .RevertTextOnEscape(RevertTextOnEscape)
// .ClearKeyboardFocusOnCommit(ClearKeyboardFocusOnCommit)
// .SelectAllTextOnCommit(SelectAllTextOnCommit)
// .BackgroundImageSelected(BackgroundImageSelected ? TAttribute<const FSlateBrush*>(&BackgroundImageSelected->Brush) : TAttribute<const FSlateBrush*>())
// .BackgroundImageSelectionTarget(BackgroundImageSelectionTarget ? TAttribute<const FSlateBrush*>(&BackgroundImageSelectionTarget->Brush) : TAttribute<const FSlateBrush*>())
// .BackgroundImageComposing(BackgroundImageComposing ? TAttribute<const FSlateBrush*>(&BackgroundImageComposing->Brush) : TAttribute<const FSlateBrush*>())
// .CaretImage(CaretImage ? TAttribute<const FSlateBrush*>(&CaretImage->Brush) : TAttribute<const FSlateBrush*>())
.OnTextChanged(BIND_UOBJECT_DELEGATE(FOnTextChanged, HandleOnTextChanged))
.OnTextCommitted(BIND_UOBJECT_DELEGATE(FOnTextCommitted, HandleOnTextCommitted))
;
return BuildDesignTimeWidget( MyMultiLineEditableText.ToSharedRef() );
}
void UMultiLineEditableText::SynchronizeProperties()
{
Super::SynchronizeProperties();
TAttribute<FText> HintTextBinding = OPTIONAL_BINDING(FText, HintText);
MyMultiLineEditableText->SetText(Text);
MyMultiLineEditableText->SetHintText(HintTextBinding);
MyMultiLineEditableText->SetAllowContextMenu(AllowContextMenu);
// MyMultiLineEditableText->SetIsReadOnly(IsReadOnly);
// MyMultiLineEditableText->SetIsPassword(IsPassword);
// MyMultiLineEditableText->SetColorAndOpacity(ColorAndOpacity);
// TODO UMG Complete making all properties settable on SMultiLineEditableText
Super::SynchronizeTextLayoutProperties(*MyMultiLineEditableText);
}
FText UMultiLineEditableText::GetText() const
{
if ( MyMultiLineEditableText.IsValid() )
{
return MyMultiLineEditableText->GetText();
}
return Text;
}
void UMultiLineEditableText::SetText(FText InText)
{
Text = InText;
if ( MyMultiLineEditableText.IsValid() )
{
MyMultiLineEditableText->SetText(Text);
}
}
void UMultiLineEditableText::HandleOnTextChanged(const FText& InText)
{
OnTextChanged.Broadcast(InText);
}
void UMultiLineEditableText::HandleOnTextCommitted(const FText& InText, ETextCommit::Type CommitMethod)
{
OnTextCommitted.Broadcast(InText, CommitMethod);
}
void UMultiLineEditableText::PostLoad()
{
Super::PostLoad();
if (GetLinkerUE4Version() < VER_UE4_DEPRECATE_UMG_STYLE_OVERRIDES)
{
if (Font_DEPRECATED.HasValidFont())
{
WidgetStyle.Font = Font_DEPRECATED;
Font_DEPRECATED = FSlateFontInfo();
}
}
}
#if WITH_EDITOR
const FSlateBrush* UMultiLineEditableText::GetEditorIcon()
{
return FUMGStyle::Get().GetBrush("Widget.MultiLineEditableText");
}
const FText UMultiLineEditableText::GetPaletteCategory()
{
return LOCTEXT("Primitive", "Primitive");
}
#endif
/////////////////////////////////////////////////////
#undef LOCTEXT_NAMESPACE