X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Fpublic-api%2Fcontrols%2Fcontrol.h;h=9afebab5ddb6a84c49c166bb129f4c6fd5a9612d;hp=4ff673e73de08a55614e6ebc188bbe11566d9324;hb=f3da11c2818c6d17706fbb2417f21b602b3190f5;hpb=eea53605c5acb244aebb72d75bdd9b3a68a9678a diff --git a/dali-toolkit/public-api/controls/control.h b/dali-toolkit/public-api/controls/control.h index 4ff673e..9afebab 100644 --- a/dali-toolkit/public-api/controls/control.h +++ b/dali-toolkit/public-api/controls/control.h @@ -2,7 +2,7 @@ #define __DALI_TOOLKIT_CONTROL_H__ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * 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. @@ -40,6 +40,10 @@ namespace Internal { class Control; } +/** + * @addtogroup dali_toolkit_controls + * @{ + */ /** * @brief Control is the base class for all controls. @@ -48,18 +52,20 @@ class Control; * @see Internal::Control * * Signals - * | %Signal Name | Method | - * |-------------------|-----------------------------------------------------| - * | key-event | @ref KeyEventSignal() | - * | tapped | @ref GetTapGestureDetector().DetectedSignal() | - * | panned | @ref GetPanGestureDetector().DetectedSignal() | - * | pinched | @ref GetPinchGestureDetector().DetectedSignal() | - * | long-pressed | @ref GetLongPressGestureDetector().DetectedSignal() | + * | %Signal Name | Method | + * |------------------------|-----------------------------------------------------| + * | keyEvent | @ref KeyEventSignal() | + * | keyInputFocusGained | @ref KeyInputFocusGainedSignal() | + * | keyInputFocusLost | @ref KeyInputFocusLostSignal() | + * | tapped | @ref GetTapGestureDetector().DetectedSignal() | + * | panned | @ref GetPanGestureDetector().DetectedSignal() | + * | pinched | @ref GetPinchGestureDetector().DetectedSignal() | + * | longPressed | @ref GetLongPressGestureDetector().DetectedSignal() | * * Actions - * | %Action Name | %Control method called | - * |-------------------|-----------------------------------------------------| - * | control-activated | %OnActivated() | + * | %Action Name | %Control method called | + * |------------------------|----------------------------------------------------| + * | accessibilityActivated | %OnAccessibilityActivated() | */ class DALI_IMPORT_API Control : public CustomActor { @@ -82,47 +88,24 @@ public: { enum { - BACKGROUND_COLOR = PROPERTY_START_INDEX, ///< name "background-color", @see SetBackgroundColor, type VECTOR4 - BACKGROUND, ///< name "background", @see SetBackground, type MAP - WIDTH_POLICY, ///< name "width-policy", @see SetSizePolicy, type STRING - HEIGHT_POLICY, ///< name "height-policy", @see SetSizePolicy, type STRING - MINIMUM_SIZE, ///< name "minimum-size", @see SetMinimumSize, type VECTOR3 - MAXIMUM_SIZE, ///< name "maximum-size", @see SetMaximumSize, type VECTOR3 - KEY_INPUT_FOCUS, ///< name "key-input-focus", @see SetKeyInputFocus, type BOOLEAN + STYLE_NAME = PROPERTY_START_INDEX, ///< name "styleName", @see SetStyleName, type std::string + BACKGROUND, ///< name "background", @since DALi 1.1.4, type Map + KEY_INPUT_FOCUS, ///< name "keyInputFocus", @see SetKeyInputFocus, type bool }; }; /** - * @brief Describes how a control could be resized. - */ - enum SizePolicy - { - Fixed, ///< Size can't grow or shrink. - Minimum, ///< Size can grow but shrink up to a minimum level. - Maximum, ///< Size can shrink but grow up to a maximum value. - Range, ///< Size can grow or shrink between a minimum and a maximum values. - Flexible, ///< Size can grow or shrink with no limits. - }; - - /** - * @brief Describes what a control should do when a contained actor/control exceeds the boundary of the control. - */ - enum ExceedPolicy - { - Crop, ///< Control's contents will be cropped. - Shrink, ///< Control's contents will be shrunk. - Scroll ///< Control's contents will be added to a scroll. - }; - - /** * @brief Describes the direction to move the keyboard focus towards. */ - enum KeyboardFocusNavigationDirection + struct KeyboardFocus { - Left, ///< Move keyboard focus towards the left direction - Right, ///< Move keyboard focus towards the right direction - Up, ///< Move keyboard focus towards the up direction - Down ///< Move keyboard focus towards the down direction + enum Direction + { + LEFT, ///< Move keyboard focus towards the left direction + RIGHT, ///< Move keyboard focus towards the right direction + UP, ///< Move keyboard focus towards the up direction + DOWN ///< Move keyboard focus towards the down direction + }; }; // Typedefs @@ -130,6 +113,9 @@ public: /// @brief Key Event signal type; typedef Signal KeyEventSignalType; + /// @brief Key InputFocusType signal type; + typedef Signal KeyInputFocusSignalType; + public: // Creation & Destruction /** @@ -186,93 +172,6 @@ public: */ static Control DownCast( BaseHandle handle ); - /** - * @brief Retrieve the Control implementation. - * - * @return The implementation. - */ - Internal::Control& GetImplementation(); - - /** - * @brief Retrieve the Control implementation. - * - * @return The implementation. - */ - const Internal::Control& GetImplementation() const; - - // Size Negotiation - - /** - * @brief Sets the size policies for the width and height dimensions. - * - * @param[in] widthPolicy Size policy for the width dimension. - * @param[in] heightPolicy Size policy for the height dimension. - */ - void SetSizePolicy( SizePolicy widthPolicy, SizePolicy heightPolicy ); - - /** - * @brief Retrieves the size policies for the width and height dimensions. - * - * @param[out] widthPolicy Width's size policy. - * @param[out] heightPolicy Height's size policy. - */ - void GetSizePolicy( SizePolicy& widthPolicy, SizePolicy& heightPolicy ) const; - - /** - * @brief Sets the minimum size for the control. - * - * @param[in] size The minimum size. - */ - void SetMinimumSize( const Vector3& size ); - - /** - * @brief Retrieves the minimum size. - * - * @return The minimum size. - */ - const Vector3& GetMinimumSize() const; - - /** - * @brief Sets the maximum size. - * - * @param[in] size The maximum size. - */ - void SetMaximumSize( const Vector3& size ); - - /** - * @brief Retrieves the maximum size. - * - * @return The maximum size. - */ - const Vector3& GetMaximumSize() const; - - /** - * @brief Works out the natural size. - * - * Natural size is the control's size with any restriction. - * - * @return The natural size. - */ - Vector3 GetNaturalSize(); - - /** - * @brief Works out the control's height for a given width. - * - * @param[in] width The control's width. - * - * @return The control's height for the given width. - */ - float GetHeightForWidth( float width ); - - /** - * @brief Works out the control's width for a given height. - * - * @param[in] height The control's height. - * - * @return The control's width for the given height. - */ - float GetWidthForHeight( float height ); - // Key Input /** @@ -341,6 +240,22 @@ public: */ LongPressGestureDetector GetLongPressGestureDetector() const; + // Styling + + /** + * @brief Sets the name of the style to be applied to the control. + * + * @param[in] styleName A string matching a style described in a stylesheet. + */ + void SetStyleName( const std::string& styleName ); + + /** + * @brief Retrieves the name of the style to be applied to the control (if any). + * + * @return A string matching a style or an empty string. + */ + const std::string& GetStyleName() const; + // Background /** @@ -355,6 +270,8 @@ public: /** * @brief Retrieves the background color of the control. * + * @deprecated DALi 1.1.3 API removed. + * * @return The background color of the control. */ Vector4 GetBackgroundColor() const; @@ -362,24 +279,15 @@ public: /** * @brief Sets an image as the background of the control. * - * The color of this image is blended with the background color @see SetBackgroundColor - * * @param[in] image The image to set as the background. */ - void SetBackground( Image image ); + void SetBackgroundImage( Image image ); /** * @brief Clears the background. */ void ClearBackground(); - /** - * @brief Retrieves the actor used as the background for this control. - * - * @return The actor that used as the background for this control. - */ - Actor GetBackgroundActor() const; - // Signals /** @@ -389,13 +297,43 @@ public: * @code * bool YourCallbackName(Control control, const KeyEvent& event); * @endcode - * The return value of True, indicates that the touch event should be consumed. - * Otherwise the signal will be emitted on the next sensitive parent of the actor. + * The return value of True, indicates that the event should be consumed. + * Otherwise the signal will be emitted on the next parent of the actor. * @pre The Control has been initialized. * @return The signal to connect to. */ KeyEventSignalType& KeyEventSignal(); + /** + * @brief This signal is emitted when the control gets Key Input Focus + * + * A callback of the following type may be connected: + * @code + * bool YourCallbackName( Control control ); + * @endcode + * The return value of True, indicates that the event should be consumed. + * Otherwise the signal will be emitted on the next parent of the actor. + * @pre The Control has been initialized. + * @return The signal to connect to. + */ + KeyInputFocusSignalType& KeyInputFocusGainedSignal(); + + /** + * @brief This signal is emitted when the control loses Key Input Focus + * which could be due to it being gained by another Control or Actor or just cleared from + * this control as no longer required. + * + * A callback of the following type may be connected: + * @code + * bool YourCallbackName( Control control ); + * @endcode + * The return value of True, indicates that the event should be consumed. + * Otherwise the signal will be emitted on the next parent of the actor. + * @pre The Control has been initialized. + * @return The signal to connect to. + */ + KeyInputFocusSignalType& KeyInputFocusLostSignal(); + public: // Intended for control developers /** @@ -468,6 +406,9 @@ public: // Templates for Deriving Classes }; +/** + * @} + */ } // namespace Toolkit } // namespace Dali