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;
31 using Tizen.NUI.BaseComponents;
33 /// TableView is a layout container for aligning child actors in a grid like layout.<br>
34 /// TableView constrains the x and y position and width and height of the child actors.<br>
35 /// z position and depth are left intact so that 3D model actors can also be laid out
36 /// in a grid without loosing their depth scaling.<br>
38 public class TableView : View
40 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
42 internal TableView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TableView_SWIGUpcast(cPtr), cMemoryOwn)
44 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
45 // By default, we do not want the position to use the anchor point
46 PositionUsesAnchorPoint = false;
49 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TableView obj)
51 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
54 protected override void Dispose(DisposeTypes type)
61 if(type == DisposeTypes.Explicit)
64 //Release your own managed resources here.
65 //You should release all of your own disposable objects here.
68 //Release your own unmanaged resources here.
69 //You should not access any managed member here except static instance.
70 //because the execution order of Finalizes is non-deterministic.
72 if (swigCPtr.Handle != global::System.IntPtr.Zero)
77 NDalicPINVOKE.delete_TableView(swigCPtr);
79 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
86 internal class Property
88 internal static readonly int ROWS = NDalicPINVOKE.TableView_Property_ROWS_get();
89 internal static readonly int COLUMNS = NDalicPINVOKE.TableView_Property_COLUMNS_get();
90 internal static readonly int CELL_PADDING = NDalicPINVOKE.TableView_Property_CELL_PADDING_get();
91 internal static readonly int LAYOUT_ROWS = NDalicPINVOKE.TableView_Property_LAYOUT_ROWS_get();
92 internal static readonly int LAYOUT_COLUMNS = NDalicPINVOKE.TableView_Property_LAYOUT_COLUMNS_get();
95 internal class ChildProperty
97 internal static readonly int CELL_INDEX = NDalicPINVOKE.TableView_ChildProperty_CELL_INDEX_get();
98 internal static readonly int ROW_SPAN = NDalicPINVOKE.TableView_ChildProperty_ROW_SPAN_get();
99 internal static readonly int COLUMN_SPAN = NDalicPINVOKE.TableView_ChildProperty_COLUMN_SPAN_get();
100 internal static readonly int CELL_HORIZONTAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_HORIZONTAL_ALIGNMENT_get();
101 internal static readonly int CELL_VERTICAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_VERTICAL_ALIGNMENT_get();
105 /// Class to specify layout position for child view.
107 public class CellPosition : global::System.IDisposable
109 private global::System.Runtime.InteropServices.HandleRef swigCPtr;
110 protected bool swigCMemOwn;
112 internal CellPosition(global::System.IntPtr cPtr, bool cMemoryOwn)
114 swigCMemOwn = cMemoryOwn;
115 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
118 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CellPosition obj)
120 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
123 //A Flag to check who called Dispose(). (By User or DisposeQueue)
124 private bool isDisposeQueued = false;
125 //A Flat to check if it is already disposed.
126 protected bool disposed = false;
132 isDisposeQueued = true;
133 DisposeQueue.Instance.Add(this);
137 public void Dispose()
139 //Throw excpetion if Dispose() is called in separate thread.
140 if (!Window.IsInstalled())
142 throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
147 Dispose(DisposeTypes.Implicit);
151 Dispose(DisposeTypes.Explicit);
152 System.GC.SuppressFinalize(this);
156 protected virtual void Dispose(DisposeTypes type)
163 if(type == DisposeTypes.Explicit)
166 //Release your own managed resources here.
167 //You should release all of your own disposable objects here.
170 //Release your own unmanaged resources here.
171 //You should not access any managed member here except static instance.
172 //because the execution order of Finalizes is non-deterministic.
174 if (swigCPtr.Handle != global::System.IntPtr.Zero)
179 NDalicPINVOKE.delete_TableView_CellPosition(swigCPtr);
181 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
189 /// <param name="rowIndex">The row index initialized</param>
190 /// <param name="columnIndex">The column index initialized</param>
191 /// <param name="rowSpan">The row span initialized</param>
192 /// <param name="columnSpan">The column span initialized</param>
193 public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan, uint columnSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_0(rowIndex, columnIndex, rowSpan, columnSpan), true)
195 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
199 /// Constructor to initialise values to defaults for convenience.
201 /// <param name="rowIndex">The row index initialized</param>
202 /// <param name="columnIndex">The column index initialized</param>
203 /// <param name="rowSpan">The row span initialized</param>
204 public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_1(rowIndex, columnIndex, rowSpan), true)
206 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
210 /// Constructor to initialise values to defaults for convenience.
212 /// <param name="rowIndex">The row index initialized</param>
213 /// <param name="columnIndex">The column index initialized</param>
214 public CellPosition(uint rowIndex, uint columnIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_2(rowIndex, columnIndex), true)
216 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
220 /// Constructor to initialise values to defaults for convenience.
222 /// <param name="rowIndex">The row index initialized</param>
223 public CellPosition(uint rowIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_3(rowIndex), true)
225 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
229 /// Default constructor
231 public CellPosition() : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_4(), true)
233 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
243 NDalicPINVOKE.TableView_CellPosition_rowIndex_set(swigCPtr, value);
244 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
248 uint ret = NDalicPINVOKE.TableView_CellPosition_rowIndex_get(swigCPtr);
249 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
257 public uint columnIndex
261 NDalicPINVOKE.TableView_CellPosition_columnIndex_set(swigCPtr, value);
262 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
266 uint ret = NDalicPINVOKE.TableView_CellPosition_columnIndex_get(swigCPtr);
267 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
279 NDalicPINVOKE.TableView_CellPosition_rowSpan_set(swigCPtr, value);
280 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
284 uint ret = NDalicPINVOKE.TableView_CellPosition_rowSpan_get(swigCPtr);
285 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
293 public uint columnSpan
297 NDalicPINVOKE.TableView_CellPosition_columnSpan_set(swigCPtr, value);
298 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
302 uint ret = NDalicPINVOKE.TableView_CellPosition_columnSpan_get(swigCPtr);
303 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
311 /// Creates the TableView view.
313 /// <param name="initialRows">initialRows for the table</param>
314 /// <param name="initialColumns">initialColumns for the table</param>
315 public TableView(uint initialRows, uint initialColumns) : this(NDalicPINVOKE.TableView_New(initialRows, initialColumns), true)
317 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
322 /// Copy constructor. Creates another handle that points to the same real object.
324 /// <param name="handle">Handle to copy from</param>
325 public TableView(TableView handle) : this(NDalicPINVOKE.new_TableView__SWIG_1(TableView.getCPtr(handle)), true)
327 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
331 /// Adds a child to the table.<br>
332 /// If the row or column index is outside the table, the table gets resized bigger.<br>
334 /// <param name="child">The child to add</param>
335 /// <param name="position">The position for the child</param>
336 /// <returns>Tue if the addition succeeded and false if the cell is already occupied</returns>
337 public bool AddChild(View child, TableView.CellPosition position)
339 bool ret = NDalicPINVOKE.TableView_AddChild(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
340 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345 /// Returns a child from the given layout position.
347 /// <param name="position">The position in the table</param>
348 /// <returns>Child that was in the cell or an uninitialized handle</returns>
349 public View GetChildAt(TableView.CellPosition position)
351 View ret = new View(NDalicPINVOKE.TableView_GetChildAt(swigCPtr, TableView.CellPosition.getCPtr(position)), true);
352 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
357 /// Removes a child from the given layout position.
359 /// <param name="position">The position for the child to remove</param>
360 /// <returns>Child that was removed or an uninitialized handle</returns>
361 public View RemoveChildAt(TableView.CellPosition position)
363 View ret = new View(NDalicPINVOKE.TableView_RemoveChildAt(swigCPtr, TableView.CellPosition.getCPtr(position)), true);
364 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
369 /// Finds the child's layout position.
371 /// <param name="child">The child to search for</param>
372 /// <param name="position">The position for the child</param>
373 /// <returns>true if the child was included in this TableView</returns>
374 public bool FindChildPosition(View child, TableView.CellPosition position)
376 bool ret = NDalicPINVOKE.TableView_FindChildPosition(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
377 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
382 /// Inserts a new row to given index.
384 /// <param name="rowIndex">The rowIndex of the new row</param>
385 public void InsertRow(uint rowIndex)
387 NDalicPINVOKE.TableView_InsertRow(swigCPtr, rowIndex);
388 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
392 /// Deletes a row from the given index.<br>
393 /// Removed elements are deleted.<br>
395 /// <param name="rowIndex">The rowIndex of the row to delete</param>
396 public void DeleteRow(uint rowIndex)
398 NDalicPINVOKE.TableView_DeleteRow__SWIG_0(swigCPtr, rowIndex);
399 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
403 /// Inserts a new column to the given index.
405 /// <param name="columnIndex">The columnIndex of the new column</param>
406 public void InsertColumn(uint columnIndex)
408 NDalicPINVOKE.TableView_InsertColumn(swigCPtr, columnIndex);
409 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
413 /// Deletes a column from the given index.<br>
414 /// Removed elements are deleted.<br>
416 /// <param name="columnIndex">The columnIndex of the column to delete</param>
417 public void DeleteColumn(uint columnIndex)
419 NDalicPINVOKE.TableView_DeleteColumn__SWIG_0(swigCPtr, columnIndex);
420 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
424 /// Resizes the TableView.
426 /// <param name="rows">The rows for the table</param>
427 /// <param name="columns">The columns for the table</param>
428 public void Resize(uint rows, uint columns)
430 NDalicPINVOKE.TableView_Resize__SWIG_0(swigCPtr, rows, columns);
431 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
435 /// Sets horizontal and vertical padding between cells.
437 /// <param name="padding">Width and height</param>
438 public void SetCellPadding(Size2D padding)
440 NDalicPINVOKE.TableView_SetCellPadding(swigCPtr, Size2D.getCPtr(padding));
441 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
445 /// Gets the current padding as width and height.
447 /// <returns>The current padding as width and height</returns>
448 public Vector2 GetCellPadding()
450 Vector2 ret = new Vector2(NDalicPINVOKE.TableView_GetCellPadding(swigCPtr), true);
451 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
456 /// Specifies this row as fitting its height to its children.
458 /// <param name="rowIndex">The row to set</param>
459 public void SetFitHeight(uint rowIndex)
461 NDalicPINVOKE.TableView_SetFitHeight(swigCPtr, rowIndex);
462 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
466 /// Checks if the row is a fit row.
468 /// <param name="rowIndex">The row to check</param>
469 /// <returns>true if the row is fit</returns>
470 public bool IsFitHeight(uint rowIndex)
472 bool ret = NDalicPINVOKE.TableView_IsFitHeight(swigCPtr, rowIndex);
473 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
478 /// Specifies this column as fitting its width to its children.
480 /// <param name="columnIndex">The column to set</param>
481 public void SetFitWidth(uint columnIndex)
483 NDalicPINVOKE.TableView_SetFitWidth(swigCPtr, columnIndex);
484 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
488 /// Checks if the column is a fit column.
490 /// <param name="columnIndex">The column to check</param>
491 /// <returns>true if the column is fit</returns>
492 public bool IsFitWidth(uint columnIndex)
494 bool ret = NDalicPINVOKE.TableView_IsFitWidth(swigCPtr, columnIndex);
495 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
500 /// Sets a row to have fixed height.<br>
501 /// Setting a fixed height of 0 has no effect.<br>
503 /// <param name="rowIndex">The rowIndex for row with fixed height</param>
504 /// <param name="height">The height in world coordinate units</param>
505 public void SetFixedHeight(uint rowIndex, float height)
507 NDalicPINVOKE.TableView_SetFixedHeight(swigCPtr, rowIndex, height);
508 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
512 /// Gets a row's fixed height.
514 /// <param name="rowIndex">The row index with fixed height</param>
515 /// <returns>height The height in world coordinate units</returns>
516 public float GetFixedHeight(uint rowIndex)
518 float ret = NDalicPINVOKE.TableView_GetFixedHeight(swigCPtr, rowIndex);
519 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
524 /// Sets a row to have relative height. Relative height means percentage of
525 /// the remainder of the table height after subtracting Padding and Fixed height rows.<br>
526 /// Setting a relative height of 0 has no effect.<br>
528 /// <param name="rowIndex">The rowIndex for row with relative height</param>
529 /// <param name="heightPercentage">The height percentage between 0.0f and 1.0f</param>
530 public void SetRelativeHeight(uint rowIndex, float heightPercentage)
532 NDalicPINVOKE.TableView_SetRelativeHeight(swigCPtr, rowIndex, heightPercentage);
533 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
537 /// Gets a row's relative height.
539 /// <param name="rowIndex">The row index with relative height</param>
540 /// <returns>Height in percentage units, between 0.0f and 1.0f</returns>
541 public float GetRelativeHeight(uint rowIndex)
543 float ret = NDalicPINVOKE.TableView_GetRelativeHeight(swigCPtr, rowIndex);
544 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
549 /// Sets a column to have fixed width.<br>
550 /// Setting a fixed width of 0 has no effect.<br>
552 /// <param name="columnIndex">The columnIndex for column with fixed width</param>
553 /// <param name="width">The width in world coordinate units</param>
554 public void SetFixedWidth(uint columnIndex, float width)
556 NDalicPINVOKE.TableView_SetFixedWidth(swigCPtr, columnIndex, width);
557 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
561 /// Gets a column's fixed width.
563 /// <param name="columnIndex">The column index with fixed width</param>
564 /// <returns>Width in world coordinate units</returns>
565 public float GetFixedWidth(uint columnIndex)
567 float ret = NDalicPINVOKE.TableView_GetFixedWidth(swigCPtr, columnIndex);
568 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
573 /// Sets a column to have relative width. Relative width means percentage of
574 /// the remainder of table width after subtracting Padding and Fixed width columns.<br>
575 /// Setting a relative width of 0 has no effect.<br>
577 /// <param name="columnIndex">The columnIndex for column with fixed width</param>
578 /// <param name="widthPercentage">The widthPercentage between 0.0f and 1.0f</param>
579 public void SetRelativeWidth(uint columnIndex, float widthPercentage)
581 NDalicPINVOKE.TableView_SetRelativeWidth(swigCPtr, columnIndex, widthPercentage);
582 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
586 /// Gets a column's relative width.
588 /// <param name="columnIndex">The column index with relative width</param>
589 /// <returns>Width in percentage units, between 0.0f and 1.0f</returns>
590 public float GetRelativeWidth(uint columnIndex)
592 float ret = NDalicPINVOKE.TableView_GetRelativeWidth(swigCPtr, columnIndex);
593 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
598 /// Sets the alignment on a cell.<br>
599 /// Cells without calling this function have the default values of LEFT and TOP respectively.<br>
601 /// <param name="position">The cell to set alignment on</param>
602 /// <param name="horizontal">The horizontal alignment</param>
603 /// <param name="vertical">The vertical alignment</param>
604 public void SetCellAlignment(TableView.CellPosition position, HorizontalAlignmentType horizontal, VerticalAlignmentType vertical)
606 NDalicPINVOKE.TableView_SetCellAlignment(swigCPtr, TableView.CellPosition.getCPtr(position), (int)horizontal, (int)vertical);
607 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
611 /// Enumeration for describing how the size of a row / column has been set.
613 public enum LayoutPolicy
622 /// the amount of rows in the table.
629 GetProperty(TableView.Property.ROWS).Get(out temp);
634 SetProperty(TableView.Property.ROWS, new Tizen.NUI.PropertyValue(value));
638 /// the amount of columns in the table.
645 GetProperty(TableView.Property.COLUMNS).Get(out temp);
650 SetProperty(TableView.Property.COLUMNS, new Tizen.NUI.PropertyValue(value));
654 /// padding between cells.
656 public Vector2 CellPadding
660 Vector2 temp = new Vector2(0.0f, 0.0f);
661 GetProperty(TableView.Property.CELL_PADDING).Get(temp);
666 SetProperty(TableView.Property.CELL_PADDING, new Tizen.NUI.PropertyValue(value));
671 /// The number of layout rows
673 public PropertyMap LayoutRows
677 PropertyMap temp = new PropertyMap();
678 GetProperty(TableView.Property.LAYOUT_ROWS).Get(temp);
683 SetProperty(TableView.Property.LAYOUT_ROWS, new Tizen.NUI.PropertyValue(value));
688 /// The number of layout columns
690 public PropertyMap LayoutColumns
694 PropertyMap temp = new PropertyMap();
695 GetProperty(TableView.Property.LAYOUT_COLUMNS).Get(temp);
700 SetProperty(TableView.Property.LAYOUT_COLUMNS, new Tizen.NUI.PropertyValue(value));