Implementation of common functionality of ExclusiveActivityHost and DataDrivenExclusiveActivityHost classes. More...
#include <kanzi/ui/node/concept/activity/exclusive_activity_host_base_impl.hpp>
Public Member Functions | |
void | onFinishedExclusiveDeactivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args) |
Message handler for FinishedExclusiveDeactivatingAnimationInternal message. More... | |
void | onFinishedParallelActivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args) |
Message handler for FinishedParallelActivatingAnimationInternal message. More... | |
void | onFinishedParallelDeactivatingAnimationInternal (const ActivityConcept::StatusChangedInternalMessageArguments &args) |
Message handler for FinishedParallelDeactivatingAnimationInternal message. More... | |
NodeSharedPtr | onPrefabLoaded (PrefabTemplateSharedPtr prefabTemplate, string_view activityName) override |
ExclusiveActivityHostConcept::onPrefabLoaded implementation. More... | |
void | setActivationModifier (string_view activityName, BindingTokenWeakPtr weakModifier) override |
ActivityHostConcept::setActivationModifier implementation. More... | |
Public Member Functions inherited from kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass > | |
void | deserialize (string_view data) override |
ActivityElement::deserialize implementation. More... | |
void | notifyChildrenNodeTreeAvailable () override |
ActivityElement::notifyChildrenNodeTreeAvailable implementation. More... | |
string | serialize () override |
ActivityElement::serialize implementation. More... | |
Public Member Functions inherited from kanzi::ActivityElement | |
vector< NodeSharedPtr >::const_iterator | beginChildHosts () const |
Returns the begin iterator to the registered child Activity Host. More... | |
vector< NodeSharedPtr >::const_iterator | endChildHosts () const |
Returns the end iterator to the registered child Activity Host. More... | |
Node * | findChildHost (string_view hostName) |
Finds a child Activity Host by name. More... | |
vector< string > | getCommands () const |
Gets the list of commands handled by code behind of this activity element. More... | |
ActivityHistoryManager * | getHistoryManager () const |
Gets the history manager of this activity element. More... | |
ActivityElement * | getParentElement () |
Gets the parent ActivityElement type node. More... | |
bool | isLeafActivityNode () const |
Returns whether an ActivityElement has a child Activity Host. More... | |
void | setCodeBehind (const Metaclass *metaclass) |
Instantiates and attaches a code behind object by specifying its metaclass. More... | |
void | setCodeBehind (CodeBehindSharedPtr codeBehind) |
Attaches a code behind object. More... | |
virtual | ~ActivityElement ()=default |
Destructor. More... | |
Public Member Functions inherited from kanzi::ActivityHostConcept | |
virtual | ~ActivityHostConcept ()=default |
Destructor. More... | |
Public Member Functions inherited from kanzi::ExclusiveActivityHostConcept | |
virtual | ~ExclusiveActivityHostConcept ()=default |
Destructor. More... | |
Protected Member Functions | |
void | activate (const ActivityHostConcept::ActivityInfo &activity) |
Requests the ExclusiveActivityHost to activate an Activity node. More... | |
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. More... | |
void | deactivate () |
Requests the ExclusiveActivityHost to deactivate the currently active Activity node. More... | |
ExclusiveActivityHostBaseImpl (Domain *domain, string_view name) | |
Constructor. More... | |
vector< string > | getActivatingNames () override |
ActivityHostConcept::getActivatingNames implementation. More... | |
string | getActiveOrActivatingName () const |
Gets the currently active or activating Activity node. More... | |
vector< NodeWeakPtr > | getActiveOrAttachedActivating () override |
ActivityHostConceptImpl::getActiveOrAttachedActivating implementation. More... | |
const vector< ExclusiveActivityHostConcept::ActivityInExclusiveHostInfo > & | getActivitiesInfo () const override |
ExclusiveActivityHostConcept::getActivitiesInfo implementation. More... | |
optional< ActivityHostConcept::ActivityInfo > | getActivityInfo (string_view name) const override |
ActivityHostConceptImpl::getActivityInfo implementation. More... | |
vector< NodeWeakPtr > | getAttachedActivityNodes () override |
ActivityHostConceptImpl::getAttachedActivityNodes implementation. More... | |
Node * | getNode () override |
ExclusiveActivityHostConcept::getNode implementation. More... | |
const Node * | getNode () const override |
ExclusiveActivityHostConcept::getNode implementation. More... | |
void | initialize () |
Initializes this exclusive activity host. More... | |
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. More... | |
void | onActivateActivityOverride (string_view activationPath) override |
ActivityHostConcept::onActivateActivityOverride implementation. More... | |
void | onActivityActivated (NodeSharedPtr activity, string_view prefabPath) override |
ExclusiveActivityHostConcept::onActivityActivated implementation. More... | |
void | onActivityDeactivated (NodeSharedPtr activity) override |
ExclusiveActivityHostConcept::onActivityDeactivated implementation. More... | |
void | onAttachedOverride () override |
ActivityElement::onAttachedOverride implementation. More... | |
void | onDetached () override |
Node::onDetached implementation. More... | |
void | onNodePropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) override |
Node::onNodePropertyChanged implementation. More... | |
void | resolveFocusWithPolicy (Node &activityNode) override |
ActivityHostConcept::resolveFocusWithPolicy implementation. More... | |
virtual | ~ExclusiveActivityHostBaseImpl ()=default |
Destructor. More... | |
Protected Member Functions inherited from kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass > | |
ActivityHostConceptImpl (Domain *domain, string_view name) | |
Constructor. More... | |
void | clearCurrentActivationTarget () const |
Clears current activation target. More... | |
void | initialize () |
Initializes this Activity Host Concept. More... | |
void | registerInParentActivityElement () final |
ActivityElement::registerInParentActivityElement implementation. More... | |
void | resolveFocusOnActivated (Node &activityNode) |
Performs the necessary operations to fix the application focus when an Activity has activated in this Activity Host. More... | |
void | unregisterInParentActivityElement () final |
ActivityElement::unregisterInParentActivityElement implementation. More... | |
virtual | ~ActivityHostConceptImpl ()=default |
Destructor. More... | |
Protected Member Functions inherited from kanzi::ActivityElementImpl< TBaseClass, TDerivedClass > | |
ActivityElementImpl (Domain *domain, string_view name) | |
Constructor. More... | |
void | initialize () |
Initializes the activity element. More... | |
void | onAttached () override |
Node::onAttached implementation. More... | |
void | onDetached () override |
Node::onDetached implementation. More... | |
void | onNodePropertyChanged (AbstractPropertyType propertyType, PropertyNotificationReason reason) override |
Node::onNodePropertyChanged implementation. More... | |
~ActivityElementImpl () override=default | |
Destructor. More... | |
Protected Member Functions inherited from kanzi::ActivityElement | |
optional< ActivityBrowserController::ActivityID > | getActivityID () const |
Gets the unique ID that is used by the implementation of the Activity Browser. More... | |
string | getPathInParent () |
Gets the activation path of this activity element relative to its parent. More... | |
void | initialize () |
Initializes the activity element. More... | |
bool | isRootActivityElement () const |
Returns whether an ActivityElement is the root Activity Host node of the Screen node. More... | |
void | onForceTrigger (const ActivityBrowserController::ForceTriggerMessageArguments &args) |
Message handler for ActivityBrowserController::ForceTriggerMessage. More... | |
void | onNodeInfoTreeAvailable (const ActivityBrowserController::NodeInfoTreeAvailableArguments &) |
Message handler for ActivityBrowserController::NodeInfoTreeAvailableMessage. More... | |
void | registerChildHost (string_view hostPath) |
Registers a child host in this activity element. More... | |
void | setActivityID (optional< ActivityBrowserController::ActivityID > activityID) |
Sets the unique ID that is used by the implementation of the Activity Browser. More... | |
void | unregisterChildHost (string_view hostName) |
Unregisters a child host from this activity element. More... | |
void | updateActivityBrowserProperties () |
Triggers the Activity Browser to update the properties of the Activity Element. More... | |
Protected Member Functions inherited from kanzi::ExclusiveActivityHostConcept | |
virtual void | onNavigateNextMessage (const ExclusiveActivityHostConcept::ImplicitActivityChangeRequestMessageArguments &args)=0 |
Message handler for ExclusiveActivityHostConcept::NavigateNextMessage. More... | |
virtual void | onNavigatePreviousMessage (const ExclusiveActivityHostConcept::ImplicitActivityChangeRequestMessageArguments &args)=0 |
Message handler for ExclusiveActivityHostConcept::NavigatePreviousMessage. More... | |
Additional Inherited Members | |
Public Types inherited from kanzi::ActivityHostConcept | |
enum | ActivationStatus { ActivationStatus::PreparingForActivation, ActivationStatus::ParallelAnimation, ActivationStatus::ExclusiveAnimation } |
Specifies possible stages for internal tracking of activation of an Activity. More... | |
using | ActivityInfoContainer = vector< ActivityInfo > |
enum | DeactivationStatus { DeactivationStatus::ExclusiveAnimation, DeactivationStatus::ParallelAnimation, DeactivationStatus::WaitingForRelease } |
Specifies possible stages for internal tracking of deactivation of an Activity. More... | |
Public Types inherited from kanzi::ExclusiveActivityHostConcept | |
enum | ExclusiveActivityHostFocusingPolicy { ExclusiveActivityHostFocusingPolicy::WhenHostHasFocus, ExclusiveActivityHostFocusingPolicy::AlwaysFocus, ExclusiveActivityHostFocusingPolicy::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. More... | |
static string | getRestToForward (string_view activationSequence) |
Gets the remainder of the activation sequence. More... | |
template<typename Type > | |
static bool | isActivityElement (const Type &object) |
Returns whether an object is an ActivityElement. More... | |
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. More... | |
static bool | isActivityHostMetaclass (const Metaclass *metaclass) |
Checks whether the given Metaclass is an ActivityHostConcept metaclass or contains it as a mixin metaclass. More... | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Static Public Member Functions inherited from kanzi::ExclusiveActivityHostConcept | |
static PropertyTypeEditorInfoSharedPtr | makeEditorInfo () |
Returns PropertyType editor info of exclusive activity concept. More... | |
Static Public Attributes inherited from kanzi::ActivityElement | |
static PropertyType< bool > | AttachedProperty |
Static Public Attributes inherited from kanzi::ActivityHostConcept | |
static MessageType< ActivationMessageArguments > | ActivateActivityMessage |
You can send ActivateActivity to the Activity Host to activate an Activity. More... | |
static MessageType< ActivationMessageArguments > | DeactivateActivityMessage |
You can send DeactivateActivity to the Activity Host to deactivate an Activity. More... | |
static MessageType< ActivityPrefabMessageArguments > | ActivityPrefabAttachedMessage |
An Activity Host sends this message when it attaches the prefab of the Activity that is activated. More... | |
static MessageType< ActivityPrefabMessageArguments > | ActivityPrefabDetachedMessage |
An Activity Host sends this message when it attaches the prefab of the Activity that is activated. More... | |
static MessageType< RegisterActivityElementInternalMessageArguments > | RegisterHostInternalMessage |
Internal message sent by an Activity Host to its parent Activity or Activity Host to register the Activity Host in the parent. More... | |
static MessageType< UnregisterActivityElementInternalMessageArguments > | UnregisterHostInternalMessage |
Internal message sent by an Activity Host to its parent Activity or Activity Host to unregister the Activity Host from the parent. More... | |
Static Public Attributes inherited from kanzi::ExclusiveActivityHostConcept | |
static MessageType< ImplicitActivityChangeRequestMessageArguments > | NavigateNextMessage |
In an Exclusive Activity Host requests the activation of the next Activity node in that Exclusive Activity Host node. More... | |
static MessageType< ImplicitActivityChangeRequestMessageArguments > | NavigatePreviousMessage |
In an Exclusive Activity Host requests the activation of the previous Activity node in that Exclusive Activity Host node. More... | |
static PropertyType< string > | ExclusiveActivityHostContentProperty |
Describes the content of an Exclusive Activity Host node. More... | |
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. More... | |
static PropertyType< string > | ActivationPathProperty |
The activation path containing the branch of the Activity tree that is requested to be activated. More... | |
static PropertyType< ExclusiveActivityHostFocusingPolicy > | FocusOnActivatingActivityProperty |
Sets the policy that an Exclusive Activity Host uses to decide whether it tries to set focus to an activating Activity. More... | |
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. More... | |
bool | m_deserializing |
Indicates that this Activity Host is performing property deserialization. More... | |
bool | m_hostHadFocus |
Indicates that the Activity Host had focus before it started to activate new activation target Activity. More... | |
Implementation of common functionality of ExclusiveActivityHost and DataDrivenExclusiveActivityHost classes.
This is a helper class for the Exclusive Activity Host type classes.
|
explicitprotected |
Constructor.
domain | The domain the new node belongs to. |
name | The name of the node. |
|
protectedvirtualdefault |
Destructor.
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedParallelActivatingAnimationInternal | ( | const ActivityConcept::StatusChangedInternalMessageArguments & | args | ) |
Message handler for FinishedParallelActivatingAnimationInternal message.
args | Message arguments. |
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedParallelDeactivatingAnimationInternal | ( | const ActivityConcept::StatusChangedInternalMessageArguments & | args | ) |
Message handler for FinishedParallelDeactivatingAnimationInternal message.
args | Message arguments. |
void kanzi::ExclusiveActivityHostBaseImpl< TBaseClass, TDerivedClass >::onFinishedExclusiveDeactivatingAnimationInternal | ( | const ActivityConcept::StatusChangedInternalMessageArguments & | args | ) |
Message handler for FinishedExclusiveDeactivatingAnimationInternal message.
args | Message arguments. |
|
overridevirtual |
ActivityHostConcept::setActivationModifier implementation.
Implements kanzi::ActivityHostConcept.
|
overridevirtual |
ExclusiveActivityHostConcept::onPrefabLoaded implementation.
Implements kanzi::ExclusiveActivityHostConcept.
|
protected |
Initializes this exclusive activity host.
|
overrideprotected |
|
overrideprotected |
|
overrideprotectedvirtual |
ActivityElement::onAttachedOverride implementation.
Reimplemented from kanzi::ActivityElementImpl< TBaseClass, TDerivedClass >.
Reimplemented in kanzi::ExclusiveActivityHostImpl< TBaseClass, TDerivedClass >, kanzi::ExclusiveActivityHostImpl< ContentLayout2D, ExclusiveActivityHost2D >, and kanzi::ExclusiveActivityHostImpl< ContentLayout3D, ExclusiveActivityHost3D >.
|
overrideprotectedvirtual |
ActivityHostConcept::onActivateActivityOverride implementation.
Implements kanzi::ActivityHostConcept.
|
overrideprotectedvirtual |
ActivityHostConceptImpl::getActiveOrAttachedActivating implementation.
Implements kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >.
|
overrideprotectedvirtual |
ActivityHostConceptImpl::getAttachedActivityNodes implementation.
Implements kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >.
|
overrideprotectedvirtual |
ActivityHostConcept::getActivatingNames implementation.
Implements kanzi::ActivityHostConcept.
|
overrideprotectedvirtual |
ExclusiveActivityHostConcept::getNode implementation.
Implements kanzi::ExclusiveActivityHostConcept.
Reimplemented in kanzi::ExclusiveActivityHostImpl< TBaseClass, TDerivedClass >, kanzi::ExclusiveActivityHostImpl< ContentLayout2D, ExclusiveActivityHost2D >, and kanzi::ExclusiveActivityHostImpl< ContentLayout3D, ExclusiveActivityHost3D >.
|
overrideprotectedvirtual |
ExclusiveActivityHostConcept::getNode implementation.
Implements kanzi::ExclusiveActivityHostConcept.
Reimplemented in kanzi::ExclusiveActivityHostImpl< TBaseClass, TDerivedClass >, kanzi::ExclusiveActivityHostImpl< ContentLayout2D, ExclusiveActivityHost2D >, and kanzi::ExclusiveActivityHostImpl< ContentLayout3D, ExclusiveActivityHost3D >.
|
overrideprotectedvirtual |
ExclusiveActivityHostConcept::onActivityActivated implementation.
Implements kanzi::ExclusiveActivityHostConcept.
|
overrideprotectedvirtual |
ExclusiveActivityHostConcept::onActivityDeactivated implementation.
Implements kanzi::ExclusiveActivityHostConcept.
|
overrideprotectedvirtual |
ExclusiveActivityHostConcept::getActivitiesInfo implementation.
Implements kanzi::ExclusiveActivityHostConcept.
Reimplemented in kanzi::ExclusiveActivityHostImpl< TBaseClass, TDerivedClass >, kanzi::ExclusiveActivityHostImpl< ContentLayout2D, ExclusiveActivityHost2D >, and kanzi::ExclusiveActivityHostImpl< ContentLayout3D, ExclusiveActivityHost3D >.
|
overrideprotectedvirtual |
ActivityHostConceptImpl::getActivityInfo implementation.
Implements kanzi::ActivityHostConceptImpl< TBaseClass, TDerivedClass >.
|
protected |
Requests the ExclusiveActivityHost to activate an Activity node.
activity | The ActivityInfo object of the Activity node to activate. |
|
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.
activity | The ActivityInfo object of the Activity node to activate. |
activationPath | Activation path to activate the children of the Activity node. |
|
protected |
Requests the ExclusiveActivityHost to deactivate the currently active Activity node.
|
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.
iterBegin | Iterator type pointing to the beginning of the list of the child Activity nodes. |
iterEnd | Iterator type pointing to the end of the list of the child Activity nodes. |
current | Node to which the next activity is searched. |
looping | When the function reaches the end of the list:
|
|
protected |
Gets the currently active or activating Activity node.
|
overrideprotectedvirtual |
ActivityHostConcept::resolveFocusWithPolicy implementation.
Implements kanzi::ActivityHostConcept.