2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
22 /// The Table is a container widget to arrange other widgets in a table where items can span multiple columns or rows .
23 /// Inherits <see cref="Container"/>.
25 public class Table : Container
31 /// Creates and initializes a new instance of the Table class.
33 /// <param name="parent">
34 /// A <see cref="EvasObject"/> to which the new Table instance will be attached.
36 public Table(EvasObject parent) : base(parent)
41 /// Sets or gets whether the layout of this table is homogeneous.
43 /// <remarks>True for homogeneous, False for no homogeneous</remarks>
44 public bool Homogeneous
48 return Interop.Elementary.elm_table_homogeneous_get(RealHandle);
52 Interop.Elementary.elm_table_homogeneous_set(RealHandle, value);
57 /// Sets or gets the horizontal padding between the cells.
68 Interop.Elementary.elm_table_padding_set(RealHandle, _paddingX, _paddingY);
73 /// Sets or gets the vertical padding between the cells.
84 Interop.Elementary.elm_table_padding_set(RealHandle, _paddingX, _paddingY);
88 /// Adds a subobject on the table with the coordinates passed.
90 /// <param name="obj">The subobject to be added to the table</param>
91 /// <param name="col">The column number</param>
92 /// <param name="row">The row number</param>
93 /// <param name="colspan">The column span</param>
94 /// <param name="rowspan">The row span</param>
95 public void Pack(EvasObject obj, int col, int row, int colspan, int rowspan)
98 throw new ArgumentNullException("obj");
99 Interop.Elementary.elm_table_pack(RealHandle, obj, col, row, colspan, rowspan);
104 /// Removes the child from the table.
106 /// <param name="obj">The subobject</param>
107 public void Unpack(EvasObject obj)
110 throw new ArgumentNullException("obj");
111 Interop.Elementary.elm_table_unpack(RealHandle, obj);
116 /// Removes all child objects from a table object.
120 Interop.Elementary.elm_table_clear(RealHandle, false);
125 /// Sets the color for particular part of the table.
127 /// <param name="part">The name of part class</param>
128 /// <param name="color">The color</param>
129 public override void SetPartColor(string part, Color color)
131 Interop.Elementary.elm_object_color_class_color_set(Handle, part, color.R * color.A / 255,
132 color.G * color.A / 255,
133 color.B * color.A / 255,
138 /// Gets the color of particular part of the table.
140 /// <param name="part">The name of part class, it could be 'bg', 'elm.swllow.content'</param>
141 /// <returns>The color of the particular part</returns>
142 public override Color GetPartColor(string part)
145 Interop.Elementary.elm_object_color_class_color_get(Handle, part, out r, out g, out b, out a);
146 return new Color((int)(r / (a / 255.0)), (int)(g / (a / 255.0)), (int)(b / (a / 255.0)), a);
149 protected override IntPtr CreateHandle(EvasObject parent)
151 IntPtr handle = Interop.Elementary.elm_layout_add(parent);
152 Interop.Elementary.elm_layout_theme_set(handle, "layout", "background", "default");
154 RealHandle = Interop.Elementary.elm_table_add(handle);
155 Interop.Elementary.elm_object_part_content_set(handle, "elm.swallow.content", RealHandle);