efl
116 строк · 4.3 Кб
1#ifdef HAVE_CONFIG_H
2# include "elementary_config.h"
3#endif
4#include <Efl_Ui.h>
5#include <Elementary.h>
6
7static double
8_step_size_calculate(double min, double max)
9{
10double step = 0.0;
11int steps = 0;
12
13steps = max - min;
14if (steps) step = (1.0 / steps);
15return step;
16}
17
18static void
19_intv_slider_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
20{
21double from, to;
22
23efl_ui_slider_interval_value_get(ev->object, &from, &to);
24if (from < 100)
25efl_ui_slider_interval_value_set(ev->object, 100, to);
26if (to > 500)
27efl_ui_slider_interval_value_set(ev->object, from, 500);
28}
29
30void
31test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
32{
33Eo *win, *bx, *hbx;
34double step;
35
36win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
37efl_text_set(efl_added, "Efl.Ui.Slider_Interval"),
38efl_ui_win_autodel_set(efl_added, EINA_TRUE));
39
40bx = efl_add(EFL_UI_BOX_CLASS, win,
41efl_content_set(win, efl_added));
42
43efl_add(EFL_UI_TEXTBOX_CLASS, bx,
44efl_text_set(efl_added, "Horizontal"),
45efl_text_interactive_editable_set(efl_added, EINA_FALSE),
46efl_pack(bx, efl_added));
47
48efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
49efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(160, 0)),
50efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
51efl_pack(bx, efl_added));
52
53efl_add(EFL_UI_TEXTBOX_CLASS, bx,
54efl_text_set(efl_added, "Manual step"),
55efl_text_interactive_editable_set(efl_added, EINA_FALSE),
56efl_pack(bx, efl_added));
57
58step = _step_size_calculate(0, 9);
59efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
60efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(120, 0)),
61efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
62efl_ui_range_step_set(efl_added, step),
63efl_pack(bx, efl_added));
64
65efl_add(EFL_UI_TEXTBOX_CLASS, bx,
66efl_text_set(efl_added, "Disabled"),
67efl_text_interactive_editable_set(efl_added, EINA_FALSE),
68efl_pack(bx, efl_added));
69
70efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
71efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(120, 0)),
72efl_ui_range_limits_set(efl_added, 10, 145),
73efl_ui_slider_interval_value_set(efl_added, 50, 100),
74efl_ui_range_step_set(efl_added, step),
75elm_object_disabled_set(efl_added, EINA_TRUE),
76efl_pack(bx, efl_added));
77
78efl_add(EFL_UI_TEXTBOX_CLASS, bx,
79efl_text_set(efl_added, "Vertical"),
80efl_text_interactive_editable_set(efl_added, EINA_FALSE),
81efl_pack(bx, efl_added));
82
83hbx = efl_add(EFL_UI_BOX_CLASS, bx,
84efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_HORIZONTAL),
85efl_pack(bx, efl_added));
86
87efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
88efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(0, 160)),
89efl_ui_range_limits_set(efl_added, 10, 145),
90efl_ui_slider_interval_value_set(efl_added, 50, 100),
91efl_ui_range_step_set(efl_added, step),
92efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
93efl_pack(hbx, efl_added));
94
95efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
96efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(0, 160)),
97efl_ui_range_limits_set(efl_added, 10, 145),
98efl_ui_slider_interval_value_set(efl_added, 50, 100),
99efl_ui_range_step_set(efl_added, step),
100efl_ui_layout_orientation_set(efl_added, EFL_UI_LAYOUT_ORIENTATION_VERTICAL),
101elm_object_disabled_set(efl_added, EINA_TRUE),
102efl_pack(hbx, efl_added));
103
104efl_add(EFL_UI_TEXTBOX_CLASS, bx,
105efl_text_set(efl_added, "Limited (100-500)"),
106efl_text_interactive_editable_set(efl_added, EINA_FALSE),
107efl_pack(bx, efl_added));
108
109efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
110efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(260, 0)),
111efl_ui_range_limits_set(efl_added, 0, 600),
112efl_ui_slider_interval_value_set(efl_added, 100, 500),
113efl_ui_range_step_set(efl_added, step),
114efl_event_callback_add(efl_added, EFL_UI_RANGE_EVENT_CHANGED, _intv_slider_changed_cb, NULL),
115efl_pack(bx, efl_added));
116}
117