SET( devel_api_src_dir dali-toolkit/devel-api )\r
\r
SET ( SOURCES ${SOURCES}\r
+ ${devel_api_src_dir}/accessibility-manager/accessibility-manager.cpp\r
${devel_api_src_dir}/builder/builder.cpp\r
${devel_api_src_dir}/builder/json-parser.cpp\r
${devel_api_src_dir}/builder/tree-node.cpp\r
${public_api_src_dir}/image-loader/async-image-loader.cpp\r
${public_api_src_dir}/image-loader/sync-image-loader.cpp\r
${public_api_src_dir}/styling/style-manager.cpp\r
- ${public_api_src_dir}/accessibility-manager/accessibility-manager.cpp\r
${public_api_src_dir}/focus-manager/keyboard-focus-manager.cpp\r
${public_api_src_dir}/dali-toolkit-version.cpp\r
${public_api_src_dir}/enums.cpp\r
#include <dummy-visual.h>
#include <../dali-toolkit/dali-toolkit-test-utils/dummy-control.h>
#include <dali-toolkit/devel-api/controls/control-devel.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/internal/controls/control/control-debug.h>
#include <stdlib.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
#include <dali-toolkit-test-suite-utils.h>
#include <toolkit-accessibility-adaptor.h>
#include <dali-toolkit-test-suite-utils.h>
#include <dali/integration-api/events/key-event-integ.h>
#include <dali/integration-api/events/touch-event-integ.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
#include <dali-toolkit/dali-toolkit.h>
using namespace Dali;
#include <dali-toolkit/dali-toolkit.h>
#include <dali-toolkit/public-api/align-enumerations.h>
#include <dali-toolkit/devel-api/controls/control-devel.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
#include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
#include <dali-toolkit/devel-api/visuals/image-visual-actions-devel.h>
#include <dali/integration-api/events/key-event-integ.h>
#include <dali-toolkit/devel-api/focus-manager/keyboard-focus-manager-devel.h>
#include <dali-toolkit/devel-api/controls/control-devel.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
using namespace Dali;
using namespace Dali::Toolkit;
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
#include <dali/devel-api/actors/actor-devel.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
using namespace Dali;
using namespace Toolkit;
#include <sstream>
#include <dali-toolkit-test-suite-utils.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
using namespace Dali;
using namespace Toolkit;
#include <dali/dali.h>
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
#include <dali-toolkit/public-api/controls/buttons/button.h>
#include <dali-toolkit/public-api/controls/buttons/check-box-button.h>
#include <dali-toolkit/public-api/controls/buttons/push-button.h>
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
#include <dali-toolkit/public-api/controls/model3d-view/model3d-view.h>
#include <dali-toolkit/public-api/controls/progress-bar/progress-bar.h>
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout-property.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
#include <dali-toolkit/public-api/controls/scrollable/scrollable.h>
#include <dali-toolkit/public-api/controls/slider/slider.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
#include <dali-toolkit/public-api/controls/text-controls/hidden-input-properties.h>
#include <dali-toolkit/public-api/controls/text-controls/placeholder-properties.h>
#include <dali-toolkit/public-api/controls/text-controls/text-editor.h>
#include <dali-toolkit/public-api/image-loader/async-image-loader.h>
#include <dali-toolkit/public-api/image-loader/sync-image-loader.h>
-#include <dali-toolkit/public-api/accessibility-manager/accessibility-manager.h>
-
#include <dali-toolkit/public-api/focus-manager/keyboard-focus-manager.h>
#include <dali-toolkit/public-api/styling/style-manager.h>
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
+
+// EXTERNAL INCLUDES
+#include <dali/integration-api/debug.h>
+#include <dali/devel-api/common/singleton-service.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+AccessibilityManager::AccessibilityManager()
+{
+}
+
+AccessibilityManager::~AccessibilityManager()
+{
+}
+
+AccessibilityManager AccessibilityManager::Get()
+{
+ AccessibilityManager manager;
+
+ // Check whether the accessibility manager is already created
+ SingletonService singletonService( SingletonService::Get() );
+ if ( singletonService )
+ {
+ Dali::BaseHandle handle = singletonService.GetSingleton(typeid(AccessibilityManager));
+ if(handle)
+ {
+ // If so, downcast the handle of singleton to focus manager
+ manager = AccessibilityManager(dynamic_cast<Internal::AccessibilityManager*>(handle.GetObjectPtr()));
+ }
+
+ if(!manager)
+ {
+ // If not, create the accessibility manager and register it as a singleton
+ Internal::AccessibilityManager* internalManager = new Internal::AccessibilityManager();
+ manager = AccessibilityManager( internalManager );
+ internalManager->Initialise();
+ singletonService.Register( typeid(manager), manager );
+ }
+ }
+
+ return manager;
+}
+
+AccessibilityManager::AccessibilityManager(Internal::AccessibilityManager *impl)
+ : BaseHandle(impl)
+{
+}
+
+void AccessibilityManager::SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text)
+{
+ GetImpl(*this).SetAccessibilityAttribute(actor, type, text);
+}
+
+std::string AccessibilityManager::GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const
+{
+ return GetImpl(*this).GetAccessibilityAttribute(actor, type);
+}
+
+void AccessibilityManager::SetFocusOrder(Actor actor, const unsigned int order)
+{
+ GetImpl(*this).SetFocusOrder(actor, order);
+}
+
+unsigned int AccessibilityManager::GetFocusOrder(Actor actor) const
+{
+ return GetImpl(*this).GetFocusOrder(actor);
+}
+
+unsigned int AccessibilityManager::GenerateNewFocusOrder() const
+{
+ return GetImpl(*this).GenerateNewFocusOrder();
+}
+
+Actor AccessibilityManager::GetActorByFocusOrder(const unsigned int order)
+{
+ return GetImpl(*this).GetActorByFocusOrder(order);
+}
+
+bool AccessibilityManager::SetCurrentFocusActor(Actor actor)
+{
+ return GetImpl(*this).SetCurrentFocusActor(actor);
+}
+
+Actor AccessibilityManager::GetCurrentFocusActor()
+{
+ return GetImpl(*this).GetCurrentFocusActor();
+}
+
+Actor AccessibilityManager::GetCurrentFocusGroup()
+{
+ return GetImpl(*this).GetCurrentFocusGroup();
+}
+
+unsigned int AccessibilityManager::GetCurrentFocusOrder()
+{
+ return GetImpl(*this).GetCurrentFocusOrder();
+}
+
+bool AccessibilityManager::MoveFocusForward()
+{
+ return GetImpl(*this).MoveFocusForward();
+}
+
+bool AccessibilityManager::MoveFocusBackward()
+{
+ return GetImpl(*this).MoveFocusBackward();
+}
+
+void AccessibilityManager::ClearFocus()
+{
+ GetImpl(*this).ClearFocus();
+}
+
+void AccessibilityManager::Reset()
+{
+ GetImpl(*this).Reset();
+}
+
+void AccessibilityManager::SetFocusGroup(Actor actor, bool isFocusGroup)
+{
+ GetImpl(*this).SetFocusGroup(actor, isFocusGroup);
+}
+
+bool AccessibilityManager::IsFocusGroup(Actor actor) const
+{
+ return GetImpl(*this).IsFocusGroup(actor);
+}
+
+void AccessibilityManager::SetGroupMode(bool enabled)
+{
+ GetImpl(*this).SetGroupMode(enabled);
+}
+
+bool AccessibilityManager::GetGroupMode() const
+{
+ return GetImpl(*this).GetGroupMode();
+}
+
+void AccessibilityManager::SetWrapMode(bool wrapped)
+{
+ GetImpl(*this).SetWrapMode(wrapped);
+}
+
+bool AccessibilityManager::GetWrapMode() const
+{
+ return GetImpl(*this).GetWrapMode();
+}
+
+void AccessibilityManager::SetFocusIndicatorActor(Actor indicator)
+{
+ GetImpl(*this).SetFocusIndicatorActor(indicator);
+}
+
+Actor AccessibilityManager::GetFocusIndicatorActor()
+{
+ return GetImpl(*this).GetFocusIndicatorActor();
+}
+
+Actor AccessibilityManager::GetFocusGroup(Actor actor)
+{
+ return GetImpl(*this).GetFocusGroup(actor);
+}
+
+Vector2 AccessibilityManager::GetReadPosition() const
+{
+ return GetImpl(*this).GetReadPosition();
+}
+
+AccessibilityManager::FocusChangedSignalType& AccessibilityManager::FocusChangedSignal()
+{
+ return GetImpl(*this).FocusChangedSignal();
+}
+
+AccessibilityManager::FocusOvershotSignalType& AccessibilityManager::FocusOvershotSignal()
+{
+ return GetImpl(*this).FocusOvershotSignal();
+}
+
+AccessibilityManager::FocusedActorActivatedSignalType& AccessibilityManager::FocusedActorActivatedSignal()
+{
+ return GetImpl(*this).FocusedActorActivatedSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::StatusChangedSignal()
+{
+ return GetImpl(*this).StatusChangedSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionNextSignal()
+{
+ return GetImpl(*this).ActionNextSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPreviousSignal()
+{
+ return GetImpl(*this).ActionPreviousSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionActivateSignal()
+{
+ return GetImpl(*this).ActionActivateSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionOverSignal()
+{
+ return GetImpl(*this).ActionOverSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadSignal()
+{
+ return GetImpl(*this).ActionReadSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadNextSignal()
+{
+ return GetImpl(*this).ActionReadNextSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPreviousSignal()
+{
+ return GetImpl(*this).ActionReadPreviousSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionUpSignal()
+{
+ return GetImpl(*this).ActionUpSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionDownSignal()
+{
+ return GetImpl(*this).ActionDownSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionClearFocusSignal()
+{
+ return GetImpl(*this).ActionClearFocusSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionBackSignal()
+{
+ return GetImpl(*this).ActionBackSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollUpSignal()
+{
+ return GetImpl(*this).ActionScrollUpSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollDownSignal()
+{
+ return GetImpl(*this).ActionScrollDownSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageLeftSignal()
+{
+ return GetImpl(*this).ActionPageLeftSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageRightSignal()
+{
+ return GetImpl(*this).ActionPageRightSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageUpSignal()
+{
+ return GetImpl(*this).ActionPageUpSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageDownSignal()
+{
+ return GetImpl(*this).ActionPageDownSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToFirstSignal()
+{
+ return GetImpl(*this).ActionMoveToFirstSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToLastSignal()
+{
+ return GetImpl(*this).ActionMoveToLastSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromTopSignal()
+{
+ return GetImpl(*this).ActionReadFromTopSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromNextSignal()
+{
+ return GetImpl(*this).ActionReadFromNextSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionZoomSignal()
+{
+ return GetImpl(*this).ActionZoomSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadIndicatorInformationSignal()
+{
+ DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: ActionReadIndicatorInformationSignal is deprecated and will be removed from next release.\n" );
+
+ return GetImpl(*this).ActionReadIndicatorInformationSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPauseResumeSignal()
+{
+ return GetImpl(*this).ActionReadPauseResumeSignal();
+}
+
+AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionStartStopSignal()
+{
+ return GetImpl(*this).ActionStartStopSignal();
+}
+
+AccessibilityManager::AccessibilityActionScrollSignalType& AccessibilityManager::ActionScrollSignal()
+{
+ return GetImpl(*this).ActionScrollSignal();
+}
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
+#define DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
+
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/actors/actor.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/dali-toolkit-common.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal DALI_INTERNAL
+{
+class AccessibilityManager;
+}
+/**
+ * @addtogroup dali_toolkit_managers
+ * @{
+ */
+
+/**
+ * @brief Manages registration of actors in an accessibility focus chain and changing the
+ * focused actor within that chain.
+ *
+ * This class provides the functionality of registering the focus order and description
+ * of actors and maintaining the focus chain.
+ *
+ * It provides functionality of setting the
+ * focus and moving the focus forward and backward. It also draws a highlight for the
+ * focused actor and emits a signal when the focus is changed.
+ *
+ * Signals
+ * | %Signal Name | Method |
+ * |-----------------------|------------------------------------|
+ * | focusChanged | @ref FocusChangedSignal() |
+ * | focusOvershot | @ref FocusOvershotSignal() |
+ * | focusedActorActivated | @ref FocusedActorActivatedSignal() |
+ * @SINCE_1_0.0
+ */
+class DALI_TOOLKIT_API AccessibilityManager : public BaseHandle
+{
+public:
+
+ // Typedefs
+
+ /**
+ * @brief Accessibility Action Signal.
+ *
+ * The connected signal callback should return true if handled.
+ * @SINCE_1_0.0
+ */
+ typedef Signal< bool ( AccessibilityManager& ) > AccessibilityActionSignalType; ///< Generic signal type @SINCE_1_0.0
+ typedef Signal< bool ( AccessibilityManager&, const Dali::TouchEvent& )> AccessibilityActionScrollSignalType; ///< Scroll signal type @SINCE_1_0.0
+
+ /**
+ * @brief Enumeration for accessibility that needs four information which will be read by screen-reader.
+ *
+ * Reading order : Label -> Trait -> Optional (Value and Hint)
+ * @SINCE_1_0.0
+ */
+ enum AccessibilityAttribute
+ {
+ ACCESSIBILITY_LABEL = 0, ///< Simple text which contained in ui-control @SINCE_1_0.0
+ ACCESSIBILITY_TRAIT, ///< Description of ui-control trait @SINCE_1_0.0
+ ACCESSIBILITY_VALUE, ///< Current value of ui-control (Optional) @SINCE_1_0.0
+ ACCESSIBILITY_HINT, ///< Hint for action (Optional) @SINCE_1_0.0
+ ACCESSIBILITY_ATTRIBUTE_NUM ///< Number of attributes @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Enumeration for overshoot direction.
+ * @SINCE_1_0.0
+ */
+ enum FocusOvershotDirection
+ {
+ OVERSHOT_PREVIOUS = -1, ///< Try to move previous of the first actor @SINCE_1_0.0
+ OVERSHOT_NEXT = 1, ///< Try to move next of the last actor @SINCE_1_0.0
+ };
+
+ public:
+
+ /// @brief Focus changed signal
+ /// @SINCE_1_0.0
+ typedef Signal< void ( Actor, Actor ) > FocusChangedSignalType;
+
+ /// @brief Focus overshooted signal
+ /// @SINCE_1_0.0
+ typedef Signal< void ( Actor, FocusOvershotDirection ) > FocusOvershotSignalType;
+
+ /// @brief Focused actor activated signal
+ /// @SINCE_1_0.0
+ typedef Signal< void ( Actor ) > FocusedActorActivatedSignalType;
+
+ /**
+ * @brief Creates an AccessibilityManager handle; this can be initialised with AccessibilityManager::New().
+ *
+ * Calling member functions with an uninitialized handle is not allowed.
+ * @SINCE_1_0.0
+ */
+ AccessibilityManager();
+
+ /**
+ * @brief Destructor.
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
+ */
+ ~AccessibilityManager();
+
+ /**
+ * @brief Gets the singleton of AccessibilityManager object.
+ *
+ * @SINCE_1_0.0
+ * @return A handle to the AccessibilityManager control
+ */
+ static AccessibilityManager Get();
+
+ /**
+ * @brief Sets the information of the specified actor's accessibility attribute.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor, the text to be set with
+ * @param type The attribute type the text to be set with
+ * @param text The text for the actor's accessibility information
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ void SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text);
+
+ /**
+ * @brief Gets the text of the specified actor's accessibility attribute.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be queried
+ * @param type The attribute type to be queried
+ * @return The text of the actor's accessibility information
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ std::string GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const;
+
+ /**
+ * @brief Sets the focus order of the actor.
+ *
+ * The focus order of each actor in the focus chain is unique.
+ * If there is another actor assigned with the same focus order
+ * already, the new actor will be inserted to the focus chain with
+ * that focus order, and the focus order of the original actor and
+ * all the actors followed in the focus chain will be increased
+ * accordingly. If the focus order assigned to the actor is 0, it
+ * means that actor's focus order is undefined (e.g. the actor has a
+ * description but with no focus order being set yet) and therefore
+ * that actor is not focusable.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor the focus order to be set with
+ * @param order The focus order of the actor
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ void SetFocusOrder(Actor actor, const unsigned int order);
+
+ /**
+ * @brief Gets the focus order of the actor.
+ *
+ * When the focus order is 0, it means the focus order of the actor
+ * is undefined.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be queried
+ * @return The focus order of the actor
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ unsigned int GetFocusOrder(Actor actor) const;
+
+ /**
+ * @brief Generates a new focus order number which can be used to
+ * assign to actors which need to be appended to the end of the
+ * current focus order chain.
+ *
+ * The new number will be an increment over the very last focus
+ * order number in the focus chain. If the focus chain is empty then
+ * the function returns 1, else the number returned will be FOLast +
+ * 1 where FOLast is the focus order of the very last control in the
+ * focus chain.
+ *
+ * @SINCE_1_0.0
+ * @return The focus order of the actor
+ * @pre The AccessibilityManager has been initialized.
+ */
+ unsigned int GenerateNewFocusOrder() const;
+
+ /**
+ * @brief Gets the actor that has the specified focus order.
+ *
+ * It will return an empty handle if no actor in the stage
+ * has the specified focus order.
+ *
+ * @SINCE_1_0.0
+ * @param order The focus order of the actor
+ *
+ * @return The actor that has the specified focus order or an empty
+ * handle if no actor in the stage has the specified focus order
+ * @pre The AccessibilityManager has been initialized.
+ */
+ Actor GetActorByFocusOrder(const unsigned int order);
+
+ /**
+ * @brief Moves the focus to the specified actor.
+ *
+ * Only one actor can be focused at the same time. The actor must
+ * have a defined focus order and must be focusable, visible and in
+ * the stage.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be focused
+ * @return Whether the focus is successful or not
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ bool SetCurrentFocusActor(Actor actor);
+
+ /**
+ * @brief Gets the current focused actor.
+ *
+ * @SINCE_1_0.0
+ * @return A handle to the current focused actor or an empty handle if no actor is focused
+ * @pre The AccessibilityManager has been initialized.
+ */
+ Actor GetCurrentFocusActor();
+
+ /**
+ * @brief Gets the focus group of current focused actor.
+ *
+ * @SINCE_1_0.0
+ * @return A handle to the immediate parent of the current focused
+ * actor which is also a focus group, or an empty handle if no actor
+ * is focused
+ * @pre The AccessibilityManager has been initialized.
+ *
+ */
+ Actor GetCurrentFocusGroup();
+
+ /**
+ * @brief Gets the focus order of currently focused actor.
+ * @SINCE_1_0.0
+ * @return The focus order of the currently focused actor or 0 if no
+ * actor is in focus
+ * @pre The AccessibilityManager has been initialized.
+ *
+ */
+ unsigned int GetCurrentFocusOrder();
+
+ /**
+ * @brief Moves the focus to the next focusable actor in the focus
+ * chain (according to the focus traversal order).
+ *
+ * When the focus movement is wrapped around, the focus will be moved
+ * to the first focusable actor when it reaches the end of the focus chain.
+ *
+ * @SINCE_1_0.0
+ * @return true if the moving was successful
+ * @pre The AccessibilityManager has been initialized.
+ */
+ bool MoveFocusForward();
+
+ /**
+ * @brief Moves the focus to the previous focusable actor in the
+ * focus chain (according to the focus traversal order).
+ *
+ * When the focus movement is wrapped around, the focus will be
+ * moved to the last focusable actor when it reaches the beginning
+ * of the focus chain.
+ *
+ * @SINCE_1_0.0
+ * @return true if the moving was successful
+ * @pre The AccessibilityManager has been initialized.
+ */
+ bool MoveFocusBackward();
+
+ /**
+ * @brief Clears the focus from the current focused actor if any, so
+ * that no actor is focused in the focus chain.
+ *
+ * It will emit focus changed signal without current focused actor.
+ * @SINCE_1_0.0
+ * @pre The AccessibilityManager has been initialized.
+ */
+ void ClearFocus();
+
+ /**
+ * @brief Clears every registered focusable actor from focus-manager.
+ * @SINCE_1_0.0
+ * @pre The AccessibilityManager has been initialized.
+ */
+ void Reset();
+
+ /**
+ * @brief Sets whether an actor is a focus group that can limit the
+ * scope of focus movement to its child actors in the focus chain.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be set as a focus group
+ * @param isFocusGroup Whether to set the actor to be a focus group or not
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ void SetFocusGroup(Actor actor, bool isFocusGroup);
+
+ /**
+ * @brief Checks whether the actor is set as a focus group or not.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be checked
+ * @return Whether the actor is set as a focus group
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The Actor has been initialized.
+ */
+ bool IsFocusGroup(Actor actor) const;
+
+ /**
+ * @brief Sets whether the group mode is enabled or not.
+ *
+ * When the group mode is enabled, the focus movement will be limited to the child actors
+ * of the current focus group including the current focus group itself. The current focus
+ * group is the closest ancestor of the current focused actor that is set as a focus group.
+ * @SINCE_1_0.0
+ * @param enabled Whether the group mode is enabled or not
+ * @pre The AccessibilityManager has been initialized.
+ */
+ void SetGroupMode(bool enabled);
+
+ /**
+ * @brief Gets whether the group mode is enabled or not.
+ *
+ * @SINCE_1_0.0
+ * @return Whether the group mode is enabled or not.
+ * @pre The AccessibilityManager has been initialized.
+ */
+ bool GetGroupMode() const;
+
+ /**
+ * @brief Sets whether focus will be moved to the beginning of the
+ * focus chain when it reaches the end or vice versa.
+ *
+ * When both the wrap mode and the group mode are enabled, focus will be
+ * wrapped within the current focus group. Focus will not be wrapped in default.
+ * @SINCE_1_0.0
+ * @param wrapped Whether the focus movement is wrapped around or not
+ * @pre The AccessibilityManager has been initialized.
+ */
+ void SetWrapMode(bool wrapped);
+
+ /**
+ * @brief Gets whether the wrap mode is enabled or not.
+ *
+ * @SINCE_1_0.0
+ * @return Whether the wrap mode is enabled or not.
+ * @pre The AccessibilityManager has been initialized.
+ */
+ bool GetWrapMode() const;
+
+ /**
+ * @brief Sets the focus indicator actor.
+ *
+ * This will replace the default focus indicator actor in
+ * AccessibilityManager and will be added to the focused actor as a
+ * highlight.
+ *
+ * @SINCE_1_0.0
+ * @param indicator The indicator actor to be added
+ * @pre The AccessibilityManager has been initialized.
+ * @pre The indicator actor has been initialized.
+ */
+ void SetFocusIndicatorActor(Actor indicator);
+
+ /**
+ * @brief Gets the focus indicator actor.
+ *
+ * @SINCE_1_0.0
+ * @return A handle to the focus indicator actor
+ * @pre The AccessibilityManager has been initialized.
+ */
+ Actor GetFocusIndicatorActor();
+
+ /**
+ * @brief Returns the closest ancestor of the given actor that is a focus group.
+ *
+ * @SINCE_1_0.0
+ * @param actor The actor to be checked for its focus group
+ * @return The focus group the given actor belongs to or an empty handle if the given actor doesn't belong to any focus group
+ */
+ Actor GetFocusGroup(Actor actor);
+
+ /**
+ * @brief Returns the current position of the read action.
+ * @SINCE_1_0.0
+ * @return The current event position
+ */
+ Vector2 GetReadPosition() const;
+
+ public: // Signals
+
+ /**
+ * @brief This signal is emitted when the current focused actor is changed.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(Actor originalFocusedActor, Actor currentFocusedActor);
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ * @pre The Object has been initialized.
+ */
+ FocusChangedSignalType& FocusChangedSignal();
+
+ /**
+ * @brief This signal is emitted when there is no way to move focus further.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(Actor currentFocusedActor, FocusOvershotDirection direction);
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ * @pre The Object has been initialized.
+ */
+ FocusOvershotSignalType& FocusOvershotSignal();
+
+ /**
+ * @brief This signal is emitted when the current focused actor is activated.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(Actor activatedActor);
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ * @pre The Object has been initialized.
+ */
+ FocusedActorActivatedSignalType& FocusedActorActivatedSignal();
+
+ public: // Accessibility action signals
+
+ /**
+ * @brief This is emitted when accessibility(screen-reader) feature turned on or off.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& StatusChangedSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move focus to the next
+ * focusable actor (by one finger flick down).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionNextSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move focus to the previous
+ * focusable actor (by one finger flick up).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionPreviousSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to activate the current focused
+ * actor (by one finger double tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionActivateSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to focus and read the actor
+ * (by one finger tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to focus and read the actor
+ * (by one finger move).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionOverSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move focus to the next
+ * focusable actor (by one finger flick right).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadNextSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move focus to the previous
+ * focusable actor (by one finger flick left).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadPreviousSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to change the value when the
+ * current focused actor is a slider (by double finger down and move up and right).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionUpSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to change the value when the
+ * current focused actor is a slider (by double finger down and move down and left).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionDownSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to clear the focus from the
+ * current focused actor if any, so that no actor is focused in the focus chain.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionClearFocusSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to navigate back (by two
+ * fingers circle draw).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionBackSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll up the list
+ * (by two finger swipe up).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionScrollUpSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll down the list
+ * (by two finger swipe down).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionScrollDownSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll left to the
+ * previous page (by two finger swipe left).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionPageLeftSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll right to the
+ * next page (by two finger swipe right).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionPageRightSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll up to the
+ * previous page (by one finger swipe left and right).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionPageUpSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to scroll down to the
+ * next page (by one finger swipe right and left).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionPageDownSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move the focus to
+ * the first item on the screen (by one finger swipe up and down).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionMoveToFirstSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move the focus to
+ * the last item on the screen (by one finger swipe down and up).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionMoveToLastSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to focus and read from the
+ * first item on the top continuously (by three fingers single tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to.
+ */
+ AccessibilityActionSignalType& ActionReadFromTopSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to move the focus to and
+ * read from the next item continuously (by three fingers double tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadFromNextSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to zoom (by one finger
+ * triple tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionZoomSignal();
+
+ /**
+ * @DEPRECATED_1_4.9
+ * @brief This is emitted when accessibility action is received to read the information
+ * in the indicator (by two fingers triple tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadIndicatorInformationSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to pause/resume the
+ * current speech (by two fingers single tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionReadPauseResumeSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to start/stop the
+ * current action (by two fingers double tap).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionSignalType& ActionStartStopSignal();
+
+ /**
+ * @brief This is emitted when accessibility action is received to handle scroll event (by two
+ * fingers drag).
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallback( AccessibilityManager& manager, const TouchEvent& event );
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ */
+ AccessibilityActionScrollSignalType& ActionScrollSignal();
+
+public:
+
+ explicit DALI_INTERNAL AccessibilityManager( Internal::AccessibilityManager *impl );
+
+}; // class AccessibilityManager
+
+/**
+ * @}
+ */
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
+
+// EXTERNAL INCLUDES
+#include <dali/integration-api/debug.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/internal/controls/alignment/alignment-impl.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+Alignment::Alignment()
+{
+}
+
+Alignment Alignment::New( Type horizontal, Type vertical )
+{
+ return Internal::Alignment::New( horizontal, vertical );
+}
+
+Alignment::Alignment(const Alignment& alignment)
+: Control( alignment )
+{
+}
+
+Alignment::~Alignment()
+{
+}
+
+Alignment Alignment::DownCast( BaseHandle handle )
+{
+ return Control::DownCast<Alignment, Internal::Alignment>(handle);
+}
+
+void Alignment::SetAlignmentType( Type type )
+{
+ GetImpl( *this ).SetAlignmentType( type );
+}
+
+Alignment::Type Alignment::GetAlignmentType() const
+{
+ return GetImpl( *this ).GetAlignmentType();
+}
+
+void Alignment::SetScaling( Scaling scaling )
+{
+ GetImpl( *this ).SetScaling( scaling );
+}
+
+Alignment::Scaling Alignment::GetScaling() const
+{
+ return GetImpl( *this ).GetScaling();
+}
+
+void Alignment::SetPadding( const Alignment::Padding& padding )
+{
+ GetImpl( *this ).SetPadding( padding );
+}
+
+const Alignment::Padding& Alignment::GetPadding() const
+{
+ return GetImpl( *this ).GetPadding();
+}
+
+Alignment::Alignment( Internal::Alignment& implementation )
+: Control( implementation )
+{
+}
+
+Alignment& Alignment::operator=(const Alignment& alignment)
+{
+ if( &alignment != this )
+ {
+ Control::operator=( alignment );
+ }
+ return *this;
+}
+
+Alignment::Alignment( Dali::Internal::CustomActor* internal )
+: Control( internal )
+{
+ VerifyCustomActorPointer<Internal::Alignment>(internal);
+}
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef DALI_ALIGNMENT_H
+#define DALI_ALIGNMENT_H
+
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal DALI_INTERNAL
+{
+class Alignment;
+}
+/**
+ * @addtogroup dali_toolkit_controls_alignment
+ * @{
+ */
+
+/**
+ * @brief Alignment is a container which provides an easy way to align other actors inside its boundary.
+ *
+ * Additionally, it provides a scaling property to resize the contained actors @see Scaling.
+ * @SINCE_1_0.0
+ * @note The use of scaling property will override all constraints applied to actors.
+ *
+ * All actors added to an alignment are going to be set with the same anchor point and parent origin. And if the scaling property is set to a value
+ * different than ScaleNone, constraints as well.
+ */
+class DALI_TOOLKIT_API Alignment : public Control
+{
+public:
+ /**
+ * @brief Enumeration for different types of alignment.
+ * @SINCE_1_0.0
+ */
+ enum Type
+ {
+ HorizontalLeft = 1, ///< Horizontal left alignment @SINCE_1_0.0
+ HorizontalCenter = 2, ///< Horizontal center alignment @SINCE_1_0.0
+ HorizontalRight = 4, ///< Horizontal right alignment @SINCE_1_0.0
+ VerticalTop = 8, ///< Vertical top alignment @SINCE_1_0.0
+ VerticalCenter = 16, ///< Vertical center alignment @SINCE_1_0.0
+ VerticalBottom = 32 ///< Vertical bottom alignment @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Scaling determines how actors are scaled to match the alignment's boundary.
+ * @SINCE_1_0.0
+ */
+ enum Scaling
+ {
+ ScaleNone, ///< The original size is kept. @SINCE_1_0.0
+ ScaleToFill, ///< Scale added actors to fill alignment's boundary. Aspect ratio is not maintained. @SINCE_1_0.0
+ ScaleToFitKeepAspect, ///< Scale added actors to fit within the alignment's boundary. Aspect ratio is maintained. @SINCE_1_0.0
+ ScaleToFillKeepAspect, ///< Scale added actors to fill the alignment's boundary. Aspect ratio is maintained, and the actor may exceed the alignment's boundary. @SINCE_1_0.0
+ ShrinkToFit, ///< If added actors are larger than the alignment's boundary it will be shrunk down to fit. Aspect ratio is not maintained @SINCE_1_0.0
+ ShrinkToFitKeepAspect, ///< If added actors are larger than the alignment's boundary it will be shrunk down to fit. Aspect ratio is maintained @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Structure describing the padding values.
+ * @SINCE_1_0.0
+ */
+ struct Padding
+ {
+ /**
+ * @brief Constructor.
+ * @SINCE_1_0.0
+ */
+ Padding()
+ : left( 0.f ),
+ right( 0.f ),
+ top( 0.f ),
+ bottom( 0.f )
+ {
+ }
+
+ /**
+ * @brief Constructor.
+ *
+ * @SINCE_1_0.0
+ * @param[in] l Left padding
+ * @param[in] r Right padding
+ * @param[in] t Top padding
+ * @param[in] b Bottom padding
+ */
+ Padding( float l, float r, float t, float b )
+ : left( l ),
+ right( r ),
+ top( t ),
+ bottom( b )
+ {
+ }
+
+ float left; ///< The left padding
+ float right; ///< The right padding
+ float top; ///< The top padding
+ float bottom; ///< The bottom padding
+ };
+
+ /**
+ * @brief Creates an Alignment handle; this can be initialized with Alignment::New().
+ *
+ * Calling member functions with an uninitialized handle is not allowed.
+ * @SINCE_1_0.0
+ */
+ Alignment();
+
+ /**
+ * @brief Creates an alignment control.
+ *
+ * @SINCE_1_0.0
+ * @param[in] horizontal Specifies how to align actors horizontally. Could be HorizontalLeft, HorizontalCenter or HorizontalRight. By default, HorizontalCenter
+ * @param[in] vertical Specifies how to align actors vertically. Could be VerticalTop, VerticalCenter or VerticalBottom. By default, VerticalCenter
+ * @return A handle to the Alignment control
+ */
+ static Alignment New( Type horizontal = HorizontalCenter, Type vertical = VerticalCenter );
+
+ /**
+ * @brief Copy constructor. Creates another handle that points to the same real object.
+ *
+ * @SINCE_1_0.0
+ * @param[in] alignment Object to copy
+ */
+ Alignment(const Alignment& alignment);
+
+ /**
+ * @brief Destructor.
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
+ */
+ ~Alignment();
+
+ /**
+ * @brief Downcasts a handle to Alignment handle.
+ *
+ * If handle points to an Alignment, the downcast produces valid handle.
+ * If not, the returned handle is left uninitialized.
+ *
+ * @SINCE_1_0.0
+ * @param[in] handle Handle to an object
+ * @return A handle to a Alignment or an uninitialized handle
+ */
+ static Alignment DownCast( BaseHandle handle );
+
+ /**
+ * @brief Sets the new alignment. By default, ( HorizontalCenter | VerticalCenter ).
+ *
+ * @SINCE_1_0.0
+ * @param[in] type The new alignment option
+ * @note There should only be one horizontal and one vertical policy.
+ */
+ void SetAlignmentType( Type type );
+
+ /**
+ * @brief Gets the current alignment combined into a single value.
+ *
+ * The values can be tested by using the & operator and the desired
+ * flag. e.g.
+ * @code
+ * if (GetAlignmentType() & HorizontalCentre)
+ * {
+ * ...
+ * }
+ * @endcode
+ *
+ * @SINCE_1_0.0
+ * @return the alignment value
+ */
+ Type GetAlignmentType() const;
+
+ /**
+ * @brief Sets how added actors scale to fit the alignment's boundary.
+ *
+ * @SINCE_1_0.0
+ * @param[in] scaling The scaling property
+ * @see Scaling.
+ */
+ void SetScaling( Scaling scaling );
+
+ /**
+ * @brief Retrieves the scaling property.
+ *
+ * @SINCE_1_0.0
+ * @return The scaling
+ * @see Scaling.
+ */
+ Scaling GetScaling() const;
+
+ /**
+ * @brief Sets a padding value.
+ *
+ * @SINCE_1_0.0
+ * @param[in] padding The left, right, top, bottom padding values
+ */
+ void SetPadding( const Padding& padding );
+
+ /**
+ * @brief Gets the padding values.
+ *
+ * @SINCE_1_0.0
+ * @return The left, right, top, bottom padding values
+ */
+ const Padding& GetPadding() const;
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Changes this handle to point to another real object.
+ * @SINCE_1_0.0
+ * @param[in] alignment Object to copy
+ * @return A reference to this
+ */
+ Alignment& operator=(const Alignment& alignment);
+
+public: // Not intended for application developers
+
+ /// @cond internal
+ /**
+ * @brief Creates a handle using the Toolkit::Internal implementation.
+ *
+ * @SINCE_1_0.0
+ * @param[in] implementation The Control implementation
+ */
+ DALI_INTERNAL Alignment( Internal::Alignment& implementation );
+
+ /**
+ * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
+ *
+ * @SINCE_1_0.0
+ * @param[in] internal A pointer to the internal CustomActor
+ */
+ explicit DALI_INTERNAL Alignment( Dali::Internal::CustomActor* internal );
+ /// @endcond
+};
+
+/**
+ * @}
+ */
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_ALIGNMENT_H
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+ScrollBar::ScrollBar()
+{
+}
+
+ScrollBar::ScrollBar(Internal::ScrollBar& implementation)
+: Control( implementation )
+{
+}
+
+ScrollBar::ScrollBar( Dali::Internal::CustomActor* internal )
+: Control( internal )
+{
+ VerifyCustomActorPointer<Internal::ScrollBar>(internal);
+}
+
+ScrollBar::ScrollBar( const ScrollBar& handle )
+: Control( handle )
+{
+}
+
+ScrollBar& ScrollBar::operator=( const ScrollBar& scrollBar )
+{
+ if( &scrollBar != this )
+ {
+ Control::operator=( scrollBar );
+ }
+ return *this;
+}
+
+ScrollBar ScrollBar::New(ScrollBar::Direction direction)
+{
+ return Internal::ScrollBar::New(direction);
+}
+
+ScrollBar ScrollBar::DownCast( BaseHandle handle )
+{
+ return Control::DownCast<ScrollBar, Internal::ScrollBar>(handle);
+}
+
+ScrollBar::~ScrollBar()
+{
+}
+
+void ScrollBar::SetScrollPropertySource( Handle handle, Dali::Property::Index propertyScrollPosition, Dali::Property::Index propertyMinScrollPosition, Dali::Property::Index propertyMaxScrollPosition, Dali::Property::Index propertyScrollContentSize )
+{
+ GetImpl(*this).SetScrollPropertySource(handle, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
+}
+
+void ScrollBar::SetScrollIndicator( Actor indicator )
+{
+ GetImpl(*this).SetScrollIndicator(indicator);
+}
+
+Actor ScrollBar::GetScrollIndicator()
+{
+ return GetImpl(*this).GetScrollIndicator();
+}
+
+void ScrollBar::SetScrollPositionIntervals( const Dali::Vector<float>& positions )
+{
+ GetImpl(*this).SetScrollPositionIntervals(positions);
+}
+
+Dali::Vector<float> ScrollBar::GetScrollPositionIntervals() const
+{
+ return GetImpl(*this).GetScrollPositionIntervals();
+}
+
+void ScrollBar::SetScrollDirection( ScrollBar::Direction direction )
+{
+ GetImpl(*this).SetScrollDirection(direction);
+}
+
+ScrollBar::Direction ScrollBar::GetScrollDirection() const
+{
+ return GetImpl(*this).GetScrollDirection();
+}
+
+void ScrollBar::SetIndicatorHeightPolicy( ScrollBar::IndicatorHeightPolicy policy )
+{
+ GetImpl(*this).SetIndicatorHeightPolicy(policy);
+}
+
+ScrollBar::IndicatorHeightPolicy ScrollBar::GetIndicatorHeightPolicy() const
+{
+ return GetImpl(*this).GetIndicatorHeightPolicy();
+}
+
+void ScrollBar::SetIndicatorFixedHeight( float height )
+{
+ GetImpl(*this).SetIndicatorFixedHeight(height);
+}
+
+float ScrollBar::GetIndicatorFixedHeight() const
+{
+ return GetImpl(*this).GetIndicatorFixedHeight();
+}
+
+void ScrollBar::SetIndicatorShowDuration( float durationSeconds )
+{
+ GetImpl(*this).SetIndicatorShowDuration(durationSeconds);
+}
+
+float ScrollBar::GetIndicatorShowDuration() const
+{
+ return GetImpl(*this).GetIndicatorShowDuration();
+}
+
+void ScrollBar::SetIndicatorHideDuration( float durationSeconds )
+{
+ GetImpl(*this).SetIndicatorHideDuration(durationSeconds);
+}
+
+float ScrollBar::GetIndicatorHideDuration() const
+{
+ return GetImpl(*this).GetIndicatorHideDuration();
+}
+
+void ScrollBar::ShowIndicator()
+{
+ GetImpl(*this).ShowIndicator();
+}
+
+void ScrollBar::HideIndicator()
+{
+ GetImpl(*this).HideIndicator();
+}
+
+ScrollBar::PanFinishedSignalType& ScrollBar::PanFinishedSignal()
+{
+ return GetImpl(*this).PanFinishedSignal();
+}
+
+ScrollBar::ScrollPositionIntervalReachedSignalType& ScrollBar::ScrollPositionIntervalReachedSignal()
+{
+ return GetImpl(*this).ScrollPositionIntervalReachedSignal();
+}
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef DALI_TOOLKIT_SCROLL_BAR_H
+#define DALI_TOOLKIT_SCROLL_BAR_H
+
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal DALI_INTERNAL
+{
+// Forward declarations
+
+class ScrollBar;
+}
+/**
+ * @addtogroup dali_toolkit_controls_scroll_bar
+ * @{
+ */
+
+/**
+ * @brief ScrollBar is a UI component that can be linked to the scrollable objects
+ * indicating the current scroll position of the scrollable object.
+ *
+ * Signals
+ * | %Signal Name | Method |
+ * |-------------------------------|--------------------------------------------|
+ * | panFinished | @ref PanFinishedSignal() |
+ * | scrollPositionIntervalReached | @ref ScrollPositionIntervalReachedSignal() |
+ * @SINCE_1_0.0
+ */
+class DALI_TOOLKIT_API ScrollBar : public Control
+{
+public:
+
+ // Properties
+
+ /**
+ * @brief Enumeration for the start and end property ranges for this control.
+ * @SINCE_1_0.0
+ */
+ enum PropertyRange
+ {
+ PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0
+ PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000 ///< Reserve property indices @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
+ * @SINCE_1_0.0
+ */
+ struct Property
+ {
+ /**
+ * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
+ * @SINCE_1_0.0
+ */
+ enum
+ {
+ /**
+ * @brief The scrolling direction of the indicator.
+ * @details Name "scrollDirection", type Property::STRING.
+ * Possible values are "Vertical" and "Horizontal".
+ * @SINCE_1_0.0
+ * @see SetScrollDirection()
+ */
+ SCROLL_DIRECTION = PROPERTY_START_INDEX,
+
+ /**
+ * @brief The indicator height policy.
+ * @details Name "indicatorHeightPolicy", type Property::STRING.
+ * Possible values are "Variable" and "Fixed".
+ * @SINCE_1_0.0
+ * @see SetIndicatorHeightPolicy()
+ */
+ INDICATOR_HEIGHT_POLICY,
+
+ /**
+ * @brief The fixed height of the indicator.
+ * @details Name "indicatorFixedHeight", type Property::FLOAT.
+ * @SINCE_1_0.0
+ * @see SetIndicatorFixedHeight()
+ */
+ INDICATOR_FIXED_HEIGHT,
+
+ /**
+ * @brief The duration in seconds to show the indicator.
+ * @details Name "indicatorShowDuration", type Property::FLOAT.
+ * @SINCE_1_0.0
+ * @see SetIndicatorShowDuration()
+ */
+ INDICATOR_SHOW_DURATION,
+
+ /**
+ * @brief The duration in seconds to hide the indicator.
+ * @details Name "indicatorHideDuration", type Property::FLOAT.
+ * @SINCE_1_0.0
+ * @see SetIndicatorHideDuration()
+ */
+ INDICATOR_HIDE_DURATION,
+
+ /**
+ * @brief The intervals at which point a notification is emitted.
+ * @details Name "scrollPositionIntervals", type Property::ARRAY.
+ * @SINCE_1_0.0
+ * @see SetScrollPositionIntervals()
+ */
+ SCROLL_POSITION_INTERVALS,
+
+ /**
+ * @brief The minimum height for a variable size indicator.
+ * @details Name "indicatorMinimumHeight", type Property::FLOAT.
+ * @SINCE_1_1.36
+ */
+ INDICATOR_MINIMUM_HEIGHT,
+
+ /**
+ * @brief The padding at the start of the indicator.
+ * @details Name "indicatorStartPadding", type Property::FLOAT.
+ * For example, the padding at the top if scrollDirection is Vertical.
+ * @SINCE_1_1.36
+ */
+ INDICATOR_START_PADDING,
+
+ /**
+ * @brief The padding at the end of the indicator.
+ * @details Name "indicatorEndPadding", type Property::FLOAT.
+ * For example, the padding at the bottom if scrollDirection is Vertical.
+ * @SINCE_1_1.36
+ */
+ INDICATOR_END_PADDING,
+
+ /**
+ * @brief The duration that transient indicators will remain fully visible.
+ * @details name "indicatorTransientDuration", type Property::FLOAT.
+ * @SINCE_1_2.60
+ */
+ INDICATOR_TRANSIENT_DURATION,
+ };
+ };
+
+ // Signals
+
+ typedef Signal< void () > PanFinishedSignalType;
+ typedef Signal< void ( float ) > ScrollPositionIntervalReachedSignalType;
+
+public:
+
+ /**
+ * @brief Direction.
+ * @SINCE_1_0.0
+ */
+ enum Direction
+ {
+ Vertical = 0, ///< Scroll in the vertical direction @SINCE_1_0.0
+ Horizontal ///< Scroll in the horizontal direction @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Indicator height policy.
+ * @SINCE_1_0.0
+ */
+ enum IndicatorHeightPolicy
+ {
+ Variable = 0, ///< Variable height changed dynamically according to the length of scroll content @SINCE_1_0.0
+ Fixed ///< Fixed height regardless of the length of scroll content @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Creates an uninitialized ScrollBar; this can be initialized with ScrollBar::New()
+ * Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
+ */
+ ScrollBar();
+
+ /**
+ * @brief Copy constructor.
+ * @SINCE_1_0.0
+ * @param[in] scrollBar Handle to an object
+ */
+ ScrollBar( const ScrollBar& scrollBar );
+
+ /**
+ * @brief Assignment operator.
+ * @SINCE_1_0.0
+ * @param[in] scrollBar Handle to an object
+ * @return A reference to this
+ */
+ ScrollBar& operator=( const ScrollBar& scrollBar );
+
+ /**
+ * @brief Destructor.
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
+ */
+ ~ScrollBar();
+
+ /**
+ * @brief Creates an initialized ScrollBar.
+ * @SINCE_1_0.0
+ * @param[in] direction The direction of scroll bar (either vertically or horizontally)
+ * @return A pointer to the created ScrollBar
+ */
+ static ScrollBar New(Direction direction = Vertical);
+
+ /**
+ * @brief Downcasts a handle to ScrollBar handle.
+ *
+ * If handle points to a ScrollBar, the downcast produces valid handle.
+ * If not, the returned handle is left uninitialized.
+ * @SINCE_1_0.0
+ * @param[in] handle Handle to an object
+ * @return Handle to a ScrollBar or an uninitialized handle
+ */
+ static ScrollBar DownCast( BaseHandle handle );
+
+ /**
+ * @brief Sets the source of the scroll position properties.
+ *
+ * @SINCE_1_0.0
+ * @param[in] handle The handle of the object owing the scroll properties
+ * @param[in] propertyScrollPosition The index of the scroll position property (The scroll position, type float)
+ * @param[in] propertyMinScrollPosition The index of the minimum scroll position property (The minimum scroll position, type float)
+ * @param[in] propertyMaxScrollPosition The index of the maximum scroll position property (The maximum scroll position, type float)
+ * @param[in] propertyScrollContentSize The index of the scroll content size property (The size of the scrollable content in actor coordinates, type float)
+ * @pre The handle to the object owing the scroll properties has been initialised and the property index must be valid.
+ */
+ void SetScrollPropertySource( Handle handle, Dali::Property::Index propertyScrollPosition, Dali::Property::Index propertyMinScrollPosition, Dali::Property::Index propertyMaxScrollPosition, Dali::Property::Index propertyScrollContentSize );
+
+ /**
+ * @brief Sets the indicator of scroll bar.
+ *
+ * @SINCE_1_0.0
+ * @param[in] indicator The indicator that moves to indicate the current scroll position
+ * @pre The scroll bar actor has been initialized.
+ */
+ void SetScrollIndicator( Actor indicator );
+
+ /**
+ * @brief Gets the indicator of scroll bar.
+ *
+ * @SINCE_1_0.0
+ * @return The indicator indicates the current scroll position of the scrollable content
+ * @pre The scroll bar actor has been initialized.
+ */
+ Actor GetScrollIndicator();
+
+ /**
+ * @brief Sets the list of values to get notification when the current scroll position of the scrollable
+ * object goes above or below any of these values.
+ *
+ * @SINCE_1_0.0
+ * @param[in] positions List of values to receive notifications for when the current scroll position crosses them
+ * @pre The scroll bar actor has been initialized.
+ */
+ void SetScrollPositionIntervals( const Dali::Vector<float>& positions );
+
+ /**
+ * @brief Gets the list of values to receive notifications when the current scroll position of the scrollable
+ * object goes above or below any of these values.
+ *
+ * @SINCE_1_0.0
+ * @return The list of values to receive notifications for when the current scroll position crosses them
+ * @pre The scroll bar actor has been initialized.
+ *
+ */
+ Dali::Vector<float> GetScrollPositionIntervals() const;
+
+ /**
+ * @brief Sets the direction of scroll bar to scroll either vertically or horizontally.
+ *
+ * @SINCE_1_0.0
+ * @param[in] direction The direction of scroll bar (either vertically or horizontally)
+ * @pre The scroll bar actor has been initialized.
+ */
+ void SetScrollDirection( Direction direction );
+
+ /**
+ * @brief Gets the direction of scroll bar.
+ *
+ * @SINCE_1_0.0
+ * @return The direction of scroll bar
+ */
+ Direction GetScrollDirection() const;
+
+ /**
+ * @brief Sets the height policy of scroll indicator to have either variable or fixed height.
+ *
+ * @SINCE_1_0.0
+ * @param[in] policy The height policy of scroll indicator
+ * @pre The scroll bar actor has been initialized.
+ */
+ void SetIndicatorHeightPolicy( IndicatorHeightPolicy policy );
+
+ /**
+ * @brief Gets the height policy of scroll indicator.
+ *
+ * @SINCE_1_0.0
+ * @return The height policy of scroll indicator
+ */
+ IndicatorHeightPolicy GetIndicatorHeightPolicy() const;
+
+ /**
+ * @brief Sets the fixed height of scroll indicator.
+ *
+ * Normally the height of scroll indicator is changed dynamically according to the length of scroll content.
+ * However, when the height policy of scroll indicator is set to be fixed, the height will be kept fixed
+ * regardless of the length of scroll content.
+ *
+ * @SINCE_1_0.0
+ * @param[in] height The fixed height of the scroll indicator
+ * @pre The scroll bar actor has been initialized.
+ *
+ */
+ void SetIndicatorFixedHeight( float height );
+
+ /**
+ * @brief Gets the fix height of scroll indicator.
+ * @SINCE_1_0.0
+ * @return The fixed height of the scroll indicator
+ */
+ float GetIndicatorFixedHeight() const;
+
+ /**
+ * @brief Sets the duration in seconds for the scroll indicator to become fully visible.
+ *
+ * @SINCE_1_0.0
+ * @param[in] durationSeconds The duration for the scroll indicator to become fully visible
+ * @pre The scroll bar actor has been initialised; durationSeconds must be zero or greater; zero means the indicator will be shown instantly.
+ *
+ */
+ void SetIndicatorShowDuration( float durationSeconds );
+
+ /**
+ * @brief Gets the duration in seconds for the scroll indicator to become fully visible.
+ * @SINCE_1_0.0
+ * @return The duration for the scroll indicator to become fully visible
+ */
+ float GetIndicatorShowDuration() const;
+
+ /**
+ * @brief Sets the duration in seconds for the scroll indicator to become fully invisible.
+ *
+ * @SINCE_1_0.0
+ * @param[in] durationSeconds The duration for the scroll indicator to become fully invisible
+ * @pre The scroll bar actor has been initialised; durationSeconds must be zero or greater; zero means the indicator will be hidden instantly.
+ *
+ */
+ void SetIndicatorHideDuration( float durationSeconds );
+
+ /**
+ * @brief Gets the duration in seconds for the scroll indicator to become fully invisible.
+ * @SINCE_1_0.0
+ * @return The duration for the scroll indicator to become fully invisible
+ */
+ float GetIndicatorHideDuration() const;
+
+ /**
+ * @brief Shows the scroll indicator.
+ * @SINCE_1_0.0
+ */
+ void ShowIndicator();
+
+ /**
+ * @brief Hides the scroll indicator.
+ * @SINCE_1_0.0
+ */
+ void HideIndicator();
+
+public: // Signals
+
+ /**
+ * @brief Signal emitted when panning is finished on the scroll indicator.
+ *
+ * Signal only emitted when the source of the scroll position properties are set.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName();
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ * @pre The Object has been initialized.
+ */
+ ScrollBar::PanFinishedSignalType& PanFinishedSignal();
+
+ /**
+ * @brief Signal emitted when the current scroll position of the scrollable content
+ * goes above or below the values specified by SCROLL_POSITION_INTERVALS property.
+ *
+ * Signal only emitted when the source of the scroll position properties are set.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * void YourCallbackName(float currentScrollPosition);
+ * @endcode
+ * @SINCE_1_0.0
+ * @return The signal to connect to
+ * @pre The Object has been initialized.
+ */
+ ScrollBar::ScrollPositionIntervalReachedSignalType& ScrollPositionIntervalReachedSignal();
+
+public: // Not intended for application developers
+
+ /// @cond internal
+ /**
+ * @brief Creates a handle using the Toolkit::Internal implementation.
+ * @SINCE_1_0.0
+ * @param[in] implementation The Control implementation
+ */
+ DALI_INTERNAL ScrollBar( Internal::ScrollBar& implementation );
+
+ /**
+ * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
+ * @SINCE_1_0.0
+ * @param[in] internal A pointer to the internal CustomActor
+ */
+ explicit DALI_INTERNAL ScrollBar( Dali::Internal::CustomActor* internal );
+ /// @endcond
+};
+
+/**
+ * @}
+ */
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_SCROLL_BAR_H
--- /dev/null
+/*
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// CLASS HEADER
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/internal/controls/table-view/table-view-impl.h>
+
+using std::vector;
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+TableView::TableView()
+{
+}
+
+TableView::TableView( const TableView& handle )
+: Control( handle )
+{
+}
+
+TableView& TableView::operator=( const TableView& handle )
+{
+ if( &handle != this )
+ {
+ Control::operator=( handle );
+ }
+ return *this;
+}
+
+TableView TableView::New( unsigned int initialRows, unsigned int initialColumns )
+{
+ return Internal::TableView::New( initialRows, initialColumns );
+}
+
+TableView::~TableView()
+{
+}
+
+TableView TableView::DownCast( BaseHandle handle )
+{
+ return Control::DownCast<TableView, Internal::TableView>(handle);
+}
+
+bool TableView::AddChild( Actor child, CellPosition position )
+{
+ return GetImpl(*this).AddChild( child, position );
+}
+
+Actor TableView::GetChildAt( CellPosition position )
+{
+ return GetImpl(*this).GetChildAt( position );
+}
+
+Actor TableView::RemoveChildAt( CellPosition position )
+{
+ return GetImpl(*this).RemoveChildAt( position );
+}
+
+bool TableView::FindChildPosition( Actor child, CellPosition& position )
+{
+ return GetImpl(*this).FindChildPosition( child, position );
+}
+
+void TableView::InsertRow( unsigned int rowIndex )
+{
+ GetImpl(*this).InsertRow( rowIndex );
+}
+
+void TableView::DeleteRow( unsigned int rowIndex )
+{
+ GetImpl(*this).DeleteRow( rowIndex );
+}
+
+void TableView::DeleteRow( unsigned int rowIndex, vector<Actor>& removed )
+{
+ GetImpl(*this).DeleteRow( rowIndex, removed );
+}
+
+void TableView::InsertColumn( unsigned int columnIndex )
+{
+ GetImpl(*this).InsertColumn( columnIndex );
+}
+
+void TableView::DeleteColumn( unsigned int columnIndex )
+{
+ GetImpl(*this).DeleteColumn( columnIndex );
+}
+
+void TableView::DeleteColumn( unsigned int columnIndex, vector<Actor>& removed )
+{
+ GetImpl(*this).DeleteColumn( columnIndex, removed );
+}
+
+void TableView::Resize( unsigned int rows, unsigned int columns )
+{
+ GetImpl(*this).Resize( rows, columns );
+}
+
+void TableView::Resize( unsigned int rows, unsigned int columns, vector<Actor>& removed )
+{
+ GetImpl(*this).Resize( rows, columns, removed );
+}
+
+void TableView::SetCellPadding( Size padding )
+{
+ GetImpl(*this).SetCellPadding( padding );
+}
+
+Size TableView::GetCellPadding()
+{
+ return GetImpl(*this).GetCellPadding();
+}
+
+void TableView::SetFitHeight( unsigned int rowIndex )
+{
+ GetImpl(*this).SetFitHeight( rowIndex );
+}
+
+bool TableView::IsFitHeight( unsigned int rowIndex ) const
+{
+ return GetImpl(*this).IsFitHeight( rowIndex );
+}
+
+void TableView::SetFitWidth( unsigned int columnIndex )
+{
+ GetImpl(*this).SetFitWidth( columnIndex );
+}
+
+bool TableView::IsFitWidth( unsigned int columnIndex ) const
+{
+ return GetImpl(*this).IsFitWidth( columnIndex );
+}
+
+void TableView::SetFixedHeight( unsigned int rowIndex, float height )
+{
+ GetImpl(*this).SetFixedHeight( rowIndex, height );
+}
+
+float TableView::GetFixedHeight( unsigned int rowIndex ) const
+{
+ return GetImpl(*this).GetFixedHeight( rowIndex );
+}
+
+void TableView::SetRelativeHeight( unsigned int rowIndex, float heightPercentage )
+{
+ GetImpl(*this).SetRelativeHeight( rowIndex, heightPercentage );
+}
+
+float TableView::GetRelativeHeight( unsigned int rowIndex ) const
+{
+ return GetImpl(*this).GetRelativeHeight( rowIndex );
+}
+
+void TableView::SetFixedWidth( unsigned int columnIndex, float width )
+{
+ GetImpl(*this).SetFixedWidth( columnIndex, width );
+}
+
+float TableView::GetFixedWidth( unsigned int columnIndex ) const
+{
+ return GetImpl(*this).GetFixedWidth( columnIndex );
+}
+
+void TableView::SetRelativeWidth( unsigned int columnIndex, float widthPercentage )
+{
+ GetImpl(*this).SetRelativeWidth( columnIndex, widthPercentage );
+}
+
+float TableView::GetRelativeWidth( unsigned int columnIndex ) const
+{
+ return GetImpl(*this).GetRelativeWidth( columnIndex );
+}
+
+unsigned int TableView::GetRows()
+{
+ return GetImpl(*this).GetRows();
+}
+
+unsigned int TableView::GetColumns()
+{
+ return GetImpl(*this).GetColumns();
+}
+
+void TableView::SetCellAlignment( CellPosition position, HorizontalAlignment::Type horizontal, VerticalAlignment::Type vertical )
+{
+ GetImpl(*this).SetCellAlignment( position, horizontal, vertical );
+}
+
+TableView::TableView(Internal::TableView& implementation)
+: Control(implementation)
+{
+}
+
+TableView::TableView( Dali::Internal::CustomActor* internal )
+: Control( internal )
+{
+ VerifyCustomActorPointer<Internal::TableView>(internal);
+}
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef DALI_TOOLKIT_TABLE_VIEW_H
+#define DALI_TOOLKIT_TABLE_VIEW_H
+
+/*
+ * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/vector-wrapper.h>
+#include <dali/public-api/actors/actor-enumerations.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/controls/control.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Internal DALI_INTERNAL
+{
+class TableView;
+}
+/**
+ * @addtogroup dali_toolkit_controls_table_view
+ * @{
+ */
+
+/**
+ * @brief TableView is a layout container for aligning child actors in a grid like layout.
+ *
+ * TableView constrains the x and y position and width and height of the child actors.
+ * z position and depth are left intact so that 3D model actors can also be laid out
+ * in a grid without loosing their depth scaling.
+ *
+ * @nosubgrouping
+ * <h3>Per-child Custom properties for script supporting:</h3>
+ *
+ * When an actor is add to the tableView through Actor::Add() instead of TableView::AddChild,
+ * the following custom properties of the actor are checked to decide the actor position inside the table.
+ *
+ * These properties are registered dynamically to the child and is non-animatable.
+ *
+ * | %Property Name | Type |
+ * |-------------------------|-------------|
+ * | cellIndex | Vector2 |
+ * | rowSpan | float |
+ * | columnSpan | float |
+ * | cellHorizontalAlignment | string |
+ * | cellVerticalAlignment | string |
+ *
+ * The rowSpan or columnSpan has integer value, but its type is float here due to the limitation of the builder's ability to differentiate integer and float from Json string.
+ * The available values for cellHorizontalAlignment are: left, center, right.
+ * The available values for cellVerticalAlignment are: top, center, bottom.
+ *
+ * @code
+ * "name":"gallery1",
+ * "type":"ImageView",
+ * "image": {
+ * "url": "{DALI_IMAGE_DIR}gallery-small-1.jpg"
+ * },
+ * "properties": {
+ * "cellIndex":[1,1], // Property to specify the top-left cell this child occupies, if not set, the first available cell is used
+ * "rowSpan":3, // Property to specify how many rows this child occupies, if not set, default value is 1
+ * "columnSpan": 2, // Property to specify how many columns this child occupies, if nor set, default value is 1
+ * "cellHorizontalAlignment": "left", // Property to specify how to align horizontally inside the cells, if not set, default value is 'left'
+ * "cellVerticalAlignment": "center" // Property to specify how to align vertically inside the cells, if not set, default value is 'top'
+ * }
+ * @endcode
+ * @SINCE_1_0.0
+ */
+class DALI_TOOLKIT_API TableView : public Control
+{
+public:
+
+ /**
+ * @brief Enumeration for the start and end property ranges for this control.
+ * @SINCE_1_0.0
+ */
+ enum PropertyRange
+ {
+ PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0
+ PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000, ///< Reserve property indices @SINCE_1_0.0
+
+ CHILD_PROPERTY_START_INDEX = CHILD_PROPERTY_REGISTRATION_START_INDEX, ///< @SINCE_1_1.36
+ CHILD_PROPERTY_END_INDEX = CHILD_PROPERTY_REGISTRATION_START_INDEX + 1000 ///< Reserve child property indices @SINCE_1_1.36
+ };
+
+ /**
+ * @brief Enumeration for the instance of properties belonging to the TableView class.
+ *
+ * LayoutRows: set the height of the rows.
+ * It has the format as follows in script:
+ * @code
+ * "layoutRows":
+ * {
+ * "0": { "policy": "fixed", "value": 40 }, //@see SetFixedHight
+ * "2": { "policy": "relative", "value": 0.33 }, //@see SetRelativeHeight
+ * "3": { "policy": "fit", "value":0.0 } //@see SetFitHeight, the value is not used, its height is decided by the children in this row
+ * }
+ * @endcode
+ *
+ * LayoutColumns: set the width of the columns.
+ * It has the format as follows in script:
+ * @code
+ * "layoutColumns":
+ * {
+ * "0": { "policy": "fixed", "value": 40 }, //@see SetFixedWidth
+ * "1": { "policy": "fit", "value":0.0 } //@see SetFitHeight, the value is not used, its width is decided by the children in this column
+ * "2": { "policy": "relative", "value": 0.33 } //@see SetRelativeWidth
+ * }
+ * @endcode
+ * @SINCE_1_0.0
+ */
+ struct Property
+ {
+ /**
+ * @brief Enumeration for the instance of properties belonging to the TableView class.
+ *
+ * @SINCE_1_0.0
+ */
+ enum
+ {
+ ROWS = PROPERTY_START_INDEX, ///< name "rows", type unsigned int @SINCE_1_0.0
+ COLUMNS, ///< name "columns", type unsigned int @SINCE_1_0.0
+ CELL_PADDING, ///< name "cellPadding", type Vector2 @SINCE_1_0.0
+ LAYOUT_ROWS, ///< name "layoutRows", type Map @SINCE_1_0.0
+ LAYOUT_COLUMNS, ///< name "layoutColumns", type Map @SINCE_1_0.0
+ };
+ };
+
+ /**
+ * @brief Enumeration for the instance of child properties belonging to the TableView class.
+ * @SINCE_1_1.36
+ */
+ struct ChildProperty
+ {
+ /**
+ * @brief Enumeration for the instance of child properties belonging to the TableView class.
+ * @SINCE_1_1.36
+ */
+ enum
+ {
+ CELL_INDEX = CHILD_PROPERTY_START_INDEX, ///< name "cellIndex", The top-left cell this child occupies, if not set, the first available cell is used, type VECTOR2 @SINCE_1_1.36
+ ROW_SPAN, ///< name "rowSpan", The number of rows this child occupies, if not set, default value is 1, type FLOAT @SINCE_1_1.36
+ COLUMN_SPAN, ///< name "columnSpan", The number of columns this child occupies, if not set, default value is 1, type FLOAT @SINCE_1_1.36
+ CELL_HORIZONTAL_ALIGNMENT, ///< name "cellHorizontalAlignment", The horizontal alignment of this child inside the cells, if not set, default value is 'left', type STRING @SINCE_1_1.36
+ CELL_VERTICAL_ALIGNMENT ///< name "cellVerticalAlignment", The vertical alignment of this child inside the cells, if not set, default value is 'top', type STRING @SINCE_1_1.36
+ };
+ };
+
+ /**
+ * @brief Enumeration for describing how the size of a row / column has been set.
+ * @SINCE_1_0.0
+ */
+ enum LayoutPolicy
+ {
+ FIXED, ///< Fixed with the given value. @SINCE_1_0.0
+ RELATIVE, ///< Calculated as percentage of the remainder after subtracting Padding and Fixed height/width @SINCE_1_0.0
+ FILL, ///< Default policy, get the remainder of the 100% (after subtracting Fixed, Fit and Relative height/ width) divided evenly between 'fill' rows/columns @SINCE_1_0.0
+ FIT ///< Fit around its children. @SINCE_1_0.0
+ };
+
+ /**
+ * @brief Structure to specify layout position for child actor.
+ * @SINCE_1_0.0
+ */
+ struct CellPosition
+ {
+ /**
+ * @brief Constructor to initialise values to defaults for convenience.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The row index initialized
+ * @param[in] columnIndex The column index initialized
+ * @param[in] rowSpan The row span initialized
+ * @param[in] columnSpan The column span initialized
+ */
+ CellPosition( unsigned int rowIndex = 0, unsigned int columnIndex = 0,
+ unsigned int rowSpan = 1, unsigned int columnSpan = 1 )
+ : rowIndex( rowIndex ), columnIndex( columnIndex ),
+ rowSpan( rowSpan ), columnSpan( columnSpan )
+ { }
+
+ unsigned int rowIndex;
+ unsigned int columnIndex;
+ unsigned int rowSpan;
+ unsigned int columnSpan;
+ };
+
+ /**
+ * @brief Creates a TableView handle; this can be initialized with TableView::New().
+ * Calling member functions with an uninitialized handle is not allowed.
+ * @SINCE_1_0.0
+ */
+ TableView();
+
+ /**
+ * @brief Copy constructor. Creates another handle that points to the same real object.
+ * @SINCE_1_0.0
+ * @param[in] handle Handle to copy from
+ */
+ TableView( const TableView& handle );
+
+ /**
+ * @brief Assignment operator. Changes this handle to point to another real object.
+ * @SINCE_1_0.0
+ * @param[in] handle Handle to an object
+ * @return A reference to this
+ */
+ TableView& operator=( const TableView& handle );
+
+ /**
+ * @brief Destructor.
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
+ */
+ ~TableView();
+
+ /**
+ * @brief Creates the TableView control.
+ * @SINCE_1_0.0
+ * @param[in] initialRows for the table
+ * @param[in] initialColumns for the table
+ * @return A handle to the TableView control
+ */
+ static TableView New( unsigned int initialRows, unsigned int initialColumns );
+
+ /**
+ * @brief Downcasts a handle to TableView handle.
+ *
+ * If handle points to a TableView, the downcast produces valid handle.
+ * If not, the returned handle is left uninitialized.
+ * @SINCE_1_0.0
+ * @param[in] handle Handle to an object
+ * @return Handle to a TableView or an uninitialized handle
+ */
+ static TableView DownCast( BaseHandle handle );
+
+ /**
+ * @brief Adds a child to the table.
+ * If the row or column index is outside the table, the table gets resized bigger.
+ * @SINCE_1_0.0
+ * @param[in] child The child to add
+ * @param[in] position The position for the child
+ * @return @c true if the addition succeeded, @c false if the cell is already occupied
+ * @pre The child actor has been initialized.
+ */
+ bool AddChild( Actor child, CellPosition position );
+
+ /**
+ * @brief Returns a child from the given layout position.
+ * @SINCE_1_0.0
+ * @param[in] position The position in the table
+ * @return Child that was in the cell or an uninitialized handle
+ * @note If there is no child in this position this method returns an uninitialized.
+ * Actor handle
+ */
+ Actor GetChildAt( CellPosition position );
+
+ /**
+ * @brief Removes a child from the given layout position.
+ * @SINCE_1_0.0
+ * @param[in] position The position for the child to remove
+ * @return Child that was removed or an uninitialized handle
+ * @note If there is no child in this position, this method does nothing.
+ */
+ Actor RemoveChildAt( CellPosition position );
+
+ /**
+ * @brief Finds the child's layout position.
+ * @SINCE_1_0.0
+ * @param[in] child The child to search for
+ * @param[out] position The position for the child
+ * @return true if the child was included in this TableView
+ */
+ bool FindChildPosition( Actor child, CellPosition& position );
+
+ /**
+ * @brief Inserts a new row to given index.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The rowIndex of the new row
+ */
+ void InsertRow( unsigned int rowIndex );
+
+ /**
+ * @brief Deletes a row from the given index.
+ * Removed elements are deleted.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The rowIndex of the row to delete
+ */
+ void DeleteRow( unsigned int rowIndex );
+
+ /**
+ * @brief Deletes a row from the given index.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The rowIndex of the row to delete
+ * @param[out] removed The removed elements
+ */
+ void DeleteRow( unsigned int rowIndex, std::vector<Actor>& removed );
+
+ /**
+ * @brief Inserts a new column to the given index.
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The columnIndex of the new column
+ */
+ void InsertColumn( unsigned int columnIndex );
+
+ /**
+ * @brief Deletes a column from the given index.
+ * Removed elements are deleted.
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The columnIndex of the column to delete
+ */
+ void DeleteColumn( unsigned int columnIndex );
+
+ /**
+ * @brief Deletes a column from the given index.
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The columnIndex of the column to delete
+ * @param[out] removed The removed elements
+ */
+ void DeleteColumn( unsigned int columnIndex, std::vector<Actor>& removed );
+
+ /**
+ * @brief Resizes the TableView.
+ * @SINCE_1_0.0
+ * @param[in] rows The rows for the table
+ * @param[in] columns The columns for the table
+ * @note If the new size is smaller than old,
+ * superfluous actors get removed. If you want to relayout removed children,
+ * use the variant that returns the removed Actors and reinsert them into the table.
+ * If an actor spans to a removed row or column, it gets removed from the table.
+ */
+ void Resize( unsigned int rows, unsigned int columns );
+
+ /**
+ * @brief Resizes the TableView.
+ * @SINCE_1_0.0
+ * @param[in] rows The rows for the table
+ * @param[in] columns The columns for the table
+ * @param[out] removed The removed actor handles
+ * @note If the new size is smaller than old, superfluous actors get removed.
+ * If an actor spans to a removed row or column it gets removed from the table.
+ */
+ void Resize( unsigned int rows, unsigned int columns, std::vector<Actor>& removed );
+
+ /**
+ * @brief Sets horizontal and vertical padding between cells.
+ * @SINCE_1_0.0
+ * @param[in] padding Width and height
+ */
+ void SetCellPadding( Size padding );
+
+ /**
+ * @brief Gets the current padding as width and height.
+ * @SINCE_1_0.0
+ * @return The current padding as width and height
+ */
+ Size GetCellPadding();
+
+ /**
+ * @brief Specifies this row as fitting its height to its children.
+ *
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The row to set
+ */
+ void SetFitHeight( unsigned int rowIndex );
+
+ /**
+ * @brief Checks if the row is a fit row.
+ *
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The row to check
+ * @return Return true if the row is fit
+ */
+ bool IsFitHeight( unsigned int rowIndex ) const;
+
+ /**
+ * @brief Specifies this column as fitting its width to its children.
+ *
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The column to set
+ */
+ void SetFitWidth( unsigned int columnIndex );
+
+ /**
+ * @brief Checks if the column is a fit column.
+ *
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The column to check
+ * @return Return true if the column is fit
+ */
+ bool IsFitWidth( unsigned int columnIndex ) const;
+
+ /**
+ * @brief Sets a row to have fixed height.
+ * Setting a fixed height of 0 has no effect.
+ * @SINCE_1_0.0
+ * @param rowIndex The rowIndex for row with fixed height
+ * @param height The height in world coordinate units
+ * @pre The row rowIndex must exist.
+ */
+ void SetFixedHeight( unsigned int rowIndex, float height );
+
+ /**
+ * @brief Gets a row's fixed height.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The row index with fixed height
+ * @return height The height in world coordinate units
+ * @pre The row rowIndex must exist.
+ * @note The returned value is valid if it has been set before.
+ */
+ float GetFixedHeight( unsigned int rowIndex ) const;
+
+ /**
+ * @brief Sets a row to have relative height. Relative height means percentage of
+ * the remainder of the table height after subtracting Padding and Fixed height rows.
+ * Setting a relative height of 0 has no effect.
+ * @SINCE_1_0.0
+ * @param rowIndex The rowIndex for row with relative height
+ * @param heightPercentage between 0.0f and 1.0f
+ * @pre The row rowIndex must exist.
+ */
+ void SetRelativeHeight( unsigned int rowIndex, float heightPercentage );
+
+ /**
+ * @brief Gets a row's relative height.
+ * @SINCE_1_0.0
+ * @param[in] rowIndex The row index with relative height
+ * @return Height in percentage units, between 0.0f and 1.0f
+ * @pre The row rowIndex must exist.
+ * @note The returned value is valid if it has been set before.
+ */
+ float GetRelativeHeight( unsigned int rowIndex ) const;
+
+ /**
+ * @brief Sets a column to have fixed width.
+ * Setting a fixed width of 0 has no effect.
+ * @SINCE_1_0.0
+ * @param columnIndex The columnIndex for column with fixed width
+ * @param width The width in world coordinate units
+ * @pre The column columnIndex must exist.
+ */
+ void SetFixedWidth( unsigned int columnIndex, float width );
+
+ /**
+ * @brief Gets a column's fixed width.
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The column index with fixed width
+ * @return Width in world coordinate units
+ * @pre The column columnIndex must exist.
+ * @note The returned value is valid if it has been set before.
+ */
+ float GetFixedWidth( unsigned int columnIndex ) const;
+
+ /**
+ * @brief Sets a column to have relative width. Relative width means percentage of
+ * the remainder of table width after subtracting Padding and Fixed width columns.
+ * Setting a relative width of 0 has no effect.
+ * @SINCE_1_0.0
+ * @param columnIndex The columnIndex for column with fixed width
+ * @param widthPercentage The widthPercentage between 0.0f and 1.0f
+ * @pre The column columnIndex must exist.
+ */
+ void SetRelativeWidth( unsigned int columnIndex, float widthPercentage );
+
+ /**
+ * @brief Gets a column's relative width.
+ * @SINCE_1_0.0
+ * @param[in] columnIndex The column index with relative width
+ * @return Width in percentage units, between 0.0f and 1.0f
+ * @pre The column columnIndex must exist.
+ * @note The returned value is valid if it has been set before.
+ */
+ float GetRelativeWidth( unsigned int columnIndex ) const;
+
+ /**
+ * @brief Gets the amount of rows in the table.
+ * @SINCE_1_0.0
+ * @return The amount of rows in the table
+ */
+ unsigned int GetRows();
+
+ /**
+ * @brief Gets the amount of columns in the table.
+ * @SINCE_1_0.0
+ * @return The amount of columns in the table
+ */
+ unsigned int GetColumns();
+
+ /**
+ * @brief Sets the alignment on a cell.
+ *
+ * Cells without calling this function have the default values of LEFT and TOP respectively.
+ *
+ * @SINCE_1_0.0
+ * @param[in] position The cell to set alignment on
+ * @param[in] horizontal The horizontal alignment
+ * @param[in] vertical The vertical alignment
+ */
+ void SetCellAlignment( CellPosition position, HorizontalAlignment::Type horizontal, VerticalAlignment::Type vertical );
+
+public: // Not intended for application developers
+
+ /// @cond internal
+ /**
+ * @brief Creates a handle using the Toolkit::Internal implementation.
+ * @SINCE_1_0.0
+ * @param[in] implementation The Control implementation
+ */
+ DALI_INTERNAL TableView(Internal::TableView& implementation);
+
+ /**
+ * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
+ * @SINCE_1_0.0
+ * @param[in] internal A pointer to the internal CustomActor
+ */
+ explicit DALI_INTERNAL TableView( Dali::Internal::CustomActor* internal );
+ /// @endcond
+};
+
+/**
+ * @}
+ */
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // DALI_TOOLKIT_TABLE_VIEW_H
#include <string>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
namespace Dali
{
# Add local source files here
SET( devel_api_src_files
+ ${devel_api_src_dir}/accessibility-manager/accessibility-manager.cpp
${devel_api_src_dir}/asset-manager/asset-manager.cpp
${devel_api_src_dir}/builder/base64-encoding.cpp
${devel_api_src_dir}/builder/builder.cpp
${devel_api_src_dir}/controls/control-devel.cpp
${devel_api_src_dir}/controls/control-wrapper.cpp
${devel_api_src_dir}/controls/control-wrapper-impl.cpp
+ ${devel_api_src_dir}/controls/alignment/alignment.cpp
${devel_api_src_dir}/controls/bloom-view/bloom-view.cpp
${devel_api_src_dir}/controls/bubble-effect/bubble-emitter.cpp
${devel_api_src_dir}/controls/buttons/toggle-button.cpp
${devel_api_src_dir}/controls/popup/popup.cpp
${devel_api_src_dir}/controls/progress-bar/progress-bar-devel.cpp
${devel_api_src_dir}/controls/scene3d-view/scene3d-view.cpp
+ ${devel_api_src_dir}/controls/scroll-bar/scroll-bar.cpp
${devel_api_src_dir}/controls/shadow-view/shadow-view.cpp
${devel_api_src_dir}/controls/super-blur-view/super-blur-view.cpp
+ ${devel_api_src_dir}/controls/table-view/table-view.cpp
${devel_api_src_dir}/controls/text-controls/text-editor-devel.cpp
${devel_api_src_dir}/controls/text-controls/text-field-devel.cpp
${devel_api_src_dir}/controls/text-controls/text-selection-popup.cpp
${devel_api_src_dir}/toolkit-property-index-ranges.h
)
+SET( devel_api_accessibility-manager_header_files
+ ${devel_api_src_dir}/accessibility-manager/accessibility-manager.h
+)
+
SET( devel_api_controls_header_files
${devel_api_src_dir}/controls/control-depth-index-ranges.h
${devel_api_src_dir}/controls/control-devel.h
${devel_api_src_dir}/controls/control-wrapper-impl.h
)
+SET( devel_api_alignment_header_files
+ ${devel_api_src_dir}/controls/alignment/alignment.h
+)
+
SET( devel_api_bloom_view_header_files
${devel_api_src_dir}/controls/bloom-view/bloom-view.h
)
${devel_api_src_dir}/controls/progress-bar/progress-bar-devel.h
)
+SET( devel_api_scroll_bar_header_files
+ ${devel_api_src_dir}/controls/scroll-bar/scroll-bar.h
+)
+
+SET( devel_api_table_view_header_files
+ ${devel_api_src_dir}/controls/table-view/table-view.h
+)
+
SET( devel_api_visual_factory_header_files
${devel_api_src_dir}/visual-factory/transition-data.h
${devel_api_src_dir}/visual-factory/visual-factory.h
SET( DEVEL_API_HEADERS ${DEVEL_API_HEADERS}
${devel_api_header_files}
+ ${devel_api_accessibility-manager_header_files}
+ ${devel_api_alignment_header_files}
${devel_api_controls_header_files}
${devel_api_bloom_view_header_files}
${devel_api_bubble_emitter_header_files}
${devel_api_page_turn_view_header_files}
${devel_api_popup_header_files}
${devel_api_progress_bar_header_files}
+ ${devel_api_scroll_bar_header_files}
+ ${devel_api_table_view_header_files}
${devel_api_visual_factory_header_files}
${devel_api_visuals_header_files}
${devel_api_scene3d_view_header_files}
#include <dali/public-api/object/base-object.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/accessibility-manager/accessibility-manager.h>
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
#include <dali/public-api/adaptor-framework/tts-player.h>
namespace Dali
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
namespace Dali
{
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/buttons/radio-button.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include "button-impl.h"
namespace Dali
#include <dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h>
#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
-#include <dali-toolkit/public-api/accessibility-manager/accessibility-manager.h>
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
#include <dali-toolkit/public-api/visuals/color-visual-properties.h>
#include <dali-toolkit/public-api/visuals/visual-properties.h>
#include <dali-toolkit/internal/focus-manager/keyboard-focus-manager-impl.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/devel-api/controls/popup/popup.h>
namespace Dali
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
namespace Dali
{
#include <dali/devel-api/object/property-helper-devel.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/item-factory.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout.h>
#include <dali-toolkit/public-api/controls/scrollable/item-view/default-item-layout-property.h>
#include <dali/integration-api/debug.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-constraints.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-mode.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
#include <dali-toolkit/internal/controls/scrollable/scroll-view/scroll-base-impl.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view-effect.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include "array-2d.h"
namespace Dali
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
#include <dali-toolkit/public-api/controls/text-controls/text-editor.h>
#include <dali-toolkit/internal/text/decorator/text-decorator.h>
#include <dali-toolkit/internal/text/text-control-interface.h>
#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/public-api/controls/buttons/push-button.h>
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-popup.h>
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/public-api/controls/scrollable/scroll-view/scroll-view.h>
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/scroll-bar/scroll-bar.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/devel-api/controls/text-controls/text-selection-toolbar.h>
// EXTERNAL INCLUDES
#include <dali/public-api/object/type-registry-helper.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
+#include <dali-toolkit/devel-api/controls/alignment/alignment.h>
namespace Dali
{
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/devel-api/controls/tool-bar/tool-bar.h>
namespace Dali
#include <dali/devel-api/scripting/enum-helper.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
+#include <dali-toolkit/devel-api/controls/table-view/table-view.h>
#include <dali-toolkit/public-api/controls/text-controls/text-label.h>
#include <dali-toolkit/public-api/visuals/visual-properties.h>
#include <dali-toolkit/devel-api/controls/tooltip/tooltip-properties.h>
#include <dali-toolkit/public-api/controls/control.h>
#include <dali-toolkit/public-api/controls/control-impl.h>
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
-#include <dali-toolkit/public-api/accessibility-manager/accessibility-manager.h>
+#include <dali-toolkit/devel-api/accessibility-manager/accessibility-manager.h>
#include <dali-toolkit/devel-api/controls/control-devel.h>
#include <dali-toolkit/public-api/styling/style-manager.h>
#include <dali-toolkit/devel-api/styling/style-manager-devel.h>
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/public-api/accessibility-manager/accessibility-manager.h>
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-#include <dali/devel-api/common/singleton-service.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/accessibility-manager/accessibility-manager-impl.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-AccessibilityManager::AccessibilityManager()
-{
-}
-
-AccessibilityManager::~AccessibilityManager()
-{
-}
-
-AccessibilityManager AccessibilityManager::Get()
-{
- AccessibilityManager manager;
-
- // Check whether the accessibility manager is already created
- SingletonService singletonService( SingletonService::Get() );
- if ( singletonService )
- {
- Dali::BaseHandle handle = singletonService.GetSingleton(typeid(AccessibilityManager));
- if(handle)
- {
- // If so, downcast the handle of singleton to focus manager
- manager = AccessibilityManager(dynamic_cast<Internal::AccessibilityManager*>(handle.GetObjectPtr()));
- }
-
- if(!manager)
- {
- // If not, create the accessibility manager and register it as a singleton
- Internal::AccessibilityManager* internalManager = new Internal::AccessibilityManager();
- manager = AccessibilityManager( internalManager );
- internalManager->Initialise();
- singletonService.Register( typeid(manager), manager );
- }
- }
-
- return manager;
-}
-
-AccessibilityManager::AccessibilityManager(Internal::AccessibilityManager *impl)
- : BaseHandle(impl)
-{
-}
-
-void AccessibilityManager::SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text)
-{
- GetImpl(*this).SetAccessibilityAttribute(actor, type, text);
-}
-
-std::string AccessibilityManager::GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const
-{
- return GetImpl(*this).GetAccessibilityAttribute(actor, type);
-}
-
-void AccessibilityManager::SetFocusOrder(Actor actor, const unsigned int order)
-{
- GetImpl(*this).SetFocusOrder(actor, order);
-}
-
-unsigned int AccessibilityManager::GetFocusOrder(Actor actor) const
-{
- return GetImpl(*this).GetFocusOrder(actor);
-}
-
-unsigned int AccessibilityManager::GenerateNewFocusOrder() const
-{
- return GetImpl(*this).GenerateNewFocusOrder();
-}
-
-Actor AccessibilityManager::GetActorByFocusOrder(const unsigned int order)
-{
- return GetImpl(*this).GetActorByFocusOrder(order);
-}
-
-bool AccessibilityManager::SetCurrentFocusActor(Actor actor)
-{
- return GetImpl(*this).SetCurrentFocusActor(actor);
-}
-
-Actor AccessibilityManager::GetCurrentFocusActor()
-{
- return GetImpl(*this).GetCurrentFocusActor();
-}
-
-Actor AccessibilityManager::GetCurrentFocusGroup()
-{
- return GetImpl(*this).GetCurrentFocusGroup();
-}
-
-unsigned int AccessibilityManager::GetCurrentFocusOrder()
-{
- return GetImpl(*this).GetCurrentFocusOrder();
-}
-
-bool AccessibilityManager::MoveFocusForward()
-{
- return GetImpl(*this).MoveFocusForward();
-}
-
-bool AccessibilityManager::MoveFocusBackward()
-{
- return GetImpl(*this).MoveFocusBackward();
-}
-
-void AccessibilityManager::ClearFocus()
-{
- GetImpl(*this).ClearFocus();
-}
-
-void AccessibilityManager::Reset()
-{
- GetImpl(*this).Reset();
-}
-
-void AccessibilityManager::SetFocusGroup(Actor actor, bool isFocusGroup)
-{
- GetImpl(*this).SetFocusGroup(actor, isFocusGroup);
-}
-
-bool AccessibilityManager::IsFocusGroup(Actor actor) const
-{
- return GetImpl(*this).IsFocusGroup(actor);
-}
-
-void AccessibilityManager::SetGroupMode(bool enabled)
-{
- GetImpl(*this).SetGroupMode(enabled);
-}
-
-bool AccessibilityManager::GetGroupMode() const
-{
- return GetImpl(*this).GetGroupMode();
-}
-
-void AccessibilityManager::SetWrapMode(bool wrapped)
-{
- GetImpl(*this).SetWrapMode(wrapped);
-}
-
-bool AccessibilityManager::GetWrapMode() const
-{
- return GetImpl(*this).GetWrapMode();
-}
-
-void AccessibilityManager::SetFocusIndicatorActor(Actor indicator)
-{
- GetImpl(*this).SetFocusIndicatorActor(indicator);
-}
-
-Actor AccessibilityManager::GetFocusIndicatorActor()
-{
- return GetImpl(*this).GetFocusIndicatorActor();
-}
-
-Actor AccessibilityManager::GetFocusGroup(Actor actor)
-{
- return GetImpl(*this).GetFocusGroup(actor);
-}
-
-Vector2 AccessibilityManager::GetReadPosition() const
-{
- return GetImpl(*this).GetReadPosition();
-}
-
-AccessibilityManager::FocusChangedSignalType& AccessibilityManager::FocusChangedSignal()
-{
- return GetImpl(*this).FocusChangedSignal();
-}
-
-AccessibilityManager::FocusOvershotSignalType& AccessibilityManager::FocusOvershotSignal()
-{
- return GetImpl(*this).FocusOvershotSignal();
-}
-
-AccessibilityManager::FocusedActorActivatedSignalType& AccessibilityManager::FocusedActorActivatedSignal()
-{
- return GetImpl(*this).FocusedActorActivatedSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::StatusChangedSignal()
-{
- return GetImpl(*this).StatusChangedSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionNextSignal()
-{
- return GetImpl(*this).ActionNextSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPreviousSignal()
-{
- return GetImpl(*this).ActionPreviousSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionActivateSignal()
-{
- return GetImpl(*this).ActionActivateSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionOverSignal()
-{
- return GetImpl(*this).ActionOverSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadSignal()
-{
- return GetImpl(*this).ActionReadSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadNextSignal()
-{
- return GetImpl(*this).ActionReadNextSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPreviousSignal()
-{
- return GetImpl(*this).ActionReadPreviousSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionUpSignal()
-{
- return GetImpl(*this).ActionUpSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionDownSignal()
-{
- return GetImpl(*this).ActionDownSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionClearFocusSignal()
-{
- return GetImpl(*this).ActionClearFocusSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionBackSignal()
-{
- return GetImpl(*this).ActionBackSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollUpSignal()
-{
- return GetImpl(*this).ActionScrollUpSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionScrollDownSignal()
-{
- return GetImpl(*this).ActionScrollDownSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageLeftSignal()
-{
- return GetImpl(*this).ActionPageLeftSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageRightSignal()
-{
- return GetImpl(*this).ActionPageRightSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageUpSignal()
-{
- return GetImpl(*this).ActionPageUpSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionPageDownSignal()
-{
- return GetImpl(*this).ActionPageDownSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToFirstSignal()
-{
- return GetImpl(*this).ActionMoveToFirstSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionMoveToLastSignal()
-{
- return GetImpl(*this).ActionMoveToLastSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromTopSignal()
-{
- return GetImpl(*this).ActionReadFromTopSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadFromNextSignal()
-{
- return GetImpl(*this).ActionReadFromNextSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionZoomSignal()
-{
- return GetImpl(*this).ActionZoomSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadIndicatorInformationSignal()
-{
- DALI_LOG_WARNING_NOFN("DEPRECATION WARNING: ActionReadIndicatorInformationSignal is deprecated and will be removed from next release.\n" );
-
- return GetImpl(*this).ActionReadIndicatorInformationSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionReadPauseResumeSignal()
-{
- return GetImpl(*this).ActionReadPauseResumeSignal();
-}
-
-AccessibilityManager::AccessibilityActionSignalType& AccessibilityManager::ActionStartStopSignal()
-{
- return GetImpl(*this).ActionStartStopSignal();
-}
-
-AccessibilityManager::AccessibilityActionScrollSignalType& AccessibilityManager::ActionScrollSignal()
-{
- return GetImpl(*this).ActionScrollSignal();
-}
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-#ifndef DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
-#define DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
-
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/actors/actor.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/dali-toolkit-common.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal DALI_INTERNAL
-{
-class AccessibilityManager;
-}
-/**
- * @addtogroup dali_toolkit_managers
- * @{
- */
-
-/**
- * @brief Manages registration of actors in an accessibility focus chain and changing the
- * focused actor within that chain.
- *
- * This class provides the functionality of registering the focus order and description
- * of actors and maintaining the focus chain.
- *
- * It provides functionality of setting the
- * focus and moving the focus forward and backward. It also draws a highlight for the
- * focused actor and emits a signal when the focus is changed.
- *
- * Signals
- * | %Signal Name | Method |
- * |-----------------------|------------------------------------|
- * | focusChanged | @ref FocusChangedSignal() |
- * | focusOvershot | @ref FocusOvershotSignal() |
- * | focusedActorActivated | @ref FocusedActorActivatedSignal() |
- * @SINCE_1_0.0
- */
-class DALI_TOOLKIT_API AccessibilityManager : public BaseHandle
-{
-public:
-
- // Typedefs
-
- /**
- * @brief Accessibility Action Signal.
- *
- * The connected signal callback should return true if handled.
- * @SINCE_1_0.0
- */
- typedef Signal< bool ( AccessibilityManager& ) > AccessibilityActionSignalType; ///< Generic signal type @SINCE_1_0.0
- typedef Signal< bool ( AccessibilityManager&, const Dali::TouchEvent& )> AccessibilityActionScrollSignalType; ///< Scroll signal type @SINCE_1_0.0
-
- /**
- * @brief Enumeration for accessibility that needs four information which will be read by screen-reader.
- *
- * Reading order : Label -> Trait -> Optional (Value and Hint)
- * @SINCE_1_0.0
- */
- enum AccessibilityAttribute
- {
- ACCESSIBILITY_LABEL = 0, ///< Simple text which contained in ui-control @SINCE_1_0.0
- ACCESSIBILITY_TRAIT, ///< Description of ui-control trait @SINCE_1_0.0
- ACCESSIBILITY_VALUE, ///< Current value of ui-control (Optional) @SINCE_1_0.0
- ACCESSIBILITY_HINT, ///< Hint for action (Optional) @SINCE_1_0.0
- ACCESSIBILITY_ATTRIBUTE_NUM ///< Number of attributes @SINCE_1_0.0
- };
-
- /**
- * @brief Enumeration for overshoot direction.
- * @SINCE_1_0.0
- */
- enum FocusOvershotDirection
- {
- OVERSHOT_PREVIOUS = -1, ///< Try to move previous of the first actor @SINCE_1_0.0
- OVERSHOT_NEXT = 1, ///< Try to move next of the last actor @SINCE_1_0.0
- };
-
- public:
-
- /// @brief Focus changed signal
- /// @SINCE_1_0.0
- typedef Signal< void ( Actor, Actor ) > FocusChangedSignalType;
-
- /// @brief Focus overshooted signal
- /// @SINCE_1_0.0
- typedef Signal< void ( Actor, FocusOvershotDirection ) > FocusOvershotSignalType;
-
- /// @brief Focused actor activated signal
- /// @SINCE_1_0.0
- typedef Signal< void ( Actor ) > FocusedActorActivatedSignalType;
-
- /**
- * @brief Creates an AccessibilityManager handle; this can be initialised with AccessibilityManager::New().
- *
- * Calling member functions with an uninitialized handle is not allowed.
- * @SINCE_1_0.0
- */
- AccessibilityManager();
-
- /**
- * @brief Destructor.
- *
- * This is non-virtual since derived Handle types must not contain data or virtual methods.
- * @SINCE_1_0.0
- */
- ~AccessibilityManager();
-
- /**
- * @brief Gets the singleton of AccessibilityManager object.
- *
- * @SINCE_1_0.0
- * @return A handle to the AccessibilityManager control
- */
- static AccessibilityManager Get();
-
- /**
- * @brief Sets the information of the specified actor's accessibility attribute.
- *
- * @SINCE_1_0.0
- * @param actor The actor, the text to be set with
- * @param type The attribute type the text to be set with
- * @param text The text for the actor's accessibility information
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- void SetAccessibilityAttribute(Actor actor, AccessibilityAttribute type, const std::string& text);
-
- /**
- * @brief Gets the text of the specified actor's accessibility attribute.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be queried
- * @param type The attribute type to be queried
- * @return The text of the actor's accessibility information
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- std::string GetAccessibilityAttribute(Actor actor, AccessibilityAttribute type) const;
-
- /**
- * @brief Sets the focus order of the actor.
- *
- * The focus order of each actor in the focus chain is unique.
- * If there is another actor assigned with the same focus order
- * already, the new actor will be inserted to the focus chain with
- * that focus order, and the focus order of the original actor and
- * all the actors followed in the focus chain will be increased
- * accordingly. If the focus order assigned to the actor is 0, it
- * means that actor's focus order is undefined (e.g. the actor has a
- * description but with no focus order being set yet) and therefore
- * that actor is not focusable.
- *
- * @SINCE_1_0.0
- * @param actor The actor the focus order to be set with
- * @param order The focus order of the actor
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- void SetFocusOrder(Actor actor, const unsigned int order);
-
- /**
- * @brief Gets the focus order of the actor.
- *
- * When the focus order is 0, it means the focus order of the actor
- * is undefined.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be queried
- * @return The focus order of the actor
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- unsigned int GetFocusOrder(Actor actor) const;
-
- /**
- * @brief Generates a new focus order number which can be used to
- * assign to actors which need to be appended to the end of the
- * current focus order chain.
- *
- * The new number will be an increment over the very last focus
- * order number in the focus chain. If the focus chain is empty then
- * the function returns 1, else the number returned will be FOLast +
- * 1 where FOLast is the focus order of the very last control in the
- * focus chain.
- *
- * @SINCE_1_0.0
- * @return The focus order of the actor
- * @pre The AccessibilityManager has been initialized.
- */
- unsigned int GenerateNewFocusOrder() const;
-
- /**
- * @brief Gets the actor that has the specified focus order.
- *
- * It will return an empty handle if no actor in the stage
- * has the specified focus order.
- *
- * @SINCE_1_0.0
- * @param order The focus order of the actor
- *
- * @return The actor that has the specified focus order or an empty
- * handle if no actor in the stage has the specified focus order
- * @pre The AccessibilityManager has been initialized.
- */
- Actor GetActorByFocusOrder(const unsigned int order);
-
- /**
- * @brief Moves the focus to the specified actor.
- *
- * Only one actor can be focused at the same time. The actor must
- * have a defined focus order and must be focusable, visible and in
- * the stage.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be focused
- * @return Whether the focus is successful or not
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- bool SetCurrentFocusActor(Actor actor);
-
- /**
- * @brief Gets the current focused actor.
- *
- * @SINCE_1_0.0
- * @return A handle to the current focused actor or an empty handle if no actor is focused
- * @pre The AccessibilityManager has been initialized.
- */
- Actor GetCurrentFocusActor();
-
- /**
- * @brief Gets the focus group of current focused actor.
- *
- * @SINCE_1_0.0
- * @return A handle to the immediate parent of the current focused
- * actor which is also a focus group, or an empty handle if no actor
- * is focused
- * @pre The AccessibilityManager has been initialized.
- *
- */
- Actor GetCurrentFocusGroup();
-
- /**
- * @brief Gets the focus order of currently focused actor.
- * @SINCE_1_0.0
- * @return The focus order of the currently focused actor or 0 if no
- * actor is in focus
- * @pre The AccessibilityManager has been initialized.
- *
- */
- unsigned int GetCurrentFocusOrder();
-
- /**
- * @brief Moves the focus to the next focusable actor in the focus
- * chain (according to the focus traversal order).
- *
- * When the focus movement is wrapped around, the focus will be moved
- * to the first focusable actor when it reaches the end of the focus chain.
- *
- * @SINCE_1_0.0
- * @return true if the moving was successful
- * @pre The AccessibilityManager has been initialized.
- */
- bool MoveFocusForward();
-
- /**
- * @brief Moves the focus to the previous focusable actor in the
- * focus chain (according to the focus traversal order).
- *
- * When the focus movement is wrapped around, the focus will be
- * moved to the last focusable actor when it reaches the beginning
- * of the focus chain.
- *
- * @SINCE_1_0.0
- * @return true if the moving was successful
- * @pre The AccessibilityManager has been initialized.
- */
- bool MoveFocusBackward();
-
- /**
- * @brief Clears the focus from the current focused actor if any, so
- * that no actor is focused in the focus chain.
- *
- * It will emit focus changed signal without current focused actor.
- * @SINCE_1_0.0
- * @pre The AccessibilityManager has been initialized.
- */
- void ClearFocus();
-
- /**
- * @brief Clears every registered focusable actor from focus-manager.
- * @SINCE_1_0.0
- * @pre The AccessibilityManager has been initialized.
- */
- void Reset();
-
- /**
- * @brief Sets whether an actor is a focus group that can limit the
- * scope of focus movement to its child actors in the focus chain.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be set as a focus group
- * @param isFocusGroup Whether to set the actor to be a focus group or not
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- void SetFocusGroup(Actor actor, bool isFocusGroup);
-
- /**
- * @brief Checks whether the actor is set as a focus group or not.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be checked
- * @return Whether the actor is set as a focus group
- * @pre The AccessibilityManager has been initialized.
- * @pre The Actor has been initialized.
- */
- bool IsFocusGroup(Actor actor) const;
-
- /**
- * @brief Sets whether the group mode is enabled or not.
- *
- * When the group mode is enabled, the focus movement will be limited to the child actors
- * of the current focus group including the current focus group itself. The current focus
- * group is the closest ancestor of the current focused actor that is set as a focus group.
- * @SINCE_1_0.0
- * @param enabled Whether the group mode is enabled or not
- * @pre The AccessibilityManager has been initialized.
- */
- void SetGroupMode(bool enabled);
-
- /**
- * @brief Gets whether the group mode is enabled or not.
- *
- * @SINCE_1_0.0
- * @return Whether the group mode is enabled or not.
- * @pre The AccessibilityManager has been initialized.
- */
- bool GetGroupMode() const;
-
- /**
- * @brief Sets whether focus will be moved to the beginning of the
- * focus chain when it reaches the end or vice versa.
- *
- * When both the wrap mode and the group mode are enabled, focus will be
- * wrapped within the current focus group. Focus will not be wrapped in default.
- * @SINCE_1_0.0
- * @param wrapped Whether the focus movement is wrapped around or not
- * @pre The AccessibilityManager has been initialized.
- */
- void SetWrapMode(bool wrapped);
-
- /**
- * @brief Gets whether the wrap mode is enabled or not.
- *
- * @SINCE_1_0.0
- * @return Whether the wrap mode is enabled or not.
- * @pre The AccessibilityManager has been initialized.
- */
- bool GetWrapMode() const;
-
- /**
- * @brief Sets the focus indicator actor.
- *
- * This will replace the default focus indicator actor in
- * AccessibilityManager and will be added to the focused actor as a
- * highlight.
- *
- * @SINCE_1_0.0
- * @param indicator The indicator actor to be added
- * @pre The AccessibilityManager has been initialized.
- * @pre The indicator actor has been initialized.
- */
- void SetFocusIndicatorActor(Actor indicator);
-
- /**
- * @brief Gets the focus indicator actor.
- *
- * @SINCE_1_0.0
- * @return A handle to the focus indicator actor
- * @pre The AccessibilityManager has been initialized.
- */
- Actor GetFocusIndicatorActor();
-
- /**
- * @brief Returns the closest ancestor of the given actor that is a focus group.
- *
- * @SINCE_1_0.0
- * @param actor The actor to be checked for its focus group
- * @return The focus group the given actor belongs to or an empty handle if the given actor doesn't belong to any focus group
- */
- Actor GetFocusGroup(Actor actor);
-
- /**
- * @brief Returns the current position of the read action.
- * @SINCE_1_0.0
- * @return The current event position
- */
- Vector2 GetReadPosition() const;
-
- public: // Signals
-
- /**
- * @brief This signal is emitted when the current focused actor is changed.
- *
- * A callback of the following type may be connected:
- * @code
- * void YourCallbackName(Actor originalFocusedActor, Actor currentFocusedActor);
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- * @pre The Object has been initialized.
- */
- FocusChangedSignalType& FocusChangedSignal();
-
- /**
- * @brief This signal is emitted when there is no way to move focus further.
- *
- * A callback of the following type may be connected:
- * @code
- * void YourCallbackName(Actor currentFocusedActor, FocusOvershotDirection direction);
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- * @pre The Object has been initialized.
- */
- FocusOvershotSignalType& FocusOvershotSignal();
-
- /**
- * @brief This signal is emitted when the current focused actor is activated.
- *
- * A callback of the following type may be connected:
- * @code
- * void YourCallbackName(Actor activatedActor);
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- * @pre The Object has been initialized.
- */
- FocusedActorActivatedSignalType& FocusedActorActivatedSignal();
-
- public: // Accessibility action signals
-
- /**
- * @brief This is emitted when accessibility(screen-reader) feature turned on or off.
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& StatusChangedSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move focus to the next
- * focusable actor (by one finger flick down).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionNextSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move focus to the previous
- * focusable actor (by one finger flick up).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionPreviousSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to activate the current focused
- * actor (by one finger double tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionActivateSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to focus and read the actor
- * (by one finger tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to focus and read the actor
- * (by one finger move).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionOverSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move focus to the next
- * focusable actor (by one finger flick right).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadNextSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move focus to the previous
- * focusable actor (by one finger flick left).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadPreviousSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to change the value when the
- * current focused actor is a slider (by double finger down and move up and right).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionUpSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to change the value when the
- * current focused actor is a slider (by double finger down and move down and left).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionDownSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to clear the focus from the
- * current focused actor if any, so that no actor is focused in the focus chain.
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionClearFocusSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to navigate back (by two
- * fingers circle draw).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionBackSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll up the list
- * (by two finger swipe up).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionScrollUpSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll down the list
- * (by two finger swipe down).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionScrollDownSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll left to the
- * previous page (by two finger swipe left).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionPageLeftSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll right to the
- * next page (by two finger swipe right).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionPageRightSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll up to the
- * previous page (by one finger swipe left and right).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionPageUpSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to scroll down to the
- * next page (by one finger swipe right and left).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionPageDownSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move the focus to
- * the first item on the screen (by one finger swipe up and down).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionMoveToFirstSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move the focus to
- * the last item on the screen (by one finger swipe down and up).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionMoveToLastSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to focus and read from the
- * first item on the top continuously (by three fingers single tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to.
- */
- AccessibilityActionSignalType& ActionReadFromTopSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to move the focus to and
- * read from the next item continuously (by three fingers double tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadFromNextSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to zoom (by one finger
- * triple tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionZoomSignal();
-
- /**
- * @DEPRECATED_1_4.9
- * @brief This is emitted when accessibility action is received to read the information
- * in the indicator (by two fingers triple tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadIndicatorInformationSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to pause/resume the
- * current speech (by two fingers single tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionReadPauseResumeSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to start/stop the
- * current action (by two fingers double tap).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionSignalType& ActionStartStopSignal();
-
- /**
- * @brief This is emitted when accessibility action is received to handle scroll event (by two
- * fingers drag).
- *
- * A callback of the following type may be connected:
- * @code
- * bool YourCallback( AccessibilityManager& manager, const TouchEvent& event );
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- */
- AccessibilityActionScrollSignalType& ActionScrollSignal();
-
-public:
-
- explicit DALI_INTERNAL AccessibilityManager( Internal::AccessibilityManager *impl );
-
-}; // class AccessibilityManager
-
-/**
- * @}
- */
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_TOOLKIT_ACCESSIBILITY_MANAGER_H
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/public-api/controls/alignment/alignment.h>
-
-// EXTERNAL INCLUDES
-#include <dali/integration-api/debug.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/controls/alignment/alignment-impl.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-Alignment::Alignment()
-{
-}
-
-Alignment Alignment::New( Type horizontal, Type vertical )
-{
- return Internal::Alignment::New( horizontal, vertical );
-}
-
-Alignment::Alignment(const Alignment& alignment)
-: Control( alignment )
-{
-}
-
-Alignment::~Alignment()
-{
-}
-
-Alignment Alignment::DownCast( BaseHandle handle )
-{
- return Control::DownCast<Alignment, Internal::Alignment>(handle);
-}
-
-void Alignment::SetAlignmentType( Type type )
-{
- GetImpl( *this ).SetAlignmentType( type );
-}
-
-Alignment::Type Alignment::GetAlignmentType() const
-{
- return GetImpl( *this ).GetAlignmentType();
-}
-
-void Alignment::SetScaling( Scaling scaling )
-{
- GetImpl( *this ).SetScaling( scaling );
-}
-
-Alignment::Scaling Alignment::GetScaling() const
-{
- return GetImpl( *this ).GetScaling();
-}
-
-void Alignment::SetPadding( const Alignment::Padding& padding )
-{
- GetImpl( *this ).SetPadding( padding );
-}
-
-const Alignment::Padding& Alignment::GetPadding() const
-{
- return GetImpl( *this ).GetPadding();
-}
-
-Alignment::Alignment( Internal::Alignment& implementation )
-: Control( implementation )
-{
-}
-
-Alignment& Alignment::operator=(const Alignment& alignment)
-{
- if( &alignment != this )
- {
- Control::operator=( alignment );
- }
- return *this;
-}
-
-Alignment::Alignment( Dali::Internal::CustomActor* internal )
-: Control( internal )
-{
- VerifyCustomActorPointer<Internal::Alignment>(internal);
-}
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-#ifndef DALI_ALIGNMENT_H
-#define DALI_ALIGNMENT_H
-
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/control.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal DALI_INTERNAL
-{
-class Alignment;
-}
-/**
- * @addtogroup dali_toolkit_controls_alignment
- * @{
- */
-
-/**
- * @brief Alignment is a container which provides an easy way to align other actors inside its boundary.
- *
- * Additionally, it provides a scaling property to resize the contained actors @see Scaling.
- * @SINCE_1_0.0
- * @note The use of scaling property will override all constraints applied to actors.
- *
- * All actors added to an alignment are going to be set with the same anchor point and parent origin. And if the scaling property is set to a value
- * different than ScaleNone, constraints as well.
- */
-class DALI_TOOLKIT_API Alignment : public Control
-{
-public:
- /**
- * @brief Enumeration for different types of alignment.
- * @SINCE_1_0.0
- */
- enum Type
- {
- HorizontalLeft = 1, ///< Horizontal left alignment @SINCE_1_0.0
- HorizontalCenter = 2, ///< Horizontal center alignment @SINCE_1_0.0
- HorizontalRight = 4, ///< Horizontal right alignment @SINCE_1_0.0
- VerticalTop = 8, ///< Vertical top alignment @SINCE_1_0.0
- VerticalCenter = 16, ///< Vertical center alignment @SINCE_1_0.0
- VerticalBottom = 32 ///< Vertical bottom alignment @SINCE_1_0.0
- };
-
- /**
- * @brief Scaling determines how actors are scaled to match the alignment's boundary.
- * @SINCE_1_0.0
- */
- enum Scaling
- {
- ScaleNone, ///< The original size is kept. @SINCE_1_0.0
- ScaleToFill, ///< Scale added actors to fill alignment's boundary. Aspect ratio is not maintained. @SINCE_1_0.0
- ScaleToFitKeepAspect, ///< Scale added actors to fit within the alignment's boundary. Aspect ratio is maintained. @SINCE_1_0.0
- ScaleToFillKeepAspect, ///< Scale added actors to fill the alignment's boundary. Aspect ratio is maintained, and the actor may exceed the alignment's boundary. @SINCE_1_0.0
- ShrinkToFit, ///< If added actors are larger than the alignment's boundary it will be shrunk down to fit. Aspect ratio is not maintained @SINCE_1_0.0
- ShrinkToFitKeepAspect, ///< If added actors are larger than the alignment's boundary it will be shrunk down to fit. Aspect ratio is maintained @SINCE_1_0.0
- };
-
- /**
- * @brief Structure describing the padding values.
- * @SINCE_1_0.0
- */
- struct Padding
- {
- /**
- * @brief Constructor.
- * @SINCE_1_0.0
- */
- Padding()
- : left( 0.f ),
- right( 0.f ),
- top( 0.f ),
- bottom( 0.f )
- {
- }
-
- /**
- * @brief Constructor.
- *
- * @SINCE_1_0.0
- * @param[in] l Left padding
- * @param[in] r Right padding
- * @param[in] t Top padding
- * @param[in] b Bottom padding
- */
- Padding( float l, float r, float t, float b )
- : left( l ),
- right( r ),
- top( t ),
- bottom( b )
- {
- }
-
- float left; ///< The left padding
- float right; ///< The right padding
- float top; ///< The top padding
- float bottom; ///< The bottom padding
- };
-
- /**
- * @brief Creates an Alignment handle; this can be initialized with Alignment::New().
- *
- * Calling member functions with an uninitialized handle is not allowed.
- * @SINCE_1_0.0
- */
- Alignment();
-
- /**
- * @brief Creates an alignment control.
- *
- * @SINCE_1_0.0
- * @param[in] horizontal Specifies how to align actors horizontally. Could be HorizontalLeft, HorizontalCenter or HorizontalRight. By default, HorizontalCenter
- * @param[in] vertical Specifies how to align actors vertically. Could be VerticalTop, VerticalCenter or VerticalBottom. By default, VerticalCenter
- * @return A handle to the Alignment control
- */
- static Alignment New( Type horizontal = HorizontalCenter, Type vertical = VerticalCenter );
-
- /**
- * @brief Copy constructor. Creates another handle that points to the same real object.
- *
- * @SINCE_1_0.0
- * @param[in] alignment Object to copy
- */
- Alignment(const Alignment& alignment);
-
- /**
- * @brief Destructor.
- *
- * This is non-virtual since derived Handle types must not contain data or virtual methods.
- * @SINCE_1_0.0
- */
- ~Alignment();
-
- /**
- * @brief Downcasts a handle to Alignment handle.
- *
- * If handle points to an Alignment, the downcast produces valid handle.
- * If not, the returned handle is left uninitialized.
- *
- * @SINCE_1_0.0
- * @param[in] handle Handle to an object
- * @return A handle to a Alignment or an uninitialized handle
- */
- static Alignment DownCast( BaseHandle handle );
-
- /**
- * @brief Sets the new alignment. By default, ( HorizontalCenter | VerticalCenter ).
- *
- * @SINCE_1_0.0
- * @param[in] type The new alignment option
- * @note There should only be one horizontal and one vertical policy.
- */
- void SetAlignmentType( Type type );
-
- /**
- * @brief Gets the current alignment combined into a single value.
- *
- * The values can be tested by using the & operator and the desired
- * flag. e.g.
- * @code
- * if (GetAlignmentType() & HorizontalCentre)
- * {
- * ...
- * }
- * @endcode
- *
- * @SINCE_1_0.0
- * @return the alignment value
- */
- Type GetAlignmentType() const;
-
- /**
- * @brief Sets how added actors scale to fit the alignment's boundary.
- *
- * @SINCE_1_0.0
- * @param[in] scaling The scaling property
- * @see Scaling.
- */
- void SetScaling( Scaling scaling );
-
- /**
- * @brief Retrieves the scaling property.
- *
- * @SINCE_1_0.0
- * @return The scaling
- * @see Scaling.
- */
- Scaling GetScaling() const;
-
- /**
- * @brief Sets a padding value.
- *
- * @SINCE_1_0.0
- * @param[in] padding The left, right, top, bottom padding values
- */
- void SetPadding( const Padding& padding );
-
- /**
- * @brief Gets the padding values.
- *
- * @SINCE_1_0.0
- * @return The left, right, top, bottom padding values
- */
- const Padding& GetPadding() const;
-
- /**
- * @brief Assignment operator.
- *
- * Changes this handle to point to another real object.
- * @SINCE_1_0.0
- * @param[in] alignment Object to copy
- * @return A reference to this
- */
- Alignment& operator=(const Alignment& alignment);
-
-public: // Not intended for application developers
-
- /// @cond internal
- /**
- * @brief Creates a handle using the Toolkit::Internal implementation.
- *
- * @SINCE_1_0.0
- * @param[in] implementation The Control implementation
- */
- DALI_INTERNAL Alignment( Internal::Alignment& implementation );
-
- /**
- * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
- *
- * @SINCE_1_0.0
- * @param[in] internal A pointer to the internal CustomActor
- */
- explicit DALI_INTERNAL Alignment( Dali::Internal::CustomActor* internal );
- /// @endcond
-};
-
-/**
- * @}
- */
-
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_ALIGNMENT_H
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/public-api/controls/scroll-bar/scroll-bar.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/controls/scroll-bar/scroll-bar-impl.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-ScrollBar::ScrollBar()
-{
-}
-
-ScrollBar::ScrollBar(Internal::ScrollBar& implementation)
-: Control( implementation )
-{
-}
-
-ScrollBar::ScrollBar( Dali::Internal::CustomActor* internal )
-: Control( internal )
-{
- VerifyCustomActorPointer<Internal::ScrollBar>(internal);
-}
-
-ScrollBar::ScrollBar( const ScrollBar& handle )
-: Control( handle )
-{
-}
-
-ScrollBar& ScrollBar::operator=( const ScrollBar& scrollBar )
-{
- if( &scrollBar != this )
- {
- Control::operator=( scrollBar );
- }
- return *this;
-}
-
-ScrollBar ScrollBar::New(ScrollBar::Direction direction)
-{
- return Internal::ScrollBar::New(direction);
-}
-
-ScrollBar ScrollBar::DownCast( BaseHandle handle )
-{
- return Control::DownCast<ScrollBar, Internal::ScrollBar>(handle);
-}
-
-ScrollBar::~ScrollBar()
-{
-}
-
-void ScrollBar::SetScrollPropertySource( Handle handle, Dali::Property::Index propertyScrollPosition, Dali::Property::Index propertyMinScrollPosition, Dali::Property::Index propertyMaxScrollPosition, Dali::Property::Index propertyScrollContentSize )
-{
- GetImpl(*this).SetScrollPropertySource(handle, propertyScrollPosition, propertyMinScrollPosition, propertyMaxScrollPosition, propertyScrollContentSize);
-}
-
-void ScrollBar::SetScrollIndicator( Actor indicator )
-{
- GetImpl(*this).SetScrollIndicator(indicator);
-}
-
-Actor ScrollBar::GetScrollIndicator()
-{
- return GetImpl(*this).GetScrollIndicator();
-}
-
-void ScrollBar::SetScrollPositionIntervals( const Dali::Vector<float>& positions )
-{
- GetImpl(*this).SetScrollPositionIntervals(positions);
-}
-
-Dali::Vector<float> ScrollBar::GetScrollPositionIntervals() const
-{
- return GetImpl(*this).GetScrollPositionIntervals();
-}
-
-void ScrollBar::SetScrollDirection( ScrollBar::Direction direction )
-{
- GetImpl(*this).SetScrollDirection(direction);
-}
-
-ScrollBar::Direction ScrollBar::GetScrollDirection() const
-{
- return GetImpl(*this).GetScrollDirection();
-}
-
-void ScrollBar::SetIndicatorHeightPolicy( ScrollBar::IndicatorHeightPolicy policy )
-{
- GetImpl(*this).SetIndicatorHeightPolicy(policy);
-}
-
-ScrollBar::IndicatorHeightPolicy ScrollBar::GetIndicatorHeightPolicy() const
-{
- return GetImpl(*this).GetIndicatorHeightPolicy();
-}
-
-void ScrollBar::SetIndicatorFixedHeight( float height )
-{
- GetImpl(*this).SetIndicatorFixedHeight(height);
-}
-
-float ScrollBar::GetIndicatorFixedHeight() const
-{
- return GetImpl(*this).GetIndicatorFixedHeight();
-}
-
-void ScrollBar::SetIndicatorShowDuration( float durationSeconds )
-{
- GetImpl(*this).SetIndicatorShowDuration(durationSeconds);
-}
-
-float ScrollBar::GetIndicatorShowDuration() const
-{
- return GetImpl(*this).GetIndicatorShowDuration();
-}
-
-void ScrollBar::SetIndicatorHideDuration( float durationSeconds )
-{
- GetImpl(*this).SetIndicatorHideDuration(durationSeconds);
-}
-
-float ScrollBar::GetIndicatorHideDuration() const
-{
- return GetImpl(*this).GetIndicatorHideDuration();
-}
-
-void ScrollBar::ShowIndicator()
-{
- GetImpl(*this).ShowIndicator();
-}
-
-void ScrollBar::HideIndicator()
-{
- GetImpl(*this).HideIndicator();
-}
-
-ScrollBar::PanFinishedSignalType& ScrollBar::PanFinishedSignal()
-{
- return GetImpl(*this).PanFinishedSignal();
-}
-
-ScrollBar::ScrollPositionIntervalReachedSignalType& ScrollBar::ScrollPositionIntervalReachedSignal()
-{
- return GetImpl(*this).ScrollPositionIntervalReachedSignal();
-}
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-#ifndef DALI_TOOLKIT_SCROLL_BAR_H
-#define DALI_TOOLKIT_SCROLL_BAR_H
-
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/control.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal DALI_INTERNAL
-{
-// Forward declarations
-
-class ScrollBar;
-}
-/**
- * @addtogroup dali_toolkit_controls_scroll_bar
- * @{
- */
-
-/**
- * @brief ScrollBar is a UI component that can be linked to the scrollable objects
- * indicating the current scroll position of the scrollable object.
- *
- * Signals
- * | %Signal Name | Method |
- * |-------------------------------|--------------------------------------------|
- * | panFinished | @ref PanFinishedSignal() |
- * | scrollPositionIntervalReached | @ref ScrollPositionIntervalReachedSignal() |
- * @SINCE_1_0.0
- */
-class DALI_TOOLKIT_API ScrollBar : public Control
-{
-public:
-
- // Properties
-
- /**
- * @brief Enumeration for the start and end property ranges for this control.
- * @SINCE_1_0.0
- */
- enum PropertyRange
- {
- PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0
- PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000 ///< Reserve property indices @SINCE_1_0.0
- };
-
- /**
- * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
- * @SINCE_1_0.0
- */
- struct Property
- {
- /**
- * @brief Enumeration for the instance of properties belonging to the ScrollBar class.
- * @SINCE_1_0.0
- */
- enum
- {
- /**
- * @brief The scrolling direction of the indicator.
- * @details Name "scrollDirection", type Property::STRING.
- * Possible values are "Vertical" and "Horizontal".
- * @SINCE_1_0.0
- * @see SetScrollDirection()
- */
- SCROLL_DIRECTION = PROPERTY_START_INDEX,
-
- /**
- * @brief The indicator height policy.
- * @details Name "indicatorHeightPolicy", type Property::STRING.
- * Possible values are "Variable" and "Fixed".
- * @SINCE_1_0.0
- * @see SetIndicatorHeightPolicy()
- */
- INDICATOR_HEIGHT_POLICY,
-
- /**
- * @brief The fixed height of the indicator.
- * @details Name "indicatorFixedHeight", type Property::FLOAT.
- * @SINCE_1_0.0
- * @see SetIndicatorFixedHeight()
- */
- INDICATOR_FIXED_HEIGHT,
-
- /**
- * @brief The duration in seconds to show the indicator.
- * @details Name "indicatorShowDuration", type Property::FLOAT.
- * @SINCE_1_0.0
- * @see SetIndicatorShowDuration()
- */
- INDICATOR_SHOW_DURATION,
-
- /**
- * @brief The duration in seconds to hide the indicator.
- * @details Name "indicatorHideDuration", type Property::FLOAT.
- * @SINCE_1_0.0
- * @see SetIndicatorHideDuration()
- */
- INDICATOR_HIDE_DURATION,
-
- /**
- * @brief The intervals at which point a notification is emitted.
- * @details Name "scrollPositionIntervals", type Property::ARRAY.
- * @SINCE_1_0.0
- * @see SetScrollPositionIntervals()
- */
- SCROLL_POSITION_INTERVALS,
-
- /**
- * @brief The minimum height for a variable size indicator.
- * @details Name "indicatorMinimumHeight", type Property::FLOAT.
- * @SINCE_1_1.36
- */
- INDICATOR_MINIMUM_HEIGHT,
-
- /**
- * @brief The padding at the start of the indicator.
- * @details Name "indicatorStartPadding", type Property::FLOAT.
- * For example, the padding at the top if scrollDirection is Vertical.
- * @SINCE_1_1.36
- */
- INDICATOR_START_PADDING,
-
- /**
- * @brief The padding at the end of the indicator.
- * @details Name "indicatorEndPadding", type Property::FLOAT.
- * For example, the padding at the bottom if scrollDirection is Vertical.
- * @SINCE_1_1.36
- */
- INDICATOR_END_PADDING,
-
- /**
- * @brief The duration that transient indicators will remain fully visible.
- * @details name "indicatorTransientDuration", type Property::FLOAT.
- * @SINCE_1_2.60
- */
- INDICATOR_TRANSIENT_DURATION,
- };
- };
-
- // Signals
-
- typedef Signal< void () > PanFinishedSignalType;
- typedef Signal< void ( float ) > ScrollPositionIntervalReachedSignalType;
-
-public:
-
- /**
- * @brief Direction.
- * @SINCE_1_0.0
- */
- enum Direction
- {
- Vertical = 0, ///< Scroll in the vertical direction @SINCE_1_0.0
- Horizontal ///< Scroll in the horizontal direction @SINCE_1_0.0
- };
-
- /**
- * @brief Indicator height policy.
- * @SINCE_1_0.0
- */
- enum IndicatorHeightPolicy
- {
- Variable = 0, ///< Variable height changed dynamically according to the length of scroll content @SINCE_1_0.0
- Fixed ///< Fixed height regardless of the length of scroll content @SINCE_1_0.0
- };
-
- /**
- * @brief Creates an uninitialized ScrollBar; this can be initialized with ScrollBar::New()
- * Calling member functions with an uninitialized Dali::Object is not allowed.
- * @SINCE_1_0.0
- */
- ScrollBar();
-
- /**
- * @brief Copy constructor.
- * @SINCE_1_0.0
- * @param[in] scrollBar Handle to an object
- */
- ScrollBar( const ScrollBar& scrollBar );
-
- /**
- * @brief Assignment operator.
- * @SINCE_1_0.0
- * @param[in] scrollBar Handle to an object
- * @return A reference to this
- */
- ScrollBar& operator=( const ScrollBar& scrollBar );
-
- /**
- * @brief Destructor.
- *
- * This is non-virtual since derived Handle types must not contain data or virtual methods.
- * @SINCE_1_0.0
- */
- ~ScrollBar();
-
- /**
- * @brief Creates an initialized ScrollBar.
- * @SINCE_1_0.0
- * @param[in] direction The direction of scroll bar (either vertically or horizontally)
- * @return A pointer to the created ScrollBar
- */
- static ScrollBar New(Direction direction = Vertical);
-
- /**
- * @brief Downcasts a handle to ScrollBar handle.
- *
- * If handle points to a ScrollBar, the downcast produces valid handle.
- * If not, the returned handle is left uninitialized.
- * @SINCE_1_0.0
- * @param[in] handle Handle to an object
- * @return Handle to a ScrollBar or an uninitialized handle
- */
- static ScrollBar DownCast( BaseHandle handle );
-
- /**
- * @brief Sets the source of the scroll position properties.
- *
- * @SINCE_1_0.0
- * @param[in] handle The handle of the object owing the scroll properties
- * @param[in] propertyScrollPosition The index of the scroll position property (The scroll position, type float)
- * @param[in] propertyMinScrollPosition The index of the minimum scroll position property (The minimum scroll position, type float)
- * @param[in] propertyMaxScrollPosition The index of the maximum scroll position property (The maximum scroll position, type float)
- * @param[in] propertyScrollContentSize The index of the scroll content size property (The size of the scrollable content in actor coordinates, type float)
- * @pre The handle to the object owing the scroll properties has been initialised and the property index must be valid.
- */
- void SetScrollPropertySource( Handle handle, Dali::Property::Index propertyScrollPosition, Dali::Property::Index propertyMinScrollPosition, Dali::Property::Index propertyMaxScrollPosition, Dali::Property::Index propertyScrollContentSize );
-
- /**
- * @brief Sets the indicator of scroll bar.
- *
- * @SINCE_1_0.0
- * @param[in] indicator The indicator that moves to indicate the current scroll position
- * @pre The scroll bar actor has been initialized.
- */
- void SetScrollIndicator( Actor indicator );
-
- /**
- * @brief Gets the indicator of scroll bar.
- *
- * @SINCE_1_0.0
- * @return The indicator indicates the current scroll position of the scrollable content
- * @pre The scroll bar actor has been initialized.
- */
- Actor GetScrollIndicator();
-
- /**
- * @brief Sets the list of values to get notification when the current scroll position of the scrollable
- * object goes above or below any of these values.
- *
- * @SINCE_1_0.0
- * @param[in] positions List of values to receive notifications for when the current scroll position crosses them
- * @pre The scroll bar actor has been initialized.
- */
- void SetScrollPositionIntervals( const Dali::Vector<float>& positions );
-
- /**
- * @brief Gets the list of values to receive notifications when the current scroll position of the scrollable
- * object goes above or below any of these values.
- *
- * @SINCE_1_0.0
- * @return The list of values to receive notifications for when the current scroll position crosses them
- * @pre The scroll bar actor has been initialized.
- *
- */
- Dali::Vector<float> GetScrollPositionIntervals() const;
-
- /**
- * @brief Sets the direction of scroll bar to scroll either vertically or horizontally.
- *
- * @SINCE_1_0.0
- * @param[in] direction The direction of scroll bar (either vertically or horizontally)
- * @pre The scroll bar actor has been initialized.
- */
- void SetScrollDirection( Direction direction );
-
- /**
- * @brief Gets the direction of scroll bar.
- *
- * @SINCE_1_0.0
- * @return The direction of scroll bar
- */
- Direction GetScrollDirection() const;
-
- /**
- * @brief Sets the height policy of scroll indicator to have either variable or fixed height.
- *
- * @SINCE_1_0.0
- * @param[in] policy The height policy of scroll indicator
- * @pre The scroll bar actor has been initialized.
- */
- void SetIndicatorHeightPolicy( IndicatorHeightPolicy policy );
-
- /**
- * @brief Gets the height policy of scroll indicator.
- *
- * @SINCE_1_0.0
- * @return The height policy of scroll indicator
- */
- IndicatorHeightPolicy GetIndicatorHeightPolicy() const;
-
- /**
- * @brief Sets the fixed height of scroll indicator.
- *
- * Normally the height of scroll indicator is changed dynamically according to the length of scroll content.
- * However, when the height policy of scroll indicator is set to be fixed, the height will be kept fixed
- * regardless of the length of scroll content.
- *
- * @SINCE_1_0.0
- * @param[in] height The fixed height of the scroll indicator
- * @pre The scroll bar actor has been initialized.
- *
- */
- void SetIndicatorFixedHeight( float height );
-
- /**
- * @brief Gets the fix height of scroll indicator.
- * @SINCE_1_0.0
- * @return The fixed height of the scroll indicator
- */
- float GetIndicatorFixedHeight() const;
-
- /**
- * @brief Sets the duration in seconds for the scroll indicator to become fully visible.
- *
- * @SINCE_1_0.0
- * @param[in] durationSeconds The duration for the scroll indicator to become fully visible
- * @pre The scroll bar actor has been initialised; durationSeconds must be zero or greater; zero means the indicator will be shown instantly.
- *
- */
- void SetIndicatorShowDuration( float durationSeconds );
-
- /**
- * @brief Gets the duration in seconds for the scroll indicator to become fully visible.
- * @SINCE_1_0.0
- * @return The duration for the scroll indicator to become fully visible
- */
- float GetIndicatorShowDuration() const;
-
- /**
- * @brief Sets the duration in seconds for the scroll indicator to become fully invisible.
- *
- * @SINCE_1_0.0
- * @param[in] durationSeconds The duration for the scroll indicator to become fully invisible
- * @pre The scroll bar actor has been initialised; durationSeconds must be zero or greater; zero means the indicator will be hidden instantly.
- *
- */
- void SetIndicatorHideDuration( float durationSeconds );
-
- /**
- * @brief Gets the duration in seconds for the scroll indicator to become fully invisible.
- * @SINCE_1_0.0
- * @return The duration for the scroll indicator to become fully invisible
- */
- float GetIndicatorHideDuration() const;
-
- /**
- * @brief Shows the scroll indicator.
- * @SINCE_1_0.0
- */
- void ShowIndicator();
-
- /**
- * @brief Hides the scroll indicator.
- * @SINCE_1_0.0
- */
- void HideIndicator();
-
-public: // Signals
-
- /**
- * @brief Signal emitted when panning is finished on the scroll indicator.
- *
- * Signal only emitted when the source of the scroll position properties are set.
- *
- * A callback of the following type may be connected:
- * @code
- * void YourCallbackName();
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- * @pre The Object has been initialized.
- */
- ScrollBar::PanFinishedSignalType& PanFinishedSignal();
-
- /**
- * @brief Signal emitted when the current scroll position of the scrollable content
- * goes above or below the values specified by SCROLL_POSITION_INTERVALS property.
- *
- * Signal only emitted when the source of the scroll position properties are set.
- *
- * A callback of the following type may be connected:
- * @code
- * void YourCallbackName(float currentScrollPosition);
- * @endcode
- * @SINCE_1_0.0
- * @return The signal to connect to
- * @pre The Object has been initialized.
- */
- ScrollBar::ScrollPositionIntervalReachedSignalType& ScrollPositionIntervalReachedSignal();
-
-public: // Not intended for application developers
-
- /// @cond internal
- /**
- * @brief Creates a handle using the Toolkit::Internal implementation.
- * @SINCE_1_0.0
- * @param[in] implementation The Control implementation
- */
- DALI_INTERNAL ScrollBar( Internal::ScrollBar& implementation );
-
- /**
- * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
- * @SINCE_1_0.0
- * @param[in] internal A pointer to the internal CustomActor
- */
- explicit DALI_INTERNAL ScrollBar( Dali::Internal::CustomActor* internal );
- /// @endcond
-};
-
-/**
- * @}
- */
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_TOOLKIT_SCROLL_BAR_H
+++ /dev/null
-/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// CLASS HEADER
-#include <dali-toolkit/public-api/controls/table-view/table-view.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/internal/controls/table-view/table-view-impl.h>
-
-using std::vector;
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-TableView::TableView()
-{
-}
-
-TableView::TableView( const TableView& handle )
-: Control( handle )
-{
-}
-
-TableView& TableView::operator=( const TableView& handle )
-{
- if( &handle != this )
- {
- Control::operator=( handle );
- }
- return *this;
-}
-
-TableView TableView::New( unsigned int initialRows, unsigned int initialColumns )
-{
- return Internal::TableView::New( initialRows, initialColumns );
-}
-
-TableView::~TableView()
-{
-}
-
-TableView TableView::DownCast( BaseHandle handle )
-{
- return Control::DownCast<TableView, Internal::TableView>(handle);
-}
-
-bool TableView::AddChild( Actor child, CellPosition position )
-{
- return GetImpl(*this).AddChild( child, position );
-}
-
-Actor TableView::GetChildAt( CellPosition position )
-{
- return GetImpl(*this).GetChildAt( position );
-}
-
-Actor TableView::RemoveChildAt( CellPosition position )
-{
- return GetImpl(*this).RemoveChildAt( position );
-}
-
-bool TableView::FindChildPosition( Actor child, CellPosition& position )
-{
- return GetImpl(*this).FindChildPosition( child, position );
-}
-
-void TableView::InsertRow( unsigned int rowIndex )
-{
- GetImpl(*this).InsertRow( rowIndex );
-}
-
-void TableView::DeleteRow( unsigned int rowIndex )
-{
- GetImpl(*this).DeleteRow( rowIndex );
-}
-
-void TableView::DeleteRow( unsigned int rowIndex, vector<Actor>& removed )
-{
- GetImpl(*this).DeleteRow( rowIndex, removed );
-}
-
-void TableView::InsertColumn( unsigned int columnIndex )
-{
- GetImpl(*this).InsertColumn( columnIndex );
-}
-
-void TableView::DeleteColumn( unsigned int columnIndex )
-{
- GetImpl(*this).DeleteColumn( columnIndex );
-}
-
-void TableView::DeleteColumn( unsigned int columnIndex, vector<Actor>& removed )
-{
- GetImpl(*this).DeleteColumn( columnIndex, removed );
-}
-
-void TableView::Resize( unsigned int rows, unsigned int columns )
-{
- GetImpl(*this).Resize( rows, columns );
-}
-
-void TableView::Resize( unsigned int rows, unsigned int columns, vector<Actor>& removed )
-{
- GetImpl(*this).Resize( rows, columns, removed );
-}
-
-void TableView::SetCellPadding( Size padding )
-{
- GetImpl(*this).SetCellPadding( padding );
-}
-
-Size TableView::GetCellPadding()
-{
- return GetImpl(*this).GetCellPadding();
-}
-
-void TableView::SetFitHeight( unsigned int rowIndex )
-{
- GetImpl(*this).SetFitHeight( rowIndex );
-}
-
-bool TableView::IsFitHeight( unsigned int rowIndex ) const
-{
- return GetImpl(*this).IsFitHeight( rowIndex );
-}
-
-void TableView::SetFitWidth( unsigned int columnIndex )
-{
- GetImpl(*this).SetFitWidth( columnIndex );
-}
-
-bool TableView::IsFitWidth( unsigned int columnIndex ) const
-{
- return GetImpl(*this).IsFitWidth( columnIndex );
-}
-
-void TableView::SetFixedHeight( unsigned int rowIndex, float height )
-{
- GetImpl(*this).SetFixedHeight( rowIndex, height );
-}
-
-float TableView::GetFixedHeight( unsigned int rowIndex ) const
-{
- return GetImpl(*this).GetFixedHeight( rowIndex );
-}
-
-void TableView::SetRelativeHeight( unsigned int rowIndex, float heightPercentage )
-{
- GetImpl(*this).SetRelativeHeight( rowIndex, heightPercentage );
-}
-
-float TableView::GetRelativeHeight( unsigned int rowIndex ) const
-{
- return GetImpl(*this).GetRelativeHeight( rowIndex );
-}
-
-void TableView::SetFixedWidth( unsigned int columnIndex, float width )
-{
- GetImpl(*this).SetFixedWidth( columnIndex, width );
-}
-
-float TableView::GetFixedWidth( unsigned int columnIndex ) const
-{
- return GetImpl(*this).GetFixedWidth( columnIndex );
-}
-
-void TableView::SetRelativeWidth( unsigned int columnIndex, float widthPercentage )
-{
- GetImpl(*this).SetRelativeWidth( columnIndex, widthPercentage );
-}
-
-float TableView::GetRelativeWidth( unsigned int columnIndex ) const
-{
- return GetImpl(*this).GetRelativeWidth( columnIndex );
-}
-
-unsigned int TableView::GetRows()
-{
- return GetImpl(*this).GetRows();
-}
-
-unsigned int TableView::GetColumns()
-{
- return GetImpl(*this).GetColumns();
-}
-
-void TableView::SetCellAlignment( CellPosition position, HorizontalAlignment::Type horizontal, VerticalAlignment::Type vertical )
-{
- GetImpl(*this).SetCellAlignment( position, horizontal, vertical );
-}
-
-TableView::TableView(Internal::TableView& implementation)
-: Control(implementation)
-{
-}
-
-TableView::TableView( Dali::Internal::CustomActor* internal )
-: Control( internal )
-{
- VerifyCustomActorPointer<Internal::TableView>(internal);
-}
-
-} // namespace Toolkit
-
-} // namespace Dali
+++ /dev/null
-#ifndef DALI_TOOLKIT_TABLE_VIEW_H
-#define DALI_TOOLKIT_TABLE_VIEW_H
-
-/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-// EXTERNAL INCLUDES
-#include <dali/public-api/common/vector-wrapper.h>
-#include <dali/public-api/actors/actor-enumerations.h>
-
-// INTERNAL INCLUDES
-#include <dali-toolkit/public-api/controls/control.h>
-
-namespace Dali
-{
-
-namespace Toolkit
-{
-
-namespace Internal DALI_INTERNAL
-{
-class TableView;
-}
-/**
- * @addtogroup dali_toolkit_controls_table_view
- * @{
- */
-
-/**
- * @brief TableView is a layout container for aligning child actors in a grid like layout.
- *
- * TableView constrains the x and y position and width and height of the child actors.
- * z position and depth are left intact so that 3D model actors can also be laid out
- * in a grid without loosing their depth scaling.
- *
- * @nosubgrouping
- * <h3>Per-child Custom properties for script supporting:</h3>
- *
- * When an actor is add to the tableView through Actor::Add() instead of TableView::AddChild,
- * the following custom properties of the actor are checked to decide the actor position inside the table.
- *
- * These properties are registered dynamically to the child and is non-animatable.
- *
- * | %Property Name | Type |
- * |-------------------------|-------------|
- * | cellIndex | Vector2 |
- * | rowSpan | float |
- * | columnSpan | float |
- * | cellHorizontalAlignment | string |
- * | cellVerticalAlignment | string |
- *
- * The rowSpan or columnSpan has integer value, but its type is float here due to the limitation of the builder's ability to differentiate integer and float from Json string.
- * The available values for cellHorizontalAlignment are: left, center, right.
- * The available values for cellVerticalAlignment are: top, center, bottom.
- *
- * @code
- * "name":"gallery1",
- * "type":"ImageView",
- * "image": {
- * "url": "{DALI_IMAGE_DIR}gallery-small-1.jpg"
- * },
- * "properties": {
- * "cellIndex":[1,1], // Property to specify the top-left cell this child occupies, if not set, the first available cell is used
- * "rowSpan":3, // Property to specify how many rows this child occupies, if not set, default value is 1
- * "columnSpan": 2, // Property to specify how many columns this child occupies, if nor set, default value is 1
- * "cellHorizontalAlignment": "left", // Property to specify how to align horizontally inside the cells, if not set, default value is 'left'
- * "cellVerticalAlignment": "center" // Property to specify how to align vertically inside the cells, if not set, default value is 'top'
- * }
- * @endcode
- * @SINCE_1_0.0
- */
-class DALI_TOOLKIT_API TableView : public Control
-{
-public:
-
- /**
- * @brief Enumeration for the start and end property ranges for this control.
- * @SINCE_1_0.0
- */
- enum PropertyRange
- {
- PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_0.0
- PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000, ///< Reserve property indices @SINCE_1_0.0
-
- CHILD_PROPERTY_START_INDEX = CHILD_PROPERTY_REGISTRATION_START_INDEX, ///< @SINCE_1_1.36
- CHILD_PROPERTY_END_INDEX = CHILD_PROPERTY_REGISTRATION_START_INDEX + 1000 ///< Reserve child property indices @SINCE_1_1.36
- };
-
- /**
- * @brief Enumeration for the instance of properties belonging to the TableView class.
- *
- * LayoutRows: set the height of the rows.
- * It has the format as follows in script:
- * @code
- * "layoutRows":
- * {
- * "0": { "policy": "fixed", "value": 40 }, //@see SetFixedHight
- * "2": { "policy": "relative", "value": 0.33 }, //@see SetRelativeHeight
- * "3": { "policy": "fit", "value":0.0 } //@see SetFitHeight, the value is not used, its height is decided by the children in this row
- * }
- * @endcode
- *
- * LayoutColumns: set the width of the columns.
- * It has the format as follows in script:
- * @code
- * "layoutColumns":
- * {
- * "0": { "policy": "fixed", "value": 40 }, //@see SetFixedWidth
- * "1": { "policy": "fit", "value":0.0 } //@see SetFitHeight, the value is not used, its width is decided by the children in this column
- * "2": { "policy": "relative", "value": 0.33 } //@see SetRelativeWidth
- * }
- * @endcode
- * @SINCE_1_0.0
- */
- struct Property
- {
- /**
- * @brief Enumeration for the instance of properties belonging to the TableView class.
- *
- * @SINCE_1_0.0
- */
- enum
- {
- ROWS = PROPERTY_START_INDEX, ///< name "rows", type unsigned int @SINCE_1_0.0
- COLUMNS, ///< name "columns", type unsigned int @SINCE_1_0.0
- CELL_PADDING, ///< name "cellPadding", type Vector2 @SINCE_1_0.0
- LAYOUT_ROWS, ///< name "layoutRows", type Map @SINCE_1_0.0
- LAYOUT_COLUMNS, ///< name "layoutColumns", type Map @SINCE_1_0.0
- };
- };
-
- /**
- * @brief Enumeration for the instance of child properties belonging to the TableView class.
- * @SINCE_1_1.36
- */
- struct ChildProperty
- {
- /**
- * @brief Enumeration for the instance of child properties belonging to the TableView class.
- * @SINCE_1_1.36
- */
- enum
- {
- CELL_INDEX = CHILD_PROPERTY_START_INDEX, ///< name "cellIndex", The top-left cell this child occupies, if not set, the first available cell is used, type VECTOR2 @SINCE_1_1.36
- ROW_SPAN, ///< name "rowSpan", The number of rows this child occupies, if not set, default value is 1, type FLOAT @SINCE_1_1.36
- COLUMN_SPAN, ///< name "columnSpan", The number of columns this child occupies, if not set, default value is 1, type FLOAT @SINCE_1_1.36
- CELL_HORIZONTAL_ALIGNMENT, ///< name "cellHorizontalAlignment", The horizontal alignment of this child inside the cells, if not set, default value is 'left', type STRING @SINCE_1_1.36
- CELL_VERTICAL_ALIGNMENT ///< name "cellVerticalAlignment", The vertical alignment of this child inside the cells, if not set, default value is 'top', type STRING @SINCE_1_1.36
- };
- };
-
- /**
- * @brief Enumeration for describing how the size of a row / column has been set.
- * @SINCE_1_0.0
- */
- enum LayoutPolicy
- {
- FIXED, ///< Fixed with the given value. @SINCE_1_0.0
- RELATIVE, ///< Calculated as percentage of the remainder after subtracting Padding and Fixed height/width @SINCE_1_0.0
- FILL, ///< Default policy, get the remainder of the 100% (after subtracting Fixed, Fit and Relative height/ width) divided evenly between 'fill' rows/columns @SINCE_1_0.0
- FIT ///< Fit around its children. @SINCE_1_0.0
- };
-
- /**
- * @brief Structure to specify layout position for child actor.
- * @SINCE_1_0.0
- */
- struct CellPosition
- {
- /**
- * @brief Constructor to initialise values to defaults for convenience.
- * @SINCE_1_0.0
- * @param[in] rowIndex The row index initialized
- * @param[in] columnIndex The column index initialized
- * @param[in] rowSpan The row span initialized
- * @param[in] columnSpan The column span initialized
- */
- CellPosition( unsigned int rowIndex = 0, unsigned int columnIndex = 0,
- unsigned int rowSpan = 1, unsigned int columnSpan = 1 )
- : rowIndex( rowIndex ), columnIndex( columnIndex ),
- rowSpan( rowSpan ), columnSpan( columnSpan )
- { }
-
- unsigned int rowIndex;
- unsigned int columnIndex;
- unsigned int rowSpan;
- unsigned int columnSpan;
- };
-
- /**
- * @brief Creates a TableView handle; this can be initialized with TableView::New().
- * Calling member functions with an uninitialized handle is not allowed.
- * @SINCE_1_0.0
- */
- TableView();
-
- /**
- * @brief Copy constructor. Creates another handle that points to the same real object.
- * @SINCE_1_0.0
- * @param[in] handle Handle to copy from
- */
- TableView( const TableView& handle );
-
- /**
- * @brief Assignment operator. Changes this handle to point to another real object.
- * @SINCE_1_0.0
- * @param[in] handle Handle to an object
- * @return A reference to this
- */
- TableView& operator=( const TableView& handle );
-
- /**
- * @brief Destructor.
- *
- * This is non-virtual since derived Handle types must not contain data or virtual methods.
- * @SINCE_1_0.0
- */
- ~TableView();
-
- /**
- * @brief Creates the TableView control.
- * @SINCE_1_0.0
- * @param[in] initialRows for the table
- * @param[in] initialColumns for the table
- * @return A handle to the TableView control
- */
- static TableView New( unsigned int initialRows, unsigned int initialColumns );
-
- /**
- * @brief Downcasts a handle to TableView handle.
- *
- * If handle points to a TableView, the downcast produces valid handle.
- * If not, the returned handle is left uninitialized.
- * @SINCE_1_0.0
- * @param[in] handle Handle to an object
- * @return Handle to a TableView or an uninitialized handle
- */
- static TableView DownCast( BaseHandle handle );
-
- /**
- * @brief Adds a child to the table.
- * If the row or column index is outside the table, the table gets resized bigger.
- * @SINCE_1_0.0
- * @param[in] child The child to add
- * @param[in] position The position for the child
- * @return @c true if the addition succeeded, @c false if the cell is already occupied
- * @pre The child actor has been initialized.
- */
- bool AddChild( Actor child, CellPosition position );
-
- /**
- * @brief Returns a child from the given layout position.
- * @SINCE_1_0.0
- * @param[in] position The position in the table
- * @return Child that was in the cell or an uninitialized handle
- * @note If there is no child in this position this method returns an uninitialized.
- * Actor handle
- */
- Actor GetChildAt( CellPosition position );
-
- /**
- * @brief Removes a child from the given layout position.
- * @SINCE_1_0.0
- * @param[in] position The position for the child to remove
- * @return Child that was removed or an uninitialized handle
- * @note If there is no child in this position, this method does nothing.
- */
- Actor RemoveChildAt( CellPosition position );
-
- /**
- * @brief Finds the child's layout position.
- * @SINCE_1_0.0
- * @param[in] child The child to search for
- * @param[out] position The position for the child
- * @return true if the child was included in this TableView
- */
- bool FindChildPosition( Actor child, CellPosition& position );
-
- /**
- * @brief Inserts a new row to given index.
- * @SINCE_1_0.0
- * @param[in] rowIndex The rowIndex of the new row
- */
- void InsertRow( unsigned int rowIndex );
-
- /**
- * @brief Deletes a row from the given index.
- * Removed elements are deleted.
- * @SINCE_1_0.0
- * @param[in] rowIndex The rowIndex of the row to delete
- */
- void DeleteRow( unsigned int rowIndex );
-
- /**
- * @brief Deletes a row from the given index.
- * @SINCE_1_0.0
- * @param[in] rowIndex The rowIndex of the row to delete
- * @param[out] removed The removed elements
- */
- void DeleteRow( unsigned int rowIndex, std::vector<Actor>& removed );
-
- /**
- * @brief Inserts a new column to the given index.
- * @SINCE_1_0.0
- * @param[in] columnIndex The columnIndex of the new column
- */
- void InsertColumn( unsigned int columnIndex );
-
- /**
- * @brief Deletes a column from the given index.
- * Removed elements are deleted.
- * @SINCE_1_0.0
- * @param[in] columnIndex The columnIndex of the column to delete
- */
- void DeleteColumn( unsigned int columnIndex );
-
- /**
- * @brief Deletes a column from the given index.
- * @SINCE_1_0.0
- * @param[in] columnIndex The columnIndex of the column to delete
- * @param[out] removed The removed elements
- */
- void DeleteColumn( unsigned int columnIndex, std::vector<Actor>& removed );
-
- /**
- * @brief Resizes the TableView.
- * @SINCE_1_0.0
- * @param[in] rows The rows for the table
- * @param[in] columns The columns for the table
- * @note If the new size is smaller than old,
- * superfluous actors get removed. If you want to relayout removed children,
- * use the variant that returns the removed Actors and reinsert them into the table.
- * If an actor spans to a removed row or column, it gets removed from the table.
- */
- void Resize( unsigned int rows, unsigned int columns );
-
- /**
- * @brief Resizes the TableView.
- * @SINCE_1_0.0
- * @param[in] rows The rows for the table
- * @param[in] columns The columns for the table
- * @param[out] removed The removed actor handles
- * @note If the new size is smaller than old, superfluous actors get removed.
- * If an actor spans to a removed row or column it gets removed from the table.
- */
- void Resize( unsigned int rows, unsigned int columns, std::vector<Actor>& removed );
-
- /**
- * @brief Sets horizontal and vertical padding between cells.
- * @SINCE_1_0.0
- * @param[in] padding Width and height
- */
- void SetCellPadding( Size padding );
-
- /**
- * @brief Gets the current padding as width and height.
- * @SINCE_1_0.0
- * @return The current padding as width and height
- */
- Size GetCellPadding();
-
- /**
- * @brief Specifies this row as fitting its height to its children.
- *
- * @SINCE_1_0.0
- * @param[in] rowIndex The row to set
- */
- void SetFitHeight( unsigned int rowIndex );
-
- /**
- * @brief Checks if the row is a fit row.
- *
- * @SINCE_1_0.0
- * @param[in] rowIndex The row to check
- * @return Return true if the row is fit
- */
- bool IsFitHeight( unsigned int rowIndex ) const;
-
- /**
- * @brief Specifies this column as fitting its width to its children.
- *
- * @SINCE_1_0.0
- * @param[in] columnIndex The column to set
- */
- void SetFitWidth( unsigned int columnIndex );
-
- /**
- * @brief Checks if the column is a fit column.
- *
- * @SINCE_1_0.0
- * @param[in] columnIndex The column to check
- * @return Return true if the column is fit
- */
- bool IsFitWidth( unsigned int columnIndex ) const;
-
- /**
- * @brief Sets a row to have fixed height.
- * Setting a fixed height of 0 has no effect.
- * @SINCE_1_0.0
- * @param rowIndex The rowIndex for row with fixed height
- * @param height The height in world coordinate units
- * @pre The row rowIndex must exist.
- */
- void SetFixedHeight( unsigned int rowIndex, float height );
-
- /**
- * @brief Gets a row's fixed height.
- * @SINCE_1_0.0
- * @param[in] rowIndex The row index with fixed height
- * @return height The height in world coordinate units
- * @pre The row rowIndex must exist.
- * @note The returned value is valid if it has been set before.
- */
- float GetFixedHeight( unsigned int rowIndex ) const;
-
- /**
- * @brief Sets a row to have relative height. Relative height means percentage of
- * the remainder of the table height after subtracting Padding and Fixed height rows.
- * Setting a relative height of 0 has no effect.
- * @SINCE_1_0.0
- * @param rowIndex The rowIndex for row with relative height
- * @param heightPercentage between 0.0f and 1.0f
- * @pre The row rowIndex must exist.
- */
- void SetRelativeHeight( unsigned int rowIndex, float heightPercentage );
-
- /**
- * @brief Gets a row's relative height.
- * @SINCE_1_0.0
- * @param[in] rowIndex The row index with relative height
- * @return Height in percentage units, between 0.0f and 1.0f
- * @pre The row rowIndex must exist.
- * @note The returned value is valid if it has been set before.
- */
- float GetRelativeHeight( unsigned int rowIndex ) const;
-
- /**
- * @brief Sets a column to have fixed width.
- * Setting a fixed width of 0 has no effect.
- * @SINCE_1_0.0
- * @param columnIndex The columnIndex for column with fixed width
- * @param width The width in world coordinate units
- * @pre The column columnIndex must exist.
- */
- void SetFixedWidth( unsigned int columnIndex, float width );
-
- /**
- * @brief Gets a column's fixed width.
- * @SINCE_1_0.0
- * @param[in] columnIndex The column index with fixed width
- * @return Width in world coordinate units
- * @pre The column columnIndex must exist.
- * @note The returned value is valid if it has been set before.
- */
- float GetFixedWidth( unsigned int columnIndex ) const;
-
- /**
- * @brief Sets a column to have relative width. Relative width means percentage of
- * the remainder of table width after subtracting Padding and Fixed width columns.
- * Setting a relative width of 0 has no effect.
- * @SINCE_1_0.0
- * @param columnIndex The columnIndex for column with fixed width
- * @param widthPercentage The widthPercentage between 0.0f and 1.0f
- * @pre The column columnIndex must exist.
- */
- void SetRelativeWidth( unsigned int columnIndex, float widthPercentage );
-
- /**
- * @brief Gets a column's relative width.
- * @SINCE_1_0.0
- * @param[in] columnIndex The column index with relative width
- * @return Width in percentage units, between 0.0f and 1.0f
- * @pre The column columnIndex must exist.
- * @note The returned value is valid if it has been set before.
- */
- float GetRelativeWidth( unsigned int columnIndex ) const;
-
- /**
- * @brief Gets the amount of rows in the table.
- * @SINCE_1_0.0
- * @return The amount of rows in the table
- */
- unsigned int GetRows();
-
- /**
- * @brief Gets the amount of columns in the table.
- * @SINCE_1_0.0
- * @return The amount of columns in the table
- */
- unsigned int GetColumns();
-
- /**
- * @brief Sets the alignment on a cell.
- *
- * Cells without calling this function have the default values of LEFT and TOP respectively.
- *
- * @SINCE_1_0.0
- * @param[in] position The cell to set alignment on
- * @param[in] horizontal The horizontal alignment
- * @param[in] vertical The vertical alignment
- */
- void SetCellAlignment( CellPosition position, HorizontalAlignment::Type horizontal, VerticalAlignment::Type vertical );
-
-public: // Not intended for application developers
-
- /// @cond internal
- /**
- * @brief Creates a handle using the Toolkit::Internal implementation.
- * @SINCE_1_0.0
- * @param[in] implementation The Control implementation
- */
- DALI_INTERNAL TableView(Internal::TableView& implementation);
-
- /**
- * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
- * @SINCE_1_0.0
- * @param[in] internal A pointer to the internal CustomActor
- */
- explicit DALI_INTERNAL TableView( Dali::Internal::CustomActor* internal );
- /// @endcond
-};
-
-/**
- * @}
- */
-} // namespace Toolkit
-
-} // namespace Dali
-
-#endif // DALI_TOOLKIT_TABLE_VIEW_H
SET( public_api_src_files
${public_api_src_dir}/controls/control-impl.cpp
${public_api_src_dir}/controls/control.cpp
- ${public_api_src_dir}/controls/alignment/alignment.cpp
${public_api_src_dir}/controls/buttons/button.cpp
${public_api_src_dir}/controls/buttons/check-box-button.cpp
${public_api_src_dir}/controls/buttons/push-button.cpp
${public_api_src_dir}/controls/image-view/image-view.cpp
${public_api_src_dir}/controls/model3d-view/model3d-view.cpp
${public_api_src_dir}/controls/progress-bar/progress-bar.cpp
- ${public_api_src_dir}/controls/scroll-bar/scroll-bar.cpp
${public_api_src_dir}/controls/scrollable/item-view/default-item-layout.cpp
${public_api_src_dir}/controls/scrollable/item-view/item-layout.cpp
${public_api_src_dir}/controls/scrollable/item-view/item-view.cpp
${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view.cpp
${public_api_src_dir}/controls/scrollable/scrollable.cpp
${public_api_src_dir}/controls/slider/slider.cpp
- ${public_api_src_dir}/controls/table-view/table-view.cpp
${public_api_src_dir}/controls/text-controls/text-editor.cpp
${public_api_src_dir}/controls/text-controls/text-label.cpp
${public_api_src_dir}/controls/text-controls/text-field.cpp
${public_api_src_dir}/image-loader/async-image-loader.cpp
${public_api_src_dir}/image-loader/sync-image-loader.cpp
${public_api_src_dir}/styling/style-manager.cpp
- ${public_api_src_dir}/accessibility-manager/accessibility-manager.cpp
${public_api_src_dir}/focus-manager/keyboard-focus-manager.cpp
${public_api_src_dir}/dali-toolkit-version.cpp
${public_api_src_dir}/enums.cpp
${public_api_src_dir}/controls/control.h
)
-SET( public_api_alignment_header_files
- ${public_api_src_dir}/controls/alignment/alignment.h
-)
-
SET( public_api_buttons_header_files
${public_api_src_dir}/controls/buttons/button.h
${public_api_src_dir}/controls/buttons/check-box-button.h
${public_api_src_dir}/controls/scrollable/scrollable.h
)
-SET( public_api_scroll_bar_header_files
- ${public_api_src_dir}/controls/scroll-bar/scroll-bar.h
-)
-
SET( public_api_scroll_view_header_files
${public_api_src_dir}/controls/scrollable/scroll-view/scroll-mode.h
${public_api_src_dir}/controls/scrollable/scroll-view/scroll-view-constraints.h
${public_api_src_dir}/styling/style-manager.h
)
-SET( public_api_table_view_header_files
- ${public_api_src_dir}/controls/table-view/table-view.h
-)
-
SET( public_api_text_controls_header_files
${public_api_src_dir}/controls/text-controls/hidden-input-properties.h
${public_api_src_dir}/controls/text-controls/placeholder-properties.h
${public_api_src_dir}/controls/text-controls/text-field.h
)
-SET( public_api_accessibility_manager_header_files
- ${public_api_src_dir}/accessibility-manager/accessibility-manager.h
-)
-
SET( public_api_focus_manager_header_files
${public_api_src_dir}/focus-manager/keyboard-focus-manager.h
)
SET( PUBLIC_API_HEADERS ${PUBLIC_API_HEADERS}
${public_api_header_files}
${public_api_controls_header_files}
- ${public_api_alignment_header_files}
${public_api_buttons_header_files}
${public_api_model3d_view_header_files}
${public_api_flex_container_header_files}
${public_api_image_loader_header_files}
${public_api_progress_bar_header_files}
${public_api_scrollable_header_files}
- ${public_api_scroll_bar_header_files}
${public_api_scroll_view_header_files}
${public_api_slider_header_files}
${public_api_styling_header_files}
- ${public_api_table_view_header_files}
${public_api_text_controls_header_files}
- ${public_api_accessibility_manager_header_files}
${public_api_focus_manager_header_files}
${public_api_text_header_files}
${public_api_video_view_header_files}