2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "renderer-factory.h"
22 #include <dali/devel-api/adaptor-framework/singleton-service.h>
25 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
34 RendererFactory RendererFactory::Get()
36 RendererFactory factory;
38 // Check whether the RendererFactory is already created
39 SingletonService singletonService( SingletonService::Get() );
40 if( singletonService )
42 BaseHandle handle = singletonService.GetSingleton( typeid(RendererFactory) );
45 //If so, downcast the handle of singleton to RendererFactory
46 factory = RendererFactory( dynamic_cast<Internal::RendererFactory*>(handle.GetObjectPtr()) );
51 // If not, create the RendererFactory and register it as a singleton
52 factory = RendererFactory( new Internal::RendererFactory() );
53 singletonService.Register( typeid(RendererFactory), factory );
61 RendererFactory::RendererFactory()
65 RendererFactory::~RendererFactory()
69 RendererFactory::RendererFactory( const RendererFactory& handle )
70 : BaseHandle( handle )
74 RendererFactory& RendererFactory::operator=( const RendererFactory& handle )
76 BaseHandle::operator=( handle );
80 RendererFactory::RendererFactory(Internal::RendererFactory *impl)
85 ControlRenderer RendererFactory::GetControlRenderer( const Property::Map& propertyMap )
87 return GetImplementation( *this ).GetControlRenderer( propertyMap );
90 ControlRenderer RendererFactory::GetControlRenderer( const Vector4& color )
92 return GetImplementation( *this ).GetControlRenderer( color );
95 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const Vector4& color )
97 return GetImplementation( *this ).ResetRenderer( renderer, color );
100 ControlRenderer RendererFactory::GetControlRenderer( float borderSize, const Vector4& borderColor )
102 return GetImplementation( *this ).GetControlRenderer( borderSize, borderColor );
105 ControlRenderer RendererFactory::GetControlRenderer( const Image& image )
107 return GetImplementation( *this ).GetControlRenderer( image );
110 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const Image& image )
112 return GetImplementation( *this ).ResetRenderer( renderer, image );
115 ControlRenderer RendererFactory::GetControlRenderer( const std::string& url )
117 return GetImplementation( *this ).GetControlRenderer( url );
120 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const std::string& url )
122 return GetImplementation( *this ).ResetRenderer( renderer, url );
125 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const Property::Map& propertyMap )
127 return GetImplementation( *this ).ResetRenderer( renderer, propertyMap );
130 } // namespace Toolkit