summaryrefslogtreecommitdiff
path: root/src/lib/elm_progressbar.eo
blob: 51303f7d1080474f9ad1400447318fa5c9fb051c (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
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
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
class Elm_Progressbar (Elm_Layout)
{
   eo_prefix: elm_obj_progressbar;
   properties {
      span_size {
         set {
            /*@
            Set the (exact) length of the bar region of a given progress bar
            widget

            This sets the minimum width (when in horizontal mode) or height
            (when in vertical mode) of the actual bar area of the progress
            bar @p obj. This in turn affects the object's minimum size. Use
            this when you're not setting other size hints expanding on the
            given direction (like weight and alignment hints) and you would
            like it to have a specific size.

            @note Icon, label and unit text around @p obj will require their
            own space, which will make @p obj to require more the @p size,
            actually.

            @see elm_progressbar_span_size_get()

            @ingroup Progressbar */
         }
         get {
            /*@
            Get the length set for the bar region of a given progress bar
            widget

            @return The length of the progress bar's bar region

            If that size was not set previously, with
            elm_progressbar_span_size_set(), this call will return @c 0.

            @ingroup Progressbar */
         }
         values {
            Evas_Coord size; /*@ The length of the progress bar's bar region */
         }
      }
      pulse {
         set {
            /*@
            Set whether a given progress bar widget is at "pulsing mode" or
            not.

            By default, progress bars will display values from the low to
            high value boundaries. There are, though, contexts in which the
            progress of a given task is @b unknown. For such cases,
            one can set a progress bar widget to a "pulsing state", to give
            the user an idea that some computation is being held, but
            without exact progress values. In the default theme, it will
            animate its bar with the contents filling in constantly and back
            to non-filled, in a loop. To start and stop this pulsing
            animation, one has to explicitly call elm_progressbar_pulse().

            @see elm_progressbar_pulse_get()
            @see elm_progressbar_pulse()

            @ingroup Progressbar */
         }
         get {
            /*@
            Get whether a given progress bar widget is at "pulsing mode" or
            not.

            @return @c EINA_TRUE, if @p obj is in pulsing mode, @c EINA_FALSE
            if it's in the default one (and on errors)

            @ingroup Progressbar */
         }
         values {
            bool pulse; /*@ @c EINA_TRUE to put @p obj in pulsing mode,
            @c EINA_FALSE to put it back to its default one */
         }
      }
      value {
         set {
            /*@
            Set the progress value (in percentage) on a given progress bar
            widget

            Use this call to set progress bar levels.

            @note If you passes a value out of the specified range for @p
            val, it will be interpreted as the @b closest of the @b boundary
            values in the range.

            @ingroup Progressbar */
         }
         get {
            /*@
            Get the progress value (in percentage) on a given progress bar
            widget

            @return The value of the progressbar

            @see elm_progressbar_value_set() for more details

            @ingroup Progressbar */
         }
         values {
            double val; /*@ The progress value (@b must be between @c 0.0 and @c
            1.0) */
         }
      }
      inverted {
         set {
            /*@
            Invert a given progress bar widget's displaying values order

            A progress bar may be @b inverted, in which state it gets its
            values inverted, with high values being on the left or top and
            low values on the right or bottom, as opposed to normally have
            the low values on the former and high values on the latter,
            respectively, for horizontal and vertical modes.

            @see elm_progressbar_inverted_get()

            @ingroup Progressbar */
         }
         get {
            /*@
            Get whether a given progress bar widget's displaying values are
            inverted or not

            @return @c EINA_TRUE, if @p obj has inverted values,
            @c EINA_FALSE otherwise (and on errors)

            @see elm_progressbar_inverted_set() for more details

            @ingroup Progressbar */
         }
         values {
            bool inverted; /*@ Use @c EINA_TRUE to make @p obj inverted,
            @c EINA_FALSE to bring it back to default, non-inverted values. */
         }
      }
      horizontal {
         set {
            /*@
            Set the orientation of a given progress bar widget

            Use this function to change how your progress bar is to be
            disposed: vertically or horizontally.

            @see elm_progressbar_horizontal_get()

            @ingroup Progressbar */
         }
         get {
            /*@
            Retrieve the orientation of a given progress bar widget

            @return @c EINA_TRUE, if @p obj is set to be @b horizontal,
            @c EINA_FALSE if it's @b vertical (and on errors)

            @see elm_progressbar_horizontal_set() for more details

            @ingroup Progressbar */
         }
         values {
            bool horizontal; /*@ Use @c EINA_TRUE to make @p obj to be
            @b horizontal, @c EINA_FALSE to make it @b vertical */
         }
      }
      unit_format {
         set {
            /*@
            Set the format string for a given progress bar widget's units
            label

            If @c NULL is passed on @p format, it will make @p obj's units
            area to be hidden completely. If not, it'll set the <b>format
            string</b> for the units label's @b text. The units label is
            provided a floating point value, so the units text is up display
            at most one floating point value. Note that the units label is
            optional. Use a format string such as "%1.2f meters" for
            example.

            @note The default format string for a progress bar is an integer
            percentage, as in @c "%.0f %%".

            @see elm_progressbar_unit_format_get()

            @ingroup Progressbar */
         }
         get {
            /*@
            Retrieve the format string set for a given progress bar widget's
            units label

            @return The format set string for @p obj's units label or
            @c NULL, if none was set (and on errors)

            @see elm_progressbar_unit_format_set() for more details

            @ingroup Progressbar */
         }
         values {
            const(char)* units; /*@ The format string for @p obj's units label */
         }
      }
      unit_format_function {
         set {
            /*@
            Set the format function pointer for the units label

            Set the callback function to format the unit string.

            @see elm_progressbar_unit_format_set() for more info on how this works.

            @since 1.7

            @ingroup Progressbar */
         }
         values {
            progressbar_func_type func; /*@ The unit format function */
            progressbar_freefunc_type free_func; /*@ The freeing function for the format string. */
         }
      }
   }
   methods {
      part_value_set {
         /*@
         Set the progress value (in percentage) on a given progress bar
         widget for the given part name

         @since 1.8

         Use this call to set progress bar status for more than one progress status .

         @ingroup Progressbar */

         params {
            @in const(char)* part; /*@ The partname to which val have to set */
            @in double val; /*@ The progress value (@b must be between @c 0.0 and @c
            1.0) */
         }
      }
      part_value_get @const {
         /*@
         Get the progress value (in percentage) on a given progress bar
         widget for a particular part

         @since 1.8

         @return The value of the progressbar

         @see elm_progressbar_value_set() for more details

         @ingroup Progressbar */
         return double;
         params {
            @in const(char)* part; /*@ The part name of the progress bar */
         }
      }
      pulse {
         /*@
         Start/stop a given progress bar "pulsing" animation, if its
         under that mode

         @note This call won't do anything if @p obj is not under "pulsing mode".

         @see elm_progressbar_pulse_set() for more details.

         @ingroup Progressbar */

         params {
            @in bool state; /*@ @c EINA_TRUE, to @b start the pulsing animation,
            @c EINA_FALSE to @b stop it */
         }
      }
   }
   implements {
      class.constructor;
      Eo.Base.constructor;
      Evas.Object_Smart.add;
      Evas.Object_Smart.del;
      Elm_Widget.theme_apply;
      Elm_Widget.focus_next_manager_is;
      Elm_Widget.focus_direction_manager_is;
      Elm_Widget.sub_object_del;
      Elm_Container.content_set;
      Elm_Layout.text_aliases.get;
      Elm_Layout.content_aliases.get;
      Elm_Layout.sizing_eval;
   }
   events {
      changed;
      language,changed;
      access,changed;
      focused;
      unfocused;
   }

}