X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fcontrol%2Fcontrol-data-impl.h;h=91b831486d4a3b00bfcd1c59b18ceb9059ecd079;hb=8005908236e91165db7153110667c1bda43b972e;hp=2ee216f5836f38918ff68d984854ae410d8a983f;hpb=0a6c26e72fc8d2ad52837311b7e9069c12eec4be;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/controls/control/control-data-impl.h b/dali-toolkit/internal/controls/control/control-data-impl.h index 2ee216f..91b8314 100644 --- a/dali-toolkit/internal/controls/control/control-data-impl.h +++ b/dali-toolkit/internal/controls/control/control-data-impl.h @@ -133,9 +133,19 @@ public: /** * @copydoc Dali::Toolkit::DevelControl::RegisterVisual() */ + void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, int depthIndex ); + + /** + * @copydoc Dali::Toolkit::DevelControl::RegisterVisual() + */ void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, bool enabled ); /** + * @copydoc Dali::Toolkit::DevelControl::RegisterVisual() + */ + void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, bool enabled, int depthIndex ); + + /** * @copydoc Dali::Toolkit::DevelControl::UnregisterVisual() */ void UnregisterVisual( Property::Index index ); @@ -249,6 +259,47 @@ public: */ bool IsResourceReady() const; +private: + + /** + * Used as an alternative to boolean so that it is obvious whether a visual is enabled/disabled. + */ + struct VisualState + { + enum Type + { + DISABLED = 0, ///< Visual disabled. + ENABLED = 1 ///< Visual enabled. + }; + }; + + /** + * Used as an alternative to boolean so that it is obvious whether a visual's depth value has been set or not by the caller. + */ + struct DepthIndexValue + { + enum Type + { + NOT_SET = 0, ///< Visual depth value not set by caller. + SET = 1 ///< Visual depth value set by caller. + }; + }; + + /** + * @brief Adds the visual to the list of registered visuals. + * @param[in] index The Property index of the visual, used to reference visual + * @param[in,out] visual The visual to register, which can be altered in this function + * @param[in] enabled false if derived class wants to control when visual is set on stage + * @param[in] depthIndexValueSet Set to true if the depthIndex has actually been set manually + * @param[in] depthIndex The visual's depth-index is set to this + * + * @note Registering a visual with an index that already has a registered visual will replace it. The replacement will + * occur once the replacement visual is ready (loaded). + */ + void RegisterVisual( Property::Index index, Toolkit::Visual::Base& visual, VisualState::Type enabled, DepthIndexValue::Type depthIndexValueSet, int depthIndex = 0 ); + +public: + Control& mControlImpl; DevelControl::State mState; std::string mSubStateName; @@ -281,6 +332,8 @@ public: bool mIsKeyboardNavigationSupported :1; ///< Stores whether keyboard navigation is supported by the control. bool mIsKeyboardFocusGroup :1; ///< Stores whether the control is a focus group. + RegisteredVisualContainer mReplacementVisuals; ///< List of visuals that will be used for replacing current visuals. + // Properties - these need to be members of Internal::Control::Impl as they access private methods/data of Internal::Control and Internal::Control::Impl. static const PropertyRegistration PROPERTY_1; static const PropertyRegistration PROPERTY_2;