typedef struct _Elm_Params_Toggle
{
Elm_Params base;
+ const char *label;
Evas_Object *icon;
const char *on, *off;
Eina_Bool state:1;
else if (from_params) p = from_params;
else return;
- if (p->base.label)
- elm_toggle_label_set(obj, p->base.label);
+ if (p->label)
+ elm_object_text_set(obj, p->label);
if (p->icon)
- elm_toggle_icon_set(obj, p->icon);
+ elm_object_part_content_set(obj, "icon", p->icon);
- if ((p->on) && (p->off))
- elm_toggle_states_labels_set(obj, p->on, p->off);
- else if ((p->on) || (p->off))
- {
- const char *on, *off;
- elm_toggle_states_labels_get(obj, &on, &off);
- if (p->on)
- elm_toggle_states_labels_set(obj, p->on, off);
- else
- elm_toggle_states_labels_set(obj, on, p->off);
- }
+ if (p->on)
+ elm_object_part_text_set(obj, "on", p->on);
+ if (p->off)
+ elm_object_part_text_set(obj, "off", p->off);
if (p->state_exists)
- elm_toggle_state_set(obj, p->state);
+ elm_check_state_set(obj, p->state);
}
static Eina_Bool
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- elm_toggle_label_set(obj, param->s);
+ elm_object_text_set(obj, param->s);
return EINA_TRUE;
}
}
{
Evas_Object *icon = external_common_param_icon_get(obj, param);
if ((strcmp(param->s, "")) && (!icon)) return EINA_FALSE;
- elm_toggle_icon_set(obj, icon);
+ elm_object_part_content_set(obj, "icon", icon);
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- const char *on, *off;
- elm_toggle_states_labels_get(obj, &on, &off);
- elm_toggle_states_labels_set(obj, param->s, off);
+ elm_object_part_text_set(obj, "on", param->s);
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- const char *on, *off;
- elm_toggle_states_labels_get(obj, &on, &off);
- elm_toggle_states_labels_set(obj, on, param->s);
+ elm_object_part_text_set(obj, "off", param->s);
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
- elm_toggle_state_set(obj, param->i);
+ elm_check_state_set(obj, param->i);
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- param->s = elm_toggle_label_get(obj);
+ param->s = elm_object_text_get(obj);
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- const char *on, *off;
- elm_toggle_states_labels_get(obj, &on, &off);
- param->s = on;
+ param->s = elm_object_part_text_get(obj, "on");
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
{
- const char *on, *off;
- elm_toggle_states_labels_get(obj, &on, &off);
- param->s = off;
+ param->s = elm_object_part_text_get(obj, "off");
return EINA_TRUE;
}
}
{
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_BOOL)
{
- param->i = elm_toggle_state_get(obj);
+ param->i = elm_check_state_get(obj);
return EINA_TRUE;
}
}
Edje_External_Param *param;
const Eina_List *l;
- mem = external_common_params_parse(Elm_Params_Toggle, data, obj, params);
+ mem = calloc(1, sizeof(Elm_Params_Toggle));
if (!mem)
return NULL;
}
static Evas_Object *external_toggle_content_get(void *data __UNUSED__,
- const Evas_Object *obj, const char *content)
+ const Evas_Object *obj __UNUSED__, const char *content __UNUSED__)
{
- ERR("so content");
+ ERR("No content.");
return NULL;
}
eina_stringshare_del(mem->on);
if (mem->off)
eina_stringshare_del(mem->off);
- external_common_params_free(params);
+ if (mem->label)
+ eina_stringshare_del(mem->label);
+ free(params);
}
static Edje_External_Param_Info external_toggle_params[] = {
DEFINE_EXTERNAL_COMMON_PARAMS,
+ EDJE_EXTERNAL_PARAM_INFO_STRING("label"),
EDJE_EXTERNAL_PARAM_INFO_STRING("icon"),
EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("label on", "ON"),
EDJE_EXTERNAL_PARAM_INFO_STRING_DEFAULT("label off", "OFF"),
};
DEFINE_EXTERNAL_ICON_ADD(toggle, "toggle")
+#undef DEFINE_EXTERNAL_TYPE_SIMPLE
+#define DEFINE_EXTERNAL_TYPE_SIMPLE(type_name, name) \
+static Evas_Object * \
+external_##type_name##_add(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *edje, const Eina_List *params __UNUSED__, const char *part_name) \
+{ \
+ Evas_Object *parent, *obj; \
+ external_elm_init(); \
+ parent = elm_widget_parent_widget_get(edje); \
+ if (!parent) parent = edje; \
+ obj = elm_check_add(parent); \
+ elm_object_style_set(obj, "toggle"); \
+ external_signals_proxy(obj, edje, part_name); \
+ return obj; \
+} \
+ \
+DEFINE_EXTERNAL_TYPE(type_name, name)
+
DEFINE_EXTERNAL_TYPE_SIMPLE(toggle, "Toggle")