Marked new API's since 1.1.4
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / controls / renderer-factory / renderer-factory.cpp
1  /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
3  *
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
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  *
16  */
17
18 // CLASS HEADER
19 #include "renderer-factory.h"
20
21 // EXTERNAL INCLUDES
22 #include <dali/devel-api/adaptor-framework/singleton-service.h>
23
24 // INTERNAL INCLUDES
25 #include <dali-toolkit/internal/controls/renderers/renderer-factory-impl.h>
26
27
28 namespace Dali
29 {
30
31 namespace Toolkit
32 {
33
34 RendererFactory RendererFactory::Get()
35 {
36   RendererFactory factory;
37
38   // Check whether the RendererFactory is already created
39   SingletonService singletonService( SingletonService::Get() );
40   if( singletonService )
41   {
42     BaseHandle handle = singletonService.GetSingleton( typeid(RendererFactory) );
43     if( handle )
44     {
45       //If so, downcast the handle of singleton to RendererFactory
46       factory = RendererFactory( dynamic_cast<Internal::RendererFactory*>(handle.GetObjectPtr()) );
47     }
48
49     if( !factory )
50     {
51       // If not, create the RendererFactory and register it as a singleton
52       factory = RendererFactory( new Internal::RendererFactory() );
53       singletonService.Register( typeid(RendererFactory), factory );
54
55     }
56   }
57
58   return factory;
59 }
60
61 RendererFactory::RendererFactory()
62 {
63 }
64
65 RendererFactory::~RendererFactory()
66 {
67 }
68
69 RendererFactory::RendererFactory( const RendererFactory& handle )
70 : BaseHandle( handle )
71 {
72 }
73
74 RendererFactory& RendererFactory::operator=( const RendererFactory& handle )
75 {
76   BaseHandle::operator=( handle );
77   return *this;
78 }
79
80 RendererFactory::RendererFactory(Internal::RendererFactory *impl)
81 : BaseHandle(impl)
82 {
83 }
84
85 ControlRenderer RendererFactory::GetControlRenderer( const Property::Map& propertyMap )
86 {
87   return GetImplementation( *this ).GetControlRenderer( propertyMap );
88 }
89
90 ControlRenderer RendererFactory::GetControlRenderer( const Vector4& color )
91 {
92   return GetImplementation( *this ).GetControlRenderer( color );
93 }
94
95 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const Vector4& color )
96 {
97   return GetImplementation( *this ).ResetRenderer( renderer, color );
98 }
99
100 ControlRenderer RendererFactory::GetControlRenderer( const Image& image )
101 {
102   return GetImplementation( *this ).GetControlRenderer( image );
103 }
104
105 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const Image& image )
106 {
107   return GetImplementation( *this ).ResetRenderer( renderer, image );
108 }
109
110 ControlRenderer RendererFactory::GetControlRenderer( const std::string& url )
111 {
112   return GetImplementation( *this ).GetControlRenderer( url );
113 }
114
115 bool RendererFactory::ResetRenderer( ControlRenderer& renderer, const std::string& url )
116 {
117   return GetImplementation( *this ).ResetRenderer( renderer, url );
118 }
119
120 } // namespace Toolkit
121
122 } // namespace Dali