summaryrefslogtreecommitdiff
path: root/src/lib/elm_table.eo
blob: 5ccb237f7da46fe673052ebe5fa2a6bf033a20a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
class Elm_Table (Elm_Widget)
{
   eo_prefix: elm_obj_table;
   data: null;
   properties {
      homogeneous {
         set {
            /*@
            @brief Set the homogeneous layout in the table

            @ingroup Table */
         }
         get {
            /*@
            @brief Get the current table homogeneous mode.

            @return A boolean to indicating if the layout is homogeneous in the table
            (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous)

            @ingroup Table */
         }
         values {
            Eina_Bool homogeneous; /*@ A boolean to set if the layout is homogeneous in the
            table (EINA_TRUE = homogeneous, EINA_FALSE = no homogeneous) */
         }
      }
      padding {
         set {
            /*@
            @brief Set padding between cells.

            Default value is 0.

            @ingroup Table */
         }
         get {
            /*@
            @brief Get padding between cells.

            @ingroup Table */
         }
         values {
            Evas_Coord horizontal; /*@ set the horizontal padding. */
            Evas_Coord vertical; /*@ set the vertical padding. */
         }
      }
   }
   methods {
      clear {
         /*@
         @brief Faster way to remove all child objects from a table object.

         @ingroup Table */

         params {
            @in Eina_Bool clear; /*@ If true, will delete children, else just remove from table. */
         }
      }
      child_get {
         /*@
         @brief Get child object of table at given coordinates.

         @return Child of object if find if not return NULL. */

         const;
         return Evas_Object *;
         params {
            @in int col; /*@ Column number of child object */
            @in int row; /*@ Row number of child object */
         }
      }
      pack_set {
         /*@
         @brief Set the packing location of an existing child of the table

         Modifies the position of an object already in the table.

         @note All positioning inside the table is relative to rows and columns, so
         a value of 0 for col and row, means the top left cell of the table, and a
         value of 1 for colspan and rowspan means @p subobj only takes that 1 cell.

         @ingroup Table */

         params {
            @in Evas_Object *subobj; /*@ The subobject to be modified in the table */
            @in int column; /*@ Column number */
            @in int row; /*@ Row number */
            @in int colspan; /*@ colspan */
            @in int rowspan; /*@ rowspan */
         }
         legacy null;
      }
      pack_get {
         /*@
         @brief Get the packing location of an existing child of the table

         @see elm_table_pack_set()

         @ingroup Table */

         params {
            @in Evas_Object *subobj; /*@ The subobject to be modified in the table */
            @out int column; /*@ Column number */
            @out int row; /*@ Row number */
            @out int colspan; /*@ colspan */
            @out int rowspan; /*@ rowspan */
         }
         legacy null;
      }
      unpack {
         /*@
         @brief Remove child from table.

         @ingroup Table */

         params {
            @in Evas_Object *subobj; /*@ The subobject */
         }
      }
      pack {
         /*@
         @brief Add a subobject on the table with the coordinates passed

         @note All positioning inside the table is relative to rows and columns, so
         a value of 0 for x and y, means the top left cell of the table, and a
         value of 1 for w and h means @p subobj only takes that 1 cell.

         Note that columns and rows only guarantee 16bit unsigned values at best.
         That means that col + colspan AND row + rowspan must fit inside 16bit
         unsigned values cleanly. You will be warned once values exceed 15bit
         storage, and attempting to use values not able to fit in 16bits will
         result in failure.

         @ingroup Table */

         params {
            @in Evas_Object *subobj; /*@ The subobject to be added to the table */
            @in int column; /*@ Column number */
            @in int row; /*@ Row number */
            @in int colspan; /*@ colspan */
            @in int rowspan; /*@ rowspan */
         }
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Elm_Widget.focus_direction;
      Elm_Widget.focus_next_manager_is;
      Elm_Widget.focus_next;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.theme_apply;
      Elm_Widget.sub_object_del;
   }

}