-#ifndef __DALI_PROPERTY_NOTIFICATION_H__
-#define __DALI_PROPERTY_NOTIFICATION_H__
+#ifndef DALI_PROPERTY_NOTIFICATION_H
+#define DALI_PROPERTY_NOTIFICATION_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.
// INTERNAL INCLUDES
#include <dali/public-api/object/base-handle.h>
-#include <dali/public-api/object/property-notification-declarations.h>
#include <dali/public-api/object/property-conditions.h>
+#include <dali/public-api/object/property-notification-declarations.h>
#include <dali/public-api/object/property.h>
-namespace Dali DALI_IMPORT_API
+namespace Dali
{
+/**
+ * @addtogroup dali_core_object
+ * @{
+ */
namespace Internal DALI_INTERNAL
{
* @brief This is used to issue a notification upon a condition of the property being met.
*
* For example checking if Actor::POSITION_X > 100.0.
+ * @SINCE_1_0.0
* @see Dali::PropertyCondition
*/
-class DALI_IMPORT_API PropertyNotification : public BaseHandle
+class DALI_CORE_API PropertyNotification : public BaseHandle
{
public:
/**
- * @brief Enumeration to describe how to check condition
+ * @brief Enumeration for description of how to check condition.
+ * @SINCE_1_0.0
*/
enum NotifyMode
{
- Disabled, ///< Don't notify, regardless of result of Condition
- NotifyOnTrue, ///< Notify whenever condition changes from false to true.
- NotifyOnFalse, ///< Notify whenever condition changes from true to false.
- NotifyOnChanged ///< Notify whenever condition changes (false to true, and true to false)
+ DISABLED, ///< Don't notify, regardless of result of Condition @SINCE_1_9.28
+ NOTIFY_ON_TRUE, ///< Notify whenever condition changes from false to true. @SINCE_1_9.28
+ NOTIFY_ON_FALSE, ///< Notify whenever condition changes from true to false. @SINCE_1_9.28
+ NOTIFY_ON_CHANGED ///< Notify whenever condition changes (false to true, and true to false) @SINCE_1_9.28
};
public:
-
/**
- * @brief Create an uninitialized PropertyNotification; this can be initialized with PropertyNotification::New().
+ * @brief Creates an uninitialized PropertyNotification; this can be initialized with PropertyNotification::New().
*
* Calling member functions with an uninitialized Dali::Object is not allowed.
+ * @SINCE_1_0.0
*/
PropertyNotification();
/**
- * @brief Downcast an Object handle to PropertyNotification.
+ * @brief Downcasts a handle to PropertyNotification handle.
*
- * If handle points to an PropertyNotification object the downcast
- * produces valid handle. If not the returned handle is left
+ * If handle points to a PropertyNotification object, the downcast
+ * produces valid handle. If not, the returned handle is left
* uninitialized.
*
+ * @SINCE_1_0.0
* @param[in] handle to An object
* @return handle to a PropertyNotification object or an uninitialized handle
*/
- static PropertyNotification DownCast( BaseHandle handle );
+ static PropertyNotification DownCast(BaseHandle handle);
/**
- * @brief Destructor
+ * @brief Destructor.
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~PropertyNotification();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
- * @param [in] handle A reference to the copied handle
+ * @SINCE_1_0.0
+ * @param[in] handle A reference to the copied handle
*/
PropertyNotification(const PropertyNotification& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
- * @param [in] rhs A reference to the copied handle
+ * @SINCE_1_0.0
+ * @param[in] rhs A reference to the copied handle
* @return A reference to this
*/
PropertyNotification& operator=(const PropertyNotification& rhs);
/**
- * @brief This method is defined to allow assignment of the NULL value,
- * and will throw an exception if passed any other value.
+ * @brief Move constructor.
*
- * Assigning to NULL is an alias for Reset().
- * @param [in] rhs A NULL pointer
+ * @SINCE_1_9.22
+ * @param[in] rhs A reference to the moved handle
+ */
+ PropertyNotification(PropertyNotification&& rhs) noexcept;
+
+ /**
+ * @brief Move assignment operator.
+ *
+ * @SINCE_1_9.22
+ * @param[in] rhs A reference to the moved handle
* @return A reference to this handle
*/
- PropertyNotification& operator=(BaseHandle::NullType* rhs);
+ PropertyNotification& operator=(PropertyNotification&& rhs) noexcept;
/**
- * @brief Get the condition of this notification
+ * @brief Gets the condition of this notification.
*
+ * @SINCE_1_0.0
* @return The condition is returned
*/
PropertyCondition GetCondition();
/**
- * @brief Get the condition of this notification
+ * @brief Gets the condition of this notification.
*
+ * @SINCE_1_0.0
* @return The condition is returned
*/
const PropertyCondition& GetCondition() const;
/**
- * @brief Get the target handle that this notification is observing.
+ * @brief Gets the target handle that this notification is observing.
+ * @SINCE_1_0.0
+ * @return The target handle
*/
Dali::Handle GetTarget() const;
/**
- * @brief Get the target handle's property index that this notification
+ * @brief Gets the target handle's property index that this notification
* is observing.
*
- * @return The target property.
+ * @SINCE_1_0.0
+ * @return The target property
*/
Property::Index GetTargetProperty() const;
/**
- * @brief Sets the Notification mode. This determines how the property
+ * @brief Sets the Notification mode.
+ *
+ * This determines how the property
* notification should respond to the result of a condition.
*
- * @param[in] mode Notification mode (Default is PropertyNotification::NotifyOnTrue)
+ * @SINCE_1_0.0
+ * @param[in] mode Notification mode (Default is PropertyNotification::NOTIFY_ON_TRUE)
*/
- void SetNotifyMode( NotifyMode mode );
+ void SetNotifyMode(NotifyMode mode);
/**
* @brief Retrieves the current Notification mode.
*
- * @return Notification mode.
+ * @SINCE_1_0.0
+ * @return Notification mode
*/
NotifyMode GetNotifyMode();
/**
* @brief Gets the result of the last condition check that caused a signal emit,
- * useful when using NotifyOnChanged mode and need to know what it changed to.
+ * useful when using NOTIFY_ON_CHANGED mode and need to know what it changed to.
*
+ * @SINCE_1_0.0
* @return whether condition result that triggered last emit was true or false
*/
bool GetNotifyResult() const;
/**
- * @brief Connect to this signal to be notified when the notification has occurred.
+ * @brief Connects to this signal to be notified when the notification has occurred.
*
- * @return A signal object to Connect() with.
+ * @SINCE_1_0.0
+ * @return A signal object to Connect() with
*/
- PropertyNotifySignalV2& NotifySignal();
+ PropertyNotifySignalType& NotifySignal();
public: // Not intended for use by Application developers
-
+ /// @cond internal
/**
* @brief This constructor is used by Dali New() methods.
*
- * @param [in] propertyNotification A pointer to a newly allocated Dali resource
+ * @SINCE_1_0.0
+ * @param[in] propertyNotification A pointer to a newly allocated Dali resource
*/
explicit DALI_INTERNAL PropertyNotification(Internal::PropertyNotification* propertyNotification);
+ /// @endcond
};
+/**
+ * @}
+ */
} // namespace Dali
-#endif // __DALI_PROPERTY_NOTIFICATION_H__
+#endif // DALI_PROPERTY_NOTIFICATION_H