You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
94 lines
2.6 KiB
C++
94 lines
2.6 KiB
C++
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "SequencerUtilities.h"
|
|
#include "Misc/Paths.h"
|
|
#include "Layout/Margin.h"
|
|
#include "Fonts/SlateFontInfo.h"
|
|
#include "Widgets/DeclarativeSyntaxSupport.h"
|
|
#include "Widgets/SBoxPanel.h"
|
|
#include "Widgets/Images/SImage.h"
|
|
#include "Widgets/Text/STextBlock.h"
|
|
#include "Widgets/Input/SComboButton.h"
|
|
#include "EditorStyleSet.h"
|
|
|
|
static EVisibility GetRolloverVisibility(TAttribute<bool> HoverState, TWeakPtr<SComboButton> WeakComboButton)
|
|
{
|
|
TSharedPtr<SComboButton> ComboButton = WeakComboButton.Pin();
|
|
if (HoverState.Get() || ComboButton->IsOpen())
|
|
{
|
|
return EVisibility::SelfHitTestInvisible;
|
|
}
|
|
else
|
|
{
|
|
return EVisibility::Collapsed;
|
|
}
|
|
}
|
|
|
|
TSharedRef<SWidget> FSequencerUtilities::MakeAddButton(FText HoverText, FOnGetContent MenuContent, const TAttribute<bool>& HoverState)
|
|
{
|
|
FSlateFontInfo SmallLayoutFont( FPaths::EngineContentDir() / TEXT("Slate/Fonts/Roboto-Regular.ttf"), 8 );
|
|
|
|
TSharedRef<STextBlock> ComboButtonText = SNew(STextBlock)
|
|
.Text(HoverText)
|
|
.Font(SmallLayoutFont)
|
|
.ColorAndOpacity( FSlateColor::UseForeground() );
|
|
|
|
TSharedRef<SComboButton> ComboButton =
|
|
|
|
SNew(SComboButton)
|
|
.HasDownArrow(false)
|
|
.ButtonStyle(FEditorStyle::Get(), "HoverHintOnly")
|
|
.ForegroundColor( FSlateColor::UseForeground() )
|
|
.OnGetMenuContent(MenuContent)
|
|
.ContentPadding(FMargin(5, 2))
|
|
.HAlign(HAlign_Center)
|
|
.VAlign(VAlign_Center)
|
|
.ButtonContent()
|
|
[
|
|
SNew(SHorizontalBox)
|
|
|
|
+ SHorizontalBox::Slot()
|
|
.AutoWidth()
|
|
.VAlign(VAlign_Center)
|
|
.Padding(FMargin(0,0,2,0))
|
|
[
|
|
SNew(SImage)
|
|
.ColorAndOpacity( FSlateColor::UseForeground() )
|
|
.Image(FEditorStyle::GetBrush("Plus"))
|
|
]
|
|
|
|
+ SHorizontalBox::Slot()
|
|
.VAlign(VAlign_Center)
|
|
.AutoWidth()
|
|
[
|
|
ComboButtonText
|
|
]
|
|
];
|
|
|
|
TAttribute<EVisibility> Visibility = TAttribute<EVisibility>::Create(TAttribute<EVisibility>::FGetter::CreateStatic(GetRolloverVisibility, HoverState, TWeakPtr<SComboButton>(ComboButton)));
|
|
ComboButtonText->SetVisibility(Visibility);
|
|
|
|
return ComboButton;
|
|
}
|
|
|
|
FName FSequencerUtilities::GetUniqueName( FName CandidateName, const TArray<FName>& ExistingNames )
|
|
{
|
|
FString CandidateNameString = CandidateName.ToString();
|
|
FString BaseNameString = CandidateNameString;
|
|
if ( CandidateNameString.Len() >= 3 && CandidateNameString.Right(3).IsNumeric() )
|
|
{
|
|
BaseNameString = CandidateNameString.Left( CandidateNameString.Len() - 3 );
|
|
}
|
|
|
|
FName UniqueName = FName(*BaseNameString);
|
|
int32 NameIndex = 1;
|
|
while ( ExistingNames.Contains( UniqueName ) )
|
|
{
|
|
UniqueName = FName( *FString::Printf(TEXT("%s%i"), *BaseNameString, NameIndex ) );
|
|
NameIndex++;
|
|
}
|
|
|
|
return UniqueName;
|
|
}
|
|
|