From 8f2b2c39d3eb9760d6700b49455d87a18413f48d Mon Sep 17 00:00:00 2001 From: handyande Date: Sat, 27 Nov 2004 18:17:21 +0000 Subject: [PATCH] Remove note now that the default theme is in cvs - nice one raster :) Add edge checking for move and resize SVN revision: 12285 --- src/modules/clock/e_mod_main.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/modules/clock/e_mod_main.c b/src/modules/clock/e_mod_main.c index 4775d9924..8eb220c12 100644 --- a/src/modules/clock/e_mod_main.c +++ b/src/modules/clock/e_mod_main.c @@ -1,23 +1,9 @@ #include "e.h" #include "e_mod_main.h" -/* NOTE: - * - * currently the edje data to display the clock is not in CVS, to use the clock - * you must: - * a) set up expedition to get mouse events - in parts/bg.edc set part "bg"'s - * mouse_events to 1 - * b) build expedition.eet with this change - * c) copy your "expedition.eet" to - * $PREFIX/lib/enlightenment/modules/clock/default.eet - * d) in src/bin/e_module.c uncomment the lines: - * m = e_module_new("clock"); - * e_module_enable(m); - */ - /* TODO List: * - * Add checking for screen edges - do not want to drag off screen + * fix up a better default x and y * */ @@ -310,8 +296,9 @@ _clock_cb_face_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Move *ev; Clock_Face *ef; - Evas_Coord x, y, w, h, cx, cy; + Evas_Coord x, y, w, h, cx, cy, sw, sh; evas_pointer_canvas_xy_get(e, &cx, &cy); + evas_output_viewport_get(e, NULL, NULL, &sw, &sh); ev = event_info; ef = data; @@ -319,6 +306,10 @@ _clock_cb_face_move(void *data, Evas *e, Evas_Object *obj, void *event_info) { ef->fx += cx - ef->xx; ef->fy += cy - ef->yy; + if (ef->fx < 0) ef->fx = 0; + if (ef->fy < 0) ef->fy = 0; + if (ef->fx + ef->fw > sw) ef->fx = sw - ef->fw; + if (ef->fy + ef->fw > sh) ef->fy = sh - ef->fw; evas_object_move(ef->clock_object, ef->fx, ef->fy); evas_object_move(ef->event_object, ef->fx, ef->fy); } @@ -330,6 +321,8 @@ _clock_cb_face_move(void *data, Evas *e, Evas_Object *obj, void *event_info) ef->fw += d; if (ef->fw < ef->minsize) ef->fw = ef->minsize; if (ef->fw > ef->maxsize) ef->fw = ef->maxsize; + if (ef->fx + ef->fw > sw) ef->fw = sw - ef->fx; + if (ef->fy + ef->fw > sh) ef->fw = sh - ef->fy; evas_object_resize(ef->clock_object, ef->fw, ef->fw); evas_object_resize(ef->event_object, ef->fw, ef->fw); }