Enlightenment CVS committal Author : raster Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/bin Modified Files: Tag: SPLIT Makefile.am ecore_evas_test.c Added Files: Tag: SPLIT ecore_evas_test.h ecore_evas_test_app.c ecore_evas_test_bg.c ecore_evas_test_calibrate.c Log Message: data files added. test program has been split up a bit... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/Attic/Makefile.am,v retrieving revision 1.1.2.10 retrieving revision 1.1.2.11 diff -u -3 -r1.1.2.10 -r1.1.2.11 --- Makefile.am 15 Feb 2003 14:54:28 -0000 1.1.2.10 +++ Makefile.am 17 Feb 2003 08:33:22 -0000 1.1.2.11 @@ -70,7 +70,11 @@ $(ECORE_EVAS_LIB) ecore_evas_test_SOURCES = \ -ecore_evas_test.c +ecore_evas_test.c \ +ecore_evas_test_app.c \ +ecore_evas_test_bg.c \ +ecore_evas_test_calibrate.c \ +ecore_evas_test.h ecore_evas_test_LDADD = \ $(top_builddir)/src/lib/ecore/libecore.la \ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/bin/Attic/ecore_evas_test.c,v retrieving revision 1.1.2.4 retrieving revision 1.1.2.5 diff -u -3 -r1.1.2.4 -r1.1.2.5 --- ecore_evas_test.c 16 Feb 2003 15:00:31 -0000 1.1.2.4 +++ ecore_evas_test.c 17 Feb 2003 08:33:23 -0000 1.1.2.5 @@ -1,490 +1,20 @@ -#include "config.h" -#include "Ecore.h" - -#define IM "./data/images/" -#define FN "./data/fonts/" - -#include <math.h> - -#ifdef BUILD_ECORE_EVAS -#include "Ecore_Evas.h" - -/* APP GLOBALS */ -double start_time = 0.0; -Ecore_Timer *anim_timer = NULL; -Ecore_Evas *ee = NULL; -Evas *evas = NULL; -Evas_Object *o_bg_rect = NULL; -Evas_Object *o_logo = NULL; - -int -app_signal_exit(int ev_type, void *ev, void *data) -{ - ecore_main_loop_quit(); - return 1; -} - -void -app_delete_request(Ecore_Evas *ee) -{ - ecore_main_loop_quit(); -} - -void -app_resize(Ecore_Evas *ee) -{ - double w, h; - - evas_output_viewport_get(evas, NULL, NULL, &w, &h); - evas_object_resize(o_bg_rect, w, h); -} - -int -app_animate_obj_timer(void *data) -{ - double t; - - t = ecore_time_get() - start_time; - /* .. */ - return 1; -} - -/* NB: on ipaq - * - * "F1" "F2" "F3" "F4" - * "Up" - * "Left" "Return" "Right" - * "Down" - * - */ -void -cb_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Key_Down *ev; - - ev = event_info; - if (!strcmp(ev->keyname, "Escape")) ecore_main_loop_quit(); - if (!strcmp(ev->keyname, "q")) ecore_main_loop_quit(); - if (!strcmp(ev->keyname, "Q")) ecore_main_loop_quit(); - if ((!strcmp(ev->keyname, "f")) || - (!strcmp(ev->keyname, "F1"))) - { - if (!ecore_evas_fullscreen_get(ee)) - ecore_evas_fullscreen_set(ee, 1); - else - ecore_evas_fullscreen_set(ee, 0); - } - if (!strcmp(ev->keyname, "o")) - { - if (!ecore_evas_override_get(ee)) - ecore_evas_override_set(ee, 1); - else - ecore_evas_override_set(ee, 0); - } - if ((!strcmp(ev->keyname, "r")) || - (!strcmp(ev->keyname, "F4"))) - { - int r; - - r = ecore_evas_rotation_get(ee); - if (r == 0) r = 90; - else if (r == 90) r = 270; - else if (r == 270) r = 0; - ecore_evas_rotation_set(ee, r); - } - if (!strcmp(ev->keyname, "b")) - { - if (!ecore_evas_borderless_get(ee)) - ecore_evas_borderless_set(ee, 1); - else - ecore_evas_borderless_set(ee, 0); - } - if (!strcmp(ev->keyname, "d")) - { - if (!ecore_evas_avoid_damage_get(ee)) - ecore_evas_avoid_damage_set(ee, 1); - else - ecore_evas_avoid_damage_set(ee, 0); - } - if (!strcmp(ev->keyname, "s")) - { - if (!ecore_evas_shaped_get(ee)) - ecore_evas_shaped_set(ee, 1); - else - ecore_evas_shaped_set(ee, 0); - } -#if 1 /* no data files shipped yet to test this */ - if ((!strcmp(ev->keyname, "p")) || - (!strcmp(ev->keyname, "Return"))) - { - char *fl; - - ecore_evas_cursor_get(ee, &fl, NULL, NULL, NULL); - if (!fl) - ecore_evas_cursor_set(ee, "data/pointers/mouse_pointer.png", 1000000, 2, 2); - else - ecore_evas_cursor_set(ee, NULL, 0, 0, 0); - } -#endif -} - -static Evas_Object *o_events = NULL; -static Evas_Object *o_crosshair = NULL; -static Evas_Object *o_text = NULL; -static int cal_pos = 0; -static int down = 0; - -static int cal_coords[] = {15, 15, -15, 15, 15, -15, -15, -15}; -static char *cal_lines[] = -{ - "Please click on the crosshair", - "Again please", - "And again", - "Last one, then calibration is complete" -}; -static int cal_input[8]; - -static int tmp_input_count = 0; -static int tmp_input[16]; - -void calibrate_cb_down(void *data, Evas *e, Evas_Object *obj, void *event_info); -void calibrate_cb_up(void *data, Evas *e, Evas_Object *obj, void *event_info); -void calibrate_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info); -void calibrate_pos_set(int pos); -int calibrate_pos_get(void); -void calibrate_finish(void); -void calibrate_start(void); - -void -calibrate_cb_down(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Down *ev; - - ev = event_info; - - tmp_input_count = 0; - tmp_input[((tmp_input_count & 0x7) * 2) + 0] = ev->output.x; - tmp_input[((tmp_input_count & 0x7) * 2) + 1] = ev->output.y; - tmp_input_count++; - down = 1; -} - -void -calibrate_cb_up(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Up *ev; - int n, i, avx, avy, c, mx, my; - int dists[8]; - int indexes[8]; - int sorted; - - ev = event_info; - down = 0; - tmp_input[((tmp_input_count & 0x7) * 2) + 0] = ev->output.x; - tmp_input[((tmp_input_count & 0x7) * 2) + 1] = ev->output.y; - tmp_input_count++; - n = 8; - if (tmp_input_count < 8) n = tmp_input_count; - avx = 0; avy = 0; c = 0; - for (i = 0; i < n; i++) - { - dists[i] = tmp_input[(i * 2) + 0]; - indexes[i] = i; - } - sorted = 0; - while (!sorted) - { - sorted = 1; - for (i = 0; i < n - 1; i++) - { - if (dists[i + 1] < dists[i]) - { - int tmp; - - sorted = 0; - tmp = dists[i]; - dists[i] = dists[i + 1]; - dists[i + 1] = tmp; - tmp = indexes[i]; - indexes[i] = indexes[i + 1]; - indexes[i + 1] = tmp; - } - } - } - mx = dists[(n + 1) / 2]; - for (i = 0; i < n; i++) - { - dists[i] = tmp_input[(i * 2) + 1]; - indexes[i] = i; - } - sorted = 0; - while (!sorted) - { - sorted = 1; - for (i = 0; i < n - 1; i++) - { - if (dists[i + 1] < dists[i]) - { - int tmp; - - sorted = 0; - tmp = dists[i]; - dists[i] = dists[i + 1]; - dists[i + 1] = tmp; - tmp = indexes[i]; - indexes[i] = indexes[i + 1]; - indexes[i + 1] = tmp; - } - } - } - my = dists[(n + 1) / 2]; - - for (i = 0; i < n; i++) - { - int x, y, dx, dy; - - x = tmp_input[(i * 2) + 0]; - y = tmp_input[(i * 2) + 1]; - dx = x - mx; - dy = y - my; - if (dx < 0) dx = -dx; - if (dy < 0) dy = -dy; - if ((dx <= 8) && (dy <= 8)) - { - avx += tmp_input[(i * 2) + 0]; - avy += tmp_input[(i * 2) + 1]; - c++; - } - } - cal_input[(cal_pos * 2) + 0] = avx / c; - cal_input[(cal_pos * 2) + 1] = avy / c; - n = calibrate_pos_get(); - if (n < 3) - { - calibrate_pos_set(n + 1); - return; - } - calibrate_finish(); -} - -void -calibrate_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info) -{ - Evas_Event_Mouse_Move *ev; - - ev = event_info; - if (!down) return; - tmp_input[((tmp_input_count & 0x7) * 2) + 0] = ev->cur.output.x; - tmp_input[((tmp_input_count & 0x7) * 2) + 1] = ev->cur.output.y; - tmp_input_count++; -} - -void -calibrate_pos_set(int pos) -{ - double w, h; - int x, y, ow, oh; +#include "ecore_evas_test.h" - cal_pos = pos; - evas_object_geometry_get(o_crosshair, NULL, NULL, &w, &h); - x = cal_coords[(cal_pos * 2) + 0]; - y = cal_coords[(cal_pos * 2) + 1]; - evas_output_size_get(evas, &ow, &oh); - if (x < 0) x = ow + x - 1; - if (y < 0) y = oh + y - 1; - cal_coords[(cal_pos * 2) + 0] = x; - cal_coords[(cal_pos * 2) + 1] = y; - evas_object_move(o_crosshair, x - (((int)w - 1) / 2), y - (((int)h - 1) / 2)); - evas_object_text_text_set(o_text, cal_lines[cal_pos]); - evas_object_geometry_get(o_text, NULL, NULL, &w, &h); - evas_object_move(o_text, (ow - w) / 2, (oh - h) / 2); -} - -int -calibrate_pos_get(void) -{ - return cal_pos; -} - -void -calibrate_finish(void) -{ - int m0, m1; - int y0, y1; - int dx, dy; - int x[4], y[4], xi[4], yi[4]; - int i, rot; - - int xscale, xtrans, yscale, ytrans, xyswap; - - rot = ecore_evas_rotation_get(ee); - for (i = 0; i < 4; i++) - { - x[i] = cal_coords[(i * 2) + 0]; - y[i] = cal_coords[(i * 2) + 1]; - xi[i] = cal_input[(i * 2) + 0]; - yi[i] = cal_input[(i * 2) + 1]; - } - xyswap = 0; - - m0 = ((x[1] - x[0]) * 256) / (xi[1] - xi[0]); - y0 = ((x[1] - ((xi[1] * m0) / 256)) + (x[0] - ((xi[0] * m0) >> 8)) ) / 2; - - m1 = ((x[3] - x[2]) * 256) / (xi[3] - xi[2]); - y1 = ((x[3] - ((xi[3] * m1) / 256)) + (x[2] - ((xi[2] * m1) >> 8)) ) / 2; - - xscale = (m0 + m1) / 2; - xtrans = (y0 + y1) / 2; - - m0 = ((y[2] - y[0]) * 256) / (yi[2] - yi[0]); - y0 = ((y[2] - ((yi[2] * m0) / 256)) + (y[0] - ((yi[0] * m0) >> 8)) ) / 2; - - m1 = ((y[3] - y[1]) * 256) / (yi[3] - yi[1]); - y1 = ((y[3] - ((yi[3] * m1) / 256)) + (y[1] - ((yi[1] * m1) >> 8)) ) / 2; - - yscale = (m0 + m1) / 2; - ytrans = (y0 + y1) / 2; - - if (rot == 0) - { - ecore_fb_touch_screen_calibrate_set(xscale, xtrans, yscale, ytrans, xyswap); - } - else if (rot == 270) - { - int ow, oh; - - evas_output_size_get(evas, &ow, &oh); - ytrans = oh - (ytrans + ((oh * yscale) / 256)); - ecore_fb_touch_screen_calibrate_set(yscale, ytrans, xscale, xtrans, xyswap); - } - - evas_object_del(o_crosshair); - evas_object_del(o_events); - evas_object_del(o_text); - o_crosshair = NULL; - o_events = NULL; - o_text = NULL; - cal_pos = 0; -} - -void -calibrate_start(void) -{ - Evas_Object *o; - - ecore_fb_touch_screen_calibrate_set(256, 0, 256, 0, 0); - - o = evas_object_rectangle_add(evas); - evas_object_layer_set(o, 1000000); - evas_object_color_set(o, 255, 255, 255, 120); - evas_object_move(o, -12000, -16000); - evas_object_resize(o, 24000, 32000); - evas_object_show(o); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, calibrate_cb_down, ee); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, calibrate_cb_up, ee); - evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, calibrate_cb_move, ee); - o_events = o; - - o = evas_object_image_add(evas); - evas_object_layer_set(o, 1000001); - evas_object_image_file_set(o, IM"crosshair.png", NULL); - evas_object_resize(o, 31, 31); - evas_object_image_fill_set(o, 0, 0, 31, 31); - evas_object_pass_events_set(o, 1); - evas_object_show(o); - o_crosshair = o; - - o = evas_object_text_add(evas); - evas_object_layer_set(o, 1000002); - evas_object_color_set(o, 0, 0, 0, 255); - evas_object_text_font_set(o, "helmet", 10); - evas_object_pass_events_set(o, 1); - evas_object_show(o); - o_text = o; - - calibrate_pos_set(0); -} - -void -setup_ecore_evas_test(void) -{ - Evas_Object *o; - - /* set up a big white rectangle on the bg */ - o = evas_object_rectangle_add(evas); - evas_object_color_set(o, 255, 255, 255, 255); - evas_object_move(o, 0, 0); - evas_object_resize(o, 240, 320); - evas_object_layer_set(o, -1000000); - evas_object_event_callback_add(o, EVAS_CALLBACK_KEY_DOWN, cb_key_down, ee); - evas_object_focus_set(o, 1); - evas_object_show(o); - o_bg_rect = o; - - o = evas_object_image_add(evas); - evas_object_image_file_set(o, IM"e_logo.png", NULL); - evas_object_resize(o, 240, 280); - evas_object_image_fill_set(o, 0, 0, 240, 280); - evas_object_move(o, (240 - 240) / 2, (320 - 280) / 2); - evas_object_show(o); - o_logo = o; - - /* add a timer to animate them */ -// anim_timer = ecore_timer_add(0.01, app_animate_obj_timer, NULL); -} +#ifdef BUILD_ECORE_EVAS -/**** MAIN */ int main(int argc, const char **argv) { - /* init the app */ - start_time = ecore_time_get(); - ecore_init(); - ecore_app_args_set(argc, argv); - ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, app_signal_exit, NULL); + if (app_start(argc, argv) < 1) return -1; - /* create an evas */ - if (!ecore_evas_init()) return -1; - if ((argc > 1) && (!strcmp(argv[1], "-fb"))) - ee = ecore_evas_fb_new(NULL, 0, 240, 320); - else if ((argc > 1) && (!strcmp(argv[1], "-x"))) - ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320); - else if ((argc > 1) && (!strcmp(argv[1], "-h"))) - { - printf("%s -x Test ecore_evas in X (default)\n" - "%s -fb Test ecore_evas in the Framebuffer\n" - "%s -h Display this help\n", - argv[0], argv[0], argv[0]); - ecore_evas_shutdown(); - ecore_shutdown(); - return 0; - } - else -#ifdef BUILD_ECORE_X - ee = ecore_evas_software_x11_new(NULL, 0, 0, 0, 240, 320); -#else if BUILD_ECORE_FB - ee = ecore_evas_fb_new(NULL, 270, 240, 320); -// ecore_evas_fullscreen_set(ee, 1); -#endif - if (!ee) return -1; - ecore_evas_callback_delete_request_set(ee, app_delete_request); - ecore_evas_callback_resize_set(ee, app_resize); - ecore_evas_title_set(ee, "Ecore Evas Test"); - ecore_evas_name_class_set(ee, "ecore_test", "test_evas"); - ecore_evas_show(ee); - evas = ecore_evas_get(ee); - evas_image_cache_set(evas, 8192 * 1024); - evas_font_cache_set(evas, 512 * 1024); - evas_font_path_append(evas, FN); - - setup_ecore_evas_test(); + bg_start(); calibrate_start(); ecore_main_loop_begin(); - ecore_evas_shutdown(); - ecore_shutdown(); + app_finish(); + return 0; } #else ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs