You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
========================== MAJOR FEATURES + CHANGES ========================== Change 2800717 on 2015/12/11 by Max.Chen Sequencer: Sort the key times for drawing to fix path trajectory. #jira UE-24331 Change 2803299 on 2015/12/15 by Max.Chen Sequencer: Fix property names so that they're the display names. For example, "DepthOfFieldFStop" now reads as "Aperture F Stop" Change 2804586 on 2015/12/15 by Max.Chen Sequencer: Add zoom in/out with shortcuts underscore and equals. Change 2811823 on 2015/12/23 by Max.Preussner Editor: Added UI action for creating new content browser folders; code cleanup; removed dead code Based on GitHub PR #1809 by artemavrin (https://github.com/EpicGames/UnrealEngine/pull/1809) #github: 1809 Change 2811839 on 2015/12/23 by Max.Preussner StereoPanorama: Code cleanup pass Based on GitHub PR# 1756 by ETayrienHBO (https://github.com/EpicGames/UnrealEngine/pull/1756) Also: - NULL to nullptr - namespaced enums to enum classes - consistent whitespace, line breaks and parentheses #github: 1756 Change 2819172 on 2016/01/07 by Andrew.Rodham Sequencer: Marquee and move modes are now automatically activated based on sequencer hotspot Change 2819176 on 2016/01/07 by Andrew.Rodham Sequencer: Various cosmetic fixes - Added icons to tracks - Removed SAnimationOutlinerTreeNode dependency from FSequencerDisplayNode (to enable future customization of shot/event track etc) - Added spacer nodes between top level display nodes - Various hover states and highlights Change 2819445 on 2016/01/07 by Andrew.Rodham Sequencer: Rendering out a capture from the composition graph now renders at the correct size even if r.ScreenPercentage is not 100. #jira UE-24920 Change 2820747 on 2016/01/08 by Andrew.Rodham Sequencer: Added option to close the editor when capturing starts #jira UE-21932 Change 2827701 on 2016/01/13 by Max.Preussner Media: Updating audio track specs each frame to better support streaming media and variable streams. Change 2828465 on 2016/01/14 by Max.Preussner Media: Better visualization of unknown media durations Change 2828469 on 2016/01/14 by Max.Preussner Media: Checking URL scheme on URLs that didn't pass the file extension filter Change 2834888 on 2016/01/19 by Max.Preussner Core: TQueue modernization pass Change 2834934 on 2016/01/19 by Max.Preussner Core: Implemented TTripleBuffer for triple buffers. Change 2834950 on 2016/01/19 by Max.Preussner Core: Added unit tests for TTripleBuffer dirty flag Change 2835488 on 2016/01/20 by Max.Preussner Core: More descriptive method names, initialization constructor, unit tests for TTripleBuffer Change 2837515 on 2016/01/20 by Max.Chen Sequencer: Command line options for custom passes. Change 2837517 on 2016/01/20 by Max.Chen Sequencer: Fix crash in visibility track instance on PIE. Change 2837518 on 2016/01/20 by Max.Chen Sequencer: Add option to lock to frame rate while playing. #jira UETOOL-475 Change 2837523 on 2016/01/20 by Max.Chen Sequencer: Capture thumbnail on level sequence asset save. Change 2837527 on 2016/01/20 by Max.Chen Sequencer: Added preroll for subsequences. Refactor instance update to combine data in EMovieSceneUpdateData. #jira UE-25380 Change 2837537 on 2016/01/20 by Max.Chen Sequencer: Add sequencer transport controls back into viewports. #jira UE-25460 Change 2837561 on 2016/01/20 by Max.Chen Sequencer: Added ability to convert a possessable to a spawnable - This option is available for any root-level possessable object bindings - It will currently delete the existing possessable (we could make this behaviour optional in future) - There is currently no check to sett if the actor is possessed by subsequent sub-sequences. If this is the case, using a possessable, or externally owned spawnable would be a better bet. Change 2837565 on 2016/01/20 by Max.Chen [CL 2858958 by Max Chen in Main branch]
174 lines
4.5 KiB
C++
174 lines
4.5 KiB
C++
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "UMGPrivatePCH.h"
|
|
#include "SlateFontInfo.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "UMG"
|
|
|
|
/////////////////////////////////////////////////////
|
|
// UMultiLineEditableTextBox
|
|
|
|
UMultiLineEditableTextBox::UMultiLineEditableTextBox(const FObjectInitializer& ObjectInitializer)
|
|
: Super(ObjectInitializer)
|
|
{
|
|
ForegroundColor_DEPRECATED = FLinearColor::Black;
|
|
BackgroundColor_DEPRECATED = FLinearColor::White;
|
|
ReadOnlyForegroundColor_DEPRECATED = FLinearColor::Black;
|
|
|
|
if (!IsRunningDedicatedServer())
|
|
{
|
|
static ConstructorHelpers::FObjectFinder<UFont> RobotoFontObj(TEXT("/Engine/EngineFonts/Roboto"));
|
|
Font_DEPRECATED = FSlateFontInfo(RobotoFontObj.Object, 12, FName("Bold"));
|
|
}
|
|
|
|
AutoWrapText = true;
|
|
|
|
SMultiLineEditableTextBox::FArguments Defaults;
|
|
WidgetStyle = *Defaults._Style;
|
|
TextStyle = *Defaults._TextStyle;
|
|
AllowContextMenu = Defaults._AllowContextMenu.Get();
|
|
}
|
|
|
|
void UMultiLineEditableTextBox::ReleaseSlateResources(bool bReleaseChildren)
|
|
{
|
|
Super::ReleaseSlateResources(bReleaseChildren);
|
|
|
|
MyEditableTextBlock.Reset();
|
|
}
|
|
|
|
TSharedRef<SWidget> UMultiLineEditableTextBox::RebuildWidget()
|
|
{
|
|
MyEditableTextBlock = SNew(SMultiLineEditableTextBox)
|
|
.Style(&WidgetStyle)
|
|
.TextStyle(&TextStyle)
|
|
.AllowContextMenu(AllowContextMenu)
|
|
// .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();
|
|
|
|
TAttribute<FText> HintTextBinding = OPTIONAL_BINDING(FText, HintText);
|
|
|
|
MyEditableTextBlock->SetStyle(&WidgetStyle);
|
|
MyEditableTextBlock->SetText(Text);
|
|
MyEditableTextBlock->SetHintText(HintTextBinding);
|
|
MyEditableTextBlock->SetAllowContextMenu(AllowContextMenu);
|
|
|
|
// MyEditableTextBlock->SetIsReadOnly(IsReadOnly);
|
|
// MyEditableTextBlock->SetIsPassword(IsPassword);
|
|
// MyEditableTextBlock->SetColorAndOpacity(ColorAndOpacity);
|
|
|
|
// TODO UMG Complete making all properties settable on SMultiLineEditableTextBox
|
|
|
|
Super::SynchronizeTextLayoutProperties(*MyEditableTextBlock);
|
|
}
|
|
|
|
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& InText)
|
|
{
|
|
OnTextChanged.Broadcast(InText);
|
|
}
|
|
|
|
void UMultiLineEditableTextBox::HandleOnTextCommitted(const FText& InText, ETextCommit::Type CommitMethod)
|
|
{
|
|
OnTextCommitted.Broadcast(InText, 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 (GetLinkerUE4Version() < VER_UE4_DEPRECATE_UMG_STYLE_OVERRIDES)
|
|
{
|
|
if (Font_DEPRECATED.HasValidFont())
|
|
{
|
|
WidgetStyle.Font = Font_DEPRECATED;
|
|
Font_DEPRECATED = FSlateFontInfo();
|
|
}
|
|
|
|
if (ForegroundColor_DEPRECATED != FLinearColor::Black)
|
|
{
|
|
WidgetStyle.ForegroundColor = ForegroundColor_DEPRECATED;
|
|
ForegroundColor_DEPRECATED = FLinearColor::Black;
|
|
}
|
|
|
|
if (BackgroundColor_DEPRECATED != FLinearColor::White)
|
|
{
|
|
WidgetStyle.BackgroundColor = BackgroundColor_DEPRECATED;
|
|
BackgroundColor_DEPRECATED = FLinearColor::White;
|
|
}
|
|
|
|
if (ReadOnlyForegroundColor_DEPRECATED != FLinearColor::Black)
|
|
{
|
|
WidgetStyle.ReadOnlyForegroundColor = ReadOnlyForegroundColor_DEPRECATED;
|
|
ReadOnlyForegroundColor_DEPRECATED = FLinearColor::Black;
|
|
}
|
|
}
|
|
}
|
|
|
|
#if WITH_EDITOR
|
|
|
|
const FText UMultiLineEditableTextBox::GetPaletteCategory()
|
|
{
|
|
return LOCTEXT("Input", "Input");
|
|
}
|
|
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////
|
|
|
|
#undef LOCTEXT_NAMESPACE
|