/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
// this method can be called from constructor and on stage connection
if(!mPropertyNotification)
{
+ const PropertyInputImpl* property = mObject->GetSceneObjectInputProperty(mObjectPropertyIndex);
+
// Create a new PropertyNotification, keep a const pointer to it
- mPropertyNotification = SceneGraph::PropertyNotification::New(*mObject,
+ mPropertyNotification = SceneGraph::PropertyNotification::New(property,
mObjectPropertyIndex,
mPropertyType,
mComponentIndex,
/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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 SceneGraph
{
-PropertyNotification* PropertyNotification::New(Object& object,
- Property::Index propertyIndex,
- Property::Type propertyType,
- int componentIndex,
- ConditionType condition,
- RawArgumentContainer& arguments,
- NotifyMode notifyMode,
- bool compare)
+PropertyNotification* PropertyNotification::New(const PropertyInputImpl* property,
+ Property::Index propertyIndex,
+ Property::Type propertyType,
+ int componentIndex,
+ ConditionType condition,
+ RawArgumentContainer& arguments,
+ NotifyMode notifyMode,
+ bool compare)
{
- return new PropertyNotification(object, propertyIndex, propertyType, componentIndex, condition, arguments, notifyMode, compare);
+ return new PropertyNotification(property, propertyIndex, propertyType, componentIndex, condition, arguments, notifyMode, compare);
}
-PropertyNotification::PropertyNotification(Object& object,
- Property::Index propertyIndex,
- Property::Type propertyType,
- int componentIndex,
- ConditionType condition,
- RawArgumentContainer& arguments,
- NotifyMode notifyMode,
- bool compare)
-: mObject(&object),
- mPropertyIndex(propertyIndex),
+PropertyNotification::PropertyNotification(const PropertyInputImpl* property,
+ Property::Index propertyIndex,
+ Property::Type propertyType,
+ int componentIndex,
+ ConditionType condition,
+ RawArgumentContainer& arguments,
+ NotifyMode notifyMode,
+ bool compare)
+: mPropertyIndex(propertyIndex),
mPropertyType(propertyType),
- mProperty(nullptr),
+ mProperty(property),
mComponentIndex(componentIndex),
mConditionType(condition),
mArguments(arguments),
break;
}
}
-
- mProperty = mObject->GetSceneObjectInputProperty(mPropertyIndex);
- int internalComponentIndex = mObject->GetPropertyComponentIndex(mPropertyIndex);
- if(internalComponentIndex != Property::INVALID_COMPONENT_INDEX)
- {
- // override the one passed in
- mComponentIndex = internalComponentIndex;
- }
}
PropertyNotification::~PropertyNotification() = default;
#define DALI_INTERNAL_SCENE_GRAPH_PROPERTY_NOTIFICATION_H
/*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
/**
* Construct a new PropertyNotification
- * @param[in] object The event-object for a scene-graph object to inspect.
- * @param[in] propertyIndex The index of a property provided by the object.
+ * @param[in] property The scene graph property to inspect.
+ * @param[in] propertyIndex The index of a property to insprect.
* @param[in] propertyType The type of property we're inspecting.
* @param[in] componentIndex Index to the component of a complex property such as a Vector
* @param[in] condition The condition type (e.g. LessThan, GreaterThan...)
* @param[in] compare The flag of comparing the previous and current data.
* @return A new PropertyNotification object.
*/
- static PropertyNotification* New(Object& object,
- Property::Index propertyIndex,
- Property::Type propertyType,
- int componentIndex,
- ConditionType condition,
- RawArgumentContainer& arguments,
- NotifyMode notifyMode,
- bool compare);
+ static PropertyNotification* New(const PropertyInputImpl* property,
+ Property::Index propertyIndex,
+ Property::Type propertyType,
+ int componentIndex,
+ ConditionType condition,
+ RawArgumentContainer& arguments,
+ NotifyMode notifyMode,
+ bool compare);
/**
* Virtual destructor
protected:
/**
* Construct the PropertyNotification
- * @param[in] object The event-object for a scene-graph object to inspect.
- * @param[in] propertyIndex The index of a property provided by the object.
+ * @param[in] property The scene graph property to inspect.
+ * @param[in] propertyIndex The index of a property to inspect.
* @param[in] propertyType The type of property we're inspecting.
* @param[in] componentIndex Index to the component of a complex property such as a Vector
* @param[in] condition The condition type (e.g. LessThan, GreaterThan...)
* @param[in] arguments The arguments which accompany the condition.
* @param[in] notifyMode The notification mode setting
*/
- PropertyNotification(Object& object,
- Property::Index propertyIndex,
- Property::Type propertyType,
- int componentIndex,
- ConditionType condition,
- RawArgumentContainer& arguments,
- NotifyMode notifyMode,
- bool compare);
+ PropertyNotification(const PropertyInputImpl* property,
+ Property::Index propertyIndex,
+ Property::Type propertyType,
+ int componentIndex,
+ ConditionType condition,
+ RawArgumentContainer& arguments,
+ NotifyMode notifyMode,
+ bool compare);
private:
/**
PropertyNotification& operator=(const PropertyNotification& rhs);
protected:
- Object* mObject; ///< Not owned by the property notification. Valid until ObjectDestroyed() is called.
Property::Index mPropertyIndex; ///< The index of this property.
Property::Type mPropertyType; ///< The type of property this is.
const PropertyInputImpl* mProperty; ///< The scene graph property