2016-04-29 16:49:12 -07:00
|
|
|
class Elm.Spinner (Elm.Layout, Efl.Ui.Spin,
|
2016-05-12 03:37:43 -07:00
|
|
|
Elm.Interface.Atspi.Value, Elm.Interface.Atspi_Widget_Action)
|
2014-03-26 06:12:34 -07:00
|
|
|
{
|
2016-05-12 09:06:04 -07:00
|
|
|
legacy_prefix: elm_spinner;
|
2014-03-26 06:12:34 -07:00
|
|
|
eo_prefix: elm_obj_spinner;
|
2016-05-17 09:14:47 -07:00
|
|
|
event_prefix: elm_spinner;
|
2015-05-07 09:32:53 -07:00
|
|
|
methods {
|
|
|
|
@property wrap {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control whether the spinner should wrap when it reaches its minimum or maximum value.
|
|
|
|
|
|
|
|
Disabled by default. If disabled, when the user tries to increment the
|
|
|
|
value,
|
|
|
|
but displayed value plus step value is bigger than maximum value,
|
|
|
|
the new value will be the maximum value.
|
|
|
|
The same happens when the user tries to decrement it,
|
|
|
|
but the value less step is less than minimum value. In this case,
|
|
|
|
the new displayed value will be the minimum value.
|
|
|
|
|
|
|
|
When wrap is enabled, when the user tries to increment the value,
|
|
|
|
but displayed value plus step value is bigger than maximum value,
|
|
|
|
the new value will be the minimum value. When the the user tries to
|
|
|
|
decrement it, but the value less step is less than minimum value,
|
|
|
|
the new displayed value will be the maximum value.
|
|
|
|
|
|
|
|
E.g.:
|
|
|
|
$min = 10
|
|
|
|
$max = 50
|
|
|
|
$step = 20
|
|
|
|
$displayed = 20
|
|
|
|
|
|
|
|
When the user decrement value (using left or bottom arrow), it will
|
|
|
|
displays $50.]]
|
2014-03-26 06:12:34 -07:00
|
|
|
set {
|
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2015-08-10 06:17:49 -07:00
|
|
|
wrap: bool; [[$true to enable wrap or $false to disable it.]]
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property round {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control the round value for rounding
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Sets the rounding value used for value rounding in the spinner.]]
|
|
|
|
set {
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2015-08-10 06:17:49 -07:00
|
|
|
rnd: int; [[The rounding value]]
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property editable {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control whether the spinner can be directly edited by the user or not.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Spinner objects can have edition disabled, in which state they will
|
|
|
|
be changed only by arrows.
|
|
|
|
Useful for contexts
|
|
|
|
where you don't want your users to interact with it writing the value.
|
|
|
|
Specially
|
|
|
|
when using special values, the user can see real value instead
|
|
|
|
of special label on edition.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
It's enabled by default.]]
|
|
|
|
set {
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2015-08-10 06:17:49 -07:00
|
|
|
editable: bool; [[$true to allow users to edit it or $false to don't allow users to edit it directly.]]
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property base {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control the base for rounding
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Rounding works as follows:
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
rounded_val = base + (double)(((value - base) / round) * round)
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Where rounded_val, value and base are doubles, and round is an integer.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
This means that things will be rounded to increments (or decrements) of
|
|
|
|
"round" starting from value $base. The default base for rounding is 0.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Example: round = 3, base = 2
|
|
|
|
Values: ..., -2, 0, 2, 5, 8, 11, 14, ...
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Example: round = 2, base = 5.5
|
|
|
|
Values: ..., -0.5, 1.5, 3.5, 5.5, 7.5, 9.5, 11.5, ...]]
|
|
|
|
set {
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2015-08-10 06:17:49 -07:00
|
|
|
base: double; [[The base value]]
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
2015-05-07 09:32:53 -07:00
|
|
|
@property label_format {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control the format string of the displayed label.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
If $NULL, this sets the format to "%.0f". If not it sets the format
|
|
|
|
string for the label text. The label text is provided a floating point
|
|
|
|
value, so the label text can display up to 1 floating point value.
|
|
|
|
Note that this is optional.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Use a format string such as "%1.2f meters" for example, and it will
|
|
|
|
display values like: "3.14 meters" for a value equal to 3.14159.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Default is "%0.f".]]
|
|
|
|
set {
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
get {
|
|
|
|
}
|
|
|
|
values {
|
2016-05-31 08:02:26 -07:00
|
|
|
fmt: string @nullable; [[The format string for the label display.]]
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
special_value_add {
|
2015-08-10 06:17:49 -07:00
|
|
|
[[Control special string to display in the place of the numerical value.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
It's useful for cases when a user should select an item that is
|
|
|
|
better indicated by a label than a value. For example, weekdays or months.
|
2014-03-26 06:12:34 -07:00
|
|
|
|
2015-08-10 06:17:49 -07:00
|
|
|
Note: If another label was previously set to $value, it will be replaced
|
|
|
|
by the new label.]]
|
|
|
|
|
|
|
|
/* FIXME-doc
|
2014-03-26 06:12:34 -07:00
|
|
|
E.g.:
|
|
|
|
@code
|
|
|
|
sp = elm_spinner_add(win);
|
|
|
|
elm_spinner_min_max_set(sp, 1, 3);
|
|
|
|
elm_spinner_special_value_add(sp, 1, "January");
|
|
|
|
elm_spinner_special_value_add(sp, 2, "February");
|
|
|
|
elm_spinner_special_value_add(sp, 3, "March");
|
|
|
|
evas_object_show(sp);
|
|
|
|
@endcode
|
2015-08-10 06:17:49 -07:00
|
|
|
*/
|
2014-03-26 06:12:34 -07:00
|
|
|
params {
|
2015-08-10 06:17:49 -07:00
|
|
|
@in value: double; [[The value to be replaced.]]
|
2016-05-31 08:02:26 -07:00
|
|
|
@in label: string; [[The label to be used.]]
|
2015-08-10 06:17:49 -07:00
|
|
|
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
implements {
|
2014-06-20 02:47:39 -07:00
|
|
|
class.constructor;
|
2014-06-27 15:36:05 -07:00
|
|
|
Eo.Base.constructor;
|
2016-06-17 01:26:08 -07:00
|
|
|
Efl.Canvas.Group.group_add;
|
|
|
|
Efl.Canvas.Group.group_del;
|
2015-04-22 04:33:10 -07:00
|
|
|
Elm.Widget.theme_apply;
|
|
|
|
Elm.Widget.focus_next_manager_is;
|
|
|
|
Elm.Widget.focus_direction_manager_is;
|
|
|
|
Elm.Widget.access;
|
|
|
|
Elm.Widget.focus_next;
|
|
|
|
Elm.Widget.focus_direction;
|
|
|
|
Elm.Widget.on_focus;
|
|
|
|
Elm.Widget.event;
|
2015-04-22 04:37:40 -07:00
|
|
|
Elm.Layout.sizing_eval;
|
2016-04-29 16:49:12 -07:00
|
|
|
Efl.Ui.Spin.min_max;
|
|
|
|
Efl.Ui.Spin.step;
|
|
|
|
Efl.Ui.Spin.value;
|
|
|
|
Efl.Ui.Spin.interval;
|
2016-05-12 03:37:43 -07:00
|
|
|
Elm.Interface.Atspi_Accessible.name.get;
|
|
|
|
Elm.Interface.Atspi.Value.value_and_text.get;
|
|
|
|
Elm.Interface.Atspi.Value.value_and_text.set;
|
|
|
|
Elm.Interface.Atspi.Value.range.get;
|
|
|
|
Elm.Interface.Atspi.Value.increment.get;
|
|
|
|
Elm.Interface.Atspi_Widget_Action.elm_actions.get;
|
2014-03-26 06:12:34 -07:00
|
|
|
}
|
|
|
|
events {
|
|
|
|
changed;
|
|
|
|
delay,changed;
|
|
|
|
spinner,drag,start;
|
|
|
|
spinner,drag,stop;
|
|
|
|
}
|
|
|
|
}
|