inherit: "default" 0.0;
visible: 1;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 0 0 100;
+ }
+ description { state: "disabled_inverted" 0.0;
+ inherit: "default" 0.0;
+ color: 255 0 0 100;
+ visible: 1;
+ }
}
part {
name: "base_over";
rel1.offset: 0 4;
rel2.offset: 0 -5;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 128 128 128;
+ visible: 0;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ visible: 1;
+ text.min: 1 1;
+ }
}
part {
name: "elm.swallow.end";
rel1.offset: -5 0;
rel2.offset: -5 -1;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 128 128 128;
+ visible: 0;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ visible: 1;
+ text.min: 1 1;
+ }
}
part { name: "elm.dragable.slider";
type: RECT;
}
fill.smooth: 0;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
}
part { name: "button1";
mouse_events: 0;
visible: 1;
}
}
+ part { name: "disabler";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
}
programs {
program { name: "text_show";
thumb_up();
}
}
+ program {
+ name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button0";
+ target: "disabler";
+ after: "disable_text";
+ }
+ program { name: "disable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.text", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.text", "disabled", 0.0);
+
+ get_state(PART:"elm.units", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.units", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.units", "disabled", 0.0);
+
+ get_state(PART:"level2", st, 30, vl);
+ if (!strcmp(st, "inverted"))
+ set_state(PART:"level2", "disabled_inverted", 0.0);
+ else
+ set_state(PART:"level2", "disabled", 0.0);
+ }
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button0";
+ target: "disabler";
+ after: "enable_text";
+ }
+ program { name: "enable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ set_state(PART:"elm.text", "visible", 0.0);
+ else
+ set_state(PART:"elm.text", "default", 0.0);
+
+ get_state(PART:"elm.units", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ set_state(PART:"elm.units", "visible", 0.0);
+ else
+ set_state(PART:"elm.units", "default", 0.0);
+
+ get_state(PART:"level2", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"level2", "visible", 0.0);
+ else
+ set_state(PART:"level2", "default", 0.0);
+ }
+ }
}
}
inherit: "default" 0.0;
visible: 1;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 0 0 100;
+ }
+ description { state: "disabled_inverted" 0.0;
+ inherit: "default" 0.0;
+ color: 255 0 0 100;
+ visible: 1;
+ }
}
part {
name: "base_over";
scale: 1;
description { state: "default" 0.0;
visible: 0;
- fixed: 1 1;
+ fixed: 0 1;
align: 0.5 0.0;
rel1.to_y: "elm.swallow.icon";
- rel1.relative: 0.5 1.0;
+ rel1.relative: 0.0 1.0;
rel1.offset: 0 -1;
rel2.to_y: "elm.swallow.icon";
- rel2.relative: 0.5 1.0;
+ rel2.relative: 1.0 1.0;
rel2.offset: -1 -1;
color: 0 0 0 255;
text {
rel1.offset: 4 0;
rel2.offset: -5 0;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 255 128 128 128;
+ visible: 0;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ visible: 1;
+ text.min: 1 1;
+ }
}
part {
name: "elm.swallow.end";
rel1.offset: 8 -9;
rel2.offset: -9 -9;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ fixed: 1 1;
+ visible: 1;
+ text.min: 1 1;
+ rel1.offset: 8 -9;
+ rel2.offset: -9 -9;
+ color: 0 0 0 128;
+ color3: 0 0 0 0;
+ }
}
part { name: "elm.dragable.slider";
type: RECT;
}
fill.smooth: 0;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
}
part { name: "button1";
mouse_events: 0;
visible: 1;
}
}
- }
+ part { name: "disabler";
+ type: RECT;
+ description { state: "default" 0.0;
+ color: 0 0 0 0;
+ visible: 0;
+ }
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ }
+
programs {
program { name: "text_show";
signal: "elm,state,text,visible";
thumb_up();
}
}
+ program {
+ name: "go_disabled";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "button0";
+ target: "disabler";
+ after: "disable_text";
+ }
+ program { name: "disable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.text", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.text", "disabled", 0.0);
+
+ get_state(PART:"elm.units", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.units", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.units", "disabled", 0.0);
+
+ get_state(PART:"level2", st, 30, vl);
+ if (!strcmp(st, "inverted"))
+ set_state(PART:"level2", "disabled_inverted", 0.0);
+ else
+ set_state(PART:"level2", "disabled", 0.0);
+ }
+ }
+
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ target: "button0";
+ target: "disabler";
+ after: "enable_text";
+ }
+ program { name: "enable_text";
+ script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"elm.text", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ set_state(PART:"elm.text", "visible", 0.0);
+ else
+ set_state(PART:"elm.text", "default", 0.0);
+
+ get_state(PART:"elm.units", st, 30, vl);
+ if (!strcmp(st, "disabled_visible"))
+ set_state(PART:"elm.units", "visible", 0.0);
+ else
+ set_state(PART:"elm.units", "default", 0.0);
+
+ get_state(PART:"level2", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"level2", "visible", 0.0);
+ else
+ set_state(PART:"level2", "default", 0.0);
+ }
+ }
}
}
void
test_slider(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- Evas_Object *win, *bg, *bx, *sl, *ic, *sl1;
+ Evas_Object *win, *bg, *bx, *sl, *ic, *sl1, *bx2;
char buf[PATH_MAX];
win = elm_win_add(NULL, "slider", ELM_WIN_BASIC);
evas_object_show(ic);
evas_object_show(sl);
+ /* horizontal disable state */
+ ic = elm_icon_add(win);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(ic, buf, NULL);
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+ sl = elm_slider_add(win);
+ elm_slider_label_set(sl, "Disabled");
+ elm_slider_icon_set(sl, ic);
+ elm_slider_unit_format_set(sl, "%1.1f units");
+ elm_slider_span_size_set(sl, 120);
+ elm_object_disabled_set(sl, EINA_TRUE);
+ evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_box_pack_end(bx, sl);
+ evas_object_show(ic);
+ evas_object_show(sl);
+
ic = elm_icon_add(win);
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
elm_icon_file_set(ic, buf, NULL);
elm_slider_indicator_format_set(sl, "%3.0f");
elm_slider_min_max_set(sl, 50, 150);
elm_slider_value_set(sl, 80);
- elm_slider_inverted_set(sl, 1);
+ elm_slider_inverted_set(sl, EINA_TRUE);
+ evas_object_size_hint_align_set(sl, 0.5, 0.5);
+ evas_object_size_hint_weight_set(sl, 0.0, 0.0);
+ elm_box_pack_end(bx, sl);
+ evas_object_show(ic);
+ evas_object_show(sl);
+
+ /* label2 disable */
+ ic = elm_icon_add(win);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(ic, buf, NULL);
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
+
+ sl = elm_slider_add(win);
+ elm_slider_label_set(sl, "Disabled inverted");
+ elm_slider_end_set(sl, ic);
+ elm_slider_span_size_set(sl, 80);
+ evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, 0.5);
+ evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_slider_indicator_format_set(sl, "%3.0f");
+ elm_slider_min_max_set(sl, 50, 150);
+ elm_slider_value_set(sl, 80);
+ elm_slider_inverted_set(sl, EINA_TRUE);
+ elm_object_disabled_set(sl, EINA_TRUE);
evas_object_size_hint_align_set(sl, 0.5, 0.5);
evas_object_size_hint_weight_set(sl, 0.0, 0.0);
elm_box_pack_end(bx, sl);
elm_slider_indicator_format_set(sl, "%3.0f");
elm_slider_min_max_set(sl, 50, 150);
elm_slider_value_set(sl, 80);
- elm_slider_inverted_set(sl, 1);
+ elm_slider_inverted_set(sl, EINA_TRUE);
elm_object_scale_set(sl, 2.0);
elm_box_pack_end(bx, sl);
evas_object_show(ic);
evas_object_show(sl);
+ bx2 = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx2, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_box_horizontal_set(bx2, EINA_TRUE);
+ elm_box_pack_end(bx, bx2);
+ evas_object_show(bx2);
+
ic = elm_icon_add(win);
snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
elm_icon_file_set(ic, buf, NULL);
sl = elm_slider_add(win);
elm_slider_icon_set(sl, ic);
elm_slider_label_set(sl, "Vertical inverted");
- elm_slider_inverted_set(sl, 1);
+ elm_slider_inverted_set(sl, EINA_TRUE);
elm_slider_unit_format_set(sl, "units");
elm_slider_span_size_set(sl, 60);
evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
elm_slider_value_set(sl, 0.2);
elm_object_scale_set(sl, 1.0);
elm_slider_horizontal_set(sl, 0);
- elm_box_pack_end(bx, sl);
+ elm_box_pack_end(bx2, sl);
evas_object_show(ic);
evas_object_show(sl);
elm_slider_value_set(sl, 0.2);
elm_object_scale_set(sl, 1.0);
elm_slider_horizontal_set(sl, EINA_FALSE);
- elm_box_pack_end(bx, sl);
+ elm_box_pack_end(bx2, sl);
evas_object_show(ic);
evas_object_show(sl);
+ /* vertical disable state */
+ ic = elm_icon_add(win);
+ snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR);
+ elm_icon_file_set(ic, buf, NULL);
+ evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
+
+ sl = elm_slider_add(win);
+ elm_slider_icon_set(sl, ic);
+ elm_slider_label_set(sl, "Disabled vertical");
+ elm_slider_inverted_set(sl, EINA_TRUE);
+ elm_slider_unit_format_set(sl, "units");
+ elm_slider_span_size_set(sl, 100);
+ evas_object_size_hint_align_set(sl, 0.5, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(sl, 0.0, EVAS_HINT_EXPAND);
+ elm_slider_indicator_format_set(sl, "%1.1f");
+ elm_slider_value_set(sl, 0.2);
+ elm_object_scale_set(sl, 1.0);
+ elm_slider_horizontal_set(sl, 0);
+ elm_object_disabled_set(sl, EINA_TRUE);
+ elm_box_pack_end(bx2, sl);
+ evas_object_show(ic);
+ evas_object_show(sl);
+
evas_object_show(win);
}
#endif
static const char *widtype = NULL;
static void _del_hook(Evas_Object *obj);
static void _theme_hook(Evas_Object *obj);
+static void _disable_hook(Evas_Object *obj);
static void _sizing_eval(Evas_Object *obj);
static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj, void *event_info);
static void _sub_del(void *data, Evas_Object *obj, void *event_info);
}
static void
+_disable_hook(Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (!wd) return;
+ if (elm_widget_disabled_get(obj))
+ edje_object_signal_emit(wd->slider, "elm,state,disabled", "elm");
+ else
+ edje_object_signal_emit(wd->slider, "elm,state,enabled", "elm");
+}
+
+static void
_sizing_eval(Evas_Object *obj)
{
Widget_Data *wd = elm_widget_data_get(obj);
elm_widget_data_set(obj, wd);
elm_widget_del_hook_set(obj, _del_hook);
elm_widget_theme_hook_set(obj, _theme_hook);
+ elm_widget_disable_hook_set(obj, _disable_hook);
elm_widget_can_focus_set(obj, EINA_TRUE);
elm_widget_event_hook_set(obj, _event_hook);