-#ifndef __DALI_TOOLKIT_SLIDER_H__
-#define __DALI_TOOLKIT_SLIDER_H__
+#ifndef DALI_TOOLKIT_SLIDER_H
+#define DALI_TOOLKIT_SLIDER_H
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
namespace Dali
{
-
namespace Toolkit
{
-
namespace Internal DALI_INTERNAL
{
class Slider;
}
+/**
+ * @addtogroup dali_toolkit_controls_slider
+ * @{
+ */
/**
- * @brief Slider is a control to enable sliding an indicator between two values
+ * @brief Slider is a control to enable sliding an indicator between two values.
*
* Signals
- * | %Signal Name | Method |
- * |-------------------|-----------------------------|
- * | value-changed | @ref ValueChangedSignal() |
- * | mark | @ref MarkSignal() |
+ * | %Signal Name | Method |
+ * |-------------------|-------------------------------|
+ * | valueChanged | @ref ValueChangedSignal() |
+ * | markReached | @ref MarkReachedSignal() |
+ * | slidingFinished | @ref SlidingFinishedSignal() |
+ * @SINCE_1_1.39
*/
-class DALI_IMPORT_API Slider : public Control
+class DALI_TOOLKIT_API Slider : public Control
{
public:
-
// Properties
- static const Dali::Property::Index LOWER_BOUND_PROPERTY; ///< Property, name "lower-bound", type FLOAT
- static const Dali::Property::Index UPPER_BOUND_PROPERTY; ///< Property, name "upper-bound", type FLOAT
- static const Dali::Property::Index VALUE_PROPERTY; ///< Property, name "value", type FLOAT
-
- static const Dali::Property::Index HIT_REGION_PROPERTY; ///< Property, name "hit-region", type VECTOR2
- static const Dali::Property::Index BACKING_REGION_PROPERTY; ///< Property, name "backing-region", type VECTOR2
- static const Dali::Property::Index HANDLE_REGION_PROPERTY; ///< Property, name "handle-region", type VECTOR2
- static const Dali::Property::Index BACKING_IMAGE_NAME_PROPERTY; ///< Property, name "backing-image-name", type STRING
- static const Dali::Property::Index HANDLE_IMAGE_NAME_PROPERTY; ///< Property, name "handle-image-name", type STRING
- static const Dali::Property::Index PROGRESS_IMAGE_NAME_PROPERTY; ///< Property, name "progress-image-name", type STRING
- static const Dali::Property::Index POPUP_IMAGE_NAME_PROPERTY; ///< Property, name "popup-image-name", type STRING
- static const Dali::Property::Index POPUP_ARROW_IMAGE_NAME_PROPERTY; ///< Property, name "popup-arrow-image-name", type STRING
-
- static const Dali::Property::Index DISABLE_COLOR_PROPERTY; ///< Property, name "disable-color", type VECTOR4
- static const Dali::Property::Index POPUP_TEXT_COLOR_PROPERTY; ///< Property, name "popup-text-color", type VECTOR4
-
- static const Dali::Property::Index VALUE_PRECISION_PROPERTY; ///< Property, name "value-precision", type INT
-
- static const Dali::Property::Index SHOW_POPUP_PROPERTY; ///< Property, name "show-popup", type BOOLEAN
- static const Dali::Property::Index SHOW_VALUE_PROPERTY; ///< Property, name "show-value", type BOOLEAN
-
- static const Dali::Property::Index ENABLED_PROPERTY; ///< Property, name "enabled", type BOOLEAN
+ /**
+ * @brief Enumeration for the start and end property ranges for this control.
+ * @SINCE_1_1.39
+ */
+ enum PropertyRange
+ {
+ PROPERTY_START_INDEX = Control::CONTROL_PROPERTY_END_INDEX + 1, ///< @SINCE_1_1.39
+ PROPERTY_END_INDEX = PROPERTY_START_INDEX + 1000 ///< Reserve property indices @SINCE_1_1.39
+ };
- static const Dali::Property::Index MARKS_PROPERTY; ///< Property, name "marks", type Property::Array<float>
- static const Dali::Property::Index SNAP_TO_MARKS_PROPERTY; ///< Property, name "snap-to-marks", type BOOLEAN
- static const Dali::Property::Index MARK_TOLERANCE_PROPERTY; ///< Property, name "mark-tolerance", type FLOAT
+ /**
+ * @brief Enumeration for the instance of properties belonging to the Slider class.
+ * @SINCE_1_1.39
+ */
+ struct Property
+ {
+ /**
+ * @brief Enumeration for the instance of properties belonging to the Slider class.
+ * @SINCE_1_1.39
+ */
+ enum
+ {
+
+ /**
+ * @brief name "lowerBound", type float.
+ * @SINCE_1_1.39
+ */
+ LOWER_BOUND = PROPERTY_START_INDEX,
+
+ /**
+ * @brief name "upperBound", type float.
+ * @SINCE_1_1.39
+ */
+ UPPER_BOUND,
+
+ /**
+ * @brief name "value", type float.
+ * @SINCE_1_1.39
+ */
+ VALUE,
+
+ /**
+ * @brief name "trackVisual", type string if it is a url, map otherwise.
+ * @SINCE_1_1.39
+ */
+ TRACK_VISUAL,
+
+ /**
+ * @brief name "handleVisual", type string if it is a url, map otherwise.
+ * @SINCE_1_1.39
+ */
+ HANDLE_VISUAL,
+
+ /**
+ * @brief name "progressVisual", type string if it is a url, map otherwise.
+ * @SINCE_1_1.39
+ */
+ PROGRESS_VISUAL,
+
+ /**
+ * @brief name "popupVisual", type string if it is a url, map otherwise.
+ * @SINCE_1_1.39
+ */
+ POPUP_VISUAL,
+
+ /**
+ * @brief name "popupArrowVisual", type string if it is a url, map otherwise.
+ * @SINCE_1_1.39
+ */
+ POPUP_ARROW_VISUAL,
+
+ /**
+ * @brief name "disabledColor", type Vector4.
+ * @SINCE_1_1.39
+ */
+ DISABLED_COLOR,
+
+ /**
+ * @brief name "valuePrecision", type int.
+ * @SINCE_1_1.39
+ */
+ VALUE_PRECISION,
+
+ /**
+ * @brief name "showPopup", type bool.
+ * @SINCE_1_1.39
+ */
+ SHOW_POPUP,
+
+ /**
+ * @brief name "showValue", type bool.
+ * @SINCE_1_1.39
+ */
+ SHOW_VALUE,
+
+ /**
+ * @brief name "marks", type Property::Array<float>.
+ * @SINCE_1_1.39
+ */
+ MARKS,
+
+ /**
+ * @brief name "snapToMarks", type bool.
+ * @SINCE_1_1.39
+ */
+ SNAP_TO_MARKS,
+
+ /**
+ * @brief name "markTolerance", type float.
+ * @SINCE_1_1.39
+ */
+ MARK_TOLERANCE,
+ };
+ };
public:
-
/**
- * Create the Slider control
- * @return A handle to the Slider control.
+ * @brief Creates the Slider control.
+ * @SINCE_1_1.39
+ * @return A handle to the Slider control
*/
static Slider New();
/**
- * Creates an empty Slider handle
+ * @brief Creates an empty Slider handle.
+ * @SINCE_1_1.39
*/
Slider();
/**
- * Copy constructor. Creates another handle that points to the same real object
+ * @brief Copy constructor.
+ *
+ * Creates another handle that points to the same real object.
+ * @SINCE_1_1.39
+ * @param[in] handle Handle to an object
+ */
+ Slider(const Slider& handle);
+
+ /**
+ * @brief Move constructor
+ * @SINCE_1_9.23
+ *
+ * @param[in] rhs A reference to the moved handle
+ */
+ Slider(Slider&& rhs);
+
+ /**
+ * @brief Assignment operator.
+ *
+ * Changes this handle to point to another real object.
+ * @SINCE_1_1.39
+ * @param[in] handle Handle to an object
+ * @return A reference to this
*/
- Slider( const Slider& handle );
+ Slider& operator=(const Slider& handle);
/**
- * Assignment operator. Changes this handle to point to another real object
+ * @brief Move assignment
+ * @SINCE_1_9.23
+ *
+ * @param[in] rhs A reference to the moved handle
+ * @return A reference to this
*/
- Slider& operator=( const Slider& handle );
+ Slider& operator=(Slider&& rhs);
/**
- * @brief Destructor
+ * @brief Destructor.
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_1.39
*/
~Slider();
/**
- * Downcast an Object handle to Slider. If handle points to a Slider the
- * downcast produces valid handle. If not the returned handle is left uninitialized.
+ * @brief Downcasts an Object handle to Slider.
+ *
+ * If handle points to a Slider, the downcast produces valid handle.
+ * If not, the returned handle is left uninitialized.
+ * @SINCE_1_1.39
* @param[in] handle Handle to an object
* @return handle to a Slider or an uninitialized handle
*/
- static Slider DownCast( BaseHandle handle );
-
-public:
+ static Slider DownCast(BaseHandle handle);
- // Signals
+public: // Signals
+ /**
+ * @brief Value changed signal type.
+ * @SINCE_1_1.39
+ */
+ typedef Signal<bool(Slider, float)> ValueChangedSignalType;
- // Value changed
- typedef Signal< bool ( Slider, float ) > ValueChangedSignalType;
- typedef Signal< bool ( Slider, int ) > MarkSignalType;
+ /**
+ * @brief Mark reached signal type.
+ * @SINCE_1_1.39
+ */
+ typedef Signal<bool(Slider, int)> MarkReachedSignalType;
/**
- * Signal emitted when the slider value changes
+ * @brief Signal emitted when the slider value changes.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallbackName( Slider slider, float value );
+ * @endcode
+ * @SINCE_1_1.39
+ * @return The signal to connect to
*/
ValueChangedSignalType& ValueChangedSignal();
/**
- * Signal emitted when the sliding is finished
+ * @brief Signal emitted when the sliding is finished.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallbackName( Slider slider, float value );
+ * @endcode
+ * @SINCE_1_1.39
+ * @return The signal to connect to
*/
ValueChangedSignalType& SlidingFinishedSignal();
/**
- * Signal emitted when the slider handle reaches a mark
+ * @brief Signal emitted when the slider handle reaches a mark.
+ *
+ * A callback of the following type may be connected:
+ * @code
+ * bool YourCallbackName( Slider slider, int value );
+ * @endcode
+ * @SINCE_1_1.39
+ * @return The signal to connect to
*/
- MarkSignalType& MarkSignal();
+ MarkReachedSignalType& MarkReachedSignal();
public: // Not intended for application developers
-
+ /// @cond internal
/**
- * Creates a handle using the Toolkit::Internal implementation.
- * @param[in] implementation The Control implementation.
+ * @brief Creates a handle using the Toolkit::Internal implementation.
+ *
+ * @SINCE_1_1.39
+ * @param[in] implementation The Control implementation
*/
DALI_INTERNAL Slider(Internal::Slider& implementation);
/**
- * Allows the creation of this Control from an Internal::CustomActor pointer.
- * @param[in] internal A pointer to the internal CustomActor.
+ * @brief Allows the creation of this Control from an Internal::CustomActor pointer.
+ *
+ * @SINCE_1_1.39
+ * @param[in] internal A pointer to the internal CustomActor
*/
- explicit DALI_INTERNAL Slider( Dali::Internal::CustomActor* internal );
+ explicit DALI_INTERNAL Slider(Dali::Internal::CustomActor* internal);
+ /// @endcond
};
+/**
+ * @}
+ */
} // namespace Toolkit
} // namespace Dali
-#endif // __DALI_TOOLKIT_SLIDER_H__
+#endif // DALI_TOOLKIT_SLIDER_H