image: "bt_bases.png" COMP;
image: "bt_hilightw.png" COMP;
image: "tog_base.png" COMP;
+ image: "tog_dis_base.png" COMP;
}
parts {
part { name: "bg";
rel2.to: "offrect";
image.normal: "tog_base.png";
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ image.normal: "tog_dis_base.png";
+ }
}
part { name: "elm.offtext";
type: TEXT;
text: "OFF";
}
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
}
part { name: "elm.ontext";
type: TEXT;
text: "ON";
}
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ color3: 0 0 0 24;
+ }
}
part { name: "conf_over";
mouse_events: 0;
aspect_preference: VERTICAL;
rel2.offset: 4 -5;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ fixed: 1 1;
+ visible: 1;
+ aspect: 1.0 1.0;
+ }
}
part { name: "elm.text";
type: TEXT;
visible: 1;
text.min: 1 1;
}
+ description { state: "disabled" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ }
+ description { state: "disabled_visible" 0.0;
+ inherit: "default" 0.0;
+ color: 128 128 128 128;
+ 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 {
action: STATE_SET "default" 0.0;
target: "elm.swallow.content";
}
+ program { name: "disable";
+ signal: "elm,state,disabled";
+ source: "elm";
+ action: STATE_SET "disabled" 0.0;
+ target: "togbase";
+ target: "elm.offtext";
+ target: "elm.ontext";
+ 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.swallow.content", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "disabled_visible", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "disabled", 0.0);
+ }
+ }
+ program { name: "enable";
+ signal: "elm,state,enabled";
+ source: "elm";
+ action: STATE_SET "default" 0.0;
+ 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.swallow.content", st, 30, vl);
+ if (!strcmp(st, "visible"))
+ set_state(PART:"elm.swallow.content", "visible", 0.0);
+ else
+ set_state(PART:"elm.swallow.content", "default", 0.0);
+ }
+ }
}
}
description { state: "disabled_visible" 0.0;
inherit: "default" 0.0;
color: 128 128 128 128;
+ fixed: 1 1;
visible: 1;
+ aspect: 1.0 1.0;
}
}
part { name: "elm.text";
evas_object_show(tg);
evas_object_show(ic);
+ 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_icon_scale_set(ic, 0, 0);
+ tg = elm_toggle_add(win);
+ elm_toggle_label_set(tg, "Icon no scale");
+ elm_toggle_icon_set(tg, ic);
+ elm_object_disabled_set(tg, 1);
+ elm_box_pack_end(bx, tg);
+ evas_object_show(tg);
+ evas_object_show(ic);
+
tg = elm_toggle_add(win);
elm_toggle_label_set(tg, "Label Only");
elm_toggle_states_labels_set(tg, "Big long fun times label", "Small long happy fun label");
};
static void _del_hook(Evas_Object *obj);
+static void _disable_hook(Evas_Object *obj);
static void _theme_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
+_disable_hook(Evas_Object *obj)
+{
+ Widget_Data *wd = elm_widget_data_get(obj);
+ if (elm_widget_disabled_get(obj))
+ edje_object_signal_emit(wd->tgl, "elm,state,disabled", "elm");
+ else
+ edje_object_signal_emit(wd->tgl, "elm,state,enabled", "elm");
+}
+
+static void
_theme_hook(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);
wd->tgl = edje_object_add(e);
_elm_theme_set(wd->tgl, "toggle", "base", "default");