Add Layout complex animation.
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / layouting / layout-size.h
1 #ifndef DALI_TOOLKIT_DEVEL_LAYOUT_SIZE_H
2 #define DALI_TOOLKIT_DEVEL_LAYOUT_SIZE_H
3
4 /*
5  * Copyright (c) 2018 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 #include <dali-toolkit/devel-api/layouting/layout-length.h>
21
22 namespace Dali
23 {
24 namespace Toolkit
25 {
26
27 /**
28  * This class represents a layout size (width and height)
29  */
30 class LayoutSize
31 {
32 public:
33   LayoutSize()
34   : x( 0 ),
35     y( 0 )
36   {
37   }
38
39   LayoutSize( LayoutLength anX, LayoutLength aY )
40   : x( anX ),
41     y( aY )
42   {
43   }
44
45   LayoutSize( const LayoutSize& layoutSize )
46   : x( layoutSize.x ),
47     y( layoutSize.y )
48   {
49   }
50
51   LayoutSize& operator=(const LayoutSize& rhs)
52   {
53     x = rhs.x;
54     y = rhs.y;
55     return *this;
56   }
57
58   void SetWidth( LayoutLength value )
59   {
60     width = value;
61   }
62
63   LayoutLength GetWidth()
64   {
65     return width;
66   }
67
68   void SetHeight( LayoutLength value )
69   {
70     height = value;
71   }
72
73   LayoutLength GetHeight()
74   {
75     return height;
76   }
77
78   bool operator==( const LayoutSize& rhs )
79   {
80     return x==rhs.x && y==rhs.y;
81   }
82
83   bool operator!=( const LayoutSize& rhs )
84   {
85     return !( *this==rhs );
86   }
87
88   union
89   {
90     LayoutLength x;
91     LayoutLength width;
92   };
93
94   union
95   {
96     LayoutLength y;
97     LayoutLength height;
98   };
99 };
100
101 /**
102  * @brief Prints a LayoutSize
103  *
104  * @param[in] o The output stream operator
105  * @param[in] layoutSize the layout size to print
106  * @return The output stream operator
107  */
108 inline std::ostream& operator<< (std::ostream& o, const LayoutSize& layoutSize)
109 {
110   return o << "[" << layoutSize.x << ", " << layoutSize.y << "]";
111 }
112
113 } // namespace Toolkit
114
115 } // namespace Dali
116
117 #endif //DALI_TOOLKIT_DEVEL_LAYOUT_SIZE_H