Dali 3D User Interface Engine
object-registry-impl.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 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
20 
21 // EXTERNAL INCLUDES
22 #include <algorithm>
23 #include <cstring> // for strcmp
24 
25 // INTERNAL INCLUDES
29 
30 namespace Dali
31 {
32 
33 namespace Internal
34 {
35 
36 namespace
37 {
38 
39 // Signals
40 
41 const char* const SIGNAL_OBJECT_CREATED = "objectCreated";
42 const char* const SIGNAL_OBJECT_DESTROYED = "objectDestroyed";
43 
44 TypeRegistration mType( typeid( Dali::ObjectRegistry ), typeid( Dali::BaseHandle ), NULL );
45 
48 
49 }
50 
52 {
53  return ObjectRegistryPtr( new ObjectRegistry() );
54 }
55 
57 {
58 }
59 
61 {
62 }
63 
65 {
66  if ( !mObjectCreatedSignal.Empty() )
67  {
68  Dali::BaseHandle handle( object );
69  mObjectCreatedSignal.Emit( handle );
70  }
71 }
72 
74 {
75  mObjectDestroyedSignal.Emit( object );
76 }
77 
78 bool ObjectRegistry::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
79 {
80  bool connected( true );
81  ObjectRegistry* objectRegistry = dynamic_cast<ObjectRegistry*>( object );
82 
83  if( 0 == strcmp( signalName.c_str(), SIGNAL_OBJECT_CREATED ) )
84  {
85  objectRegistry->ObjectCreatedSignal().Connect( tracker, functor );
86  }
87  else if( 0 == strcmp( signalName.c_str(), SIGNAL_OBJECT_DESTROYED ) )
88  {
89  objectRegistry->ObjectDestroyedSignal().Connect( tracker, functor );
90  }
91  else
92  {
93  // signalName does not match any signal
94  connected = false;
95  }
96 
97  return connected;
98 }
99 
100 } // namespace Internal
101 
102 } // namespace Dali
Dali Docs Home
Read more about Dali