summaryrefslogtreecommitdiff
path: root/legacy/elementary/src/lib/elm_diskselector.eo
blob: dc41a9d7c64e5e19d342eee01758f6e6cd259001 (plain) (blame)
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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
class Elm.Diskselector (Elm.Widget, Elm_Interface_Scrollable,
                        Elm_Interface_Atspi_Widget_Action)
{
   eo_prefix: elm_obj_diskselector;
   methods {
      @property side_text_max_length {
         set {
            /*@
            Set the side labels max length.

            Length is the number of characters of items' label that will be
            visible when it's set on side positions. It will just crop
            the string after defined size. E.g.:

            An item with label "January" would be displayed on side position as
            "Jan" if max length is set to 3, or "Janu", if this property
            is set to 4.

            When it's selected, the entire label will be displayed, except for
            width restrictions. In this case label will be cropped and "..."
            will be concatenated.

            Default side label max length is 3.

            This property will be applied over all items, included before or
            later this function call.

            @ingroup Diskselector */
         }
         get {
            /*@
            Get the side labels max length.

            @see elm_diskselector_side_text_max_length_set() for details.

            @return The max length defined for side labels, or 0 if not a valid
            diskselector.

            @ingroup Diskselector */
         }
         values {
            int len; /*@ The max length defined for side labels. */
         }
      }
      @property round_enabled {
         set {
            /*@
            Enable or disable round mode.

            Disabled by default. If round mode is enabled the items list will
            work like a circular list, so when the user reaches the last item,
            the first one will popup.

            @see elm_diskselector_round_enabled_get()

            @ingroup Diskselector */
         }
         get {
            /*@
            Get a value whether round mode is enabled or not.

            @see elm_diskselector_round_enabled_set() for details.

            @return @c EINA_TRUE means round mode is enabled. @c EINA_FALSE indicates
            it's disabled. If @p obj is @c NULL, @c EINA_FALSE is returned.

            @ingroup Diskselector */
         }
         values {
            bool enabled; /*@ @c EINA_TRUE to enable round mode or @c EINA_FALSE to
            disable it. */
         }
      }
      @property display_item_num {
         set {
            /*@
            Set the number of items to be displayed.

            Default value is 3, and also it's the minimum. If @p num is less
            than 3, it will be set to 3.

            Also, it can be set on theme, using data item @c display_item_num
            on group "elm/diskselector/item/X", where X is style set.
            E.g.:

            group { name: "elm/diskselector/item/X";
            data {
            item: "display_item_num" "5";
            }

            @ingroup Diskselector */
         }
         get {
            /*@
            Get the number of items in the diskselector object.

            @ingroup Diskselector */
         }
         values {
            int num; /*@ The number of items the diskselector will display. */
         }
      }
      @property first_item {
         get {
            /*@
            Get the first item of the diskselector.

            @return The first item, or @c NULL if none.

            The list of items follows append order. So it will return the first
            item appended to the widget that wasn't deleted.

            @see elm_diskselector_item_append()
            @see elm_diskselector_items_get()

            @ingroup Diskselector */
            return: Elm_Object_Item *;
         }
      }
      @property items {
         get {
            /*@
            Get a list of all the diskselector items.

            @return A @c list of diskselector items, #Elm_Object_Item,
            or @c NULL on failure.

            @see elm_diskselector_item_append()
            @see elm_object_item_del()
            @see elm_diskselector_clear()

            @ingroup Diskselector */
            return: const(list<Elm.Object.Item*>)*;
         }
      }
      @property last_item {
         get {
            /*@
            Get the last item of the diskselector.

            @return The last item, or @c NULL if none.

            The list of items follows append order. So it will return last first
            item appended to the widget that wasn't deleted.

            @see elm_diskselector_item_append()
            @see elm_diskselector_items_get()

            @ingroup Diskselector */
            return: Elm_Object_Item *;
         }
      }
      @property selected_item {
         get {
            /*@
            Get the selected item.

            @return The selected diskselector item.

            The selected item can be unselected with function
            elm_diskselector_item_selected_set(), and the first item of
            diskselector will be selected.

            The selected item always will be centered on diskselector, with
            full label displayed, i.e., max length set to side labels won't
            apply on the selected item. More details on
            elm_diskselector_side_text_max_length_set().

            @ingroup Diskselector */
            return: Elm_Object_Item *;
         }
      }
      item_append {
         /*@
         Appends a new item to the diskselector object.

         @return The created item or @c NULL upon failure.

         A new item will be created and appended to the diskselector, i.e., will
         be set as last item. Also, if there is no selected item, it will
         be selected. This will always happens for the first appended item.

         If no icon is set, label will be centered on item position, otherwise
         the icon will be placed at left of the label, that will be shifted
         to the right.

         Items created with this method can be deleted with
         elm_object_item_del().

         Associated @p data can be properly freed when item is deleted if a
         callback function is set with elm_object_item_del_cb_set().

         If a function is passed as argument, it will be called every time this item
         is selected, i.e., the user stops the diskselector with this
         item on center position. If such function isn't needed, just passing
         @c NULL as @p func is enough. The same should be done for @p data.

         Simple example (with no function callback or data associated):
         @code
         disk = elm_diskselector_add(win);
         ic = elm_icon_add(win);
         elm_image_file_set(ic, "path/to/image", NULL);
         elm_icon_resizable_set(ic, EINA_TRUE, EINA_TRUE);
         elm_diskselector_item_append(disk, "label", ic, NULL, NULL);
         @endcode

         @see elm_object_item_del()
         @see elm_diskselector_clear()
         @see elm_icon_add()

         @ingroup Diskselector */

         return: Elm_Object_Item *;
         params {
            @in const(char)* label; /*@ The label of the diskselector item. */
            @in Evas_Object *icon @optional; /*@ The icon object to use at left side of the item. An
            icon can be any Evas object, but usually it is an icon created
            with elm_icon_add(). */
            @in Evas_Smart_Cb func @optional; /*@ The function to call when the item is selected. */
            @in const(void)* data @optional; /*@ The data to associate with the item for related callbacks. */
         }
      }
      clear {
         /*@
         Remove all diskselector's items.

         @see elm_object_item_del()
         @see elm_diskselector_item_append()

         @ingroup Diskselector */

      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.member_add;
      Evas.Object_Smart.move;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Evas.Object_Smart.resize;
      Elm.Widget.focus_next_manager_is;
      Elm.Widget.access;
      Elm.Widget.focus_next;
      Elm.Widget.theme_apply;
      Elm.Widget.on_focus;
      Elm.Widget.translate;
      Elm.Widget.sub_object_del;
      Elm.Widget.event;
      Elm_Interface_Scrollable.policy;
      Elm_Interface_Atspi_Widget_Action.elm_actions.get;
   }
   events {
      selected;
      clicked;
      scroll,anim,start;
      scroll,anim,stop;
      scroll,drag,start;
      scroll,drag,stop;
      language,changed;
      access,changed;
      focused;
      unfocused;
   }

}