Merge "[NUI] Update Widget / NUIWidgetApplication" into rel/api_4
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / BaseComponents / TableView.cs
1 /*
2  * Copyright(c) 2017 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 using System;
19 using System.ComponentModel;
20
21 namespace Tizen.NUI.BaseComponents
22 {
23
24     /// <summary>
25     /// TableView is a layout container for aligning child actors in a grid like layout.<br />
26     /// TableView constraints the X and the Y position and the width and the height of the child actors.<br />
27     /// The Z position and depth are left intact so that the 3D model actors can also be laid out
28     /// in a grid without loosing their depth scaling.<br />
29     /// </summary>
30     /// <since_tizen> 3 </since_tizen>
31     public class TableView : View
32     {
33         private global::System.Runtime.InteropServices.HandleRef swigCPtr;
34
35         internal TableView(global::System.IntPtr cPtr, bool cMemoryOwn) : base(NDalicPINVOKE.TableView_SWIGUpcast(cPtr), cMemoryOwn)
36         {
37             swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
38         }
39
40         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TableView obj)
41         {
42             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
43         }
44
45         /// <summary>
46         /// Dispose
47         /// </summary>
48         /// <param name="type">The dispose type</param>
49         /// <since_tizen> 3 </since_tizen>
50         protected override void Dispose(DisposeTypes type)
51         {
52             if(disposed)
53             {
54                 return;
55             }
56
57             if(type == DisposeTypes.Explicit)
58             {
59                 //Called by User
60                 //Release your own managed resources here.
61                 //You should release all of your own disposable objects here.
62             }
63
64             //Release your own unmanaged resources here.
65             //You should not access any managed member here except static instance.
66             //because the execution order of Finalizes is non-deterministic.
67
68             if (swigCPtr.Handle != global::System.IntPtr.Zero)
69             {
70                 if (swigCMemOwn)
71                 {
72                     swigCMemOwn = false;
73                     NDalicPINVOKE.delete_TableView(swigCPtr);
74                 }
75                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
76             }
77
78             base.Dispose(type);
79         }
80
81
82         internal new class Property
83         {
84             internal static readonly int ROWS = NDalicPINVOKE.TableView_Property_ROWS_get();
85             internal static readonly int COLUMNS = NDalicPINVOKE.TableView_Property_COLUMNS_get();
86             internal static readonly int CELL_PADDING = NDalicPINVOKE.TableView_Property_CELL_PADDING_get();
87             internal static readonly int LAYOUT_ROWS = NDalicPINVOKE.TableView_Property_LAYOUT_ROWS_get();
88             internal static readonly int LAYOUT_COLUMNS = NDalicPINVOKE.TableView_Property_LAYOUT_COLUMNS_get();
89         }
90
91         internal class ChildProperty
92         {
93             internal static readonly int CELL_INDEX = NDalicPINVOKE.TableView_ChildProperty_CELL_INDEX_get();
94             internal static readonly int ROW_SPAN = NDalicPINVOKE.TableView_ChildProperty_ROW_SPAN_get();
95             internal static readonly int COLUMN_SPAN = NDalicPINVOKE.TableView_ChildProperty_COLUMN_SPAN_get();
96             internal static readonly int CELL_HORIZONTAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_HORIZONTAL_ALIGNMENT_get();
97             internal static readonly int CELL_VERTICAL_ALIGNMENT = NDalicPINVOKE.TableView_ChildProperty_CELL_VERTICAL_ALIGNMENT_get();
98         }
99
100         /// <summary>
101         /// Class to specify the layout position for the child view.
102         /// </summary>
103         /// <since_tizen> 3 </since_tizen>
104         public class CellPosition : global::System.IDisposable
105         {
106             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
107             /// <summary>
108             /// swigCMemOwn
109             /// </summary>
110             /// <since_tizen> 3 </since_tizen>
111             protected bool swigCMemOwn;
112
113             internal CellPosition(global::System.IntPtr cPtr, bool cMemoryOwn)
114             {
115                 swigCMemOwn = cMemoryOwn;
116                 swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
117             }
118
119             internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CellPosition obj)
120             {
121                 return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
122             }
123
124             //A Flag to check who called Dispose(). (By User or DisposeQueue)
125             private bool isDisposeQueued = false;
126             /// <summary>
127             /// A Flat to check if it is already disposed.
128             /// </summary>
129             /// <since_tizen> 3 </since_tizen>
130             protected bool disposed = false;
131
132             /// <summary>
133             /// Dispose.
134             /// </summary>
135             /// <since_tizen> 3 </since_tizen>
136             ~CellPosition()
137             {
138                 if(!isDisposeQueued)
139                 {
140                     isDisposeQueued = true;
141                     DisposeQueue.Instance.Add(this);
142                 }
143             }
144
145             /// <summary>
146             /// Dispose.
147             /// </summary>
148             /// <since_tizen> 3 </since_tizen>
149             public void Dispose()
150             {
151                 //Throw excpetion if Dispose() is called in separate thread.
152                 if (!Window.IsInstalled())
153                 {
154                     throw new System.InvalidOperationException("This API called from separate thread. This API must be called from MainThread.");
155                 }
156
157                 if (isDisposeQueued)
158                 {
159                     Dispose(DisposeTypes.Implicit);
160                 }
161                 else
162                 {
163                     Dispose(DisposeTypes.Explicit);
164                     System.GC.SuppressFinalize(this);
165                 }
166             }
167
168             /// <summary>
169             /// Dispose.
170             /// </summary>
171             /// <param name="type">DisposeTypes</param>
172             /// <since_tizen> 3 </since_tizen>
173             protected virtual void Dispose(DisposeTypes type)
174             {
175                 if (disposed)
176                 {
177                     return;
178                 }
179
180                 if(type == DisposeTypes.Explicit)
181                 {
182                     //Called by User
183                     //Release your own managed resources here.
184                     //You should release all of your own disposable objects here.
185                 }
186
187                 //Release your own unmanaged resources here.
188                 //You should not access any managed member here except static instance.
189                 //because the execution order of Finalizes is non-deterministic.
190
191                 if (swigCPtr.Handle != global::System.IntPtr.Zero)
192                 {
193                     if (swigCMemOwn)
194                     {
195                         swigCMemOwn = false;
196                         NDalicPINVOKE.delete_TableView_CellPosition(swigCPtr);
197                     }
198                     swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
199                 }
200                 disposed = true;
201             }
202
203             /// <summary>
204             /// The constructor.
205             /// </summary>
206             /// <param name="rowIndex">The row index initialized.</param>
207             /// <param name="columnIndex">The column index initialized.</param>
208             /// <param name="rowSpan">The row span initialized.</param>
209             /// <param name="columnSpan">The column span initialized.</param>
210             /// <since_tizen> 3 </since_tizen>
211             public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan, uint columnSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_0(rowIndex, columnIndex, rowSpan, columnSpan), true)
212             {
213                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
214             }
215
216             /// <summary>
217             /// The constructor to initialize values to defaults for convenience.
218             /// </summary>
219             /// <param name="rowIndex">The row index initialized.</param>
220             /// <param name="columnIndex">The column index initialized.</param>
221             /// <param name="rowSpan">The row span initialized.</param>
222             /// <since_tizen> 3 </since_tizen>
223             public CellPosition(uint rowIndex, uint columnIndex, uint rowSpan) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_1(rowIndex, columnIndex, rowSpan), true)
224             {
225                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
226             }
227
228             /// <summary>
229             /// The constructor to initialize values to defaults for convenience.
230             /// </summary>
231             /// <param name="rowIndex">The row index initialized.</param>
232             /// <param name="columnIndex">The column index initialized.</param>
233             /// <since_tizen> 3 </since_tizen>
234             public CellPosition(uint rowIndex, uint columnIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_2(rowIndex, columnIndex), true)
235             {
236                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
237             }
238
239             /// <summary>
240             /// The constructor to initialize values to default for convenience.
241             /// </summary>
242             /// <param name="rowIndex">The row index initialized.</param>
243             /// <since_tizen> 3 </since_tizen>
244             public CellPosition(uint rowIndex) : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_3(rowIndex), true)
245             {
246                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
247             }
248
249             /// <summary>
250             /// The default constructor.
251             /// </summary>
252             /// <since_tizen> 3 </since_tizen>
253             public CellPosition() : this(NDalicPINVOKE.new_TableView_CellPosition__SWIG_4(), true)
254             {
255                 if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
256             }
257
258             /// <summary>
259             /// The index of a row.
260             /// </summary>
261             /// <since_tizen> 3 </since_tizen>
262             public uint rowIndex
263             {
264                 set
265                 {
266                     NDalicPINVOKE.TableView_CellPosition_rowIndex_set(swigCPtr, value);
267                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
268                 }
269                 get
270                 {
271                     uint ret = NDalicPINVOKE.TableView_CellPosition_rowIndex_get(swigCPtr);
272                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
273                     return ret;
274                 }
275             }
276
277             /// <summary>
278             /// The index of a column.
279             /// </summary>
280             /// <since_tizen> 3 </since_tizen>
281             public uint columnIndex
282             {
283                 set
284                 {
285                     NDalicPINVOKE.TableView_CellPosition_columnIndex_set(swigCPtr, value);
286                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
287                 }
288                 get
289                 {
290                     uint ret = NDalicPINVOKE.TableView_CellPosition_columnIndex_get(swigCPtr);
291                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
292                     return ret;
293                 }
294             }
295
296             /// <summary>
297             /// The span of a row.
298             /// </summary>
299             /// <since_tizen> 3 </since_tizen>
300             public uint rowSpan
301             {
302                 set
303                 {
304                     NDalicPINVOKE.TableView_CellPosition_rowSpan_set(swigCPtr, value);
305                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
306                 }
307                 get
308                 {
309                     uint ret = NDalicPINVOKE.TableView_CellPosition_rowSpan_get(swigCPtr);
310                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
311                     return ret;
312                 }
313             }
314
315             /// <summary>
316             /// The span of a column.
317             /// </summary>
318             /// <since_tizen> 3 </since_tizen>
319             public uint columnSpan
320             {
321                 set
322                 {
323                     NDalicPINVOKE.TableView_CellPosition_columnSpan_set(swigCPtr, value);
324                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
325                 }
326                 get
327                 {
328                     uint ret = NDalicPINVOKE.TableView_CellPosition_columnSpan_get(swigCPtr);
329                     if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
330                     return ret;
331                 }
332             }
333
334         }
335
336         /// <summary>
337         /// Creates the TableView view.
338         /// </summary>
339         /// <param name="initialRows">Initial rows for the table.</param>
340         /// <param name="initialColumns">Initial columns for the table.</param>
341         /// <since_tizen> 3 </since_tizen>
342         public TableView(uint initialRows, uint initialColumns) : this(NDalicPINVOKE.TableView_New(initialRows, initialColumns), true)
343         {
344             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
345
346         }
347
348         /// <summary>
349         /// The Copy constructor. Creates another handle that points to the same real object.
350         /// </summary>
351         /// <param name="handle">Handle to copy from.</param>
352         /// <since_tizen> 3 </since_tizen>
353         public TableView(TableView handle) : this(NDalicPINVOKE.new_TableView__SWIG_1(TableView.getCPtr(handle)), true)
354         {
355             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
356         }
357
358         /// <summary>
359         /// Adds a child to the table.<br />
360         /// If the row or column index is outside the table, the table gets resized bigger.<br />
361         /// </summary>
362         /// <param name="child">The child to add.</param>
363         /// <param name="position">The position for the child.</param>
364         /// <returns>True if the addition succeeded, and false if the cell is already occupied.</returns>
365         /// <since_tizen> 3 </since_tizen>
366         public bool AddChild(View child, TableView.CellPosition position)
367         {
368             bool ret = NDalicPINVOKE.TableView_AddChild(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
369             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
370             return ret;
371         }
372
373         /// <summary>
374         /// Returns a child from the given layout position.
375         /// </summary>
376         /// <param name="position">The position in the table.</param>
377         /// <returns>Child that was in the cell or an uninitialized handle.</returns>
378         /// <since_tizen> 3 </since_tizen>
379         public View GetChildAt(TableView.CellPosition position)
380         {
381             IntPtr cPtr = NDalicPINVOKE.TableView_GetChildAt(swigCPtr, TableView.CellPosition.getCPtr(position));
382             View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
383
384             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
385             return ret;
386         }
387
388         /// <summary>
389         /// Removes a child from the given layout position.
390         /// </summary>
391         /// <param name="position">The position for the child to remove.</param>
392         /// <returns>Child that was removed or an uninitialized handle.</returns>
393         /// <since_tizen> 3 </since_tizen>
394         public View RemoveChildAt(TableView.CellPosition position)
395         {
396             IntPtr cPtr = NDalicPINVOKE.TableView_RemoveChildAt(swigCPtr, TableView.CellPosition.getCPtr(position));
397             View ret = Registry.GetManagedBaseHandleFromNativePtr(cPtr) as View;
398
399             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
400             return ret;
401         }
402
403         /// <summary>
404         /// Finds the child's layout position.
405         /// </summary>
406         /// <param name="child">The child to search for.</param>
407         /// <param name="position">The position for the child.</param>
408         /// <returns>True if the child was included in this TableView.</returns>
409         /// <since_tizen> 3 </since_tizen>
410         public bool FindChildPosition(View child, TableView.CellPosition position)
411         {
412             bool ret = NDalicPINVOKE.TableView_FindChildPosition(swigCPtr, View.getCPtr(child), TableView.CellPosition.getCPtr(position));
413             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
414             return ret;
415         }
416
417         /// <summary>
418         /// Inserts a new row to the given index.
419         /// </summary>
420         /// <param name="rowIndex">The rowIndex of the new row.</param>
421         /// <since_tizen> 3 </since_tizen>
422         public void InsertRow(uint rowIndex)
423         {
424             NDalicPINVOKE.TableView_InsertRow(swigCPtr, rowIndex);
425             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
426         }
427
428         /// <summary>
429         /// Deletes a row from the given index.<br />
430         /// Removed elements are deleted.<br />
431         /// </summary>
432         /// <param name="rowIndex">The rowIndex of the row to delete.</param>
433         /// <since_tizen> 3 </since_tizen>
434         public void DeleteRow(uint rowIndex)
435         {
436             NDalicPINVOKE.TableView_DeleteRow__SWIG_0(swigCPtr, rowIndex);
437             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
438         }
439
440         /// <summary>
441         /// Inserts a new column to the given index.
442         /// </summary>
443         /// <param name="columnIndex">The columnIndex of the new column.</param>
444         /// <since_tizen> 3 </since_tizen>
445         public void InsertColumn(uint columnIndex)
446         {
447             NDalicPINVOKE.TableView_InsertColumn(swigCPtr, columnIndex);
448             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
449         }
450
451         /// <summary>
452         /// Deletes a column from the given index.<br />
453         /// Removed elements are deleted.<br />
454         /// </summary>
455         /// <param name="columnIndex">The columnIndex of the column to delete.</param>
456         /// <since_tizen> 3 </since_tizen>
457         public void DeleteColumn(uint columnIndex)
458         {
459             NDalicPINVOKE.TableView_DeleteColumn__SWIG_0(swigCPtr, columnIndex);
460             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
461         }
462
463         /// <summary>
464         /// Resizes the TableView.
465         /// </summary>
466         /// <param name="rows">The rows for the table.</param>
467         /// <param name="columns">The columns for the table.</param>
468         /// <since_tizen> 3 </since_tizen>
469         public void Resize(uint rows, uint columns)
470         {
471             NDalicPINVOKE.TableView_Resize__SWIG_0(swigCPtr, rows, columns);
472             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
473         }
474
475         /// <summary>
476         /// Sets the horizontal and the vertical padding between cells.
477         /// </summary>
478         /// <param name="padding">Width and height.</param>
479         /// <since_tizen> 3 </since_tizen>
480         public void SetCellPadding(Size2D padding)
481         {
482             NDalicPINVOKE.TableView_SetCellPadding(swigCPtr, Size2D.getCPtr(padding));
483             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
484         }
485
486         /// <summary>
487         /// Gets the current padding as width and height.
488         /// </summary>
489         /// <returns>The current padding as width and height.</returns>
490         /// <since_tizen> 3 </since_tizen>
491         public Vector2 GetCellPadding()
492         {
493             Vector2 ret = new Vector2(NDalicPINVOKE.TableView_GetCellPadding(swigCPtr), true);
494             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
495             return ret;
496         }
497
498         /// <summary>
499         /// Specifies this row as fitting its height to its children.
500         /// </summary>
501         /// <param name="rowIndex">The row to set.</param>
502         /// <since_tizen> 3 </since_tizen>
503         public void SetFitHeight(uint rowIndex)
504         {
505             NDalicPINVOKE.TableView_SetFitHeight(swigCPtr, rowIndex);
506             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
507         }
508
509         /// <summary>
510         /// Checks if the row is a fit row.
511         /// </summary>
512         /// <param name="rowIndex">The row to check.</param>
513         /// <returns>True if the row is fit.</returns>
514         /// <since_tizen> 3 </since_tizen>
515         public bool IsFitHeight(uint rowIndex)
516         {
517             bool ret = NDalicPINVOKE.TableView_IsFitHeight(swigCPtr, rowIndex);
518             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
519             return ret;
520         }
521
522         /// <summary>
523         /// Specifies this column as fitting its width to its children.
524         /// </summary>
525         /// <param name="columnIndex">The column to set.</param>
526         /// <since_tizen> 3 </since_tizen>
527         public void SetFitWidth(uint columnIndex)
528         {
529             NDalicPINVOKE.TableView_SetFitWidth(swigCPtr, columnIndex);
530             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
531         }
532
533         /// <summary>
534         /// Checks if the column is a fit column.
535         /// </summary>
536         /// <param name="columnIndex">The column to check.</param>
537         /// <returns>True if the column is fit.</returns>
538         /// <since_tizen> 3 </since_tizen>
539         public bool IsFitWidth(uint columnIndex)
540         {
541             bool ret = NDalicPINVOKE.TableView_IsFitWidth(swigCPtr, columnIndex);
542             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
543             return ret;
544         }
545
546         /// <summary>
547         /// Sets a row to have a fixed height.<br />
548         /// Setting a fixed height of 0 has no effect.<br />
549         /// </summary>
550         /// <param name="rowIndex">The rowIndex for row with a fixed height.</param>
551         /// <param name="height">The height in world coordinate units.</param>
552         /// <since_tizen> 3 </since_tizen>
553         public void SetFixedHeight(uint rowIndex, float height)
554         {
555             NDalicPINVOKE.TableView_SetFixedHeight(swigCPtr, rowIndex, height);
556             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
557         }
558
559         /// <summary>
560         /// Gets a row's fixed height.
561         /// </summary>
562         /// <param name="rowIndex">The row index with a fixed height.</param>
563         /// <returns>height The height in world coordinate units.</returns>
564         /// <since_tizen> 3 </since_tizen>
565         public float GetFixedHeight(uint rowIndex)
566         {
567             float ret = NDalicPINVOKE.TableView_GetFixedHeight(swigCPtr, rowIndex);
568             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
569             return ret;
570         }
571
572         /// <summary>
573         /// Sets a row to have a relative height. Relative height means percentage of
574         /// the remainder of the table height after subtracting padding and fixed height rows.<br />
575         /// Setting a relative height of 0 has no effect.<br />
576         /// </summary>
577         /// <param name="rowIndex">The rowIndex for row with a relative height.</param>
578         /// <param name="heightPercentage">The height percentage between 0.0f and 1.0f.</param>
579         /// <since_tizen> 3 </since_tizen>
580         public void SetRelativeHeight(uint rowIndex, float heightPercentage)
581         {
582             NDalicPINVOKE.TableView_SetRelativeHeight(swigCPtr, rowIndex, heightPercentage);
583             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
584         }
585
586         /// <summary>
587         /// Gets a row's relative height.
588         /// </summary>
589         /// <param name="rowIndex">The row index with a relative height.</param>
590         /// <returns>Height in percentage units, between 0.0f and 1.0f.</returns>
591         /// <since_tizen> 3 </since_tizen>
592         public float GetRelativeHeight(uint rowIndex)
593         {
594             float ret = NDalicPINVOKE.TableView_GetRelativeHeight(swigCPtr, rowIndex);
595             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
596             return ret;
597         }
598
599         /// <summary>
600         /// Sets a column to have a fixed width.<br />
601         /// Setting a fixed width of 0 has no effect.<br />
602         /// </summary>
603         /// <param name="columnIndex">The columnIndex for column with a fixed width.</param>
604         /// <param name="width">The width in world coordinate units.</param>
605         /// <since_tizen> 3 </since_tizen>
606         public void SetFixedWidth(uint columnIndex, float width)
607         {
608             NDalicPINVOKE.TableView_SetFixedWidth(swigCPtr, columnIndex, width);
609             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
610         }
611
612         /// <summary>
613         /// Gets a column's fixed width.
614         /// </summary>
615         /// <param name="columnIndex">The column index with a fixed width.</param>
616         /// <returns>Width in world coordinate units.</returns>
617         /// <since_tizen> 3 </since_tizen>
618         public float GetFixedWidth(uint columnIndex)
619         {
620             float ret = NDalicPINVOKE.TableView_GetFixedWidth(swigCPtr, columnIndex);
621             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
622             return ret;
623         }
624
625         /// <summary>
626         /// Sets a column to have a relative width. Relative width means percentage of
627         /// the remainder of the table width after subtracting padding and fixed width columns.<br />
628         /// Setting a relative width of 0 has no effect.<br />
629         /// </summary>
630         /// <param name="columnIndex">The columnIndex for column with a fixed width.</param>
631         /// <param name="widthPercentage">The widthPercentage between 0.0f and 1.0f.</param>
632         /// <since_tizen> 3 </since_tizen>
633         public void SetRelativeWidth(uint columnIndex, float widthPercentage)
634         {
635             NDalicPINVOKE.TableView_SetRelativeWidth(swigCPtr, columnIndex, widthPercentage);
636             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
637         }
638
639         /// <summary>
640         /// Gets a column's relative width.
641         /// </summary>
642         /// <param name="columnIndex">The column index with a relative width.</param>
643         /// <returns>Width in percentage units, between 0.0f and 1.0f.</returns>
644         /// <since_tizen> 3 </since_tizen>
645         public float GetRelativeWidth(uint columnIndex)
646         {
647             float ret = NDalicPINVOKE.TableView_GetRelativeWidth(swigCPtr, columnIndex);
648             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
649             return ret;
650         }
651
652         /// <summary>
653         /// Sets the alignment on a cell.<br />
654         /// Cells without calling this function have the default values of left and top respectively.<br />
655         /// </summary>
656         /// <param name="position">The cell to set alignment on.</param>
657         /// <param name="horizontal">The horizontal alignment.</param>
658         /// <param name="vertical">The vertical alignment.</param>
659         /// <since_tizen> 3 </since_tizen>
660         public void SetCellAlignment(TableView.CellPosition position, HorizontalAlignmentType horizontal, VerticalAlignmentType vertical)
661         {
662             NDalicPINVOKE.TableView_SetCellAlignment(swigCPtr, TableView.CellPosition.getCPtr(position), (int)horizontal, (int)vertical);
663             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
664         }
665
666         /// <summary>
667         /// Enumeration for describing how the size of a row or column has been set.
668         /// </summary>
669         /// <since_tizen> 3 </since_tizen>
670         public enum LayoutPolicy
671         {
672             /// <summary>
673             /// Fixed with the given value.
674             /// </summary>
675             /// <since_tizen> 3 </since_tizen>
676             Fixed,
677             /// <summary>
678             /// Calculated as percentage of the remainder after subtracting Padding and Fixed height/width.
679             /// </summary>
680             /// <since_tizen> 3 </since_tizen>
681             Relative,
682             /// <summary>
683             ///  Default policy, get the remainder of the 100% (after subtracting Fixed, Fit and Relative height/ width) divided evenly between 'fill' rows/columns.
684             /// </summary>
685             /// <since_tizen> 3 </since_tizen>
686             Fill,
687             /// <summary>
688             /// Fit around its children.
689             /// </summary>
690             /// <since_tizen> 3 </since_tizen>
691             Fit
692         }
693
694         /// <summary>
695         /// The amount of rows in the table.
696         /// </summary>
697         /// <since_tizen> 3 </since_tizen>
698         public int Rows
699         {
700             get
701             {
702                 int temp = 0;
703                 GetProperty(TableView.Property.ROWS).Get(out temp);
704                 return temp;
705             }
706             set
707             {
708                 SetProperty(TableView.Property.ROWS, new Tizen.NUI.PropertyValue(value));
709             }
710         }
711         /// <summary>
712         /// The amount of columns in the table.
713         /// </summary>
714         /// <since_tizen> 3 </since_tizen>
715         public int Columns
716         {
717             get
718             {
719                 int temp = 0;
720                 GetProperty(TableView.Property.COLUMNS).Get(out temp);
721                 return temp;
722             }
723             set
724             {
725                 SetProperty(TableView.Property.COLUMNS, new Tizen.NUI.PropertyValue(value));
726             }
727         }
728         /// <summary>
729         /// Padding between cells.
730         /// </summary>
731         /// <since_tizen> 3 </since_tizen>
732         public Vector2 CellPadding
733         {
734             get
735             {
736                 Vector2 temp = new Vector2(0.0f, 0.0f);
737                 GetProperty(TableView.Property.CELL_PADDING).Get(temp);
738                 return temp;
739             }
740             set
741             {
742                 SetProperty(TableView.Property.CELL_PADDING, new Tizen.NUI.PropertyValue(value));
743             }
744         }
745
746         /// <summary>
747         /// The number of layout rows.
748         /// </summary>
749         /// <since_tizen> 3 </since_tizen>
750         public PropertyMap LayoutRows
751         {
752             get
753             {
754                 PropertyMap temp = new PropertyMap();
755                 GetProperty(TableView.Property.LAYOUT_ROWS).Get(temp);
756                 return temp;
757             }
758             set
759             {
760                 SetProperty(TableView.Property.LAYOUT_ROWS, new Tizen.NUI.PropertyValue(value));
761             }
762         }
763
764         /// <summary>
765         /// The number of layout columns.
766         /// </summary>
767         /// <since_tizen> 3 </since_tizen>
768         public PropertyMap LayoutColumns
769         {
770             get
771             {
772                 PropertyMap temp = new PropertyMap();
773                 GetProperty(TableView.Property.LAYOUT_COLUMNS).Get(temp);
774                 return temp;
775             }
776             set
777             {
778                 SetProperty(TableView.Property.LAYOUT_COLUMNS, new Tizen.NUI.PropertyValue(value));
779             }
780         }
781
782     }
783 }