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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs