Merge branch 'master' into tizen
[platform/core/uifw/dali-toolkit.git] / base / dali-toolkit / public-api / controls / default-controls / push-button-factory.cpp
1 //
2 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
3 //
4 // Licensed under the Flora License, Version 1.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://floralicense.org/license/
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 #include <dali-toolkit/public-api/controls/alignment/alignment.h>
18 #include <dali-toolkit/public-api/controls/default-controls/push-button-factory.h>
19
20 // EXTERNAL INCLUDES
21 // INTERNAL INCLUDES
22
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 namespace
31 {
32
33 Alignment CreateAlignedImage( Actor image )
34 {
35   Alignment alignmentContainer = Toolkit::Alignment::New();
36   alignmentContainer.SetScaling( Toolkit::Alignment::ShrinkToFitKeepAspect );
37
38   alignmentContainer.Add( image );
39
40   return alignmentContainer;
41 }
42
43 Alignment CreateAlignedImage( const std::string& imagePath )
44 {
45   Image image = Image::New( imagePath );
46   return CreateAlignedImage( ImageActor::New( image ) );
47 }
48
49 } // namespace
50
51
52 PushButton CreatePushButton( const std::string& releasedImagePath, const std::string& pressedImagePath, const std::string& backgroundImagePath,
53                              const std::string& dimmedReleasedImagePath, const std::string& dimmedBackgroundImagePath )
54 {
55   PushButton button = Toolkit::PushButton::New();
56
57   if( !releasedImagePath.empty() )
58   {
59     button.SetButtonImage( CreateAlignedImage( releasedImagePath ) );
60   }
61
62   if( !pressedImagePath.empty() )
63   {
64     button.SetPressedImage( CreateAlignedImage( pressedImagePath ) );
65   }
66
67   if( !backgroundImagePath.empty() )
68   {
69     button.SetBackgroundImage( CreateAlignedImage( backgroundImagePath ) );
70   }
71
72   if( !dimmedReleasedImagePath.empty() )
73   {
74     button.SetDimmedImage( CreateAlignedImage( dimmedReleasedImagePath ) );
75   }
76
77   if( !dimmedBackgroundImagePath.empty() )
78   {
79     button.SetDimmedBackgroundImage( CreateAlignedImage( dimmedBackgroundImagePath ) );
80   }
81
82   return button;
83 }
84
85 PushButton CreatePushButton( Actor releasedImageActor, Actor pressedImageActor, Actor backgroundImageActor,
86                              Actor dimmedReleasedImageActor, Actor dimmedBackgroundImageActor )
87 {
88   PushButton button = Toolkit::PushButton::New();
89
90   if( releasedImageActor )
91   {
92     button.SetButtonImage( CreateAlignedImage( releasedImageActor ) );
93   }
94
95   if( pressedImageActor )
96   {
97     button.SetPressedImage( CreateAlignedImage( pressedImageActor ) );
98   }
99
100   if( backgroundImageActor )
101   {
102     button.SetBackgroundImage( CreateAlignedImage( backgroundImageActor ) );
103   }
104
105   if( dimmedReleasedImageActor )
106   {
107     button.SetDimmedImage( CreateAlignedImage( dimmedReleasedImageActor ) );
108   }
109
110   if( dimmedBackgroundImageActor )
111   {
112     button.SetDimmedBackgroundImage( CreateAlignedImage( dimmedBackgroundImageActor ) );
113   }
114
115   return button;
116 }
117
118 PushButton CreatePushButton( const std::string& backgroundImagePath )
119 {
120   PushButton button = Toolkit::PushButton::New();
121
122   if( !backgroundImagePath.empty() )
123   {
124     button.SetBackgroundImage( CreateAlignedImage( backgroundImagePath ) );
125   }
126
127   return button;
128 }
129
130 PushButton CreatePushButton( Actor backgroundImageActor )
131 {
132   PushButton button = Toolkit::PushButton::New();
133
134   if( backgroundImageActor )
135   {
136     button.SetBackgroundImage( CreateAlignedImage( backgroundImageActor ) );
137   }
138
139   return button;
140 }
141
142 } // namespace Toolkit
143
144 } // namespace Dali