/*
- * Copyright (c) 2018 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.
// EXTERNAL INCLUDES
// INTERNAL INCLUDES
-#include <dali/public-api/object/property-index-ranges.h>
#include <dali/internal/event/common/type-registry-impl.h>
+#include <dali/internal/event/object/default-property-metadata.h>
+#include <dali/public-api/object/property-index-ranges.h>
namespace Dali
{
+TypeRegistry::TypeRegistry() = default;
-TypeRegistry::TypeRegistry()
-{
-}
+TypeRegistry::~TypeRegistry() = default;
-TypeRegistry::~TypeRegistry()
-{
-}
+TypeRegistry::TypeRegistry(const TypeRegistry& copy) = default;
-TypeRegistry::TypeRegistry(const TypeRegistry& copy)
-: BaseHandle(copy)
-{
-}
+TypeRegistry& TypeRegistry::operator=(const TypeRegistry& rhs) = default;
-TypeRegistry& TypeRegistry::operator=(const TypeRegistry& rhs)
-{
- BaseHandle::operator=(rhs);
- return *this;
-}
+TypeRegistry::TypeRegistry(TypeRegistry&& rhs) noexcept = default;
+
+TypeRegistry& TypeRegistry::operator=(TypeRegistry&& rhs) noexcept = default;
TypeRegistry TypeRegistry::Get()
{
return TypeRegistry(Internal::TypeRegistry::Get());
}
-Dali::TypeInfo TypeRegistry::GetTypeInfo( const std::string &uniqueTypeName )
+Dali::TypeInfo TypeRegistry::GetTypeInfo(const std::string& uniqueTypeName)
{
- return GetImplementation(*this).GetTypeInfo( uniqueTypeName );
+ return Dali::TypeInfo(GetImplementation(*this).GetTypeInfo(uniqueTypeName).Get());
}
-Dali::TypeInfo TypeRegistry::GetTypeInfo( const std::type_info& registerType )
+Dali::TypeInfo TypeRegistry::GetTypeInfo(const std::type_info& registerType)
{
- return GetImplementation(*this).GetTypeInfo( registerType );
+ return Dali::TypeInfo(GetImplementation(*this).GetTypeInfo(registerType).Get());
}
size_t TypeRegistry::GetTypeNameCount() const
std::string TypeRegistry::GetTypeName(size_t index) const
{
- return GetImplementation(*this).GetTypeName(index);
+ return GetImplementation(*this).GetTypeName(static_cast<uint32_t>(index));
}
TypeRegistry::TypeRegistry(Internal::TypeRegistry* internal)
{
}
-TypeRegistration::TypeRegistration( const std::type_info& registerType, const std::type_info& baseType,
- TypeInfo::CreateFunction f )
- : mReference(Internal::TypeRegistry::Get())
+TypeRegistration::TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f)
+: mReference(Internal::TypeRegistry::Get())
{
- Internal::TypeRegistry *impl = Internal::TypeRegistry::Get();
+ Internal::TypeRegistry* impl = Internal::TypeRegistry::Get();
- if( impl->Register( registerType, baseType, f, false ) )
- {
- mName = impl->RegistrationName( registerType );
- }
+ mName = impl->Register(registerType, baseType, f, false);
}
-TypeRegistration::TypeRegistration( const std::type_info& registerType, const std::type_info& baseType,
- TypeInfo::CreateFunction f, bool callCreateOnInit )
- : mReference(Internal::TypeRegistry::Get())
+TypeRegistration::TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f, bool callCreateOnInit)
+: mReference(Internal::TypeRegistry::Get())
{
- Internal::TypeRegistry *impl = Internal::TypeRegistry::Get();
+ Internal::TypeRegistry* impl = Internal::TypeRegistry::Get();
- if( impl->Register( registerType, baseType, f, callCreateOnInit ) )
- {
- mName = impl->RegistrationName( registerType );
- }
+ mName = impl->Register(registerType, baseType, f, callCreateOnInit);
}
-TypeRegistration::TypeRegistration( const std::string& name, const std::type_info& baseType,
- TypeInfo::CreateFunction f )
- : mReference(Internal::TypeRegistry::Get())
+TypeRegistration::TypeRegistration(const std::type_info& registerType, const std::type_info& baseType, TypeInfo::CreateFunction f, const DefaultPropertyMetadata& defaultProperties)
{
- Internal::TypeRegistry *impl = Internal::TypeRegistry::Get();
+ Internal::TypeRegistry* impl = Internal::TypeRegistry::Get();
- if( impl->Register( name, baseType, f, false ) )
- {
- mName = name;
- }
+ mName = impl->Register(registerType, baseType, f, false, defaultProperties.propertyTable, defaultProperties.propertyCount);
}
+TypeRegistration::TypeRegistration(std::string name, const std::type_info& baseType, TypeInfo::CreateFunction f)
+: mReference(Internal::TypeRegistry::Get())
+{
+ Internal::TypeRegistry* impl = Internal::TypeRegistry::Get();
-const std::string TypeRegistration::RegisteredName() const
+ mName = impl->Register(std::move(name), baseType, f, false);
+}
+
+const std::string& TypeRegistration::RegisteredName() const
{
return mName;
}
-SignalConnectorType::SignalConnectorType( TypeRegistration& typeRegistration, const std::string& name, TypeInfo::SignalConnectorFunction func )
+SignalConnectorType::SignalConnectorType(TypeRegistration& typeRegistration, std::string name, TypeInfo::SignalConnectorFunction func)
{
- Internal::TypeRegistry::Get()->RegisterSignal( typeRegistration, name, func );
+ Internal::TypeRegistry::Get()->RegisterSignal(typeRegistration, std::move(name), func);
}
-TypeAction::TypeAction( TypeRegistration ®istered, const std::string &name, TypeInfo::ActionFunction f)
+TypeAction::TypeAction(TypeRegistration& registered, std::string name, TypeInfo::ActionFunction f)
{
- Internal::TypeRegistry::Get()->RegisterAction( registered, name, f );
+ Internal::TypeRegistry::Get()->RegisterAction(registered, std::move(name), f);
}
-PropertyRegistration::PropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type, TypeInfo::SetPropertyFunction setFunc, TypeInfo::GetPropertyFunction getFunc )
+PropertyRegistration::PropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type, TypeInfo::SetPropertyFunction setFunc, TypeInfo::GetPropertyFunction getFunc)
{
- DALI_ASSERT_ALWAYS( ( index >= PROPERTY_REGISTRATION_START_INDEX ) && ( index <= PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= PROPERTY_REGISTRATION_START_INDEX) && (index <= PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterProperty( registered, name, index, type, setFunc, getFunc );
+ Internal::TypeRegistry::Get()->RegisterProperty(registered, std::move(name), index, type, setFunc, getFunc);
}
-AnimatablePropertyRegistration::AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type )
+AnimatablePropertyRegistration::AnimatablePropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type)
{
- DALI_ASSERT_ALWAYS( ( index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX ) && ( index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX) && (index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterAnimatableProperty( registered, name, index, type );
+ Internal::TypeRegistry::Get()->RegisterAnimatableProperty(registered, std::move(name), index, type);
}
-AnimatablePropertyRegistration::AnimatablePropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, const Property::Value& value )
+AnimatablePropertyRegistration::AnimatablePropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, const Property::Value& value)
{
- DALI_ASSERT_ALWAYS( ( index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX ) && ( index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX) && (index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterAnimatableProperty( registered, name, index, value );
+ Internal::TypeRegistry::Get()->RegisterAnimatableProperty(registered, std::move(name), index, value);
}
-AnimatablePropertyComponentRegistration::AnimatablePropertyComponentRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Index baseIndex, unsigned int componentIndex)
+AnimatablePropertyComponentRegistration::AnimatablePropertyComponentRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Index baseIndex, uint32_t componentIndex)
{
- DALI_ASSERT_ALWAYS( ( index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX ) && ( index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= ANIMATABLE_PROPERTY_REGISTRATION_START_INDEX) && (index <= ANIMATABLE_PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterAnimatablePropertyComponent( registered, name, index, baseIndex, componentIndex );
+ Internal::TypeRegistry::Get()->RegisterAnimatablePropertyComponent(registered, std::move(name), index, baseIndex, componentIndex);
}
-ChildPropertyRegistration::ChildPropertyRegistration( TypeRegistration& registered, const std::string& name, Property::Index index, Property::Type type )
+ChildPropertyRegistration::ChildPropertyRegistration(TypeRegistration& registered, std::string name, Property::Index index, Property::Type type)
{
- DALI_ASSERT_ALWAYS( ( index >= CHILD_PROPERTY_REGISTRATION_START_INDEX ) && ( index <= CHILD_PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= CHILD_PROPERTY_REGISTRATION_START_INDEX) && (index <= CHILD_PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterChildProperty( registered, name, index, type );
+ Internal::TypeRegistry::Get()->RegisterChildProperty(registered, std::move(name), index, type);
}
-ChildPropertyRegistration::ChildPropertyRegistration( const std::string& registered, const std::string& name, Property::Index index, Property::Type type )
+ChildPropertyRegistration::ChildPropertyRegistration(std::string registered, std::string name, Property::Index index, Property::Type type)
{
- DALI_ASSERT_ALWAYS( ( index >= CHILD_PROPERTY_REGISTRATION_START_INDEX ) && ( index <= CHILD_PROPERTY_REGISTRATION_MAX_INDEX ) );
+ DALI_ASSERT_ALWAYS((index >= CHILD_PROPERTY_REGISTRATION_START_INDEX) && (index <= CHILD_PROPERTY_REGISTRATION_MAX_INDEX));
- Internal::TypeRegistry::Get()->RegisterChildProperty( registered, name, index, type );
+ Internal::TypeRegistry::Get()->RegisterChildProperty(registered, std::move(name), index, type);
}
-
} // namespace Dali