Dali 3D User Interface Engine
image-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 <cstring> // for strcmp
23 
24 // INTERNAL INCLUDES
27 
33 
34 using namespace Dali::Integration;
35 
36 namespace Dali
37 {
38 
39 namespace Internal
40 {
41 
42 namespace
43 {
44 
45 // Signals
46 
47 const char* const SIGNAL_IMAGE_UPLOADED = "uploaded";
48 
49 TypeRegistration mType( typeid( Dali::Image ), typeid( Dali::BaseHandle ), NULL );
50 
52 
53 }
54 
55 bool Image::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface* tracker, const std::string& signalName, FunctorDelegate* functor )
56 {
57  bool connected( true );
58  DALI_ASSERT_DEBUG( dynamic_cast<Image*>( object ) && "Resource ticket not ImageTicket subclass for image resource.\n" );
59  Image* image = static_cast<Image*>(object);
60 
61  if( 0 == strcmp( signalName.c_str(), SIGNAL_IMAGE_UPLOADED ) )
62  {
63  image->UploadedSignal().Connect( tracker, functor );
64  }
65  else
66  {
67  // signalName does not match any signal
68  connected = false;
69  }
70 
71  return connected;
72 }
73 
74 ResourceId Image::GetResourceId() const
75 {
76  ResourceId ret = mTicket ? mTicket->GetId() : 0;
77 
78  return ret;
79 }
80 
82 {
83  // do nothing
84 }
85 
87 {
88  // do nothing
89 }
90 
91 void Image::ResourceUploaded(const ResourceTicket& ticket)
92 {
93  mUploaded.Emit( Dali::Image( this ) );
94 }
95 
96 unsigned int Image::GetWidth() const
97 {
98  return mWidth;
99 }
100 
101 unsigned int Image::GetHeight() const
102 {
103  return mHeight;
104 }
105 
106 Vector2 Image::GetNaturalSize() const
107 {
108  return Vector2( mWidth, mHeight );
109 }
110 
112 : mWidth( 0 ),
113  mHeight( 0 ),
114  mConnectionCount( 0 ),
115  mReleasePolicy( releasePol )
116 {
117 }
118 
120 {
121  if( mTicket )
122  {
123  mTicket->RemoveObserver( *this );
124  mTicket.Reset();
125  }
126 
127  if( Stage::IsInstalled() )
128  {
130  }
131 }
132 
134 {
135  RegisterObject();
136 }
137 
138 } // namespace Internal
139 
140 } // namespace Dali
Dali Docs Home
Read more about Dali