Files
UnrealEngineUWP/Engine/Source/Runtime/UMG/Private/Components/MultiLineEditableTextBox.cpp
Jaroslaw Palczynski 7c41927cf4 Rename FPostConstructInitializeProperties to something simpler
Changed it with FObjectInitializer.

UECORE-7

[CL 2328384 by Jaroslaw Palczynski in Main branch]
2014-10-14 10:29:11 -04:00

149 lines
3.8 KiB
C++

// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
#include "UMGPrivatePCH.h"
#define LOCTEXT_NAMESPACE "UMG"
/////////////////////////////////////////////////////
// UMultiLineEditableTextBox
UMultiLineEditableTextBox::UMultiLineEditableTextBox(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
ForegroundColor = FLinearColor::Black;
BackgroundColor = FLinearColor::White;
ReadOnlyForegroundColor = FLinearColor::Black;
// HACK Special font initialization hack since there are no font assets yet for slate.
Font = FSlateFontInfo(TEXT("Slate/Fonts/Roboto-Bold.ttf"), 12);
SMultiLineEditableTextBox::FArguments Defaults;
WidgetStyle = *Defaults._Style;
TextStyle = *Defaults._TextStyle;
}
void UMultiLineEditableTextBox::ReleaseSlateResources(bool bReleaseChildren)
{
Super::ReleaseSlateResources(bReleaseChildren);
MyEditableTextBlock.Reset();
}
TSharedRef<SWidget> UMultiLineEditableTextBox::RebuildWidget()
{
FString FontPath = FPaths::GameContentDir() / Font.FontName.ToString();
if ( !FPaths::FileExists(FontPath) )
{
FontPath = FPaths::EngineContentDir() / Font.FontName.ToString();
}
MyEditableTextBlock = SNew(SMultiLineEditableTextBox)
.Style(&WidgetStyle)
.TextStyle(&TextStyle)
.Font(FSlateFontInfo(FontPath, Font.Size))
.Justification(Justification)
.ForegroundColor(ForegroundColor)
.BackgroundColor(BackgroundColor)
.ReadOnlyForegroundColor(ReadOnlyForegroundColor)
// .MinDesiredWidth(MinimumDesiredWidth)
// .Padding(Padding)
// .IsCaretMovedWhenGainFocus(IsCaretMovedWhenGainFocus)
// .SelectAllTextWhenFocused(SelectAllTextWhenFocused)
// .RevertTextOnEscape(RevertTextOnEscape)
// .ClearKeyboardFocusOnCommit(ClearKeyboardFocusOnCommit)
// .SelectAllTextOnCommit(SelectAllTextOnCommit)
// .OnTextChanged(BIND_UOBJECT_DELEGATE(FOnTextChanged, HandleOnTextChanged))
// .OnTextCommitted(BIND_UOBJECT_DELEGATE(FOnTextCommitted, HandleOnTextCommitted))
;
return MyEditableTextBlock.ToSharedRef();
}
void UMultiLineEditableTextBox::SynchronizeProperties()
{
Super::SynchronizeProperties();
MyEditableTextBlock->SetText(Text);
// MyEditableTextBlock->SetHintText(HintText);
// MyEditableTextBlock->SetIsReadOnly(IsReadOnly);
// MyEditableTextBlock->SetIsPassword(IsPassword);
// MyEditableTextBlock->SetColorAndOpacity(ColorAndOpacity);
// TODO UMG Complete making all properties settable on SMultiLineEditableTextBox
}
FText UMultiLineEditableTextBox::GetText() const
{
if ( MyEditableTextBlock.IsValid() )
{
return MyEditableTextBlock->GetText();
}
return Text;
}
void UMultiLineEditableTextBox::SetText(FText InText)
{
Text = InText;
if ( MyEditableTextBlock.IsValid() )
{
MyEditableTextBlock->SetText(Text);
}
}
void UMultiLineEditableTextBox::SetError(FText InError)
{
if ( MyEditableTextBlock.IsValid() )
{
MyEditableTextBlock->SetError(InError);
}
}
void UMultiLineEditableTextBox::HandleOnTextChanged(const FText& Text)
{
OnTextChanged.Broadcast(Text);
}
void UMultiLineEditableTextBox::HandleOnTextCommitted(const FText& Text, ETextCommit::Type CommitMethod)
{
OnTextCommitted.Broadcast(Text, CommitMethod);
}
void UMultiLineEditableTextBox::PostLoad()
{
Super::PostLoad();
if ( GetLinkerUE4Version() < VER_UE4_DEPRECATE_UMG_STYLE_ASSETS )
{
if ( Style_DEPRECATED != nullptr )
{
const FEditableTextBoxStyle* StylePtr = Style_DEPRECATED->GetStyle<FEditableTextBoxStyle>();
if ( StylePtr != nullptr )
{
WidgetStyle = *StylePtr;
}
Style_DEPRECATED = nullptr;
}
}
}
#if WITH_EDITOR
const FSlateBrush* UMultiLineEditableTextBox::GetEditorIcon()
{
return FUMGStyle::Get().GetBrush("Widget.MultiLineEditableTextBox");
}
const FText UMultiLineEditableTextBox::GetPaletteCategory()
{
return LOCTEXT("Common", "Common");
}
#endif
/////////////////////////////////////////////////////
#undef LOCTEXT_NAMESPACE