forked from enlightenment/efl
spin interface: common interface for flipselector and spinner
Summary: Added common interface for flipselector and spinner. Implemented APIs of spinner like min_max_set, step_set, value_set etc in flipselector. Test Plan: elementary_test Reviewers: raster, jpeg, singh.amitesh, woohyun, SanghyeonLee, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D3905 Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This commit is contained in:
parent
b8860c88f5
commit
f7e1be2062
|
@ -35,6 +35,7 @@ efl_eolian_files = \
|
||||||
lib/efl/interfaces/efl_vpath_file.eo \
|
lib/efl/interfaces/efl_vpath_file.eo \
|
||||||
lib/efl/interfaces/efl_vpath_core.eo \
|
lib/efl/interfaces/efl_vpath_core.eo \
|
||||||
lib/efl/interfaces/efl_vpath_file_core.eo \
|
lib/efl/interfaces/efl_vpath_file_core.eo \
|
||||||
|
lib/efl/interfaces/efl_ui_spin.eo \
|
||||||
lib/efl/interfaces/efl_ui_progress.eo \
|
lib/efl/interfaces/efl_ui_progress.eo \
|
||||||
$(efl_eolian_legacy_files) \
|
$(efl_eolian_legacy_files) \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
|
@ -184,5 +184,14 @@ test_flipselector(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *ev
|
||||||
elm_box_pack_end(bx, bt);
|
elm_box_pack_end(bx, bt);
|
||||||
evas_object_show(bt);
|
evas_object_show(bt);
|
||||||
|
|
||||||
|
fpd = elm_flipselector_add(bx);
|
||||||
|
evas_object_size_hint_weight_set(fpd, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||||
|
efl_ui_spin_step_set(fpd, 1.5);
|
||||||
|
efl_ui_spin_min_max_set(fpd, 2.3, 10.1);
|
||||||
|
efl_ui_spin_value_set(fpd, 5.3);
|
||||||
|
printf("Current value is %f\n", efl_ui_spin_value_get(fpd));
|
||||||
|
elm_box_pack_end(bx, fpd);
|
||||||
|
evas_object_show(fpd);
|
||||||
|
|
||||||
evas_object_show(win);
|
evas_object_show(win);
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
|
||||||
#include "interfaces/efl_text_properties.eo.h"
|
#include "interfaces/efl_text_properties.eo.h"
|
||||||
#include "interfaces/efl_orientation.eo.h"
|
#include "interfaces/efl_orientation.eo.h"
|
||||||
#include "interfaces/efl_flipable.eo.h"
|
#include "interfaces/efl_flipable.eo.h"
|
||||||
|
#include "interfaces/efl_ui_spin.eo.h"
|
||||||
#include "interfaces/efl_ui_progress.eo.h"
|
#include "interfaces/efl_ui_progress.eo.h"
|
||||||
|
|
||||||
#define EFL_ORIENT_0 EFL_ORIENT_UP
|
#define EFL_ORIENT_0 EFL_ORIENT_UP
|
||||||
|
|
|
@ -34,6 +34,7 @@ interfaces/efl_vpath_manager.eo \
|
||||||
interfaces/efl_vpath_file.eo \
|
interfaces/efl_vpath_file.eo \
|
||||||
interfaces/efl_vpath_core.eo \
|
interfaces/efl_vpath_core.eo \
|
||||||
interfaces/efl_vpath_file_core.eo \
|
interfaces/efl_vpath_file_core.eo \
|
||||||
|
interfaces/efl_ui_spin.eo \
|
||||||
interfaces/efl_ui_progress.eo \
|
interfaces/efl_ui_progress.eo \
|
||||||
$(efl_eolian_legacy_files) \
|
$(efl_eolian_legacy_files) \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
|
@ -43,6 +43,7 @@ EAPI const Eo_Event_Description _EFL_GFX_PATH_CHANGED =
|
||||||
#include "interfaces/efl_animator.eo.c"
|
#include "interfaces/efl_animator.eo.c"
|
||||||
#include "interfaces/efl_orientation.eo.c"
|
#include "interfaces/efl_orientation.eo.c"
|
||||||
#include "interfaces/efl_flipable.eo.c"
|
#include "interfaces/efl_flipable.eo.c"
|
||||||
|
#include "interfaces/efl_ui_spin.eo.c"
|
||||||
#include "interfaces/efl_ui_progress.eo.c"
|
#include "interfaces/efl_ui_progress.eo.c"
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
|
|
@ -0,0 +1,84 @@
|
||||||
|
interface Efl.Ui.Spin()
|
||||||
|
{
|
||||||
|
legacy_prefix: null;
|
||||||
|
methods {
|
||||||
|
@property min_max {
|
||||||
|
[[Control the minimum and maximum values for the spinner.
|
||||||
|
|
||||||
|
Define the allowed range of values to be selected by the user.
|
||||||
|
|
||||||
|
If actual value is less than $min, it will be updated to $min. If it
|
||||||
|
is bigger then $max, will be updated to $max.
|
||||||
|
|
||||||
|
By default, min is equal to 0, and max is equal to 100.
|
||||||
|
|
||||||
|
Warning: Maximum must be greater than minimum.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
min: double; [[The minimum value.]]
|
||||||
|
max: double; [[The maximum value.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property step {
|
||||||
|
[[Control the step used to increment or decrement the spinner value.
|
||||||
|
|
||||||
|
This value will be incremented or decremented to the displayed value.
|
||||||
|
It will be incremented while the user keep right or top arrow pressed,
|
||||||
|
and will be decremented while the user keep left or bottom arrow pressed.
|
||||||
|
|
||||||
|
The interval to increment / decrement can be set with @.interval.set.
|
||||||
|
|
||||||
|
By default step value is equal to 1.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
step: double; [[The step value.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property value {
|
||||||
|
[[Control the value the spinner displays.
|
||||||
|
|
||||||
|
Value will be presented on the label following format specified with
|
||||||
|
elm_spinner_format_set().
|
||||||
|
|
||||||
|
Warning The value must to be between min and max values. This values
|
||||||
|
are set by elm_spinner_min_max_set().]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
val: double; [[The value to be displayed.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property interval {
|
||||||
|
[[Control the interval on time updates for an user mouse button hold on spinner widgets' arrows.
|
||||||
|
|
||||||
|
This interval value is decreased while the user holds the
|
||||||
|
mouse pointer either incrementing or decrementing spinner's value.
|
||||||
|
|
||||||
|
This helps the user to get to a given value distant from the
|
||||||
|
current one easier/faster, as it will start to change quicker and
|
||||||
|
quicker on mouse button holds.
|
||||||
|
|
||||||
|
The calculation for the next change interval value, starting from
|
||||||
|
the one set with this call, is the previous interval divided by
|
||||||
|
$1.05, so it decreases a little bit.
|
||||||
|
|
||||||
|
The default starting interval value for automatic changes is
|
||||||
|
$0.85 seconds.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
interval: double; [[The (first) interval value in seconds.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -423,6 +423,92 @@ _key_action_flip(Evas_Object *obj, const char *params)
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_clear_items(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
ELM_FLIPSELECTOR_DATA_GET(obj, sd);
|
||||||
|
sd->current = NULL;
|
||||||
|
while(sd->items)
|
||||||
|
elm_object_item_del(DATA_GET(sd->items));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_items_add(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
double d;
|
||||||
|
char buf[16];
|
||||||
|
|
||||||
|
ELM_FLIPSELECTOR_DATA_GET(obj, sd);
|
||||||
|
_clear_items(obj);
|
||||||
|
for (d = sd->val_min; d < sd->val_max; d = d + sd->step)
|
||||||
|
{
|
||||||
|
snprintf(buf, sizeof(buf), "%.2f", d);
|
||||||
|
elm_flipselector_item_append(obj, buf, NULL, NULL);
|
||||||
|
}
|
||||||
|
snprintf(buf, sizeof(buf), "%.2f", sd->val_max);
|
||||||
|
elm_flipselector_item_append(obj, buf, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static void
|
||||||
|
_elm_flipselector_efl_ui_spin_min_max_set(Eo *obj, Elm_Flipselector_Data *sd, double min, double max)
|
||||||
|
{
|
||||||
|
if (min > max) return;
|
||||||
|
if ((sd->val_min == min) && (sd->val_max == max)) return;
|
||||||
|
|
||||||
|
sd->val_min = min;
|
||||||
|
sd->val_max = max;
|
||||||
|
|
||||||
|
_items_add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static void
|
||||||
|
_elm_flipselector_efl_ui_spin_min_max_get(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd, double *min, double *max)
|
||||||
|
{
|
||||||
|
if (min) *min = sd->val_min;
|
||||||
|
if (max) *max = sd->val_max;
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static void
|
||||||
|
_elm_flipselector_efl_ui_spin_step_set(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd, double step)
|
||||||
|
{
|
||||||
|
if (sd->step == step) return;
|
||||||
|
|
||||||
|
sd->step = step;
|
||||||
|
_items_add(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static double
|
||||||
|
_elm_flipselector_efl_ui_spin_step_get(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd)
|
||||||
|
{
|
||||||
|
return sd->step;
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static double
|
||||||
|
_elm_flipselector_efl_ui_spin_value_get(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd)
|
||||||
|
{
|
||||||
|
if (sd->val_min == 0 && sd->val_max == 0)
|
||||||
|
{
|
||||||
|
WRN("This API can be used only if you set min and max and flipselector values are numericals");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
ELM_FLIPSELECTOR_ITEM_DATA_GET(sd->current->data, item);
|
||||||
|
return atof(item->label);
|
||||||
|
}
|
||||||
|
|
||||||
|
EOLIAN static void
|
||||||
|
_elm_flipselector_efl_ui_spin_value_set(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd, double val)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
Elm_Object_Item *it;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(sd->items, l, it)
|
||||||
|
{
|
||||||
|
if (atof(elm_object_item_text_get(it)) >= val)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
elm_flipselector_item_selected_set(it, EINA_TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_elm_flipselector_elm_widget_event(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd EINA_UNUSED, Evas_Object *src, Evas_Callback_Type type, void *event_info)
|
_elm_flipselector_elm_widget_event(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd EINA_UNUSED, Evas_Object *src, Evas_Callback_Type type, void *event_info)
|
||||||
{
|
{
|
||||||
|
@ -537,6 +623,7 @@ _elm_flipselector_evas_object_smart_add(Eo *obj, Elm_Flipselector_Data *priv)
|
||||||
(obj, "elm,action,down,stop", "*", _signal_val_change_stop, obj);
|
(obj, "elm,action,down,stop", "*", _signal_val_change_stop, obj);
|
||||||
|
|
||||||
priv->first_interval = FLIP_FIRST_INTERVAL;
|
priv->first_interval = FLIP_FIRST_INTERVAL;
|
||||||
|
priv->step = 1.0;
|
||||||
|
|
||||||
elm_widget_can_focus_set(obj, EINA_TRUE);
|
elm_widget_can_focus_set(obj, EINA_TRUE);
|
||||||
|
|
||||||
|
@ -566,6 +653,18 @@ elm_flipselector_add(Evas_Object *parent)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_flipselector_first_interval_set(Evas_Object *obj, double interval)
|
||||||
|
{
|
||||||
|
efl_ui_spin_interval_set(obj, interval);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI double
|
||||||
|
elm_flipselector_first_interval_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
return efl_ui_spin_interval_get(obj);
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static Eo *
|
EOLIAN static Eo *
|
||||||
_elm_flipselector_eo_base_constructor(Eo *obj, Elm_Flipselector_Data *sd)
|
_elm_flipselector_eo_base_constructor(Eo *obj, Elm_Flipselector_Data *sd)
|
||||||
{
|
{
|
||||||
|
@ -767,13 +866,13 @@ _elm_flipselector_item_next_get(const Eo *eo_item,
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_flipselector_first_interval_set(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd, double interval)
|
_elm_flipselector_efl_ui_spin_interval_set(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd, double interval)
|
||||||
{
|
{
|
||||||
sd->first_interval = interval;
|
sd->first_interval = interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static double
|
EOLIAN static double
|
||||||
_elm_flipselector_first_interval_get(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd)
|
_elm_flipselector_efl_ui_spin_interval_get(Eo *obj EINA_UNUSED, Elm_Flipselector_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->first_interval;
|
return sd->first_interval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,42 +1,9 @@
|
||||||
class Elm.Flipselector (Elm.Layout, Elm.Interface_Atspi_Widget_Action,
|
class Elm.Flipselector (Elm.Layout, Efl.Ui.Spin,
|
||||||
|
Elm.Interface_Atspi_Widget_Action,
|
||||||
Evas.Selectable_Interface)
|
Evas.Selectable_Interface)
|
||||||
{
|
{
|
||||||
eo_prefix: elm_obj_flipselector;
|
eo_prefix: elm_obj_flipselector;
|
||||||
methods {
|
methods {
|
||||||
@property first_interval {
|
|
||||||
set {
|
|
||||||
[[Set the interval on time updates for a user mouse button hold
|
|
||||||
on a flip selector widget.
|
|
||||||
|
|
||||||
This interval value is decreased while the user holds the
|
|
||||||
mouse pointer either flipping up or flipping down a given flip
|
|
||||||
selector.
|
|
||||||
|
|
||||||
This helps the user to get to a given item distant from the
|
|
||||||
current one easier/faster, as it will start to flip quicker and
|
|
||||||
quicker on mouse button holds.
|
|
||||||
|
|
||||||
The calculation for the next flip interval value, starting from
|
|
||||||
the one set with this call, is the previous interval divided by
|
|
||||||
1.05, so it decreases a little bit.
|
|
||||||
|
|
||||||
The default starting interval value for automatic flips is
|
|
||||||
0.85 seconds.
|
|
||||||
|
|
||||||
See also @.first_interval.get.
|
|
||||||
]]
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
[[Get the interval on time updates for an user mouse button hold
|
|
||||||
on a flip selector widget.
|
|
||||||
|
|
||||||
See also @.first_interval.set for more details.
|
|
||||||
]]
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
interval: double; [[The (first) interval value in seconds.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property items {
|
@property items {
|
||||||
get {
|
get {
|
||||||
[[Get the internal list of items in a given flip selector widget.
|
[[Get the internal list of items in a given flip selector widget.
|
||||||
|
@ -164,6 +131,10 @@ class Elm.Flipselector (Elm.Layout, Elm.Interface_Atspi_Widget_Action,
|
||||||
Elm.Widget.focus_direction_manager_is;
|
Elm.Widget.focus_direction_manager_is;
|
||||||
Elm.Widget.event;
|
Elm.Widget.event;
|
||||||
Elm.Layout.sizing_eval;
|
Elm.Layout.sizing_eval;
|
||||||
|
Efl.Ui.Spin.min_max;
|
||||||
|
Efl.Ui.Spin.step;
|
||||||
|
Efl.Ui.Spin.value;
|
||||||
|
Efl.Ui.Spin.interval;
|
||||||
Elm.Interface_Atspi_Widget_Action.elm_actions.get;
|
Elm.Interface_Atspi_Widget_Action.elm_actions.get;
|
||||||
}
|
}
|
||||||
events {
|
events {
|
||||||
|
|
|
@ -11,5 +11,42 @@
|
||||||
*/
|
*/
|
||||||
EAPI Evas_Object *elm_flipselector_add(Evas_Object *parent);
|
EAPI Evas_Object *elm_flipselector_add(Evas_Object *parent);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Set the interval on time updates for a user mouse button hold on a
|
||||||
|
* flip selector widget.
|
||||||
|
*
|
||||||
|
* This interval value is decreased while the user holds the mouse pointer
|
||||||
|
* either flipping up or flipping down a given flip selector.
|
||||||
|
*
|
||||||
|
* This helps the user to get to a given item distant from the current one
|
||||||
|
* easier/faster, as it will start to flip quicker and quicker on mouse button
|
||||||
|
* holds.
|
||||||
|
*
|
||||||
|
* The calculation for the next flip interval value, starting from the one set
|
||||||
|
* with this call, is the previous interval divided by 1.05, so it decreases a
|
||||||
|
* little bit.
|
||||||
|
*
|
||||||
|
* The default starting interval value for automatic flips is 0.85 seconds.
|
||||||
|
*
|
||||||
|
* See also @ref elm_obj_flipselector_first_interval_get.
|
||||||
|
*
|
||||||
|
* @param[in] interval The (first) interval value in seconds.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Flipselector
|
||||||
|
*/
|
||||||
|
EAPI void elm_flipselector_first_interval_set(Evas_Object *obj, double interval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Get the interval on time updates for an user mouse button hold on a
|
||||||
|
* flip selector widget.
|
||||||
|
*
|
||||||
|
* See also @ref elm_obj_flipselector_first_interval_set for more details.
|
||||||
|
*
|
||||||
|
* @return The (first) interval value in seconds.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Flipselector
|
||||||
|
*/
|
||||||
|
EAPI double elm_flipselector_first_interval_get(const Evas_Object *obj);
|
||||||
|
|
||||||
#include "elm_flipselector_item.eo.legacy.h"
|
#include "elm_flipselector_item.eo.legacy.h"
|
||||||
#include "elm_flipselector.eo.legacy.h"
|
#include "elm_flipselector.eo.legacy.h"
|
||||||
|
|
|
@ -1411,6 +1411,54 @@ elm_spinner_add(Evas_Object *parent)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_spinner_min_max_set(Evas_Object *obj, double min, double max)
|
||||||
|
{
|
||||||
|
efl_ui_spin_min_max_set(obj, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max)
|
||||||
|
{
|
||||||
|
efl_ui_spin_min_max_get(obj, min, max);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_spinner_step_set(Evas_Object *obj, double step)
|
||||||
|
{
|
||||||
|
efl_ui_spin_step_set(obj, step);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI double
|
||||||
|
elm_spinner_step_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
return efl_ui_spin_step_get(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_spinner_interval_set(Evas_Object *obj, double interval)
|
||||||
|
{
|
||||||
|
efl_ui_spin_interval_set(obj, interval);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI double
|
||||||
|
elm_spinner_interval_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
return efl_ui_spin_interval_get(obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
elm_spinner_value_set(Evas_Object *obj, double val)
|
||||||
|
{
|
||||||
|
efl_ui_spin_value_set(obj, val);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI double
|
||||||
|
elm_spinner_value_get(const Evas_Object *obj)
|
||||||
|
{
|
||||||
|
return efl_ui_spin_value_get(obj);
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static Eo *
|
EOLIAN static Eo *
|
||||||
_elm_spinner_eo_base_constructor(Eo *obj, Elm_Spinner_Data *_pd EINA_UNUSED)
|
_elm_spinner_eo_base_constructor(Eo *obj, Elm_Spinner_Data *_pd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
|
@ -1454,7 +1502,7 @@ _elm_spinner_label_format_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_spinner_min_max_set(Eo *obj, Elm_Spinner_Data *sd, double min, double max)
|
_elm_spinner_efl_ui_spin_min_max_set(Eo *obj, Elm_Spinner_Data *sd, double min, double max)
|
||||||
{
|
{
|
||||||
if ((sd->val_min == min) && (sd->val_max == max)) return;
|
if ((sd->val_min == min) && (sd->val_max == max)) return;
|
||||||
|
|
||||||
|
@ -1469,26 +1517,26 @@ _elm_spinner_min_max_set(Eo *obj, Elm_Spinner_Data *sd, double min, double max)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_spinner_min_max_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double *min, double *max)
|
_elm_spinner_efl_ui_spin_min_max_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double *min, double *max)
|
||||||
{
|
{
|
||||||
if (min) *min = sd->val_min;
|
if (min) *min = sd->val_min;
|
||||||
if (max) *max = sd->val_max;
|
if (max) *max = sd->val_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_spinner_step_set(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double step)
|
_elm_spinner_efl_ui_spin_step_set(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double step)
|
||||||
{
|
{
|
||||||
sd->step = step;
|
sd->step = step;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static double
|
EOLIAN static double
|
||||||
_elm_spinner_step_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
_elm_spinner_efl_ui_spin_step_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->step;
|
return sd->step;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_spinner_value_set(Eo *obj, Elm_Spinner_Data *sd, double val)
|
_elm_spinner_efl_ui_spin_value_set(Eo *obj, Elm_Spinner_Data *sd, double val)
|
||||||
{
|
{
|
||||||
if (sd->val == val) return;
|
if (sd->val == val) return;
|
||||||
|
|
||||||
|
@ -1511,7 +1559,7 @@ _elm_spinner_value_set(Eo *obj, Elm_Spinner_Data *sd, double val)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static double
|
EOLIAN static double
|
||||||
_elm_spinner_value_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
_elm_spinner_efl_ui_spin_value_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->val;
|
return sd->val;
|
||||||
}
|
}
|
||||||
|
@ -1608,13 +1656,13 @@ _elm_spinner_editable_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_elm_spinner_interval_set(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double interval)
|
_elm_spinner_efl_ui_spin_interval_set(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd, double interval)
|
||||||
{
|
{
|
||||||
sd->first_interval = interval;
|
sd->first_interval = interval;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static double
|
EOLIAN static double
|
||||||
_elm_spinner_interval_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
_elm_spinner_efl_ui_spin_interval_get(Eo *obj EINA_UNUSED, Elm_Spinner_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->first_interval;
|
return sd->first_interval;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,46 +1,8 @@
|
||||||
class Elm.Spinner (Elm.Layout, Elm.Interface_Atspi_Value, Elm.Interface_Atspi_Widget_Action)
|
class Elm.Spinner (Elm.Layout, Efl.Ui.Spin,
|
||||||
|
Elm.Interface_Atspi_Value, Elm.Interface_Atspi_Widget_Action)
|
||||||
{
|
{
|
||||||
eo_prefix: elm_obj_spinner;
|
eo_prefix: elm_obj_spinner;
|
||||||
methods {
|
methods {
|
||||||
@property min_max {
|
|
||||||
[[Control the minimum and maximum values for the spinner.
|
|
||||||
|
|
||||||
Define the allowed range of values to be selected by the user.
|
|
||||||
|
|
||||||
If actual value is less than $min, it will be updated to $min. If it
|
|
||||||
is bigger then $max, will be updated to $max. Actual value can be
|
|
||||||
get with @.value.get.
|
|
||||||
|
|
||||||
By default, min is equal to 0, and max is equal to 100.
|
|
||||||
|
|
||||||
Warning: Maximum must be greater than minimum.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
min: double; [[The minimum value.]]
|
|
||||||
max: double; [[The maximum value.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property step {
|
|
||||||
[[Control the step used to increment or decrement the spinner value.
|
|
||||||
|
|
||||||
This value will be incremented or decremented to the displayed value.
|
|
||||||
It will be incremented while the user keep right or top arrow pressed,
|
|
||||||
and will be decremented while the user keep left or bottom arrow pressed.
|
|
||||||
|
|
||||||
The interval to increment / decrement can be set with @.interval.set.
|
|
||||||
|
|
||||||
By default step value is equal to 1.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
step: double; [[The step value.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property wrap {
|
@property wrap {
|
||||||
[[Control whether the spinner should wrap when it reaches its minimum or maximum value.
|
[[Control whether the spinner should wrap when it reaches its minimum or maximum value.
|
||||||
|
|
||||||
|
@ -74,30 +36,6 @@ class Elm.Spinner (Elm.Layout, Elm.Interface_Atspi_Value, Elm.Interface_Atspi_Wi
|
||||||
wrap: bool; [[$true to enable wrap or $false to disable it.]]
|
wrap: bool; [[$true to enable wrap or $false to disable it.]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property interval {
|
|
||||||
[[Control the interval on time updates for an user mouse button hold on spinner widgets' arrows.
|
|
||||||
|
|
||||||
This interval value is decreased while the user holds the
|
|
||||||
mouse pointer either incrementing or decrementing spinner's value.
|
|
||||||
|
|
||||||
This helps the user to get to a given value distant from the
|
|
||||||
current one easier/faster, as it will start to change quicker and
|
|
||||||
quicker on mouse button holds.
|
|
||||||
|
|
||||||
The calculation for the next change interval value, starting from
|
|
||||||
the one set with this call, is the previous interval divided by
|
|
||||||
$1.05, so it decreases a little bit.
|
|
||||||
|
|
||||||
The default starting interval value for automatic changes is
|
|
||||||
$0.85 seconds.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
interval: double; [[The (first) interval value in seconds.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property round {
|
@property round {
|
||||||
[[Control the round value for rounding
|
[[Control the round value for rounding
|
||||||
|
|
||||||
|
@ -155,22 +93,6 @@ class Elm.Spinner (Elm.Layout, Elm.Interface_Atspi_Value, Elm.Interface_Atspi_Wi
|
||||||
base: double; [[The base value]]
|
base: double; [[The base value]]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@property value {
|
|
||||||
[[Control the value the spinner displays.
|
|
||||||
|
|
||||||
Value will be presented on the label following format specified with
|
|
||||||
elm_spinner_format_set().
|
|
||||||
|
|
||||||
Warning The value must to be between min and max values. This values
|
|
||||||
are set by elm_spinner_min_max_set().]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
val: double; [[The value to be displayed.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property label_format {
|
@property label_format {
|
||||||
[[Control the format string of the displayed label.
|
[[Control the format string of the displayed label.
|
||||||
|
|
||||||
|
@ -232,6 +154,10 @@ class Elm.Spinner (Elm.Layout, Elm.Interface_Atspi_Value, Elm.Interface_Atspi_Wi
|
||||||
Elm.Widget.on_focus;
|
Elm.Widget.on_focus;
|
||||||
Elm.Widget.event;
|
Elm.Widget.event;
|
||||||
Elm.Layout.sizing_eval;
|
Elm.Layout.sizing_eval;
|
||||||
|
Efl.Ui.Spin.min_max;
|
||||||
|
Efl.Ui.Spin.step;
|
||||||
|
Efl.Ui.Spin.value;
|
||||||
|
Efl.Ui.Spin.interval;
|
||||||
Elm.Interface_Atspi_Accessible.name.get;
|
Elm.Interface_Atspi_Accessible.name.get;
|
||||||
Elm.Interface_Atspi_Value.value_and_text.get;
|
Elm.Interface_Atspi_Value.value_and_text.get;
|
||||||
Elm.Interface_Atspi_Value.value_and_text.set;
|
Elm.Interface_Atspi_Value.value_and_text.set;
|
||||||
|
|
|
@ -42,4 +42,156 @@ EAPI void elm_spinner_special_value_del(Evas_Object *obj, double value);
|
||||||
*/
|
*/
|
||||||
EAPI const char *elm_spinner_special_value_get(Evas_Object *obj, double value);
|
EAPI const char *elm_spinner_special_value_get(Evas_Object *obj, double value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the minimum and maximum values for the spinner.
|
||||||
|
*
|
||||||
|
* Define the allowed range of values to be selected by the user.
|
||||||
|
*
|
||||||
|
* If actual value is less than @c min, it will be updated to @c min. If it is
|
||||||
|
* bigger then @c max, will be updated to @c max. Actual value can be get with
|
||||||
|
* @ref elm_obj_spinner_value_get.
|
||||||
|
*
|
||||||
|
* By default, min is equal to 0, and max is equal to 100.
|
||||||
|
*
|
||||||
|
* @warning Maximum must be greater than minimum.
|
||||||
|
*
|
||||||
|
* @param[in] min The minimum value.
|
||||||
|
* @param[in] max The maximum value.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI void elm_spinner_min_max_set(Evas_Object *obj, double min, double max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the minimum and maximum values for the spinner.
|
||||||
|
*
|
||||||
|
* Define the allowed range of values to be selected by the user.
|
||||||
|
*
|
||||||
|
* If actual value is less than @c min, it will be updated to @c min. If it is
|
||||||
|
* bigger then @c max, will be updated to @c max. Actual value can be get with
|
||||||
|
* @ref elm_obj_spinner_value_get.
|
||||||
|
*
|
||||||
|
* By default, min is equal to 0, and max is equal to 100.
|
||||||
|
*
|
||||||
|
* @warning Maximum must be greater than minimum.
|
||||||
|
*
|
||||||
|
* @param[out] min The minimum value.
|
||||||
|
* @param[out] max The maximum value.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI void elm_spinner_min_max_get(const Evas_Object *obj, double *min, double *max);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the step used to increment or decrement the spinner value.
|
||||||
|
*
|
||||||
|
* This value will be incremented or decremented to the displayed value. It
|
||||||
|
* will be incremented while the user keep right or top arrow pressed, and will
|
||||||
|
* be decremented while the user keep left or bottom arrow pressed.
|
||||||
|
*
|
||||||
|
* The interval to increment / decrement can be set with
|
||||||
|
* @ref elm_obj_spinner_interval_set.
|
||||||
|
*
|
||||||
|
* By default step value is equal to 1.
|
||||||
|
*
|
||||||
|
* @param[in] step The step value.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI void elm_spinner_step_set(Evas_Object *obj, double step);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the step used to increment or decrement the spinner value.
|
||||||
|
*
|
||||||
|
* This value will be incremented or decremented to the displayed value. It
|
||||||
|
* will be incremented while the user keep right or top arrow pressed, and will
|
||||||
|
* be decremented while the user keep left or bottom arrow pressed.
|
||||||
|
*
|
||||||
|
* The interval to increment / decrement can be set with
|
||||||
|
* @ref elm_obj_spinner_interval_set.
|
||||||
|
*
|
||||||
|
* By default step value is equal to 1.
|
||||||
|
*
|
||||||
|
* @return The step value.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI double elm_spinner_step_get(const Evas_Object *obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the interval on time updates for an user mouse button hold on
|
||||||
|
* spinner widgets' arrows.
|
||||||
|
*
|
||||||
|
* This interval value is decreased while the user holds the mouse pointer
|
||||||
|
* either incrementing or decrementing spinner's value.
|
||||||
|
*
|
||||||
|
* This helps the user to get to a given value distant from the current one
|
||||||
|
* easier/faster, as it will start to change quicker and quicker on mouse
|
||||||
|
* button holds.
|
||||||
|
*
|
||||||
|
* The calculation for the next change interval value, starting from the one
|
||||||
|
* set with this call, is the previous interval divided by $1.05, so it
|
||||||
|
* decreases a little bit.
|
||||||
|
*
|
||||||
|
* The default starting interval value for automatic changes is $0.85 seconds.
|
||||||
|
*
|
||||||
|
* @param[in] interval The (first) interval value in seconds.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI void elm_spinner_interval_set(Evas_Object *obj, double interval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the interval on time updates for an user mouse button hold on
|
||||||
|
* spinner widgets' arrows.
|
||||||
|
*
|
||||||
|
* This interval value is decreased while the user holds the mouse pointer
|
||||||
|
* either incrementing or decrementing spinner's value.
|
||||||
|
*
|
||||||
|
* This helps the user to get to a given value distant from the current one
|
||||||
|
* easier/faster, as it will start to change quicker and quicker on mouse
|
||||||
|
* button holds.
|
||||||
|
*
|
||||||
|
* The calculation for the next change interval value, starting from the one
|
||||||
|
* set with this call, is the previous interval divided by $1.05, so it
|
||||||
|
* decreases a little bit.
|
||||||
|
*
|
||||||
|
* The default starting interval value for automatic changes is $0.85 seconds.
|
||||||
|
*
|
||||||
|
* @return The (first) interval value in seconds.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI double elm_spinner_interval_get(const Evas_Object *obj);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the value the spinner displays.
|
||||||
|
*
|
||||||
|
* Value will be presented on the label following format specified with
|
||||||
|
* elm_spinner_format_set().
|
||||||
|
*
|
||||||
|
* Warning The value must to be between min and max values. This values are set
|
||||||
|
* by elm_spinner_min_max_set().
|
||||||
|
*
|
||||||
|
* @param[in] val The value to be displayed.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI void elm_spinner_value_set(Evas_Object *obj, double val);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Control the value the spinner displays.
|
||||||
|
*
|
||||||
|
* Value will be presented on the label following format specified with
|
||||||
|
* elm_spinner_format_set().
|
||||||
|
*
|
||||||
|
* Warning The value must to be between min and max values. This values are set
|
||||||
|
* by elm_spinner_min_max_set().
|
||||||
|
*
|
||||||
|
* @return The value to be displayed.
|
||||||
|
*
|
||||||
|
* @ingroup Elm_Spinner
|
||||||
|
*/
|
||||||
|
EAPI double elm_spinner_value_get(const Evas_Object *obj);
|
||||||
|
|
||||||
#include "elm_spinner.eo.legacy.h"
|
#include "elm_spinner.eo.legacy.h"
|
|
@ -35,6 +35,8 @@ struct _Elm_Flipselector_Data
|
||||||
|
|
||||||
unsigned int max_len;
|
unsigned int max_len;
|
||||||
double interval, first_interval;
|
double interval, first_interval;
|
||||||
|
double val_min, val_max;
|
||||||
|
double step; /**< step for the value change. 1 by default. */
|
||||||
|
|
||||||
int walking;
|
int walking;
|
||||||
Eina_Bool evaluating : 1;
|
Eina_Bool evaluating : 1;
|
||||||
|
|
Loading…
Reference in New Issue