Revert " modify license, permission and remove ^M char"
[framework/osp/uifw.git] / src / ui / layout / FUi_LayoutLayoutItemInfo.h
1 //
2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Flora License, Version 1.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 /**
18  * @file        FUi_LayoutLayoutItemInfo.h
19  * @brief       This is the header file for LayoutItemInfo class.
20  *
21  * This header file contains the declaration of LayoutItemInfo class.
22  */
23
24 #pragma once
25
26 #ifndef _FUI_INTERNAL_LAYOUT_LAYOUT_ITEM_INFO_H_
27 #define _FUI_INTERNAL_LAYOUT_LAYOUT_ITEM_INFO_H_
28
29 #include "FUi_LayoutLayoutTypes.h"
30
31 namespace Tizen { namespace Ui { namespace _Layout
32 {
33
34 struct TableLayoutPoint
35 {
36         int x;
37         int y;
38 };
39
40 class LayoutItemProxy;
41 class RelativeLayout;
42 class RelativeProxyList;
43 class TableLayout;
44 class LinearLayout;
45
46 class LayoutItemInfo
47 {
48
49 public:
50         /**
51          * This is the default constructor for this class.
52          *
53          * @since 2.0
54          */
55         LayoutItemInfo(void);
56
57         /**
58          * This is the destructor for this class.
59          *
60          * @since 2.0
61          */
62         virtual ~LayoutItemInfo(void);
63 }; // LayoutItemInfo
64
65 class RelativeItemInfo
66         : public LayoutItemInfo
67 {
68 public:
69         /**
70          * This is the default constructor for this class.
71          *
72          * @since 2.0
73          */
74         RelativeItemInfo(void);
75
76         /**
77          * This is the destructor for this class.
78          *
79          * @since 2.0
80          */
81         virtual ~RelativeItemInfo(void);
82
83 private:
84         int __refCount;
85         LayoutItemProxy* __pTarget[6];
86         RelativeLayoutEdge __targetEdge[6];
87
88         friend class RelativeLayout;
89         friend class RelativeProxyList;
90 }; // RelativeItemInfo
91
92 class TableItemInfo
93         : public LayoutItemInfo
94 {
95 public:
96         /**
97          * This is the default constructor for this class.
98          *
99          * @since 2.0
100          */
101         TableItemInfo(void);
102
103         /**
104          * This is the destructor for this class.
105          *
106          * @since 2.0
107          */
108         virtual ~TableItemInfo(void);
109
110 private:
111         int __id;
112         bool __enable;
113         bool __merged;
114         TableLayoutPoint __mergeEndPoint;
115         bool __fillWidth;
116         bool __fillHeight;
117         LayoutSize __minSize;
118         LayoutSize __maxSize;
119
120         friend class TableLayout;
121 }; // TableItemInfo
122
123 class LinearItemInfo
124         : public LayoutItemInfo
125 {
126 public:
127         /**
128          * This is the default constructor for this class.
129          *
130          * @since 2.0
131          */
132         LinearItemInfo(void);
133
134         /**
135          * This is the destructor for this class.
136          *
137          * @since 2.0
138          */
139         virtual ~LinearItemInfo(void);
140
141 private:
142         float __weight;
143         float __spacing;
144         bool __fixedSize;
145         LayoutRect __itemRect;
146
147         friend class LinearLayout;
148 }; // LinearItemInfo
149
150 }}} //Tizen::Ui::_Layout
151
152 #endif // _FUI_INTERNAL_LAYOUT_LAYOUT_ITEM_PROXY_H_