namespace Dali
{
+/**
+ * @addtogroup dali_core_object
+ * @{
+ */
class ConnectionTrackerInterface;
class FunctorDelegate;
class TypeInfo;
};
-typedef std::vector<Property::Value> PropertyValueContainer;
-typedef PropertyValueContainer::iterator PropertyValueIter; ///< Iterator for Dali::PropertyValueContainer
-typedef PropertyValueContainer::const_iterator PropertyValueConstIter; ///< Const iterator for Dali::PropertyValueContainer
-
/**
* @brief TypeInfo class for instantiation of registered types and introspection of
* their actions and signals.
*
* See TypeRegistry for methods of type registration and TypeInfo retrieval.
+ * @SINCE_1_0.0
*/
class DALI_IMPORT_API TypeInfo : public BaseHandle
{
public:
- typedef BaseHandle (*CreateFunction)(); ///< Function signature for creating an instance of the associated object type.
+ typedef BaseHandle (*CreateFunction)(); ///< Function signature for creating an instance of the associated object type. @SINCE_1_0.0
- typedef bool (*ActionFunction)(BaseObject*, const std::string&, const PropertyValueContainer&); ///< Function signature for creating scriptable actions
+ typedef bool (*ActionFunction)(BaseObject*, const std::string&, const Property::Map&); ///< Function signature for creating scriptable actions @SINCE_1_0.0
/**
* @brief Connects a callback function with the object's signals.
*
+ * @SINCE_1_0.0
* @param[in] object The object providing the signal.
* @param[in] tracker Used to disconnect the signal.
* @param[in] signalName The signal to connect to.
/**
* @brief Callback to set an event-thread only property.
*
- * @see PropertyRegistration.
+ * @SINCE_1_0.0
* @param[in] object The object whose property should be set.
* @param[in] index The index of the property being set.
* @param[in] value The new value of the property for the object specified.
+ * @see PropertyRegistration.
*/
typedef void (*SetPropertyFunction)( BaseObject* object, Property::Index index, const Property::Value& value );
/**
* @brief Callback to get the value of an event-thread only property.
*
- * @see PropertyRegistration.
+ * @SINCE_1_0.0
* @param[in] object The object whose property value is required.
* @param[in] index The index of the property required.
* @return The current value of the property for the object specified.
+ * @see PropertyRegistration.
*/
typedef Property::Value (*GetPropertyFunction)( BaseObject* object, Property::Index index );
- typedef std::vector<std::string> NameContainer; ///< Container of names for signals and actions
-
/**
* @brief Allows the creation of an empty TypeInfo handle.
+ * @SINCE_1_0.0
*/
TypeInfo();
* @brief Destructor
*
* This is non-virtual since derived Handle types must not contain data or virtual methods.
+ * @SINCE_1_0.0
*/
~TypeInfo();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] handle A reference to the copied handle
*/
TypeInfo(const TypeInfo& handle);
/**
* @brief This assignment operator is required for (smart) pointer semantics.
*
+ * @SINCE_1_0.0
* @param [in] rhs A reference to the copied handle
* @return A reference to this
*/
/**
* @brief Retrieve the type name for this type.
*
+ * @SINCE_1_0.0
* @return string name
*/
const std::string& GetName() const;
/**
* @brief Retrieve the base type name for this type.
*
+ * @SINCE_1_0.0
* @return string of base name
*/
const std::string& GetBaseName() const;
/**
* @brief Create an object from this type.
*
+ * @SINCE_1_0.0
* @return the BaseHandle for the newly created object
*/
BaseHandle CreateInstance() const;
/**
* @brief Retrieve the creator function for this type.
*
+ * @SINCE_1_0.0
* @return the creator function
*/
CreateFunction GetCreator() const;
/**
- * @brief Retrieve the actions for this type.
+ * @brief Retrieve the number of actions for this type.
*
- * @param[in] container of action names
+ * @SINCE_1_0.0
+ * @return The count
*/
- void GetActions( NameContainer &container ) const;
+ size_t GetActionCount() const;
/**
- * @brief Retrieve the signals for this type.
+ * @brief Retrieve the action name for the index.
*
- * @param[in] container of action names
+ * @SINCE_1_0.0
+ * @param[in] index Index to lookup
+ * @return action name or empty string where index is invalid
*/
- void GetSignals( NameContainer &container ) const;
+ std::string GetActionName(size_t index);
/**
- * @brief Retrieve the event side registered properties for this type.
+ * @brief Retrieve the number of signals for this type.
*
- * @param[in] container of action names
+ * @SINCE_1_0.0
+ * @return The count
*/
- void GetProperties( NameContainer &container ) const;
+ size_t GetSignalCount() const;
+
+ /**
+ * @brief Retrieve the signal name for the index.
+ *
+ * @SINCE_1_0.0
+ * @param[in] index Index to lookup
+ * @return signal name or empty string where index is invalid
+ */
+ std::string GetSignalName(size_t index);
+
+ /**
+ * @brief Retrieve the number of event side type registered properties for this type.
+ *
+ * This count does not include all properties
+ * @SINCE_1_0.0
+ * @return The count
+ */
+ size_t GetPropertyCount() const;
// Properties
/**
* @brief Retrieve all the property indices for this type.
*
+ * @SINCE_1_0.0
* @param[out] indices Container of property indices
* @note The container will be cleared
*/
/**
* @brief Given a property index, retrieve the property name associated with it.
*
+ * @SINCE_1_0.0
* @param[in] index The property index.
* @return The name of the property at the given index.
+ * @exception DaliException If index is not valid.
+ *
*/
const std::string& GetPropertyName( Property::Index index ) const;
/**
* @brief This constructor is used by Dali Get() method.
*
+ * @SINCE_1_0.0
* @param [in] typeInfo A pointer to a Dali resource
*/
explicit DALI_INTERNAL TypeInfo(Internal::TypeInfo* typeInfo);
};
+/**
+ * @}
+ */
} // namespace Dali
#endif // __DALI_TYPE_INFO_H__