Tizen 2.1 base
[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 class LayoutItemProxy;
35 class RelativeLayout;
36 class RelativeProxyList;
37 class TableLayout;
38 class LinearLayout;
39
40 class LayoutItemInfo
41 {
42
43 public:
44         /**
45          * This is the default constructor for this class.
46          *
47          * @since 2.0
48          */
49         LayoutItemInfo(void);
50
51         /**
52          * This is the destructor for this class.
53          *
54          * @since 2.0
55          */
56         virtual ~LayoutItemInfo(void);
57 }; // LayoutItemInfo
58
59 class RelativeItemInfo
60         : public LayoutItemInfo
61 {
62 public:
63         /**
64          * This is the default constructor for this class.
65          *
66          * @since 2.0
67          */
68         RelativeItemInfo(void);
69
70         /**
71          * This is the destructor for this class.
72          *
73          * @since 2.0
74          */
75         virtual ~RelativeItemInfo(void);
76
77 private:
78         int __refCount;
79         LayoutItemProxy* __pTarget[6];
80         RelativeLayoutEdge __targetEdge[6];
81
82         friend class RelativeLayout;
83         friend class RelativeProxyList;
84 }; // RelativeItemInfo
85
86 class TableItemInfo
87         : public LayoutItemInfo
88 {
89 public:
90         /**
91          * This is the default constructor for this class.
92          *
93          * @since 2.0
94          */
95         TableItemInfo(void);
96
97         /**
98          * This is the destructor for this class.
99          *
100          * @since 2.0
101          */
102         virtual ~TableItemInfo(void);
103
104 private:
105         int __id;
106         bool __enable;
107         bool __merged;
108         LayoutPoint __mergeEndPoint;
109         bool __fillWidth;
110         bool __fillHeight;
111         LayoutSize __minSize;
112         LayoutSize __maxSize;
113
114         friend class TableLayout;
115 }; // TableItemInfo
116
117 class LinearItemInfo
118         : public LayoutItemInfo
119 {
120 public:
121         /**
122          * This is the default constructor for this class.
123          *
124          * @since 2.0
125          */
126         LinearItemInfo(void);
127
128         /**
129          * This is the destructor for this class.
130          *
131          * @since 2.0
132          */
133         virtual ~LinearItemInfo(void);
134
135 private:
136         float __weight;
137         int __spacing;
138         bool __fixedSize;
139         LayoutRect __itemRect;
140
141         friend class LinearLayout;
142 }; // LinearItemInfo
143
144 }}} //Tizen::Ui::_Layout
145
146 #endif // _FUI_INTERNAL_LAYOUT_LAYOUT_ITEM_PROXY_H_