Enlightenment CVS committal Author : pfritz Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src/lib Modified Files: ewl_text.c ewl_text_trigger.c Log Message: - attach the mouse pointer of the trigger to its areas - forward the click event to the trigger - only warn if trigger are really overlapping =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.c,v retrieving revision 1.208 retrieving revision 1.209 diff -u -3 -r1.208 -r1.209 --- ewl_text.c 8 Aug 2008 00:37:34 -0000 1.208 +++ ewl_text.c 11 Aug 2008 13:22:32 -0000 1.209 @@ -4139,14 +4139,14 @@ { if (trigger->char_pos < cur->char_pos) { - if ((trigger->char_pos + trigger->char_len) < cur->char_pos) - break; + if ((trigger->char_pos + trigger->char_len) <= cur->char_pos) + continue; DWARNING("Overlapping triggers are not allowed."); DRETURN(DLEVEL_STABLE); } - if ((trigger->char_pos > (cur->char_pos + cur->char_len))) + if ((trigger->char_pos >= (cur->char_pos + cur->char_len))) continue; if ((trigger->char_pos >= cur->char_pos) =================================================================== RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text_trigger.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- ewl_text_trigger.c 30 Jul 2008 21:43:54 -0000 1.15 +++ ewl_text_trigger.c 11 Aug 2008 13:22:32 -0000 1.16 @@ -53,6 +53,8 @@ void *data); static void ewl_text_trigger_area_cb_mouse_down(Ewl_Widget *w, void *ev, void *data); +static void ewl_text_trigger_area_cb_clicked(Ewl_Widget *w, void *ev, + void *data); /** * @param type: The type of trigger to create @@ -295,6 +297,8 @@ ewl_text_trigger_area_type_set(EWL_TEXT_TRIGGER_AREA(area), cur->type); ewl_object_geometry_request(EWL_OBJECT(area), x, y, w, h); EWL_TEXT_TRIGGER_AREA(area)->trigger = cur; + /* attach the pointer of the trigger to the area */ + ewl_attach_mouse_cursor_set(area, ewl_attach_mouse_cursor_get(cur)); ewl_widget_show(area); @@ -465,6 +469,8 @@ ewl_text_trigger_area_cb_mouse_down, NULL); ewl_callback_append(w, EWL_CALLBACK_MOUSE_UP, ewl_text_trigger_area_cb_mouse_up, NULL); + ewl_callback_append(w, EWL_CALLBACK_CLICKED, + ewl_text_trigger_area_cb_clicked, NULL); DRETURN_INT(TRUE, DLEVEL_STABLE); } @@ -646,4 +652,31 @@ DLEAVE_FUNCTION(DLEVEL_STABLE); } + +/** + * @internal + * @param w: the area + * @param ev: The event data + * @param data: UNUSED + * @return Returns no value + * @brief The trigger clicked callback + */ +void +ewl_text_trigger_area_cb_clicked(Ewl_Widget *w, void *ev, + void *data __UNUSED__) +{ + Ewl_Text_Trigger_Area *a; + + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR(w); + DCHECK_TYPE(w, EWL_TEXT_TRIGGER_AREA_TYPE); + + a = EWL_TEXT_TRIGGER_AREA(w); + if (a->trigger) + ewl_callback_call_with_event_data(EWL_WIDGET(a->trigger), + EWL_CALLBACK_CLICKED, ev); + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs