}
}
}
- part {
- name: "clip";
- type: RECT;
- description {
- state: "default" 0.0;
- min: 1 1;
- rel1.to: "over";
- rel2.to: "over";
- }
- }
part { name: "over";
mouse_events: 0;
description { state: "default" 0.0;
min: 2 2;
rel1.offset: 4 4;
- rel2.to: "elm.swallow.content";
+ rel2.to: "clip";
rel2.offset: 5 5;
image {
normal: "frame_1.png";
}
fill.smooth : 0;
}
- description { state: "collapsed" 0.0;
- inherit: "default" 0.0;
- rel2.to_y: "elm.text";
- rel2.offset: 5 0;
+ }
+ part {
+ name: "clip";
+ type: RECT;
+ description {
+ state: "default" 0.0;
+ rel1 {
+ to_y: "elm.text";
+ relative: 0.0 1.0;
+ offset: 8 2;
+ }
+ rel2.offset: -9 -9;
}
}
part { name: "elm.swallow.content";
type: SWALLOW;
clip_to: "clip";
description { state: "default" 0.0;
- align: 0.0 0.0;
+ align: 0.0 1.0;
rel1 {
- to_y: "elm.text";
- relative: 0.0 1.0;
- offset: 8 2;
+ to: "clip";
+ relative: 0.0 0.0;
}
- rel2.offset: -9 -9;
+ rel2.to: "clip";
+ }
+ description { state: "collapsed" 0.0;
+ inherit: "default" 0.0;
+// rel1.relative: 0.0 1.0;
+ rel1.offset: 0 -100;
}
}
part { name: "event";
type: RECT;
mouse_events: 1;
- repeat_events: 1;
+ ignore_flags: ON_HOLD;
description { state: "default" 0.0;
color: 0 0 0 0;
- rel1.to: "elm.text";
- rel2.to: "elm.text";
+ rel1.to_y: "elm.text";
+ rel2.to_y: "elm.text";
}
}
}
}
program { name: "collapse";
action: STATE_SET "collapsed" 0.0;
- target: "over";
- target: "base";
- transition: LINEAR 0.1;
+ target: "elm.swallow.content";
+ transition: LINEAR 1.0;
after: "signal";
}
program { name: "expand";
action: STATE_SET "default" 0.0;
- target: "over";
- target: "base";
- transition: LINEAR 0.1;
+ target: "elm.swallow.content";
+ transition: LINEAR 1.0;
after: "signal";
}
program { name: "signal";
Evas_Coord minw = -1, minh = -1;
Evas_Coord cminw = -1, cminh = -1;
if (!wd) return;
- if (wd->anim)
- if (wd->recalc_count++ != 40) return;
- wd->recalc_count = 0;
edje_object_size_min_calc(wd->frm, &minw, &minh);
evas_object_size_hint_min_get(obj, &cminw, &cminh);
if ((minw == cminw) && (minh == cminh)) return;
+ printf("min: %3.3f %ix%i\n", ecore_loop_time_get(), minw, minh);
evas_object_size_hint_min_set(obj, minw, minh);
evas_object_size_hint_max_set(obj, -1, -1);
}
}
static void
-_recalc(Evas_Object *fr, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_recalc(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
- _sizing_eval(fr);
+ printf("recalc %3.3f\n", ecore_loop_time_get());
+ _sizing_eval(data);
}
static void
-_recalc_done(Evas_Object *fr, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
+_recalc_done(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *src __UNUSED__)
{
- Widget_Data *wd;
- wd = elm_widget_data_get(fr);
+ Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- evas_object_smart_callback_del(wd->frm, "recalc", (Evas_Smart_Cb)_recalc);
+ printf("recalc done %3.3f\n", ecore_loop_time_get());
+ evas_object_smart_callback_del(wd->frm, "recalc", _recalc);
wd->anim = EINA_FALSE;
- _sizing_eval(fr);
+ _sizing_eval(data);
}
static void
-_signal_click(Evas_Object *fr, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)
+_signal_click(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *src __UNUSED__)
{
- Widget_Data *wd;
- wd = elm_widget_data_get(fr);
+ Widget_Data *wd = elm_widget_data_get(data);
if (!wd) return;
- evas_object_smart_callback_call(fr, SIG_CLICKED, NULL);
+ if (wd->anim) return;
+ evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
if (!wd->collapsible) return;
- evas_object_smart_callback_add(wd->frm, "recalc", (Evas_Smart_Cb)_recalc, fr);
+ printf("recalc begin %3.3f\n", ecore_loop_time_get());
+ evas_object_smart_callback_add(wd->frm, "recalc", _recalc, data);
edje_object_signal_emit(wd->frm, "elm,action,collapse", "elm");
wd->collapsed++;
wd->anim = EINA_TRUE;
elm_widget_resize_object_set(obj, wd->frm);
evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
- evas_object_smart_callback_add(wd->frm, "elm,anim,done", (Evas_Smart_Cb)_recalc_done, obj);
+ edje_object_signal_callback_add(wd->frm, "elm,anim,done", "elm",
+ _recalc_done, obj);
edje_object_signal_callback_add(wd->frm, "elm,action,click", "elm",
- (Edje_Signal_Cb)_signal_click, obj);
+ _signal_click, obj);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
_mirrored_set(obj, elm_widget_mirrored_get(obj));