1 /** Copyright (c) 2017 Samsung Electronics Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
16 // This File has been auto-generated by SWIG and then modified using DALi Ruby Scripts
17 //------------------------------------------------------------------------------
20 // This file was automatically generated by SWIG (http://www.swig.org).
23 // Do not make changes to this file unless you know what you are doing--modify
24 // the SWIG interface file instead.
25 //------------------------------------------------------------------------------
27 using Tizen.NUI.BaseComponents;
32 /// FlexContainer implements a subset of the flexbox spec (defined by W3C):https://www.w3.org/TR/css3-flexbox/<br>
33 /// It aims at providing a more efficient way to lay out, align and distribute space among items in the container, even when their size is unknown or dynamic.<br>
34 /// FlexContainer has the ability to alter the width and height of its children (i.e. flex items) to fill the available space in the best possible way on different screen sizes.<br>
35 /// FlexContainer can expand items to fill available free space, or shrink them to prevent overflow.<br>
37 public class FlexContainer : View
39 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
41 internal FlexContainer(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.FlexContainer_SWIGUpcast(cPtr), cMemoryOwn)
43 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
44 // By default, we do not want the position to use the anchor point
45 PositionUsesAnchorPoint = false;
48 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FlexContainer obj)
50 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
53 public override void Dispose()
55 if (!Window.IsInstalled())
57 DisposeQueue.Instance.Add(this);
63 if (swigCPtr.Handle != global::System.IntPtr.Zero)
68 NDalicPINVOKE.delete_FlexContainer(swigCPtr);
70 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
72 global::System.GC.SuppressFinalize(this);
78 internal class Property : global::System.IDisposable
80 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
81 protected bool swigCMemOwn;
83 internal Property(global::System.IntPtr cPtr, bool cMemoryOwn)
85 swigCMemOwn = cMemoryOwn;
86 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
89 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Property obj)
91 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
96 DisposeQueue.Instance.Add(this);
99 public virtual void Dispose()
101 if (!Window.IsInstalled()) {
102 DisposeQueue.Instance.Add(this);
108 if (swigCPtr.Handle != global::System.IntPtr.Zero)
113 NDalicPINVOKE.delete_FlexContainer_Property(swigCPtr);
115 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
117 global::System.GC.SuppressFinalize(this);
121 internal Property() : this(NDalicPINVOKE.new_FlexContainer_Property(), true)
123 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
126 internal static readonly int CONTENT_DIRECTION = NDalicPINVOKE.FlexContainer_Property_CONTENT_DIRECTION_get();
127 internal static readonly int FLEX_DIRECTION = NDalicPINVOKE.FlexContainer_Property_FLEX_DIRECTION_get();
128 internal static readonly int FLEX_WRAP = NDalicPINVOKE.FlexContainer_Property_FLEX_WRAP_get();
129 internal static readonly int JUSTIFY_CONTENT = NDalicPINVOKE.FlexContainer_Property_JUSTIFY_CONTENT_get();
130 internal static readonly int ALIGN_ITEMS = NDalicPINVOKE.FlexContainer_Property_ALIGN_ITEMS_get();
131 internal static readonly int ALIGN_CONTENT = NDalicPINVOKE.FlexContainer_Property_ALIGN_CONTENT_get();
136 /// Enumeration for the instance of child properties belonging to the FlexContainer class.
138 public class ChildProperty : global::System.IDisposable
140 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
141 protected bool swigCMemOwn;
143 internal ChildProperty(global::System.IntPtr cPtr, bool cMemoryOwn)
145 swigCMemOwn = cMemoryOwn;
146 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
149 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ChildProperty obj)
151 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
156 DisposeQueue.Instance.Add(this);
159 public virtual void Dispose()
161 if (!Window.IsInstalled()) {
162 DisposeQueue.Instance.Add(this);
168 if (swigCPtr.Handle != global::System.IntPtr.Zero)
173 NDalicPINVOKE.delete_FlexContainer_ChildProperty(swigCPtr);
175 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
177 global::System.GC.SuppressFinalize(this);
181 internal ChildProperty() : this(NDalicPINVOKE.new_FlexContainer_ChildProperty(), true)
183 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
186 internal static readonly int FLEX = NDalicPINVOKE.FlexContainer_ChildProperty_FLEX_get();
187 internal static readonly int ALIGN_SELF = NDalicPINVOKE.FlexContainer_ChildProperty_ALIGN_SELF_get();
188 internal static readonly int FLEX_MARGIN = NDalicPINVOKE.FlexContainer_ChildProperty_FLEX_MARGIN_get();
193 /// Creates a FlexContainer handle.
194 /// Calling member functions with an uninitialized handle is not allowed.
196 public FlexContainer() : this(NDalicPINVOKE.FlexContainer_New(), true)
198 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
201 internal FlexContainer(FlexContainer handle) : this(NDalicPINVOKE.new_FlexContainer__SWIG_1(FlexContainer.getCPtr(handle)), true)
203 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
206 internal FlexContainer Assign(FlexContainer handle)
208 FlexContainer ret = new FlexContainer(NDalicPINVOKE.FlexContainer_Assign(swigCPtr, FlexContainer.getCPtr(handle)), false);
209 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
213 internal new static FlexContainer DownCast(BaseHandle handle)
215 FlexContainer ret = new FlexContainer(NDalicPINVOKE.FlexContainer_DownCast(BaseHandle.getCPtr(handle)), true);
216 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
221 /// Enumeration for the direction of the main axis in the flex container. This determines
222 /// the direction that flex items are laid out in the flex container.
224 public enum FlexDirectionType
233 /// Enumeration for the primary direction in which content is ordered in the flex container
234 /// and on which sides the ?�start??and ?�end??are.
236 public enum ContentDirectionType
244 /// Enumeration for the alignment of the flex items when the items do not use all available
245 /// space on the main-axis.
247 public enum Justification
257 /// Enumeration for the alignment of the flex items or lines when the items or lines do not
258 /// use all the available space on the cross-axis.
260 public enum Alignment
270 /// Enumeration for the wrap type of the flex container when there is no enough room for
271 /// all the items on one flex line.
279 internal enum PropertyRange
281 PROPERTY_START_INDEX = PropertyRanges.PROPERTY_REGISTRATION_START_INDEX,
282 PROPERTY_END_INDEX = View.PropertyRange.PROPERTY_START_INDEX + 1000,
283 CHILD_PROPERTY_START_INDEX = PropertyRanges.CHILD_PROPERTY_REGISTRATION_START_INDEX,
284 CHILD_PROPERTY_END_INDEX = PropertyRanges.CHILD_PROPERTY_REGISTRATION_START_INDEX + 1000
288 /// The primary direction in which content is ordered
290 public ContentDirectionType ContentDirection
295 GetProperty(FlexContainer.Property.CONTENT_DIRECTION).Get(ref temp);
296 return (ContentDirectionType)temp;
300 SetProperty(FlexContainer.Property.CONTENT_DIRECTION, new Tizen.NUI.PropertyValue((int)value));
305 /// The direction of the main-axis which determines the direction that flex items are laid out
307 public FlexDirectionType FlexDirection
312 GetProperty(FlexContainer.Property.FLEX_DIRECTION).Get(ref temp);
313 return (FlexDirectionType)temp;
317 SetProperty(FlexContainer.Property.FLEX_DIRECTION, new Tizen.NUI.PropertyValue((int)value));
322 /// Whether the flex items should wrap or not if there is no enough room for them on one flex line
324 public WrapType FlexWrap
329 GetProperty(FlexContainer.Property.FLEX_WRAP).Get(ref temp);
330 return (WrapType)temp;
334 SetProperty(FlexContainer.Property.FLEX_WRAP, new Tizen.NUI.PropertyValue((int)value));
339 /// The alignment of flex items when the items do not use all available space on the main-axis
341 public Justification JustifyContent
346 GetProperty(FlexContainer.Property.JUSTIFY_CONTENT).Get(ref temp);
347 return (Justification)temp;
351 SetProperty(FlexContainer.Property.JUSTIFY_CONTENT, new Tizen.NUI.PropertyValue((int)value));
356 /// The alignment of flex items when the items do not use all available space on the cross-axis
358 public Alignment AlignItems
363 GetProperty(FlexContainer.Property.ALIGN_ITEMS).Get(ref temp);
364 return (Alignment)temp;
368 SetProperty(FlexContainer.Property.ALIGN_ITEMS, new Tizen.NUI.PropertyValue((int)value));
373 /// Similar to "alignItems", but it aligns flex lines, so only works when there are multiple lines
375 public Alignment AlignContent
380 GetProperty(FlexContainer.Property.ALIGN_CONTENT).Get(ref temp);
381 return (Alignment)temp;
385 SetProperty(FlexContainer.Property.ALIGN_CONTENT, new Tizen.NUI.PropertyValue((int)value));