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_UiBuilderControlMaker.h
19 * @brief This is the header file for the %_UiBuilderControlMaker class.
21 * This header file contains the declarations of the %_UiBuilderControlMaker class.
24 #ifndef _FUI_INTERNAL_UI_BUILDER_CONTROL_MAKER_H_
25 #define _FUI_INTERNAL_UI_BUILDER_CONTROL_MAKER_H_
27 #include <FUiCtrlControlsTypes.h>
28 #include <FUiCtrlGalleryTypes.h>
29 #include <FUiLayout.h>
30 #include <FUiVerticalBoxLayout.h>
31 #include <FUiHorizontalBoxLayout.h>
32 #include <FUiRelativeLayout.h>
33 #include <FUiGridLayout.h>
34 #include <FUiControl.h>
35 #include <FUiCtrlSplitPanel.h>
36 #include <FGrp_CoordinateSystem.h>
37 #include "FUi_UiBuilderConfig.h"
38 #include "FUi_UiBuilderControl.h"
42 namespace Tizen { namespace Ui
45 struct UiBuilderRelativeLayout
47 Tizen::Ui::Control* pBottomRelation;
48 RectangleEdgeRelation bottomRelationType;
50 Tizen::Ui::Control* pLeftRelation;
51 RectangleEdgeRelation leftRelationType;
53 Tizen::Ui::Control* pRightRelation;
54 RectangleEdgeRelation rightRelationType;
56 Tizen::Ui::Control* pTopRelation;
57 RectangleEdgeRelation topRelationType;
59 bool centerHorizontal;
63 FitPolicy verticalFitPolicy;
71 FitPolicy horizontalFitPolicy;
74 struct UiBuilderGridLayoutContainer
81 bool columnShrinkable;
82 bool columnStretchable;
88 struct UiBuilderGridLayoutControl
97 int positionColumnSpan;
98 LayoutHorizontalAlignment horizontalAlignment;
99 LayoutVerticalAlignment verticalAlignment;
102 struct UiBuilderHorizontalBoxLayoutContainer
104 HorizontalDirection direction;
107 struct UiBuilderHorizontalBoxLayoutControl
110 FitPolicy verticalFitPolicy;
111 LayoutVerticalAlignment verticalAlignment;
112 int verticalBottomMargin;
113 int verticalTopMargin;
117 FitPolicy horizontalFitPolicy;
120 struct UiBuilderVerticalBoxLayoutContainer
122 VerticalDirection direction;
125 struct UiBuilderVerticalBoxLayoutControl
128 FitPolicy verticalFitPolicy;
129 LayoutHorizontalAlignment horizontalAlignment;
130 int horizontalLeftMargin;
131 int horizontalRightMargin;
135 FitPolicy horizontalFitPolicy;
140 * @class _UiBuilderControlMaker
141 * @brief This class is an implementation of a %_UiBuilderControlMaker.
144 * The %_UiBuilderControlMaker Class contains that information for generating a Control and setting a layout information.
148 class _OSP_EXPORT_ _UiBuilderControlMaker
149 : public Tizen::Base::Object
152 _UiBuilderControlMaker(void);
153 _UiBuilderControlMaker(_UiBuilder* pUibuilder);
154 virtual ~_UiBuilderControlMaker(void);
155 result MakeControl(_UiBuilderControl* pControl);
158 virtual Tizen::Ui::Control* Make(_UiBuilderControl* pControl) = 0;
159 Tizen::Ui::Container* GetContainer(void) const;
160 Tizen::Graphics::Bitmap* LoadBitmapN(const Tizen::Base::String& imagePath);
161 bool ConvertHAlignToHorizontalAlignment(const Tizen::Base::String& align, Tizen::Ui::Controls::HorizontalAlignment& alignment);
162 bool ConvertVAlignToVerticalAlignment(const Tizen::Base::String& align, Tizen::Ui::Controls::VerticalAlignment& alignment);
163 bool ConvertSlideShowAnimation(const Tizen::Base::String& animationType, Tizen::Ui::Controls::GalleryAnimation& animation);
164 int ConvertOpacity100to255(int opacity);
165 void ConvertStringToColor(const Tizen::Base::String& colorString, Tizen::Graphics::Color& color);
166 void ConvertStringToColor32(const Tizen::Base::String& colorString, int transparency, Tizen::Graphics::Color& color);
167 void AddControl(_UiBuilderControl* pUiBuilderControl, Tizen::Ui::Control* pControl);
168 void SetUiBuilderRotateState(_UiBuilderScreenRotate rotate);
169 result SetGridLayoutContainerProperty(GridLayout* pLayout, _UiBuilderControlLayout* pControlProperty) const;
170 void SetGridLayoutControlProperty(GridLayout* pLayout, _UiBuilderControlLayout* pControlProperty, Control* pControl);
171 void SetHorizontalBoxLayoutProperty(HorizontalBoxLayout* pLayout, _UiBuilderControlLayout* pControlProperty, Control* pControl);
172 void SetVerticalBoxLayoutProperty(VerticalBoxLayout* pLayout, _UiBuilderControlLayout* pControlProperty, Control* pControl);
173 void SetRelativeLayoutProperty(RelativeLayout* pLayout, _UiBuilderControlLayout* pControlProperty, Control* pControl);
174 void SetLayoutProperty(_UiBuilderControl* pUiBuilderControl, Control* pControl);
175 void SetLayoutOrientation(_UiBuilderControl* pUiBuilderCOntrol, Tizen::Ui::Control* pControl);
176 void GetProperty(_UiBuilderControl* pControl, _UiBuilderControlLayout** pControlProperty) const;
177 bool GetLayoutType(_UiBuilderControlLayout* pControlProperty, _UiBuilderLayoutType& layoutType) const;
178 bool GetParentLayoutType(_UiBuilderControlLayout* pControlProperty, _UiBuilderLayoutType& returnType) const;
179 result GetGridLayoutN(_UiBuilderControlLayout* pControlProperty, Layout*& pLayout) const;
180 result GetHorizontalBoxLayoutN(_UiBuilderControlLayout* pControlProperty, Layout*& pLayout) const;
181 result GetVerticalBoxLayoutN(_UiBuilderControlLayout* pControlProperty, Layout*& pLayout) const;
182 result GetRelativeLayoutN(_UiBuilderControlLayout* pControlProperty, Layout*& pLayout) const;
183 _UiBuilderScreenRotate GetUiBuilderRotateState(void);
184 result GetLayoutN(_UiBuilderControl* pUiBuilderControl, Layout*& pPortraitLayout, Layout*& pLandscapeLayout) const ;
185 Tizen::Graphics::_ICoordinateSystemTransformer* GetTransformer(void) const;
188 _UiBuilderControlMaker(const _UiBuilderControlMaker& rhs);
189 _UiBuilderControlMaker& operator =(const _UiBuilderControlMaker& rhs);
192 _UiBuilder* __pUiBuilder;
193 }; // _UiBuilderControlMaker
197 #endif //_FUI_INTERNAL_UI_BUILDER_CONTROL_MAKER_H_