From c963d75dfdeec11f82e79e727062fbf89afa2c04 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 22 Apr 2012 09:19:23 +1000 Subject: Update EFL to latest beta. --- libraries/edje/src/examples/sigtest.c | 110 ++++++++++++++++++++++------------ 1 file changed, 71 insertions(+), 39 deletions(-) (limited to 'libraries/edje/src/examples/sigtest.c') diff --git a/libraries/edje/src/examples/sigtest.c b/libraries/edje/src/examples/sigtest.c index 6e4d85f..9538e13 100644 --- a/libraries/edje/src/examples/sigtest.c +++ b/libraries/edje/src/examples/sigtest.c @@ -13,35 +13,37 @@ #define WIDTH (300) #define HEIGHT (300) -static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/sigtest.edj"; - -static Ecore_Evas *ee; -static Evas_Object *edje_obj; - static const char commands[] = \ "commands are:\n" "\te - change te edje base\n" "\tl - change to lua base\n" "\tm - send message\n" "\ts - send signal\n" + "\tEsc - exit\n" "\th - print help\n"; static void -_on_keydown(void *data __UNUSED__, +_on_keydown(void *data, Evas *evas __UNUSED__, Evas_Object *o __UNUSED__, void *einfo) { - Evas_Event_Key_Down *ev = einfo; + Ecore_Evas *ee; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; + char *edje_file_path; + + ee = (Ecore_Evas *)data; + ev = (Evas_Event_Key_Down *)einfo; + edje_obj = ecore_evas_data_get(ee, "edje_obj"); + edje_file_path = ecore_evas_data_get(ee, "file_path"); - if (strcmp(ev->keyname, "h") == 0) + if (!strcmp(ev->keyname, "h")) { fprintf(stdout, commands); return; } - - if (strcmp(ev->keyname, "e") == 0) + else if (!strcmp(ev->keyname, "e")) { if (!edje_object_file_set(edje_obj, edje_file_path, "plain/edje/group")) { @@ -55,8 +57,7 @@ _on_keydown(void *data __UNUSED__, " file sigtest.edj with success!\n"); return; } - - if (strcmp(ev->keyname, "l") == 0) + else if (!strcmp(ev->keyname, "l")) { if (!edje_object_file_set(edje_obj, edje_file_path, "lua_base")) { @@ -70,8 +71,7 @@ _on_keydown(void *data __UNUSED__, " file sigtest.edj with success!\n"); return; } - - if (strcmp(ev->keyname, "m") == 0) + else if (!strcmp(ev->keyname, "m")) { Edje_Message_String *msg = malloc(sizeof(*msg)); @@ -82,8 +82,7 @@ _on_keydown(void *data __UNUSED__, fprintf(stdout, "C message sent\n"); return; } - - if (strcmp(ev->keyname, "s") == 0) + else if (!strcmp(ev->keyname, "s")) { fprintf(stdout, "\n"); edje_object_signal_emit(edje_obj, "C signal 1", "Csource"); @@ -91,10 +90,17 @@ _on_keydown(void *data __UNUSED__, fprintf(stdout, "C signal sent\n"); return; } + else if (!strcmp(ev->keyname, "Escape")) + ecore_main_loop_quit(); + else + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } static void -_on_message(void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg) +_on_message(void *data __UNUSED__, Evas_Object *obj __UNUSED__, Edje_Message_Type type, int id, void *msg) { int i; @@ -207,7 +213,7 @@ _on_message(void *data, Evas_Object *obj, Edje_Message_Type type, int id, void * } static void -_on_signal(void *data, Evas_Object *obj __UNUSED__, const char *emission, const char *source) +_on_signal(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission, const char *source) { fprintf(stdout, "C::signal sig=|%s| src=|%s|\n", emission, source); } @@ -219,26 +225,43 @@ _on_delete(Ecore_Evas *ee __UNUSED__) } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas_Object *border, *bg; - Evas *evas; + char border_img_path[PATH_MAX]; + char edje_file_path[PATH_MAX]; + const char *edje_file = "sigtest.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *border; + Evas_Object *edje_obj; + Eina_Prefix *pfx; if (!ecore_evas_init()) return EXIT_FAILURE; if (!edje_init()) - return EXIT_FAILURE; + goto shutdown_ecore_evas; + + pfx = eina_prefix_new(argv[0], main, + "EDJE_EXAMPLES", + "edje/examples", + edje_file, + PACKAGE_BIN_DIR, + PACKAGE_LIB_DIR, + PACKAGE_DATA_DIR, + PACKAGE_DATA_DIR); + if (!pfx) + goto shutdown_edje; /* this will give you a window with an Evas canvas under the first * engine available */ ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); if (!ee) - goto error; + goto free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete); ecore_evas_title_set(ee, "Signals and wessages tester"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -250,14 +273,14 @@ main(void) ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); evas_object_focus_set(bg, EINA_TRUE); - evas_object_event_callback_add( - bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); edje_obj = edje_object_add(evas); edje_object_message_handler_set(edje_obj, _on_message, NULL); edje_object_signal_callback_add(edje_obj, "*", "*", _on_signal, NULL); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); if (!edje_object_file_set(edje_obj, edje_file_path, "lua_base")) { int err = edje_object_load_error_get(edje_obj); @@ -266,7 +289,7 @@ main(void) errmsg); evas_object_del(edje_obj); - goto error_edj; + goto free_prefix; } fprintf(stdout, "Loaded Edje object bound to group 'lua_base' from" @@ -275,6 +298,13 @@ main(void) evas_object_move(edje_obj, 20, 20); evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); evas_object_show(edje_obj); + ecore_evas_data_set(ee, "edje_obj", edje_obj); + ecore_evas_data_set(ee, "file_path", edje_file_path); + + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, ee); + + snprintf(border_img_path, sizeof(border_img_path), + "%s/edje/examples/red.png", eina_prefix_data_get(pfx)); /* this is a border around the Edje object above, here just to * emphasize its geometry */ @@ -287,23 +317,25 @@ main(void) evas_object_move(border, 20 - 2, 20 - 2); evas_object_show(border); + fprintf(stdout, commands); + + ecore_evas_show(ee); + ecore_main_loop_begin(); + eina_prefix_free(pfx); ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; - -error: - fprintf(stderr, "You got to have at least one evas engine built" - " and linked up to ecore-evas for this example to run" - " properly.\n"); - ecore_evas_shutdown(); - return -1; -error_edj: - fprintf(stderr, "Failed to load sigtest.edj!\n"); + return EXIT_SUCCESS; + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: ecore_evas_shutdown(); - return -2; + + return EXIT_FAILURE; } -- cgit v1.1