Files
UnrealEngineUWP/Engine/Source/Runtime/Slate/Private/Framework/Commands/UIAction.cpp
daren cheng 526c49058a Add Toolstack support to tool palettes.
#jira UE-138664
#preflight 6202ee26c451a5d0dc08eec6
#rb brooke.hubert Rex.Hill Ryan.Schmidt Patrick.Boutot
#fyi Ryan.Schmidt, Lauren.Barnes

[CL 19020456 by daren cheng in ue5-main branch]
2022-02-16 15:08:30 -05:00

90 lines
3.1 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Framework/Commands/UIAction.h"
#include "Framework/Application/SlateApplication.h"
FUIAction::FUIAction()
: ExecuteAction()
, CanExecuteAction()
, GetActionCheckState()
, IsActionVisibleDelegate()
, RepeatMode(EUIActionRepeatMode::RepeatDisabled)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(FCanExecuteAction::CreateRaw(&FSlateApplication::Get(), &FSlateApplication::IsNormalExecution))
, GetActionCheckState()
, IsActionVisibleDelegate()
, RepeatMode(InitRepeatMode)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, FCanExecuteAction InitCanExecuteAction, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(InitCanExecuteAction)
, GetActionCheckState()
, IsActionVisibleDelegate()
, RepeatMode(InitRepeatMode)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, FCanExecuteAction InitCanExecuteAction, FIsActionChecked InitIsCheckedDelegate, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(InitCanExecuteAction)
, GetActionCheckState(FGetActionCheckState::CreateStatic(&FUIAction::IsActionCheckedPassthrough, InitIsCheckedDelegate))
, IsActionVisibleDelegate()
, RepeatMode(InitRepeatMode)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, FCanExecuteAction InitCanExecuteAction, FGetActionCheckState InitGetActionCheckStateDelegate, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(InitCanExecuteAction)
, GetActionCheckState(InitGetActionCheckStateDelegate)
, IsActionVisibleDelegate()
, RepeatMode(InitRepeatMode)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, FCanExecuteAction InitCanExecuteAction, FIsActionChecked InitIsCheckedDelegate, FIsActionButtonVisible InitIsActionVisibleDelegate, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(InitCanExecuteAction)
, GetActionCheckState(FGetActionCheckState::CreateStatic(&FUIAction::IsActionCheckedPassthrough, InitIsCheckedDelegate))
, IsActionVisibleDelegate(InitIsActionVisibleDelegate)
, RepeatMode(InitRepeatMode)
{
}
FUIAction::FUIAction(FExecuteAction InitExecuteAction, FCanExecuteAction InitCanExecuteAction, FGetActionCheckState InitGetActionCheckStateDelegate, FIsActionButtonVisible InitIsActionVisibleDelegate, EUIActionRepeatMode InitRepeatMode)
: ExecuteAction(InitExecuteAction)
, CanExecuteAction(InitCanExecuteAction)
, GetActionCheckState(InitGetActionCheckStateDelegate)
, IsActionVisibleDelegate(InitIsActionVisibleDelegate)
, RepeatMode(InitRepeatMode)
{
}
/////////////////////////////////////////////////////
// FUIActionContext
TSharedPtr<IUIActionContextBase> FUIActionContext::FindContext(const FName InName) const
{
for (const TSharedPtr<IUIActionContextBase>& Context : Contexts)
{
if (Context && Context->GetContextName().IsEqual(InName))
{
return Context;
}
}
return nullptr;
}
void FUIActionContext::AddContext(const TSharedPtr<IUIActionContextBase>& InContext)
{
Contexts.Add(InContext);
}