MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType > Class Template Referenceabstract

#include <ReactiveWidget.h>

Inheritance diagram for Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >:

Public Types

using StateRangeType = Range
 
using ChildrenRangeType = ChildrenRange
 
using ContainerSlotArguments = TArgumentsOf<typename ContainerWidget::FSlot>
 
using FCreateChild
 
using FUpdateChild
 
using FRemoveChild
 

Protected Member Functions

virtual void OnStateChange (Range const &next)=0
 
template<CWidgetArguments ThisArguments>
requires requires(ThisArguments& args) { { args._State } -> CSameAsDecayed< IStatePtr<Range> >; { args._Container } -> CSameAsDecayed< TSharedPtr<ContainerWidget> >; { args._CreateChild } -> CSameAsDecayed< FCreateChild >; { args._UpdateChild } -> CSameAsDecayed< FUpdateChild >; { args._RemoveChild } -> CSameAsDecayed< FRemoveChild >; }
void ConstructBase (ThisArguments const &args)
 

Static Protected Member Functions

static void DefaultRemoveChild (FRemoveChild &delegate)
 

Protected Attributes

IStateWeakPtr< Range > State
 
FCreateChild CreateChild
 
FUpdateChild UpdateChild
 
FRemoveChild RemoveChild
 
TSharedPtr< ContainerWidget > Container
 
ChildrenRange Children
 

Detailed Description

template<typename Item, CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType>
class Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >

Definition at line 40 of file ReactiveWidget.h.

Member Typedef Documentation

◆ ChildrenRangeType

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::ChildrenRangeType = ChildrenRange

Definition at line 44 of file ReactiveWidget.h.

◆ ContainerSlotArguments

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::ContainerSlotArguments = TArgumentsOf<typename ContainerWidget::FSlot>

Definition at line 45 of file ReactiveWidget.h.

◆ FCreateChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::FCreateChild
Initial value:
TSharedRef<ContainerWidget> const& container,
Item const& from,
IndexType const& at
)>
TArgumentsOf< typename ContainerWidget::FSlot > ContainerSlotArguments

Definition at line 47 of file ReactiveWidget.h.

◆ FRemoveChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::FRemoveChild
Initial value:
TDelegate<void(
TSharedRef<ContainerWidget> const& container,
TSharedRef<ChildWidget> const& child,
IndexType const& at
)>

Definition at line 57 of file ReactiveWidget.h.

◆ FUpdateChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::FUpdateChild
Initial value:
TDelegate<void(
TSharedRef<ChildWidget> const& child,
Item const& from,
IndexType const& at
)>

Definition at line 52 of file ReactiveWidget.h.

◆ StateRangeType

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
using Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::StateRangeType = Range

Definition at line 43 of file ReactiveWidget.h.

Member Function Documentation

◆ ConstructBase()

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
template<CWidgetArguments ThisArguments>
requires requires(ThisArguments& args) { { args._State } -> CSameAsDecayed< IStatePtr<Range> >; { args._Container } -> CSameAsDecayed< TSharedPtr<ContainerWidget> >; { args._CreateChild } -> CSameAsDecayed< FCreateChild >; { args._UpdateChild } -> CSameAsDecayed< FUpdateChild >; { args._RemoveChild } -> CSameAsDecayed< FRemoveChild >; }
void Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::ConstructBase ( ThisArguments const & args)
inlineprotected

Definition at line 98 of file ReactiveWidget.h.

◆ DefaultRemoveChild()

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
static void Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::DefaultRemoveChild ( FRemoveChild & delegate)
inlinestaticprotected

Definition at line 73 of file ReactiveWidget.h.

◆ OnStateChange()

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
virtual void Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::OnStateChange ( Range const & next)
protectedpure virtual

Field Documentation

◆ Children

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
ChildrenRange Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::Children
protected

Definition at line 70 of file ReactiveWidget.h.

◆ Container

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
TSharedPtr<ContainerWidget> Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::Container
protected

Definition at line 69 of file ReactiveWidget.h.

◆ CreateChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
FCreateChild Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::CreateChild
protected

Definition at line 66 of file ReactiveWidget.h.

◆ RemoveChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
FRemoveChild Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::RemoveChild
protected

Definition at line 68 of file ReactiveWidget.h.

◆ State

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
IStateWeakPtr<Range> Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::State
protected

Definition at line 65 of file ReactiveWidget.h.

◆ UpdateChild

template<typename Item , CRangeMember Range, CWidgetWithSlots ContainerWidget, CWidget ChildWidget, CRangeMember ChildrenRange, typename IndexType >
FUpdateChild Mcro::Slate::Detail::TReactiveWidgetBase< Item, Range, ContainerWidget, ChildWidget, ChildrenRange, IndexType >::UpdateChild
protected

Definition at line 67 of file ReactiveWidget.h.


The documentation for this class was generated from the following file: