Kanzi  3.9.7
Kanzi Engine API
kanzi::StateManager::StateGroupRuntime Class Reference

State group runtime. More...

#include <kanzi/core.ui/state_manager/state_manager.hpp>

Public Member Functions

void goToInitialState ()
 Set initial state. More...
 
void goToState (const StateRuntimeSharedPtr &newStateRuntime, bool immediate)
 Go to a state in a state group. More...
 
void stopTransition ()
 
void syncState (bool immediate)
 Sync the state in the state group. More...
 
template<typename T >
void toggleControlPropertyNotificationHandler (Node *node, AbstractPropertyType propertyType, bool add)
 
void toggleControlPropertyNotificationHandler (Node *node, AbstractPropertyType propertyType, bool add)
 
 ~StateGroupRuntime ()
 Destructor. More...
 

Static Public Member Functions

template<typename T >
static void controlPropertyNotificationHandler (PropertyObject &object, const typename PropertyType< T >::Traits::StorageType &, PropertyNotificationReason reason, void *userData)
 
static StateGroupRuntimeSharedPtr create (const StateManagerRuntimeSharedPtr &stateManagerRuntime, StateGroup &stateGroup)
 

Public Attributes

StateRuntimeSharedPtr m_currentStateRuntime
 Current state runtime. More...
 
StateGroupm_group
 State group. More...
 
bool m_inTransition
 Is in transition. More...
 
AbstractPropertyType m_notificationHandlerPropertyType
 Property type the property notification handler has been installed for. More...
 
Statem_previousState
 Previous state. More...
 
StateManagerRuntimeWeakPtr m_stateManagerRuntime
 State manager runtime. More...
 
StateRuntimeContainer m_stateRuntimes
 State runtimes. More...
 
chrono::milliseconds m_transitionBaseTime
 Base transition time in ms. More...
 
TimelinePlaybackSharedPtr m_transitionPlayback
 Transition timeline playback. More...
 

Protected Member Functions

void createAnimation (Object *stateObject, string_view stateObjectPath, AbstractPropertyType propertyType, AbstractPropertyTypeDescriptor::ValueSource *valueSource, chrono::milliseconds start, chrono::milliseconds duration, AnimationMode animationMode, const EasingArguments &easingArguments, AnimationEasingMode easingMode, ParallelTimeline &timeline, bool longerPath)
 Create an animation for a state group. More...
 
void onTransitionFinished (TimelinePlayback &)
 Transition finished message handler. More...
 
void sendTransitionFinished ()
 Dispatches TransitionFinished message on the attached node. More...
 
void sendTransitionStarted ()
 Dispatches TransitionStarted message on the attached node. More...
 
 StateGroupRuntime (const StateManagerRuntimeSharedPtr &stateManagerRuntime, StateGroup &stateGroup)
 

Detailed Description

State group runtime.

Constructor & Destructor Documentation

kanzi::StateManager::StateGroupRuntime::~StateGroupRuntime ( )

Destructor.

kanzi::StateManager::StateGroupRuntime::StateGroupRuntime ( const StateManagerRuntimeSharedPtr stateManagerRuntime,
StateGroup stateGroup 
)
explicitprotected

Member Function Documentation

static StateGroupRuntimeSharedPtr kanzi::StateManager::StateGroupRuntime::create ( const StateManagerRuntimeSharedPtr stateManagerRuntime,
StateGroup stateGroup 
)
static
void kanzi::StateManager::StateGroupRuntime::stopTransition ( )
void kanzi::StateManager::StateGroupRuntime::goToInitialState ( )

Set initial state.

Should be called after creating the state group runtime, after it has been added to group runtimes.

void kanzi::StateManager::StateGroupRuntime::goToState ( const StateRuntimeSharedPtr newStateRuntime,
bool  immediate 
)

Go to a state in a state group.

void kanzi::StateManager::StateGroupRuntime::syncState ( bool  immediate)

Sync the state in the state group.

template<typename T >
static void kanzi::StateManager::StateGroupRuntime::controlPropertyNotificationHandler ( PropertyObject object,
const typename PropertyType< T >::Traits::StorageType &  ,
PropertyNotificationReason  reason,
void *  userData 
)
static
template<typename T >
void kanzi::StateManager::StateGroupRuntime::toggleControlPropertyNotificationHandler ( Node node,
AbstractPropertyType  propertyType,
bool  add 
)
void kanzi::StateManager::StateGroupRuntime::toggleControlPropertyNotificationHandler ( Node node,
AbstractPropertyType  propertyType,
bool  add 
)
void kanzi::StateManager::StateGroupRuntime::onTransitionFinished ( TimelinePlayback )
protected

Transition finished message handler.

void kanzi::StateManager::StateGroupRuntime::createAnimation ( Object stateObject,
string_view  stateObjectPath,
AbstractPropertyType  propertyType,
AbstractPropertyTypeDescriptor::ValueSource valueSource,
chrono::milliseconds  start,
chrono::milliseconds  duration,
AnimationMode  animationMode,
const EasingArguments easingArguments,
AnimationEasingMode  easingMode,
ParallelTimeline timeline,
bool  longerPath 
)
protected

Create an animation for a state group.

void kanzi::StateManager::StateGroupRuntime::sendTransitionStarted ( )
protected

Dispatches TransitionStarted message on the attached node.

void kanzi::StateManager::StateGroupRuntime::sendTransitionFinished ( )
protected

Dispatches TransitionFinished message on the attached node.

Member Data Documentation

StateManagerRuntimeWeakPtr kanzi::StateManager::StateGroupRuntime::m_stateManagerRuntime

State manager runtime.

StateGroup* kanzi::StateManager::StateGroupRuntime::m_group

State group.

StateRuntimeContainer kanzi::StateManager::StateGroupRuntime::m_stateRuntimes

State runtimes.

StateRuntimeSharedPtr kanzi::StateManager::StateGroupRuntime::m_currentStateRuntime

Current state runtime.

State* kanzi::StateManager::StateGroupRuntime::m_previousState

Previous state.

TimelinePlaybackSharedPtr kanzi::StateManager::StateGroupRuntime::m_transitionPlayback

Transition timeline playback.

bool kanzi::StateManager::StateGroupRuntime::m_inTransition

Is in transition.

chrono::milliseconds kanzi::StateManager::StateGroupRuntime::m_transitionBaseTime

Base transition time in ms.

AbstractPropertyType kanzi::StateManager::StateGroupRuntime::m_notificationHandlerPropertyType

Property type the property notification handler has been installed for.

If no notification handler has been installed, the property type is empty.


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