From 368f148fef3df827c0d4fec51dd2915d766876f4 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 31 Mar 2008 21:38:51 +0000 Subject: [PATCH] use hold event and emit hold,on and hold,off SVN revision: 34161 --- legacy/edje/src/lib/edje_calc.c | 6 ++++-- legacy/edje/src/lib/edje_callbacks.c | 26 ++++++++++++++++++++++++++ legacy/edje/src/lib/edje_util.c | 4 ++++ 3 files changed, 34 insertions(+), 2 deletions(-) diff --git a/legacy/edje/src/lib/edje_calc.c b/legacy/edje/src/lib/edje_calc.c index d0cc7a1e38..8b390bf651 100644 --- a/legacy/edje/src/lib/edje_calc.c +++ b/legacy/edje/src/lib/edje_calc.c @@ -549,12 +549,14 @@ _edje_part_recalc_single(Edje *ed, if (chosen_desc->text.id_source >= 0) { ep->text.source = ed->table_parts[chosen_desc->text.id_source % ed->table_parts_size]; - style = ep->text.source->chosen_description->text.style; + if (ep->text.source->chosen_description->text.style) + style = ep->text.source->chosen_description->text.style; } else { ep->text.source = NULL; - style = chosen_desc->text.style; + if (chosen_desc->text.style) + style = chosen_desc->text.style; } if (chosen_desc->text.id_text_source >= 0) diff --git a/legacy/edje/src/lib/edje_callbacks.c b/legacy/edje/src/lib/edje_callbacks.c index 1a008b71ce..07d1f3857c 100644 --- a/legacy/edje/src/lib/edje_callbacks.c +++ b/legacy/edje/src/lib/edje_callbacks.c @@ -5,6 +5,25 @@ #include "Edje.h" #include "edje_private.h" +void +_edje_hold_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) +{ + Evas_Event_Hold *ev; + Edje *ed; + Edje_Real_Part *rp; + + ev = event_info; + ed = data; + rp = evas_object_data_get(obj, "real_part"); + if (!rp) return; + if (ev->hold) + _edje_emit(ed, "hold,on", rp->part->name); + else + _edje_emit(ed, "hold,off", rp->part->name); + return; + e = NULL; +} + void _edje_mouse_in_cb(void *data, Evas * e, Evas_Object * obj, void *event_info) { @@ -368,6 +387,10 @@ _edje_pending_timer_cb(void *data) void _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp) { + evas_object_event_callback_add(obj, + EVAS_CALLBACK_HOLD, + _edje_hold_cb, + ed); evas_object_event_callback_add(obj, EVAS_CALLBACK_MOUSE_IN, _edje_mouse_in_cb, @@ -398,6 +421,9 @@ _edje_callbacks_add(Evas_Object *obj, Edje *ed, Edje_Real_Part *rp) void _edje_callbacks_del(Evas_Object *obj) { + evas_object_event_callback_del(obj, + EVAS_CALLBACK_HOLD, + _edje_hold_cb); evas_object_event_callback_del(obj, EVAS_CALLBACK_MOUSE_IN, _edje_mouse_in_cb); diff --git a/legacy/edje/src/lib/edje_util.c b/legacy/edje/src/lib/edje_util.c index 89cba4545c..2f29c736b0 100644 --- a/legacy/edje/src/lib/edje_util.c +++ b/legacy/edje/src/lib/edje_util.c @@ -1201,6 +1201,10 @@ edje_object_size_min_calc(Evas_Object *obj, Evas_Coord *minw, Evas_Coord *minh) pep = ep; didw = 1; } + if ((ep->part->type == EDJE_PART_TYPE_TEXTBLOCK)) + { + /* FIXME: do something */ + } } if (!((ep->chosen_description) && (ep->chosen_description->fixed.h)))