Kanzi 3.9.10
kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass > Class Template Reference

Implementation of common functionality of ExclusiveActivityHost and DataDrivenExclusiveActivityHost classes. More...

#include <kanzi/ui/node/concept/activity/exclusive_activity_host_base_impl.hpp>

Inheritance diagram for kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >:
[legend]

Public Member Functions

void onFinishedExclusiveDeactivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args)
 Message handler for FinishedExclusiveDeactivatingAnimationInternal message.
 
void onFinishedParallelActivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args)
 Message handler for FinishedParallelActivatingAnimationInternal message.
 
void onFinishedParallelDeactivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args)
 Message handler for FinishedParallelDeactivatingAnimationInternal message.
 
NodeSharedPtr onPrefabLoaded (PrefabTemplateSharedPtr prefabTemplate, string_view activityName) override
 ExclusiveActivityHostConcept::onPrefabLoaded implementation.
 
void setActivationModifier (string_view activityName, BindingTokenWeakPtr weakModifier) override
 ActivityHostConcept::setActivationModifier implementation.
 
- Public Member Functions inherited from kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >
void deserialize (string_view data) override
 ActivityElement::deserialize implementation.
 
void notifyChildrenNodeTreeAvailable () override
 ActivityElement::notifyChildrenNodeTreeAvailable implementation.
 
string serialize () override
 ActivityElement::serialize implementation.
 
- Public Member Functions inherited from kanzi::ActivityElement
vector< NodeSharedPtr >::const_iterator beginChildHosts () const
 Returns the begin iterator to the registered child Activity Host.
 
vector< NodeSharedPtr >::const_iterator endChildHosts () const
 Returns the end iterator to the registered child Activity Host.
 
NodefindChildHost (string_view hostName)
 Finds a child Activity Host by name.
 
vector< string > getCommands () const
 Gets the list of commands handled by code behind of this activity element.
 
ActivityHistoryManagergetHistoryManager () const
 Gets the history manager of this activity element.
 
ActivityElementgetParentElement ()
 Gets the parent ActivityElement type node.
 
bool isLeafActivityNode () const
 Returns whether an ActivityElement has a child Activity Host.
 
void setCodeBehind (CodeBehindSharedPtr codeBehind)
 Attaches a code behind object.
 
void setCodeBehind (const Metaclass *metaclass)
 Instantiates and attaches a code behind object by specifying its metaclass.
 
virtual ~ActivityElement ()=default
 Destructor.
 
- Public Member Functions inherited from kanzi::ActivityHostConcept
virtual ~ActivityHostConcept ()=default
 Destructor.
 
- Public Member Functions inherited from kanzi::ExclusiveActivityHostConcept
virtual ~ExclusiveActivityHostConcept ()=default
 Destructor.
 

Protected Member Functions

void activate (const ActivityHostConcept::ActivityInfo &activity)
 Requests the ExclusiveActivityHost to activate an Activity node.
 
void activate (const ActivityHostConcept::ActivityInfo &activity, string_view activationPath)
 Requests the ExclusiveActivityHost to activate an Activity node, and to forward the activation path to activate the children of the Activity node, if the Activity node is already active or activating.
 
void deactivate ()
 Requests the ExclusiveActivityHost to deactivate the currently active Activity node.
 
 ExclusiveActivityHostBaseImpl (Domain *domain, string_view name)
 Constructor.
 
vector< string > getActivatingNames () override
 ActivityHostConcept::getActivatingNames implementation.
 
string getActiveOrActivatingName () const
 Gets the currently active or activating Activity node.
 
vector< NodeWeakPtrgetActiveOrAttachedActivating () override
 ActivityHostConceptImpl::getActiveOrAttachedActivating implementation.
 
const vector< ExclusiveActivityHostConcept::ActivityInExclusiveHostInfo > & getActivitiesInfo () const override
 ExclusiveActivityHostConcept::getActivitiesInfo implementation.
 
optional< ActivityHostConcept::ActivityInfogetActivityInfo (string_view name) const override
 ActivityHostConceptImpl::getActivityInfo implementation.
 
vector< NodeWeakPtrgetAttachedActivityNodes () override
 ActivityHostConceptImpl::getAttachedActivityNodes implementation.
 
const NodegetNode () const override
 ExclusiveActivityHostConcept::getNode implementation.
 
NodegetNode () override
 ExclusiveActivityHostConcept::getNode implementation.
 
void initialize ()
 Initializes this exclusive activity host.
 
template<typename Iterator >
string nextToActivate (Iterator iterBegin, Iterator iterEnd, string_view current, bool looping) const
 Calculates which Activity node is going to be activated if the current active Activity node deactivates.
 
void onActivateActivityOverride (string_view activationPath, bool resetHistory) override
 ActivityHostConcept::onActivateActivityOverride implementation.
 
void onActivityActivated (NodeSharedPtr activity, string_view prefabPath) override
 ExclusiveActivityHostConcept::onActivityActivated implementation.
 
void onActivityDeactivated (NodeSharedPtr activity) override
 ExclusiveActivityHostConcept::onActivityDeactivated implementation.
 
void onAttachedOverride () override
 ActivityElement::onAttachedOverride implementation.
 
void onDetached () override
 Node::onDetached implementation.
 
void onNodePropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) override
 Node::onNodePropertyChanged implementation.
 
void resolveFocusWithPolicy (Node &activityNode) override
 ActivityHostConcept::resolveFocusWithPolicy implementation.
 
virtual ~ExclusiveActivityHostBaseImpl ()=default
 Destructor.
 
- Protected Member Functions inherited from kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >
 ActivityHostConceptImpl (Domain *domain, string_view name)
 Constructor.
 
void clearCurrentActivationTarget () const
 Clears current activation target.
 
void initialize ()
 Initializes this Activity Host Concept.
 
void registerInParentActivityElement () final
 ActivityElement::registerInParentActivityElement implementation.
 
void resolveFocusOnActivated (Node &activityNode)
 Performs the necessary operations to fix the application focus when an Activity has activated in this Activity Host.
 
void unregisterInParentActivityElement () final
 ActivityElement::unregisterInParentActivityElement implementation.
 
virtual ~ActivityHostConceptImpl ()=default
 Destructor.
 
- Protected Member Functions inherited from kanzi::ActivityElementImpl< TBaseClass, TDerivedClass >
 ActivityElementImpl (Domain *domain, string_view name)
 Constructor.
 
void initialize ()
 Initializes the activity element.
 
void onAttached () override
 Node::onAttached implementation.
 
void onDetached () override
 Node::onDetached implementation.
 
void onNodePropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) override
 Node::onNodePropertyChanged implementation.
 
 ~ActivityElementImpl () override=default
 Destructor.
 
- Protected Member Functions inherited from kanzi::ActivityElement
optional< ActivityBrowserController::ActivityIDgetActivityID () const
 Gets the unique ID that is used by the implementation of the Activity Browser.
 
string getPathInParent ()
 Gets the activation path of this activity element relative to its parent.
 
void initialize ()
 Initializes the activity element.
 
bool isRootActivityElement () const
 Returns whether an ActivityElement is the root Activity Host node of the Screen node.
 
void onForceTrigger (const ActivityBrowserController::ForceTriggerMessageArguments &args)
 Message handler for ActivityBrowserController::ForceTriggerMessage.
 
void onNodeInfoTreeAvailable (const ActivityBrowserController::NodeInfoTreeAvailableArguments &)
 Message handler for ActivityBrowserController::NodeInfoTreeAvailableMessage.
 
void registerChildHost (string_view hostPath)
 Registers a child host in this activity element.
 
void setActivityID (optional< ActivityBrowserController::ActivityID > activityID)
 Sets the unique ID that is used by the implementation of the Activity Browser.
 
void unregisterChildHost (string_view hostName)
 Unregisters a child host from this activity element.
 
void updateActivityBrowserProperties ()
 Triggers the Activity Browser to update the properties of the Activity Element.
 
- Protected Member Functions inherited from kanzi::ExclusiveActivityHostConcept
virtual void onNavigateNextMessage (const ExclusiveActivityHostConcept::ImplicitActivityChangeRequestMessageArguments &args)=0
 Message handler for ExclusiveActivityHostConcept::NavigateNextMessage.
 
virtual void onNavigatePreviousMessage (const ExclusiveActivityHostConcept::ImplicitActivityChangeRequestMessageArguments &args)=0
 Message handler for ExclusiveActivityHostConcept::NavigatePreviousMessage.
 

Additional Inherited Members

- Public Types inherited from kanzi::ActivityHostConcept
enum class  ActivationStatus { PreparingForActivation , ParallelAnimation , ExclusiveAnimation }
 Specifies possible stages for internal tracking of activation of an Activity. More...
 
using ActivityInfoContainer
 
enum class  DeactivationStatus { ExclusiveAnimation , ParallelAnimation , WaitingForRelease }
 Specifies possible stages for internal tracking of deactivation of an Activity. More...
 
- Public Types inherited from kanzi::ExclusiveActivityHostConcept
enum class  ExclusiveActivityHostFocusingPolicy { WhenHostHasFocus , AlwaysFocus , NeverFocus }
 Specifies the focusing policy that Kanzi applies to an activating Activity in an Exclusive Activity Host. More...
 
- Static Public Member Functions inherited from kanzi::ActivityElement
static string getFirstElement (string_view activationSequence)
 Gets the first element of the activation sequence.
 
static string getRestToForward (string_view activationSequence)
 Gets the remainder of the activation sequence.
 
template<typename Type >
static bool isActivityElement (const Type &object)
 Returns whether an object is an ActivityElement.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 
- Static Public Member Functions inherited from kanzi::ActivityHostConcept
template<typename Type >
static bool isActivityHost (const Type &object)
 Determines if an object is an ActivityHost.
 
static bool isActivityHostMetaclass (const Metaclass *metaclass)
 Checks whether the given Metaclass is an ActivityHostConcept metaclass or contains it as a mixin metaclass.
 
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 
- Static Public Member Functions inherited from kanzi::ExclusiveActivityHostConcept
static PropertyTypeEditorInfoSharedPtr makeEditorInfo ()
 Returns PropertyType editor info of exclusive activity concept.
 
- Static Public Attributes inherited from kanzi::ActivityElement
static PropertyType< boolAttachedProperty
 
static PropertyType< boolPreserveHistoryProperty
 Enables the preservation of Activity property values when that Activity becomes inactive.
 
- Static Public Attributes inherited from kanzi::ActivityHostConcept
static MessageType< ActivationMessageArgumentsActivateActivityMessage
 You can send ActivateActivity to the Activity Host to activate an Activity.
 
static MessageType< ActivationMessageArgumentsDeactivateActivityMessage
 You can send DeactivateActivity to the Activity Host to deactivate an Activity.
 
static MessageType< ActivityPrefabMessageArgumentsActivityPrefabAttachedMessage
 An Activity Host sends this message when it attaches the prefab of the Activity that is activated.
 
static MessageType< ActivityPrefabMessageArgumentsActivityPrefabDetachedMessage
 An Activity Host sends this message when it attaches the prefab of the Activity that is activated.
 
static MessageType< RegisterActivityElementInternalMessageArgumentsRegisterHostInternalMessage
 Internal message sent by an Activity Host to its parent Activity or Activity Host to register the Activity Host in the parent.
 
static MessageType< UnregisterActivityElementInternalMessageArgumentsUnregisterHostInternalMessage
 Internal message sent by an Activity Host to its parent Activity or Activity Host to unregister the Activity Host from the parent.
 
- Static Public Attributes inherited from kanzi::ExclusiveActivityHostConcept
static MessageType< ImplicitActivityChangeRequestMessageArgumentsNavigateNextMessage
 In an Exclusive Activity Host requests the activation of the next Activity node in that Exclusive Activity Host node.
 
static MessageType< ImplicitActivityChangeRequestMessageArgumentsNavigatePreviousMessage
 In an Exclusive Activity Host requests the activation of the previous Activity node in that Exclusive Activity Host node.
 
static PropertyType< string > ExclusiveActivityHostContentProperty
 Describes the content of an Exclusive Activity Host node.
 
static PropertyType< string > ActiveActivityProperty
 The name of the child Activity node of an Exclusive Activity Host, that is either in ActivityConcept::Status::Active or in ActivityConcept::Status::Activating state.
 
static PropertyType< string > ActivationPathProperty
 The activation path containing the branch of the Activity tree that is requested to be activated.
 
static PropertyType< ExclusiveActivityHostFocusingPolicyFocusOnActivatingActivityProperty
 Sets the policy that an Exclusive Activity Host uses to decide whether it tries to set focus to an activating Activity.
 
- Protected Attributes inherited from kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >
string m_activationTarget
 The name of the Activity that is the candidate to be the activation target.
 
bool m_deserializing
 Indicates that this Activity Host is performing property deserialization.
 
bool m_hostHadFocus
 Indicates that the Activity Host had focus before it started to activate new activation target Activity.
 

Detailed Description

template<typename TBaseClass, typename TDerivedClass>
class kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >

Implementation of common functionality of ExclusiveActivityHost and DataDrivenExclusiveActivityHost classes.

This is a helper class for the Exclusive Activity Host type classes.

Since
Kanzi 3.9.0

Constructor & Destructor Documentation

◆ ExclusiveActivityHostBaseImpl()

template<typename TBaseClass , typename TDerivedClass >
kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::ExclusiveActivityHostBaseImpl ( Domain * domain,
string_view name )
explicitprotected

Constructor.

Parameters
domainThe domain the new node belongs to.
nameThe name of the node.

◆ ~ExclusiveActivityHostBaseImpl()

template<typename TBaseClass , typename TDerivedClass >
virtual kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::~ExclusiveActivityHostBaseImpl ( )
protectedvirtualdefault

Destructor.

Member Function Documentation

◆ onFinishedParallelActivatingAnimationInternal()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedParallelActivatingAnimationInternal ( const ActivityConcept::StatusChangedInternalMessageArguments & args)

Message handler for FinishedParallelActivatingAnimationInternal message.

Parameters
argsMessage arguments.

◆ onFinishedParallelDeactivatingAnimationInternal()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedParallelDeactivatingAnimationInternal ( const ActivityConcept::StatusChangedInternalMessageArguments & args)

Message handler for FinishedParallelDeactivatingAnimationInternal message.

Parameters
argsMessage arguments.

◆ onFinishedExclusiveDeactivatingAnimationInternal()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedExclusiveDeactivatingAnimationInternal ( const ActivityConcept::StatusChangedInternalMessageArguments & args)

Message handler for FinishedExclusiveDeactivatingAnimationInternal message.

Parameters
argsMessage arguments.

◆ setActivationModifier()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::setActivationModifier ( string_view activityName,
BindingTokenWeakPtr weakModifier )
overridevirtual

◆ onPrefabLoaded()

template<typename TBaseClass , typename TDerivedClass >
NodeSharedPtr kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onPrefabLoaded ( PrefabTemplateSharedPtr prefabTemplate,
string_view activityName )
overridevirtual

◆ initialize()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::initialize ( )
protected

Initializes this exclusive activity host.

◆ onDetached()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onDetached ( )
overrideprotected

Node::onDetached implementation.

◆ onNodePropertyChanged()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onNodePropertyChanged ( AbstractPropertyType propertyType,
PropertyNotificationReason reason )
overrideprotected

Node::onNodePropertyChanged implementation.

◆ onAttachedOverride()

◆ onActivateActivityOverride()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onActivateActivityOverride ( string_view activationPath,
bool resetHistory )
overrideprotectedvirtual

ActivityHostConcept::onActivateActivityOverride implementation.

Since
Kanzi 3.9.8 added resetHistory.

Implements kanzi::ActivityHostConcept.

◆ getActiveOrAttachedActivating()

template<typename TBaseClass , typename TDerivedClass >
vector< NodeWeakPtr > kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::getActiveOrAttachedActivating ( )
overrideprotectedvirtual

◆ getAttachedActivityNodes()

template<typename TBaseClass , typename TDerivedClass >
vector< NodeWeakPtr > kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::getAttachedActivityNodes ( )
overrideprotectedvirtual

◆ getActivatingNames()

template<typename TBaseClass , typename TDerivedClass >
vector< string > kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::getActivatingNames ( )
overrideprotectedvirtual

◆ getNode() [1/2]

◆ getNode() [2/2]

◆ onActivityActivated()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onActivityActivated ( NodeSharedPtr activity,
string_view prefabPath )
overrideprotectedvirtual

◆ onActivityDeactivated()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onActivityDeactivated ( NodeSharedPtr activity)
overrideprotectedvirtual

◆ getActivitiesInfo()

◆ getActivityInfo()

template<typename TBaseClass , typename TDerivedClass >
optional< ActivityHostConcept::ActivityInfo > kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::getActivityInfo ( string_view name) const
overrideprotectedvirtual

◆ activate() [1/2]

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::activate ( const ActivityHostConcept::ActivityInfo & activity)
protected

Requests the ExclusiveActivityHost to activate an Activity node.

Parameters
activityThe ActivityInfo object of the Activity node to activate.

◆ activate() [2/2]

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::activate ( const ActivityHostConcept::ActivityInfo & activity,
string_view activationPath )
protected

Requests the ExclusiveActivityHost to activate an Activity node, and to forward the activation path to activate the children of the Activity node, if the Activity node is already active or activating.

Parameters
activityThe ActivityInfo object of the Activity node to activate.
activationPathActivation path to activate the children of the Activity node.

◆ deactivate()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::deactivate ( )
protected

Requests the ExclusiveActivityHost to deactivate the currently active Activity node.

◆ nextToActivate()

template<typename TBaseClass , typename TDerivedClass >
template<typename Iterator >
string kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::nextToActivate ( Iterator iterBegin,
Iterator iterEnd,
string_view current,
bool looping ) const
protected

Calculates which Activity node is going to be activated if the current active Activity node deactivates.

This method uses reverse iterator type as Iterator to get the previous Activity node.

Parameters
iterBeginIterator type pointing to the beginning of the list of the child Activity nodes.
iterEndIterator type pointing to the end of the list of the child Activity nodes.
currentNode to which the next activity is searched.
loopingWhen the function reaches the end of the list:
  • If looping is set to true, this method returns the iterBegin as the next element.
  • If looping is set to false, this method returns an empty string.
Returns
The name of the Activity node to activate when the current active Activity node deactivates. If Kanzi cannot activate any of the child Activity nodes, returns nullptr.

◆ getActiveOrActivatingName()

template<typename TBaseClass , typename TDerivedClass >
string kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::getActiveOrActivatingName ( ) const
protected

Gets the currently active or activating Activity node.

Returns
The name of the Activity node that is currently active or activating, empty string if no active or activating Activity node is found.

◆ resolveFocusWithPolicy()

template<typename TBaseClass , typename TDerivedClass >
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::resolveFocusWithPolicy ( Node & activityNode)
overrideprotectedvirtual

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