ctxpopup: merge eo & header files for different profiles
[platform/upstream/elementary.git] / src / lib / elm_ctxpopup.eo
1 enum Elm.Ctxpopup.Direction
2 {
3    [[Direction in which to show the popup.]]
4    down, [[Ctxpopup show appear below clicked area.]]
5    right, [[Ctxpopup show appear to the right of the clicked area.]]
6    left, [[Ctxpopup show appear to the left of the clicked area.]]
7    up, [[Ctxpopup show appear above the clicked area.]]
8    unknown [[Ctxpopup does not determine it's direction yet.]]
9 }
10
11 class Elm.Ctxpopup (Elm.Layout, Elm_Interface_Atspi_Widget_Action)
12 {
13    eo_prefix: elm_obj_ctxpopup;
14    methods {
15       @property horizontal {
16          set {
17             [[Change the ctxpopup's orientation to horizontal or vertical.
18
19               \@if MOBILE \@since_tizen 2.3
20               \@elseif WEARABLE \@since_tizen 2.3.1
21               \@endif
22             ]]
23          }
24          get {
25             [[Get the value of current ctxpopup object's orientation.
26
27               See also @.horizontal.set.
28
29               \@if MOBILE \@since_tizen 2.3
30               \@elseif WEARABLE \@since_tizen 2.3.1
31               \@endif
32             ]]
33          }
34          values {
35             horizontal: bool; [[$true for horizontal mode, $false for vertical.]]
36          }
37       }
38       @property auto_hide_disabled {
39          set {
40             [[Set ctxpopup auto hide mode triggered by ctxpopup policy.
41
42               Use this function when user wants ctxpopup not to hide automatically.
43               By default, ctxpopup is dismissed whenever mouse clicked its background area, language is changed,
44               and its parent geometry is updated(changed).
45               Not to hide ctxpopup automatically, disable auto hide function by calling this API,
46               then ctxpopup won't be dismissed in those scenarios.
47
48               Default value of disabled is $false.
49
50               See also @.auto_hide_disabled.get.
51
52               \@if MOBILE \@since_tizen 2.3
53               \@elseif WEARABLE \@since_tizen 2.3.1
54               \@endif
55
56               @since 1.9
57             ]]
58          }
59          get @internal {
60             [[Get ctxpopup auto hide mode triggered by ctxpopup policy.
61
62               See also @.auto_hide_disabled.set for more information.
63
64               @since 1.9
65             ]]
66          }
67          values {
68             disabled: bool; [[auto hide enable/disable.]]
69          }
70       }
71       @property hover_parent {
72          set {
73             [[Set the Ctxpopup's parent
74
75               Set the parent object.
76
77               Note: \@ref elm_ctxpopup_add will automatically call this function
78               with its $parent argument.
79
80               See also \@ref elm_ctxpopup_add,
81               \@ref elm_hover_parent_set.
82
83               \@if MOBILE \@since_tizen 2.3
84               \@elseif WEARABLE \@since_tizen 2.3.1
85               \@endif
86             ]]
87          }
88          get {
89             [[Get the Ctxpopup's parent
90
91               See also @.hover_parent.set for more information
92
93               \@if MOBILE \@since_tizen 2.3
94               \@elseif WEARABLE \@since_tizen 2.3.1
95               \@endif
96             ]]
97          }
98          values {
99             parent: Evas.Object *; [[The parent to use.]]
100          }
101       }
102       @property direction_priority {
103          set {
104             [[Set the direction priority of a ctxpopup.
105
106               This functions gives a chance to user to set the priority of ctxpopup
107               showing direction. This doesn't guarantee the ctxpopup will appear in the
108               requested direction.
109
110               See also @.Direction.
111
112               \@if MOBILE \@since_tizen 2.3
113               \@elseif WEARABLE \@since_tizen 2.3.1
114               \@endif
115             ]]
116          }
117          get {
118             [[Get the direction priority of a ctxpopup.
119
120               See also @.direction_priority.set for more information.
121
122               \@if MOBILE \@since_tizen 2.3
123               \@elseif WEARABLE \@since_tizen 2.3.1
124               \@endif
125             ]]
126          }
127          values {
128             first: Elm.Ctxpopup.Direction; [[1st priority of direction]]
129             second: Elm.Ctxpopup.Direction; [[2nd priority of direction]]
130             third: Elm.Ctxpopup.Direction; [[3th priority of direction]]
131             fourth: Elm.Ctxpopup.Direction; [[4th priority of direction]]
132          }
133       }
134       @property direction {
135          get {
136             [[Get the current direction of a ctxpopup.
137
138               Warning: Once the ctxpopup showed up, the direction would be determined
139
140               \@if MOBILE \@since_tizen 2.3
141               \@elseif WEARABLE \@since_tizen 2.3.1
142               \@endif
143             ]]
144             return: Elm.Ctxpopup.Direction(Elm.Ctxpopup.Direction.unknown);
145          }
146       }
147       @property items {
148          get @internal {
149             [[Get the internal list of items in a given ctxpopup widget.
150
151               This list is not to be modified in any way and must not be
152               freed. Use the list members with functions like
153               \@ref elm_object_item_text_set,
154               \@ref elm_object_item_text_get,
155               \@ref elm_object_item_del.
156
157               Warning: This list is only valid until $obj object's internal
158               items list is changed. It should be fetched again with another
159               call to this function when changes happen.
160
161               @since 1.11
162             ]]
163             return: const(list<Elm.Object.Item*>)*; [[The list of items or
164             $null on errors.]]
165
166          }
167       }
168       @property first_item {
169          get @internal {
170             [[Get the first item in the given ctxpopup widget's list of
171               items.
172
173               See also  @.item_append,
174               @.last_item.get.
175
176               @since 1.11
177             ]]
178             return: Elm.Widget_Item *; [[The first item or $null, if it has no items (and on
179               errors).]]
180
181          }
182       }
183       @property last_item {
184          get @internal {
185             [[Get the last item in the given ctxpopup widget's list of
186               items.
187
188               See also @.item_prepend,
189               @.first_item.get.
190
191               @since 1.1
192             ]]
193             return: Elm.Widget_Item *; [[The last item or $null, if it has no items (and on
194               errors).]]
195
196          }
197       }
198       dismiss {
199          [[Dismiss a ctxpopup object
200
201          Use this function to simulate clicking outside of the ctxpopup to dismiss it.
202          In this way, the ctxpopup will be hidden and the "clicked" signal will be
203          emitted.
204
205          \@if MOBILE \@since_tizen 2.3
206          \@elseif WEARABLE \@since_tizen 2.3.1
207          \@endif
208        ]]
209
210       }
211       clear {
212          [[Clear all items in the given ctxpopup object.
213
214            \@if MOBILE \@since_tizen 2.3
215            \@elseif WEARABLE \@since_tizen 2.3.1
216            \@endif
217          ]]
218       }
219       item_append {
220          [[Add a new item to a ctxpopup object.
221
222
223            Warning:Ctxpopup can't hold both an item list and a content at the same
224            time. When an item is added, any previous content will be removed.
225
226            See also \@ref elm_object_content_set.
227
228            \@if MOBILE \@since_tizen 2.3
229            \@elseif WEARABLE \@since_tizen 2.3.1
230            \@endif
231          ]]
232          return: Elm.Widget_Item *; [[A handle to the item added or $null, on errors.]]
233
234          params {
235             @in label: const(char)*; [[The Label of the new item]]
236             @in icon: Evas.Object * @optional; [[Icon to be set on new item]]
237             @in func: Evas_Smart_Cb @optional; [[Convenience function called when item selected]]
238             @in data: const(void)* @optional; [[Data passed to $func]]
239          }
240       }
241       item_prepend @internal {
242          [[Prepend a new item to a ctxpopup object.
243
244            Warning: Ctxpopup can't hold both an item list and a content at the same
245            time. When an item is added, any previous content will be removed.
246
247            See also \@ref elm_object_content_set.
248
249            @since 1.11
250          ]]
251          return: Elm.Widget_Item *; [[A handle to the item added or $null, on errors.]]
252
253          params {
254             @in label: const(char)*; [[The Label of the new item]]
255             @in icon: Evas.Object * @optional; [[Icon to be set on new item]]
256             @in func: Evas_Smart_Cb @optional; [[Convenience function called when item selected]]
257             @in data: const(void)* @optional; [[Data passed to $func]]
258          }
259       }
260    }
261    implements {
262       class.constructor;
263       Eo.Base.constructor;
264       Evas.Object_Smart.del;
265       Evas.Object_Smart.add;
266       Elm.Widget.parent.set;
267       Elm.Widget.focus_direction;
268       Elm.Widget.sub_object_add;
269       Elm.Widget.focus_direction_manager_is;
270       Elm.Widget.focus_next_manager_is;
271       Elm.Widget.focus_next;
272       Elm.Widget.disable;
273       Elm.Widget.translate;
274       Elm.Widget.theme_apply;
275       Elm.Widget.event;
276       Elm.Container.content_get;
277       Elm.Container.content_set;
278       Elm.Container.content_unset;
279       Elm.Layout.sub_object_add_enable;
280       Elm.Layout.sizing_eval;
281       Elm_Interface_Atspi_Widget_Action.elm_actions.get;
282       Elm_Interface_Atspi_Accessible.state_set.get;
283       Elm_Interface_Atspi_Accessible.children.get;
284       //TIZEN ONLY(20160918): name interface added
285       Elm_Interface_Atspi_Accessible.name.get;
286       //
287       Elm_Interface_Atspi_Component.extents.get;
288       Elm_Interface_Atspi_Component.highlight_grab;
289       Elm_Interface_Atspi_Component.highlight_clear;
290    }
291    events {
292       dismissed;
293    }
294 }