2 // Open Service Platform
3 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
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
9 // http://floralicense.org/license/
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.
18 * @file FUi_LayoutLayoutItemProxy.cpp
19 * @brief This is the implementation file for LayoutItemProxy class.
21 * This file contains the implementation of LayoutItemProxy class.
25 #include <FBaseSysLog.h>
26 #include "FUi_LayoutLayoutItemProxy.h"
27 #include "FUi_LayoutLayoutContainer.h"
29 namespace Tizen { namespace Ui { namespace _Layout
32 LayoutItemProxy::LayoutItemProxy(LayoutItem& pRealItem)
35 , __widthMatchmode(NONE_MODE)
36 , __heightMatchmode(NONE_MODE)
37 , __pParentLayout(null)
39 __itemAlign.HAlign = ITEM_HORIZONTAL_ALIGN_LEFT;
40 __itemAlign.VAlign = ITEM_VERTICAL_ALIGN_TOP;
41 LayoutRect rect = {0, 0, 0, 0};
42 ItemMargin margin = {0, 0, 0, 0};
43 __itemMargin = margin;
45 __calculatedRect = rect;
48 LayoutItemProxy::~LayoutItemProxy()
53 LayoutItemProxy::Create(Layout& pLayout, LayoutItem& pRealItem)
55 LayoutItemProxy* pItemProxy = new (std::nothrow) LayoutItemProxy(pRealItem);
61 LayoutItemProxy::Destroy()
63 LayoutContainer* pContainer = dynamic_cast <LayoutContainer*>(GetItem());
66 pContainer->OnDestroyContainerProxy();
72 LayoutItemProxy::GetIndex(void) const
78 LayoutItemProxy::GetItem() const
84 LayoutItemProxy::SetItemAlignment(ItemAlign align)
90 LayoutItemProxy::GetItemAlignment(void) const
96 LayoutItemProxy::SetItemMargin(ItemMargin margin)
98 __itemMargin = margin;
102 LayoutItemProxy::GetItemMargin(void) const
108 LayoutItemProxy::SetItemWidthMatchMode(LayoutMatchMode matchMode)
110 __widthMatchmode = matchMode;
114 LayoutItemProxy::GetItemWidthMatchMode(void) const
116 return __widthMatchmode;
120 LayoutItemProxy::SetItemHeightMatchMode(LayoutMatchMode matchMode)
122 __heightMatchmode = matchMode;
126 LayoutItemProxy::GetItemHeightMatchMode(void) const
128 return __heightMatchmode;
132 LayoutItemProxy::SetItemBaseRect(LayoutRect rect)
138 LayoutItemProxy::GetItemBaseRect() const
144 LayoutItemProxy::SetMeasuredSize(int width, int height)
146 SysAssertf(__pItem != null, "LayoutItem is invalid");
147 __pItem->SetMeasuredSize(width, height);
151 LayoutItemProxy::GetMeasuredSize(int& width, int& height) const
153 SysAssertf(__pItem != null, "LayoutItem is invalid");
154 __pItem->GetMeasuredSize(width, height);
158 LayoutItemProxy::SetItemWindowRect(const LayoutRect itemRect, bool calculating)
160 SysAssertf(__pItem != null, "LayoutItem is invalid");
163 __calculatedRect = itemRect;
169 return __pItem->SetItemWindowRect(itemRect);
174 LayoutItemProxy::GetItemWindowRect(LayoutRect& itemRect) const
176 SysAssertf(__pItem != null, "LayoutItem is invalid");
177 if (__calculatedRect.x == 0 && __calculatedRect.y == 0 && __calculatedRect.w == 0 && __calculatedRect.h == 0)
179 __pItem->GetItemWindowRect(itemRect);
183 itemRect = __calculatedRect;
188 LayoutItemProxy::ConvertWindowToClientBounds(const LayoutRect windowRect, LayoutRect& clientRect)
190 SysAssertf(__pItem != null, "LayoutItem is invalid");
191 __pItem->ConvertWindowToClientBounds(windowRect, clientRect);
195 LayoutItemProxy::Measure(int width, int height)
197 SysAssertf(__pItem != null, "LayoutItem is invalid");
198 return __pItem->Measure(width, height);
202 LayoutItemProxy::Visible(const bool visible)
204 SysAssertf(__pItem != null, "LayoutItem is invalid");
205 __pItem->Visible(visible);
209 LayoutItemProxy::SetParentLayout(Layout* pLayout)
211 __pParentLayout = pLayout;
215 LayoutItemProxy::GetParentLayout() const
217 return __pParentLayout;
221 LayoutItemProxy::SetIndex(int index)
227 LayoutItemProxy::GetMinSize(LayoutSize& minSize) const
229 SysAssertf(__pItem != null, "LayoutItem is invalid");
230 __pItem->GetMinSize(minSize);
234 LayoutItemProxy::GetMaxSize(LayoutSize& maxSize) const
236 SysAssertf(__pItem != null, "LayoutItem is invalid");
237 __pItem->GetMaxSize(maxSize);
241 LayoutItemProxy::SetParentContainer(LayoutContainer* pParentContainer)
243 SysAssertf(__pItem != null, "LayoutItem is invalid");
244 __pItem->SetParentContainer(pParentContainer);
248 LayoutItemProxy::GetParentContainer() const
250 SysAssertf(__pItem != null, "LayoutItem is invalid");
251 return __pItem->GetParentContainer();
254 }}} // Tizen::Ui::_Layout