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/Makefile.am | 38 +++-- libraries/edje/src/examples/Makefile.in | 45 +++-- libraries/edje/src/examples/edje-animations.c | 125 +++++++++++--- libraries/edje/src/examples/edje-basic.c | 107 +++++++----- libraries/edje/src/examples/edje-box.c | 185 +++++++++++++------- libraries/edje/src/examples/edje-box2.c | 187 +++++++++++++-------- libraries/edje/src/examples/edje-color-class.c | 140 +++++++++------ libraries/edje/src/examples/edje-drag.c | 175 ++++++++++++------- libraries/edje/src/examples/edje-perspective.c | 132 ++++++++++----- .../edje/src/examples/edje-signals-messages.c | 112 +++++++----- libraries/edje/src/examples/edje-swallow.c | 73 +++++--- libraries/edje/src/examples/edje-table.c | 101 ++++++++--- libraries/edje/src/examples/edje-text.c | 65 +++++-- libraries/edje/src/examples/sigtest.c | 110 +++++++----- 14 files changed, 1063 insertions(+), 532 deletions(-) (limited to 'libraries/edje/src/examples') diff --git a/libraries/edje/src/examples/Makefile.am b/libraries/edje/src/examples/Makefile.am index 579f148..e3893cd 100644 --- a/libraries/edje/src/examples/Makefile.am +++ b/libraries/edje/src/examples/Makefile.am @@ -1,5 +1,10 @@ MAINTAINERCLEANFILES = Makefile.in +EDJE_CC = @edje_cc@ +EDJE_CC_FLAGS_VERBOSE_0 = +EDJE_CC_FLAGS_VERBOSE_1 = -v +EDJE_CC_FLAGS = $(EDJE_CC_FLAGS_$(V)) -id $(srcdir) -fd $(srcdir) + examplesdir = $(datadir)/$(PACKAGE)/examples if ENABLE_MULTISENSE @@ -24,7 +29,8 @@ EDCS = \ $(MULTISENSE_EDC_FILE) .edc.edj: - $(edje_cc) -v -fd $(srcdir) -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F) + $(EDJE_CC) $(EDJE_CC_FLAGS) $(SND_DIR) $< $(builddir)/$(@F) + EDJS = $(EDCS:%.edc=%.edj) @@ -53,31 +59,33 @@ EXTRA_DIST = $(files_DATA) if BUILD_EXAMPLES AM_CPPFLAGS = \ - -I. \ - -I$(top_srcdir)/src/lib \ - -I$(top_srcdir)/src/lib/include \ - -DPACKAGE_BIN_DIR=\"$(bindir)\" \ - -DPACKAGE_LIB_DIR=\"$(libdir)\" \ - -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ - -DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" \ - @EDJE_CFLAGS@ +-I. \ +-I$(top_srcdir)/src/lib \ +-I$(top_srcdir)/src/lib/include \ +-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ +@EDJE_CFLAGS@ files_DATA += $(EDJS) examples_PROGRAMS = \ + edje-animations \ edje-basic \ - edje-swallow \ - edje-text \ - edje-table \ edje-box \ edje-box2 \ - edje-drag\ - edje-signals-messages \ edje-color-class \ + edje-drag\ edje-perspective \ - edje-animations \ + edje-signals-messages \ + edje-swallow \ + edje-table \ + edje-text \ sigtest LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@ endif + +clean-local: + rm -f *.edj diff --git a/libraries/edje/src/examples/Makefile.in b/libraries/edje/src/examples/Makefile.in index 7f867e0..de47940 100644 --- a/libraries/edje/src/examples/Makefile.in +++ b/libraries/edje/src/examples/Makefile.in @@ -36,14 +36,15 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ @BUILD_EXAMPLES_TRUE@am__append_1 = $(EDJS) -@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = edje-basic$(EXEEXT) \ -@BUILD_EXAMPLES_TRUE@ edje-swallow$(EXEEXT) edje-text$(EXEEXT) \ -@BUILD_EXAMPLES_TRUE@ edje-table$(EXEEXT) edje-box$(EXEEXT) \ -@BUILD_EXAMPLES_TRUE@ edje-box2$(EXEEXT) edje-drag$(EXEEXT) \ -@BUILD_EXAMPLES_TRUE@ edje-signals-messages$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@examples_PROGRAMS = edje-animations$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@ edje-basic$(EXEEXT) edje-box$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@ edje-box2$(EXEEXT) \ @BUILD_EXAMPLES_TRUE@ edje-color-class$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@ edje-drag$(EXEEXT) \ @BUILD_EXAMPLES_TRUE@ edje-perspective$(EXEEXT) \ -@BUILD_EXAMPLES_TRUE@ edje-animations$(EXEEXT) sigtest$(EXEEXT) +@BUILD_EXAMPLES_TRUE@ edje-signals-messages$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@ edje-swallow$(EXEEXT) edje-table$(EXEEXT) \ +@BUILD_EXAMPLES_TRUE@ edje-text$(EXEEXT) sigtest$(EXEEXT) subdir = src/examples DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -279,6 +280,8 @@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PKG_CONFIG = @PKG_CONFIG@ +PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@ +PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ PYTHON = @PYTHON@ PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ @@ -366,6 +369,10 @@ top_srcdir = @top_srcdir@ version_info = @version_info@ vimdir = @vimdir@ MAINTAINERCLEANFILES = Makefile.in +EDJE_CC = @edje_cc@ +EDJE_CC_FLAGS_VERBOSE_0 = +EDJE_CC_FLAGS_VERBOSE_1 = -v +EDJE_CC_FLAGS = $(EDJE_CC_FLAGS_$(V)) -id $(srcdir) -fd $(srcdir) examplesdir = $(datadir)/$(PACKAGE)/examples @ENABLE_MULTISENSE_TRUE@MULTISENSE_EDC_FILE = multisense.edc @ENABLE_MULTISENSE_TRUE@SND_DIR = -sd $(srcdir) @@ -394,14 +401,13 @@ files_DATA = $(EDCS) bubble.png red.png test.png Vera.ttf edje-basic.c \ edje-perspective.c edje-animations.c sigtest.c $(am__append_1) EXTRA_DIST = $(files_DATA) @BUILD_EXAMPLES_TRUE@AM_CPPFLAGS = \ -@BUILD_EXAMPLES_TRUE@ -I. \ -@BUILD_EXAMPLES_TRUE@ -I$(top_srcdir)/src/lib \ -@BUILD_EXAMPLES_TRUE@ -I$(top_srcdir)/src/lib/include \ -@BUILD_EXAMPLES_TRUE@ -DPACKAGE_BIN_DIR=\"$(bindir)\" \ -@BUILD_EXAMPLES_TRUE@ -DPACKAGE_LIB_DIR=\"$(libdir)\" \ -@BUILD_EXAMPLES_TRUE@ -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \ -@BUILD_EXAMPLES_TRUE@ -DPACKAGE_EXAMPLES_DIR=\"$(datadir)/$(PACKAGE)/examples\" \ -@BUILD_EXAMPLES_TRUE@ @EDJE_CFLAGS@ +@BUILD_EXAMPLES_TRUE@-I. \ +@BUILD_EXAMPLES_TRUE@-I$(top_srcdir)/src/lib \ +@BUILD_EXAMPLES_TRUE@-I$(top_srcdir)/src/lib/include \ +@BUILD_EXAMPLES_TRUE@-DPACKAGE_BIN_DIR=\"$(bindir)\" \ +@BUILD_EXAMPLES_TRUE@-DPACKAGE_LIB_DIR=\"$(libdir)\" \ +@BUILD_EXAMPLES_TRUE@-DPACKAGE_DATA_DIR=\"$(pkgdatadir)\" \ +@BUILD_EXAMPLES_TRUE@@EDJE_CFLAGS@ @BUILD_EXAMPLES_TRUE@LDADD = $(top_builddir)/src/lib/libedje.la @EDJE_LIBS@ all: all-am @@ -705,7 +711,7 @@ maintainer-clean-generic: clean: clean-am clean-am: clean-examplesPROGRAMS clean-generic clean-libtool \ - mostlyclean-am + clean-local mostlyclean-am distclean: distclean-am -rm -rf ./$(DEPDIR) @@ -776,8 +782,8 @@ uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am check check-am clean \ - clean-examplesPROGRAMS clean-generic clean-libtool ctags \ - distclean distclean-compile distclean-generic \ + clean-examplesPROGRAMS clean-generic clean-libtool clean-local \ + ctags distclean distclean-compile distclean-generic \ distclean-libtool distclean-tags distdir dvi dvi-am html \ html-am info info-am install install-am install-data \ install-data-am install-dvi install-dvi-am \ @@ -793,7 +799,10 @@ uninstall-am: uninstall-examplesPROGRAMS uninstall-filesDATA .edc.edj: - $(edje_cc) -v -fd $(srcdir) -id $(srcdir) $(SND_DIR) $< $(builddir)/$(@F) + $(EDJE_CC) $(EDJE_CC_FLAGS) $(SND_DIR) $< $(builddir)/$(@F) + +clean-local: + rm -f *.edj # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/libraries/edje/src/examples/edje-animations.c b/libraries/edje/src/examples/edje-animations.c index 9363471..15f2ee0 100644 --- a/libraries/edje/src/examples/edje-animations.c +++ b/libraries/edje/src/examples/edje-animations.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,34 +22,59 @@ #define WIDTH (400) #define HEIGHT (300) -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/animations.edj"; -static Ecore_Evas *ee; -static Evas_Object *bg, *edje_obj; -static double frametime = 1.0/30.0; /* default value */ +static const char commands[] = \ + "commands are:\n" + "\t+ - increase frametime\n" + "\t- - decrease frametime\n" + "\t= - status of the animation\n" + "\ts - pause\n" + "\tp - play\n" + "\tf - freeze one object\n" + "\tF - freeze all objects\n" + "\tt - thaw one object\n" + "\tT - thaw all objects\n" + "\ta - start animation of one object\n" + "\tA - stop animation of one object\n" + "\tEsc - exit\n" + "\th - print help\n"; + +static double frametime = 1.0 / 30.0; /* default value */ static void -_on_delete_cb(Ecore_Evas *ee) +_on_delete_cb(Ecore_Evas *ee __UNUSED__) { ecore_main_loop_quit(); } static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { - int w, h; - - ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); - evas_object_resize(bg, w, h); - evas_object_resize(edje_obj, w, h); + Evas_Object *bg; + Evas_Object *edje_obj; + int w; + int h; + + bg = ecore_evas_data_get(ee, "background"); + edje_obj = ecore_evas_data_get(ee, "edje_obj"); + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(bg, w, h); + evas_object_resize(edje_obj, w, h); } static void -_on_key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) +_on_key_down(void *data __UNUSED__, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) { - Evas_Event_Key_Down *ev = event_info; - double ft; + Evas_Event_Key_Down *ev; + double ft; + + ev = (Evas_Event_Key_Down *)event_info; - if (!strcmp(ev->key, "plus")) + if (!strcmp(ev->keyname, "h")) + { + fprintf(stdout, commands); + return; + } + else if (!strcmp(ev->key, "plus")) { frametime *= 2.0; fprintf(stdout, "Increasing frametime to: %f\n", frametime); @@ -109,24 +133,52 @@ _on_key_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info) edje_object_animation_set(obj, EINA_FALSE); fprintf(stdout, "Stopping the animation in the Edje object\n"); } + else if (!strcmp(ev->keyname, "Escape")) + ecore_main_loop_quit(); + else + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } int -main(int argc, char *argv[]) +main(int argc __UNUSED__, char *argv[]) { - Evas *evas; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "animations.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete_cb); - ecore_evas_callback_resize_set(ee, _canvas_resize_cb); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); ecore_evas_title_set(ee, "Edje Animations Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -135,22 +187,41 @@ main(int argc, char *argv[]) evas_object_move(bg, 0, 0); /* at canvas' origin */ evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg); + ecore_evas_data_set(ee, "background", bg); edje_obj = edje_object_add(evas); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); edje_object_file_set(edje_obj, edje_file_path, "animations_group"); evas_object_move(edje_obj, 0, 0); evas_object_resize(edje_obj, WIDTH, HEIGHT); evas_object_show(edje_obj); + ecore_evas_data_set(ee, "edje_obj", edje_obj); evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_KEY_DOWN, - _on_key_down_cb, NULL); + _on_key_down, NULL); evas_object_focus_set(edje_obj, EINA_TRUE); + 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; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-basic.c b/libraries/edje/src/examples/edje-basic.c index 2a7a862..8a85312 100644 --- a/libraries/edje/src/examples/edje-basic.c +++ b/libraries/edje/src/examples/edje-basic.c @@ -11,47 +11,46 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif +#include + +#include #include #include #include -#include #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 "/basic.edj"; - -static Ecore_Evas *ee; -static Evas_Object *edje_obj; - static const char commands[] = \ "commands are:\n" "\ts - change Edje's global scaling factor\n" "\tr - change center rectangle's scaling factor\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; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; + + ev = (Evas_Event_Key_Down *)einfo; + edje_obj = (Evas_Object *)data; if (strcmp(ev->keyname, "h") == 0) /* print help */ { fprintf(stdout, commands); return; } - - if (strcmp(ev->keyname, "s") == 0) /* global scaling factor */ + else if (strcmp(ev->keyname, "s") == 0) /* global scaling factor */ { double scale = edje_scale_get(); @@ -66,8 +65,7 @@ _on_keydown(void *data __UNUSED__, return; } - - if (strcmp(ev->keyname, "r") == 0) /* individual scaling factor */ + else if (strcmp(ev->keyname, "r") == 0) /* individual scaling factor */ { double scale = edje_object_scale_get(edje_obj); @@ -84,6 +82,13 @@ _on_keydown(void *data __UNUSED__, return; } + else if (!strcmp(ev->keyname, "Escape")) + ecore_main_loop_quit(); + else + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } static void @@ -93,27 +98,47 @@ _on_delete(Ecore_Evas *ee __UNUSED__) } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas_Object *border, *bg; - int x, y, w, h; - Evas *evas; + char border_img_path[PATH_MAX]; + char edje_file_path[PATH_MAX]; + const char *edje_file = "basic.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *border; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + int x; + int y; + int w; + int h; 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, "Edje Basics Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -125,11 +150,12 @@ 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); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + printf("%s\n", edje_file_path); /* exercising Edje loading error, on purpose */ if (!edje_object_file_set(edje_obj, edje_file_path, "unexistant_group")) { @@ -147,7 +173,7 @@ main(void) errmsg); evas_object_del(edje_obj); - goto error_edj; + goto free_prefix; } fprintf(stdout, "Loaded Edje object bound to group 'example_group' from" @@ -157,6 +183,11 @@ main(void) evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); evas_object_show(edje_obj); + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, edje_obj); + + 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 */ border = evas_object_image_filled_add(evas); @@ -203,24 +234,24 @@ main(void) "y = %d, w = %d, h = %d\n", x, y, w, h); 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 basic.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; +} diff --git a/libraries/edje/src/examples/edje-box.c b/libraries/edje/src/examples/edje-box.c index 7fffba3..2b0cbda 100644 --- a/libraries/edje/src/examples/edje-box.c +++ b/libraries/edje/src/examples/edje-box.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -28,13 +27,13 @@ #define NRECTS 20 -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/box.edj"; - -struct _App { - Ecore_Evas *ee; - Evas_Object *edje; - Evas_Object *bg; -}; +static const char commands[] = \ + "commands are:\n" + "\ti - prepend rectangle\n" + "\ta - append rectangle\n" + "\tc - remove\n" + "\tEsc - exit\n" + "\th - print help\n"; static void _on_destroy(Ecore_Evas *ee __UNUSED__) @@ -45,32 +44,41 @@ _on_destroy(Ecore_Evas *ee __UNUSED__) /* here just to keep our example's window size and background image's * size in synchrony */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { - int w, h; - struct _App *app = ecore_evas_data_get(ee, "app"); + Evas_Object *bg; + Evas_Object *edje_obj; + int w; + int h; + bg = ecore_evas_data_get(ee, "background"); + edje_obj = ecore_evas_data_get(ee, "edje_obj"); ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); - evas_object_resize(app->bg, w, h); - evas_object_resize(app->edje, w, h); + evas_object_resize(bg, w, h); + evas_object_resize(edje_obj, w, h); } static void -_rect_mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info) +_on_rect_mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info) { - struct _App *app = data; - Evas_Event_Mouse_Down *ev = event_info; + Ecore_Evas *ee; + Evas_Event_Mouse_Down *ev; + Evas_Object *edje_obj; + + ee = (Ecore_Evas *)data; + ev = (Evas_Event_Mouse_Down *)event_info; + edje_obj = ecore_evas_data_get(ee, "edje_obj"); if (ev->button == 1) { printf("Removing rect %p under the mouse pointer.\n", o); - edje_object_part_box_remove(app->edje, "example/box", o); + edje_object_part_box_remove(edje_obj, "example/box", o); evas_object_del(o); } else if (ev->button == 3) { Evas_Object *rect; - Eina_Bool r; + Eina_Bool r; rect = evas_object_rectangle_add(e); evas_object_color_set(rect, 0, 0, 255, 255); @@ -78,23 +86,32 @@ _rect_mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info) evas_object_show(rect); printf("Inserting rect %p before the rectangle under the mouse pointer.\n", rect); - r = edje_object_part_box_insert_before(app->edje, "example/box", rect, o); + r = edje_object_part_box_insert_before(edje_obj, "example/box", rect, o); if (!r) printf("An error ocurred when appending rect %p to the box.\n", rect); - evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _rect_mouse_down, app); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _on_rect_mouse_down, NULL); } } static void -_bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) +_on_bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) { - struct _App *app = data; - Evas_Event_Key_Down *ev = event_info; - Evas_Object *rect; - Eina_Bool r; + Ecore_Evas *ee; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; + Evas_Object *rect; + Eina_Bool r; + ee = (Ecore_Evas *)data; + ev = (Evas_Event_Key_Down *)event_info; + edje_obj = ecore_evas_data_get(ee, "edje_obj"); + if (!strcmp(ev->keyname, "h")) + { + fprintf(stdout, commands); + return; + } if (!strcmp(ev->keyname, "i")) { rect = evas_object_rectangle_add(e); @@ -103,11 +120,11 @@ _bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) evas_object_show(rect); printf("Inserting rect %p before the rectangle under the mouse pointer.\n", rect); - r = edje_object_part_box_insert_at(app->edje, "example/box", rect, 0); + r = edje_object_part_box_insert_at(edje_obj, "example/box", rect, 0); if (!r) printf("An error ocurred when appending rect %p to the box.\n", rect); - evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _rect_mouse_down, app); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _on_rect_mouse_down, NULL); } else if (!strcmp(ev->keyname, "a")) { @@ -117,53 +134,82 @@ _bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) evas_object_show(rect); printf("Inserting rect %p before the rectangle under the mouse pointer.\n", rect); - r = edje_object_part_box_append(app->edje, "example/box", rect); + r = edje_object_part_box_append(edje_obj, "example/box", rect); if (!r) printf("An error ocurred when appending rect %p to the box.\n", rect); - evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _rect_mouse_down, app); + evas_object_event_callback_add(rect, EVAS_CALLBACK_MOUSE_DOWN, _on_rect_mouse_down, NULL); } else if (!strcmp(ev->keyname, "c")) - edje_object_part_box_remove_all(app->edje, "example/box", EINA_TRUE); + edje_object_part_box_remove_all(edje_obj, "example/box", EINA_TRUE); + else if (!strcmp(ev->keyname, "Escape")) + ecore_main_loop_quit(); + else + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas *evas; - struct _App app; - int i; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "box.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + int i; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 */ - app.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); - - ecore_evas_callback_destroy_set(app.ee, _on_destroy); - ecore_evas_callback_resize_set(app.ee, _canvas_resize_cb); - ecore_evas_title_set(app.ee, "Edje Box Example"); - ecore_evas_show(app.ee); + ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!ee) + goto free_prefix; - ecore_evas_data_set(app.ee, "app", &app); + ecore_evas_callback_destroy_set(ee, _on_destroy); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); + ecore_evas_title_set(ee, "Edje Box Example"); - evas = ecore_evas_get(app.ee); + evas = ecore_evas_get(ee); - app.bg = evas_object_rectangle_add(evas); - evas_object_color_set(app.bg, 255, 255, 255, 255); - evas_object_resize(app.bg, WIDTH, HEIGHT); - evas_object_focus_set(app.bg, EINA_TRUE); - evas_object_show(app.bg); + bg = evas_object_rectangle_add(evas); + evas_object_color_set(bg, 255, 255, 255, 255); + evas_object_resize(bg, WIDTH, HEIGHT); + evas_object_focus_set(bg, EINA_TRUE); + evas_object_show(bg); + ecore_evas_data_set(ee, "background", bg); - evas_object_event_callback_add(app.bg, EVAS_CALLBACK_KEY_DOWN, _bg_key_down, &app); + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_bg_key_down, ee); - app.edje = edje_object_add(evas); + edje_obj = edje_object_add(evas); - edje_object_file_set(app.edje, edje_file_path, "example/group"); - evas_object_move(app.edje, 0, 0); - evas_object_resize(app.edje, WIDTH, HEIGHT); - evas_object_show(app.edje); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + edje_object_file_set(edje_obj, edje_file_path, "example/group"); + evas_object_move(edje_obj, 0, 0); + evas_object_resize(edje_obj, WIDTH, HEIGHT); + evas_object_show(edje_obj); + ecore_evas_data_set(ee, "edje_obj", edje_obj); for (i = 0; i < NRECTS; i++) { @@ -173,19 +219,34 @@ main(void) rect = evas_object_rectangle_add(evas); evas_object_color_set(rect, red, 0, 0, 255); evas_object_resize(rect, RECTW, RECTH); - r = edje_object_part_box_append(app.edje, "example/box", rect); + r = edje_object_part_box_append(edje_obj, "example/box", rect); if (!r) printf("An error ocurred when appending rect #%d to the box.\n", i); evas_object_show(rect); evas_object_event_callback_add( - rect, EVAS_CALLBACK_MOUSE_DOWN, _rect_mouse_down, &app); + rect, EVAS_CALLBACK_MOUSE_DOWN, _on_rect_mouse_down, ee); } + fprintf(stdout, commands); + + ecore_evas_show(ee); + ecore_main_loop_begin(); - ecore_evas_free(app.ee); + eina_prefix_free(pfx); + ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-box2.c b/libraries/edje/src/examples/edje-box2.c index b3f4e40..81f1a90 100644 --- a/libraries/edje/src/examples/edje-box2.c +++ b/libraries/edje/src/examples/edje-box2.c @@ -10,40 +10,35 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif -#include -#include -#include -#include - #include #include #include -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/box.edj"; - -struct _App { - Ecore_Evas *ee; - Evas *evas; - Evas_Object *bg; - Evas_Object *box; -}; +#include +#include +#include +#include -static struct _App app; +static const char commands[] = \ + "commands are:\n" + "\tShift - remove box\n" + "\tCtrl - insert box\n" + "\tEsc - exit\n" + "\th - print help\n"; static void -custom_layout(Evas_Object *o, Evas_Object_Box_Data *p, void *data) +custom_layout(Evas_Object *o, Evas_Object_Box_Data *p, void *data __UNUSED__) { + Evas_Object_Box_Option *opt; + Eina_List *l; int x, y, w, h; int xx, yy, ww, hh; int count; - Eina_List *l; - Evas_Object_Box_Option *opt; evas_object_geometry_get(o, &x, &y, &w, &h); count = eina_list_count(p->children); @@ -76,129 +71,177 @@ new_greenie_block(Evas *e) } static void -on_keydown(void *data, Evas *evas, Evas_Object *o, void *einfo) +on_keydown(void *data, Evas *evas, Evas_Object *o __UNUSED__, void *einfo) { - struct _App *app = data; - Evas_Event_Key_Down *ev = einfo; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; const Evas_Modifier *mods; + ev = (Evas_Event_Key_Down *)einfo; + edje_obj = (Evas_Object *)data; + mods = evas_key_modifier_get(evas); + if (!strcmp(ev->keyname, "h")) + { + fprintf(stdout, commands); + return; + } if (evas_key_modifier_is_set(mods, "Shift")) { int pos; Evas_Object *obj = NULL; pos = atoi(ev->keyname); - obj = edje_object_part_box_remove_at(app->box, "example/box", pos); + obj = edje_object_part_box_remove_at(edje_obj, "example/box", pos); if (obj) evas_object_del(obj); return; } if (evas_key_modifier_is_set(mods, "Control")) { - Evas_Object *o; + Evas_Object *obj; int pos; pos = atoi(ev->keyname); - o = new_greenie_block(app->evas); - if (!edje_object_part_box_insert_at(app->box, "example/box", o, pos)) - edje_object_part_box_append(app->box, "example/box", o); + obj = new_greenie_block(evas); + if (!edje_object_part_box_insert_at(edje_obj, "example/box", obj, pos)) + edje_object_part_box_append(edje_obj, "example/box", obj); return; } - if (strcmp(ev->keyname, "Escape") == 0) + if (!strcmp(ev->keyname, "Escape")) ecore_main_loop_quit(); } static Evas_Object * -box_new(Evas *evas, const char *name, int x, int y, int w, int h) +box_new(Ecore_Evas *ee, const char *edje_file_path, const char *name, int x, int y, int w, int h) { - Evas_Object *o; + Evas_Object *edje_obj; - o = edje_object_add(evas); - evas_object_move(o, x, y); - evas_object_resize(o, w, h); - if (!edje_object_file_set(o, edje_file_path, "example/group2")) + edje_obj = edje_object_add(ecore_evas_get(ee)); + evas_object_move(edje_obj, x, y); + evas_object_resize(edje_obj, w, h); + if (!edje_object_file_set(edje_obj, edje_file_path, "example/group2")) { printf("error: could not load file object.\n"); } - evas_object_show(o); - - evas_object_name_set(o, name); + evas_object_show(edje_obj); + evas_object_name_set(edje_obj, name); + ecore_evas_data_set(ee, "edje_obj", edje_obj); - return o; + return edje_obj; } static void on_resize(Ecore_Evas *ee) { - int w, h; - - evas_output_viewport_get(app.evas, NULL, NULL, &w, &h); - evas_object_resize(app.bg, w, h); - evas_object_resize(app.box, w, h); + Evas_Object *bg; + Evas_Object *edje_obj; + int w; + int h; + + bg = ecore_evas_data_get(ee, "background"); + edje_obj = ecore_evas_data_get(ee, "edje_obj"); + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(bg, w, h); + evas_object_resize(edje_obj, w, h); } static void -on_destroy(Ecore_Evas *ee) +on_destroy(Ecore_Evas *ee __UNUSED__) { ecore_main_loop_quit(); } int -main(int argc, char *argv[]) +main(int argc __UNUSED__, char *argv[]) { - Ecore_Evas *ee; - int w, h, i; + char edje_file_path[PATH_MAX]; + const char *edje_file = "box.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; Evas_Object *last; Evas_Object *o; - - evas_init(); - ecore_init(); - ecore_evas_init(); - edje_init(); - + Eina_Prefix *pfx; + int w; + int h; + int i; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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, 640, 480, NULL); - ecore_evas_show(ee); - - app.ee = ee; - app.evas = ecore_evas_get(ee); + if (!ee) + goto free_prefix; ecore_evas_callback_resize_set(ee, on_resize); ecore_evas_callback_destroy_set(ee, on_destroy); + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); - evas_output_viewport_get(app.evas, NULL, NULL, &w, &h); + evas = ecore_evas_get(ee); - app.bg = evas_object_rectangle_add(app.evas); - evas_object_resize(app.bg, w, h); - evas_object_show(app.bg); - evas_object_focus_set(app.bg, 1); - evas_object_event_callback_add( - app.bg, EVAS_CALLBACK_KEY_DOWN, on_keydown, &app); + bg = evas_object_rectangle_add(evas); + evas_object_resize(bg, w, h); + evas_object_show(bg); + evas_object_focus_set(bg, 1); + ecore_evas_data_set(ee, "background", bg); edje_box_layout_register("custom_layout", custom_layout, NULL, NULL, NULL, NULL); - app.box = box_new(app.evas, "box", 0, 0, w, h); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + edje_obj = box_new(ee, edje_file_path, "box", 0, 0, w, h); + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, on_keydown, edje_obj); for (i = 1; i <= 5; i++) { - o = last = evas_object_rectangle_add(app.evas); + o = last = evas_object_rectangle_add(evas); evas_object_size_hint_min_set(o, 50, 50); evas_object_resize(o, 50, 50); evas_object_color_set(o, 255, 0, 0, 128); evas_object_show(o); - if (!edje_object_part_box_append(app.box, "example/box", o)) + if (!edje_object_part_box_append(edje_obj, "example/box", o)) { fprintf(stderr, "error appending child object!\n"); return 1; } } + fprintf(stdout, commands); + + ecore_evas_show(ee); + ecore_main_loop_begin(); - edje_shutdown(); + eina_prefix_free(pfx); + ecore_evas_free(ee); ecore_evas_shutdown(); - ecore_shutdown(); - evas_shutdown(); + edje_shutdown(); + + return EXIT_SUCCESS; + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); - return 0; + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-color-class.c b/libraries/edje/src/examples/edje-color-class.c index 9ac8653..8d073d0 100644 --- a/libraries/edje/src/examples/edje-color-class.c +++ b/libraries/edje/src/examples/edje-color-class.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,13 +22,11 @@ #define WIDTH (400) #define HEIGHT (400) -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/color-class.edj"; - typedef int color[4]; /* rgba */ -static Ecore_Evas *ee, *ee2; -static Evas *evas, *evas2; -static Evas_Object *bg, *edje_obj, *bg2, *edje_obj2; +static Ecore_Evas *ee1, *ee2; +static Evas *evas1, *evas2; +static Evas_Object *bg1, *edje_obj1, *bg2, *edje_obj2; static const char *selected_class; static color colors_init_data[] = @@ -96,21 +93,23 @@ _color_classes_print(void) } static void -_on_destroy(Ecore_Evas *ee) +_on_destroy(Ecore_Evas *ee __UNUSED__) { ecore_main_loop_quit(); } static void -_on_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) +_on_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, void *event_info) { Evas_Event_Mouse_Down *ev = event_info; if (ev->button == 1) - if (obj == edje_obj) - edje_color_class_del(selected_class); - else - edje_object_color_class_del(edje_obj2, selected_class); + { + if (obj == edje_obj1) + edje_color_class_del(selected_class); + else + edje_object_color_class_del(edje_obj2, selected_class); + } } /* here just to keep our example's window size @@ -122,10 +121,10 @@ _canvas_resize_cb(Ecore_Evas *_ee) ecore_evas_geometry_get(_ee, NULL, NULL, &w, &h); - if (_ee == ee) + if (_ee == ee1) { - evas_object_resize(bg, w, h); - evas_object_resize(edje_obj, w, h); + evas_object_resize(bg1, w, h); + evas_object_resize(edje_obj1, w, h); } else { @@ -135,8 +134,8 @@ _canvas_resize_cb(Ecore_Evas *_ee) } static void -_color_class_callback_delete(void *data, Evas *evas, Evas_Object *obj, - const char *emission, void *source) +_color_class_callback_delete(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, + const char *emission, void *source __UNUSED__) { if (!strcmp(data, "process")) fprintf(stdout, "Color class: %s deleted on process level\n", emission); @@ -144,32 +143,34 @@ _color_class_callback_delete(void *data, Evas *evas, Evas_Object *obj, fprintf(stdout, "Color class: %s deleted on object level\n", emission); } -static void -_create_windows(void) +static int +_create_windows(const char *edje_file_path) { /* 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); + ee1 = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!ee1) + return 0; ee2 = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!ee2) + return 0; - ecore_evas_callback_destroy_set(ee, _on_destroy); - ecore_evas_callback_resize_set(ee, _canvas_resize_cb); - ecore_evas_title_set(ee, "Edje Color Class Example"); - ecore_evas_show(ee); + ecore_evas_callback_destroy_set(ee1, _on_destroy); + ecore_evas_callback_resize_set(ee1, _canvas_resize_cb); + ecore_evas_title_set(ee1, "Edje Color Class Example"); ecore_evas_callback_destroy_set(ee2, _on_destroy); ecore_evas_callback_resize_set(ee2, _canvas_resize_cb); ecore_evas_title_set(ee2, "Edje Object Color Class Example"); - ecore_evas_show(ee2); - evas = ecore_evas_get(ee); + evas1 = ecore_evas_get(ee1); evas2 = ecore_evas_get(ee2); - bg = evas_object_rectangle_add(evas); - evas_object_color_set(bg, 255, 255, 255, 255); /* white bg */ - evas_object_move(bg, 0, 0); /* at canvas' origin */ - evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ - evas_object_show(bg); + bg1 = evas_object_rectangle_add(evas1); + evas_object_color_set(bg1, 255, 255, 255, 255); /* white bg */ + evas_object_move(bg1, 0, 0); /* at canvas' origin */ + evas_object_resize(bg1, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(bg1); bg2 = evas_object_rectangle_add(evas2); evas_object_color_set(bg2, 255, 255, 255, 255); /* white bg */ @@ -177,18 +178,18 @@ _create_windows(void) evas_object_resize(bg2, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg2); - edje_obj = edje_object_add(evas); - evas_object_event_callback_add(edje_obj, EVAS_CALLBACK_MOUSE_DOWN, + edje_obj1 = edje_object_add(evas1); + evas_object_event_callback_add(edje_obj1, EVAS_CALLBACK_MOUSE_DOWN, _on_mouse_down, NULL); - edje_object_file_set(edje_obj, edje_file_path, "example_color_class"); - evas_object_move(edje_obj, 0, 0); /* at canvas' origin */ - evas_object_resize(edje_obj, WIDTH, HEIGHT); - edje_object_part_text_set(edje_obj, "part_four", "EDJE EXAMPLE"); - edje_object_signal_callback_add(edje_obj, "color_class,del", "*", + edje_object_file_set(edje_obj1, edje_file_path, "example_color_class"); + evas_object_move(edje_obj1, 0, 0); /* at canvas' origin */ + evas_object_resize(edje_obj1, WIDTH, HEIGHT); + edje_object_part_text_set(edje_obj1, "part_four", "EDJE EXAMPLE"); + edje_object_signal_callback_add(edje_obj1, "color_class,del", "*", (Edje_Signal_Cb) _color_class_callback_delete, "process"); - evas_object_show(edje_obj); + evas_object_show(edje_obj1); edje_obj2 = edje_object_add(evas2); evas_object_event_callback_add(edje_obj2, EVAS_CALLBACK_MOUSE_DOWN, @@ -202,13 +203,18 @@ _create_windows(void) (Edje_Signal_Cb) _color_class_callback_delete, "object"); evas_object_show(edje_obj2); + + return 1; } int main(int argc, char *argv[]) { - color c1, c2, c3; - int i; + char edje_file_path[PATH_MAX]; + const char *edje_file = "color-class.edj"; + Eina_Prefix *pfx; + color c1, c2, c3; + int i; if (argc != 5) { @@ -218,7 +224,7 @@ main(int argc, char *argv[]) for (i = 0; i < 8; i++) fprintf(stderr, "%s\n", color_names[i]); - return 1; + return EXIT_FAILURE; } selected_class = argv[1]; @@ -227,13 +233,30 @@ main(int argc, char *argv[]) _get_color_from_name(argv[4], &c3))) { fprintf(stderr, "Color not available!\n"); - return 2; + return EXIT_FAILURE; } - ecore_evas_init(); - edje_init(); + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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; - _create_windows(); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + if (!_create_windows(edje_file_path)) + goto free_prefix; edje_color_class_set(argv[1], /* class name */ c1[0], c1[1], c1[2], c1[3], /* Object color */ @@ -248,10 +271,25 @@ main(int argc, char *argv[]) 39, 90, 187, 255); /* Text shadow */ _color_classes_print(); + + ecore_evas_show(ee1); + ecore_evas_show(ee2); + ecore_main_loop_begin(); - ecore_evas_free(ee); - ecore_evas_free(ee2); + + eina_prefix_free(pfx); + ecore_evas_free(ee1); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-drag.c b/libraries/edje/src/examples/edje-drag.c index 78e2e72..bb61b68 100644 --- a/libraries/edje/src/examples/edje-drag.c +++ b/libraries/edje/src/examples/edje-drag.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -28,15 +27,17 @@ #define NRECTS 20 -static const char *PARTNAME = "example/knob"; - -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/drag.edj"; +static const char commands[] = \ + "commands are:\n" + "\tDdown - set drag step to 1\n" + "\tUp - set drag step to -1\n" + "\tm - set drag value to 0.5\n" + "\tPrior - set drag page to -1\n" + "\tNext - set drag page to -1\n" + "\tEsc - exit\n" + "\th - print help\n"; -struct _App { - Ecore_Evas *ee; - Evas_Object *edje; - Evas_Object *bg; -}; +static const char *PARTNAME = "example/knob"; static void _on_destroy(Ecore_Evas *ee __UNUSED__) @@ -47,111 +48,163 @@ _on_destroy(Ecore_Evas *ee __UNUSED__) /* here just to keep our example's window size and background image's * size in synchrony */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { - int w, h; - struct _App *app = ecore_evas_data_get(ee, "app"); + Evas_Object *bg; + Evas_Object *edje_obj; + int w; + int h; + + bg = ecore_evas_data_get(ee, "background"); + edje_obj = ecore_evas_data_get(ee, "edje_obj"); ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); - evas_object_resize(app->bg, w, h); - evas_object_resize(app->edje, w, h); + evas_object_resize(bg, w, h); + evas_object_resize(edje_obj, w, h); } static void -_bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) +_on_bg_key_down(void *data, Evas *e __UNUSED__, Evas_Object *o __UNUSED__, void *event_info) { - struct _App *app = data; - Evas_Event_Key_Down *ev = event_info; - Evas_Object *rect; - Eina_Bool r; + Ecore_Evas *ee; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; + ee = (Ecore_Evas *)data; + ev = (Evas_Event_Key_Down *)event_info; + edje_obj = ecore_evas_data_get(ee, "edje_obj"); - if (!strcmp(ev->keyname, "Down")) + if (!strcmp(ev->keyname, "h")) { - edje_object_part_drag_step(app->edje, PARTNAME, 0, 1.0); + fprintf(stdout, commands); + return; + } + else if (!strcmp(ev->keyname, "Down")) + { + edje_object_part_drag_step(edje_obj, PARTNAME, 0, 1.0); } else if (!strcmp(ev->keyname, "Up")) { - edje_object_part_drag_step(app->edje, PARTNAME, 0, -1.0); + edje_object_part_drag_step(edje_obj, PARTNAME, 0, -1.0); } else if (!strcmp(ev->keyname, "m")) { - edje_object_part_drag_value_set(app->edje, PARTNAME, 0.0, 0.5); + edje_object_part_drag_value_set(edje_obj, PARTNAME, 0.0, 0.5); } else if (!strcmp(ev->keyname, "Prior")) { - edje_object_part_drag_page(app->edje, PARTNAME, 0.0, -1.0); + edje_object_part_drag_page(edje_obj, PARTNAME, 0.0, -1.0); } else if (!strcmp(ev->keyname, "Next")) { - edje_object_part_drag_page(app->edje, PARTNAME, 0.0, 1.0); + edje_object_part_drag_page(edje_obj, PARTNAME, 0.0, 1.0); } else if (!strcmp(ev->keyname, "Escape")) ecore_main_loop_quit(); else - printf("unhandled key: %s\n", ev->keyname); + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } static void -_knob_moved_cb(void *data, Evas_Object *o, const char *emission, const char *source) +_on_knob_moved(void *data __UNUSED__, Evas_Object *o, const char *emission __UNUSED__, const char *source __UNUSED__) { double val; + edje_object_part_drag_value_get(o, PARTNAME, NULL, &val); printf("value changed to: %0.3f\n", val); } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas *evas; - struct _App app; - int i; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "drag.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 */ - app.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); - - ecore_evas_callback_destroy_set(app.ee, _on_destroy); - ecore_evas_callback_resize_set(app.ee, _canvas_resize_cb); - ecore_evas_title_set(app.ee, "Edje Box Example"); - ecore_evas_show(app.ee); + ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!ee) + goto free_prefix; - ecore_evas_data_set(app.ee, "app", &app); + ecore_evas_callback_destroy_set(ee, _on_destroy); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); + ecore_evas_title_set(ee, "Edje Box Example"); - evas = ecore_evas_get(app.ee); + evas = ecore_evas_get(ee); - app.bg = evas_object_rectangle_add(evas); - evas_object_color_set(app.bg, 255, 255, 255, 255); - evas_object_resize(app.bg, WIDTH, HEIGHT); - evas_object_focus_set(app.bg, EINA_TRUE); - evas_object_show(app.bg); + bg = evas_object_rectangle_add(evas); + evas_object_color_set(bg, 255, 255, 255, 255); + evas_object_resize(bg, WIDTH, HEIGHT); + evas_object_focus_set(bg, EINA_TRUE); + evas_object_show(bg); + ecore_evas_data_set(ee, "background", bg); - evas_object_event_callback_add(app.bg, EVAS_CALLBACK_KEY_DOWN, _bg_key_down, &app); + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_bg_key_down, ee); - app.edje = edje_object_add(evas); + edje_obj = edje_object_add(evas); - edje_object_file_set(app.edje, edje_file_path, "example/group"); - evas_object_move(app.edje, 0, 0); - evas_object_resize(app.edje, WIDTH, HEIGHT); - evas_object_show(app.edje); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + edje_object_file_set(edje_obj, edje_file_path, "example/group"); + evas_object_move(edje_obj, 0, 0); + evas_object_resize(edje_obj, WIDTH, HEIGHT); + evas_object_show(edje_obj); + ecore_evas_data_set(ee, "edje_obj", edje_obj); - edje_object_part_drag_size_set(app.edje, PARTNAME, 1.0, 0.4); + edje_object_part_drag_size_set(edje_obj, PARTNAME, 1.0, 0.4); - if (!edje_object_part_drag_step_set(app.edje, PARTNAME, 0.0, 0.1)) + if (!edje_object_part_drag_step_set(edje_obj, PARTNAME, 0.0, 0.1)) printf("error when setting drag step size.\n"); - if (!edje_object_part_drag_page_set(app.edje, PARTNAME, 0.0, 0.3)) + if (!edje_object_part_drag_page_set(edje_obj, PARTNAME, 0.0, 0.3)) printf("error when setting drag page step size.\n"); - edje_object_signal_callback_add(app.edje, "drag", PARTNAME, _knob_moved_cb, &app); + edje_object_signal_callback_add(edje_obj, "drag", PARTNAME, _on_knob_moved, NULL); + + fprintf(stdout, commands); + + ecore_evas_show(ee); ecore_main_loop_begin(); - ecore_evas_free(app.ee); + eina_prefix_free(pfx); + ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-perspective.c b/libraries/edje/src/examples/edje-perspective.c index 5220b74..1037043 100644 --- a/libraries/edje/src/examples/edje-perspective.c +++ b/libraries/edje/src/examples/edje-perspective.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,11 +22,21 @@ #define WIDTH 480 #define HEIGHT 320 -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/perspective.edj"; +static const char commands[] = \ + "commands are:\n" + "\tDown - move part down\n" + "\tUp - move part up\n" + "\tLeft - move part left\n" + "\tRight - move part right\n" + "\tPrior - move part up-left\n" + "\tNext - move part down-right\n" + "\tInsert - increase focal\n" + "\tSuppr - decrease focal\n" + "\tEsc - exit\n" + "\th - print help\n"; struct _App { - Ecore_Evas *ee; - Evas_Object *edje; + Evas_Object *edje_obj; Evas_Object *bg; Edje_Perspective *ps; Eina_Bool animating; @@ -44,14 +53,14 @@ _on_destroy(Ecore_Evas *ee __UNUSED__) /* here just to keep our example's window size and background image's * size in synchrony */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { int w, h; struct _App *app = ecore_evas_data_get(ee, "app"); ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); evas_object_resize(app->bg, w, h); - evas_object_resize(app->edje, w, h); + evas_object_resize(app->edje_obj, w, h); } static void @@ -74,20 +83,24 @@ _part_move(struct _App *app, int dx, int dy) app->y = 0; snprintf(emission, sizeof(emission), "move,%d,%d", app->x, app->y); - edje_object_signal_emit(app->edje, emission, ""); + edje_object_signal_emit(app->edje_obj, emission, ""); app->animating = EINA_TRUE; } static void -_bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) +_on_bg_key_down(void *data, Evas *e __UNUSED__, Evas_Object *o __UNUSED__, void *event_info) { struct _App *app = data; Evas_Event_Key_Down *ev = event_info; - + if (!strcmp(ev->keyname, "h")) + { + fprintf(stdout, commands); + return; + } // just moving the part and text - if (!strcmp(ev->keyname, "Down")) + else if (!strcmp(ev->keyname, "Down")) { _part_move(app, 0, 1); } @@ -116,7 +129,7 @@ _bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) { app->focal += 5; edje_perspective_set(app->ps, 240, 160, 0, app->focal); - edje_object_calc_force(app->edje); + edje_object_calc_force(app->edje_obj); } else if (!strcmp(ev->keyname, "KP_Subtract")) { @@ -125,13 +138,16 @@ _bg_key_down(void *data, Evas *e, Evas_Object *o __UNUSED__, void *event_info) app->focal = 5; edje_perspective_set(app->ps, 240, 160, 0, app->focal); - edje_object_calc_force(app->edje); + edje_object_calc_force(app->edje_obj); } // exiting else if (!strcmp(ev->keyname, "Escape")) ecore_main_loop_quit(); else - printf("unhandled key: %s\n", ev->keyname); + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } static void @@ -143,16 +159,33 @@ _animation_end_cb(void *data, Evas_Object *o __UNUSED__, const char *emission __ } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas *evas; - struct _App app; - int i; - - ecore_evas_init(); - edje_init(); - - edje_frametime_set(((double)1) / 60); + char edje_file_path[PATH_MAX]; + const char *edje_file = "perspective.edj"; + struct _App app; + Ecore_Evas *ee; + Evas *evas; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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; + + edje_frametime_set(1.0 / 60.0); /* this will give you a window with an Evas canvas under the first * engine available */ @@ -160,16 +193,18 @@ main(void) app.x = 0; app.y = 0; app.focal = 50; - app.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); - ecore_evas_callback_destroy_set(app.ee, _on_destroy); - ecore_evas_callback_resize_set(app.ee, _canvas_resize_cb); - ecore_evas_title_set(app.ee, "Edje Box Example"); - ecore_evas_show(app.ee); + ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!ee) + goto free_prefix; + + ecore_evas_callback_destroy_set(ee, _on_destroy); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); + ecore_evas_title_set(ee, "Edje Box Example"); - ecore_evas_data_set(app.ee, "app", &app); + ecore_evas_data_set(ee, "app", &app); - evas = ecore_evas_get(app.ee); + evas = ecore_evas_get(ee); app.bg = evas_object_rectangle_add(evas); evas_object_color_set(app.bg, 255, 255, 255, 255); @@ -177,25 +212,42 @@ main(void) evas_object_focus_set(app.bg, EINA_TRUE); evas_object_show(app.bg); - evas_object_event_callback_add(app.bg, EVAS_CALLBACK_KEY_DOWN, _bg_key_down, &app); + evas_object_event_callback_add(app.bg, EVAS_CALLBACK_KEY_DOWN, _on_bg_key_down, &app); - app.edje = edje_object_add(evas); + app.edje_obj = edje_object_add(evas); - edje_object_file_set(app.edje, edje_file_path, "example/group"); - evas_object_move(app.edje, 0, 0); - evas_object_resize(app.edje, WIDTH, HEIGHT); - evas_object_show(app.edje); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); + edje_object_file_set(app.edje_obj, edje_file_path, "example/group"); + evas_object_move(app.edje_obj, 0, 0); + evas_object_resize(app.edje_obj, WIDTH, HEIGHT); + evas_object_show(app.edje_obj); - edje_object_signal_callback_add(app.edje, "animation,end", "", _animation_end_cb, &app); + edje_object_signal_callback_add(app.edje_obj, "animation,end", "", _animation_end_cb, &app); app.ps = edje_perspective_new(evas); edje_perspective_set(app.ps, 240, 160, 0, app.focal); edje_perspective_global_set(app.ps, EINA_TRUE); + fprintf(stdout, commands); + + ecore_evas_show(ee); + ecore_main_loop_begin(); - ecore_evas_free(app.ee); + eina_prefix_free(pfx); + ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-signals-messages.c b/libraries/edje/src/examples/edje-signals-messages.c index 2345738..4949415 100644 --- a/libraries/edje/src/examples/edje-signals-messages.c +++ b/libraries/edje/src/examples/edje-signals-messages.c @@ -27,34 +27,32 @@ #define MSG_COLOR 1 #define MSG_TEXT 2 -static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; -static const char *edje_file_path = \ - PACKAGE_EXAMPLES_DIR "/signals-messages.edj"; - -static Ecore_Evas *ee; -static Evas_Object *edje_obj; -static Eina_Bool right_rect_show = EINA_TRUE; - -static const char *commands = \ +static const char commands[] = \ "commands are:\n" "\tt - toggle right rectangle's visibility\n" + "\tEsc - exit\n" "\th - print help\n"; +static Eina_Bool right_rect_show = EINA_TRUE; + 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; + Evas_Event_Key_Down *ev; + Evas_Object *edje_obj; + + ev = (Evas_Event_Key_Down *)einfo; + edje_obj = (Evas_Object *)data; - if (strcmp(ev->keyname, "h") == 0) /* print help */ + if (!strcmp(ev->keyname, "h")) /* print help */ { fprintf(stdout, commands); return; } - - if (strcmp(ev->keyname, "t") == 0) /* toggle right rectangle's visibility */ + else if (!strcmp(ev->keyname, "t")) /* toggle right rectangle's visibility */ { char buf[1024]; @@ -68,6 +66,13 @@ _on_keydown(void *data __UNUSED__, return; } + else if (!strcmp(ev->keyname, "Escape")) + ecore_main_loop_quit(); + else + { + printf("unhandled key: %s\n", ev->keyname); + fprintf(stdout, commands); + } } static void @@ -85,7 +90,7 @@ _sig_print(const char *emission, } static void -_mouse_wheel_cb(void *data __UNUSED__, +_on_mouse_wheel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *emission, const char *source) @@ -95,8 +100,8 @@ _mouse_wheel_cb(void *data __UNUSED__, /* mouse over signals */ static void -_mouse_over_cb(void *data __UNUSED__, - Evas_Object *obj __UNUSED__, +_on_mouse_over(void *data __UNUSED__, + Evas_Object *edje_obj, const char *emission, const char *source) { @@ -133,28 +138,43 @@ _message_handle(void *data __UNUSED__, } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas_Object *border, *bg; - Evas *evas; - - srand(time(NULL)); + char border_img_path[PATH_MAX]; + char edje_file_path[PATH_MAX]; + const char *edje_file = "signals-messages.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Evas_Object *border; + 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, "Edje Basics Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -163,14 +183,13 @@ main(void) evas_object_move(bg, 0, 0); /* at canvas' origin */ evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg); - 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); + ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE); edje_obj = edje_object_add(evas); + 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, "example_group")) { int err = edje_object_load_error_get(edje_obj); @@ -179,14 +198,14 @@ main(void) "signals-messages.edj: %s\n", errmsg); evas_object_del(edje_obj); - goto error_edj; + goto free_prefix; } edje_object_signal_callback_add(edje_obj, "mouse,wheel,*", "part_left", - _mouse_wheel_cb, NULL); + _on_mouse_wheel, NULL); edje_object_signal_callback_add(edje_obj, "mouse,over", "part_right", - _mouse_over_cb, NULL); + _on_mouse_over, NULL); edje_object_message_handler_set(edje_obj, _message_handle, NULL); @@ -194,6 +213,11 @@ main(void) evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); evas_object_show(edje_obj); + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, edje_obj); + + 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 */ border = evas_object_image_filled_add(evas); @@ -207,24 +231,24 @@ main(void) 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 signals-messages.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; +} diff --git a/libraries/edje/src/examples/edje-swallow.c b/libraries/edje/src/examples/edje-swallow.c index a1d30e2..ad79ca2 100644 --- a/libraries/edje/src/examples/edje-swallow.c +++ b/libraries/edje/src/examples/edje-swallow.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,11 +22,6 @@ #define WIDTH (300) #define HEIGHT (300) -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/swallow.edj"; - -static Ecore_Evas *ee; -static Evas_Object *bg; - static void _on_delete(Ecore_Evas *ee __UNUSED__) { @@ -37,31 +31,56 @@ _on_delete(Ecore_Evas *ee __UNUSED__) /* here just to keep our example's window size and background image's * size in synchrony */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { - int w, h; + Evas_Object *bg; + int w; + int h; + bg = ecore_evas_data_get(ee, "background"); ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); evas_object_resize(bg, w, h); } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas_Object *edje_obj, *rect, *obj; - Evas *evas; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "swallow.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *rect; + Evas_Object *obj; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete); - ecore_evas_callback_resize_set(ee, _canvas_resize_cb); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); ecore_evas_title_set(ee, "Edje Swallow Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -70,9 +89,12 @@ main(void) evas_object_move(bg, 0, 0); /* at canvas' origin */ evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg); + ecore_evas_data_set(ee, "background", bg); edje_obj = edje_object_add(evas); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); edje_object_file_set(edje_obj, edje_file_path, "example_group"); evas_object_move(edje_obj, 20, 20); evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); @@ -86,10 +108,23 @@ main(void) if(obj == rect) printf("Swallowing worked!\n"); + ecore_evas_show(ee); + ecore_main_loop_begin(); + eina_prefix_free(pfx); ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-table.c b/libraries/edje/src/examples/edje-table.c index 3866d22..7780221 100644 --- a/libraries/edje/src/examples/edje-table.c +++ b/libraries/edje/src/examples/edje-table.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,12 +22,6 @@ #define WIDTH (400) #define HEIGHT (400) -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/table.edj"; - -static Ecore_Evas *ee; -static Evas *evas; -static Evas_Object *bg, *edje_obj, *rects[4]; - static void _on_delete(Ecore_Evas *ee __UNUSED__) { @@ -38,7 +31,7 @@ _on_delete(Ecore_Evas *ee __UNUSED__) /* Try to get the number of columns and rows of the table * and print them. */ static void -_columns_rows_print(void) +_columns_rows_print(Evas_Object *edje_obj) { int cols, rows; @@ -52,10 +45,18 @@ _columns_rows_print(void) /* here just to keep our example's window size and table items * size in synchrony. */ static void -_canvas_resize_cb(Ecore_Evas *ee) +_on_canvas_resize(Ecore_Evas *ee) { - int i, w, h; - + Evas_Object *bg; + Evas_Object *edje_obj; + Evas_Object **rects; + int i; + int w; + int h; + + bg = ecore_evas_data_get(ee, "background"); + edje_obj = ecore_evas_data_get(ee, "edje_obj"); + rects = ecore_evas_data_get(ee, "rects"); ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); evas_object_resize(bg, w, h); @@ -68,9 +69,13 @@ _canvas_resize_cb(Ecore_Evas *ee) /* Mouse button 1 = remove the clicked item * any other button = remove all items. */ static void -_on_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) +_on_mouse_down(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info) { - Evas_Event_Mouse_Down *ev = event_info; + Evas_Event_Mouse_Down *ev; + Evas_Object *edje_obj; + + ev = (Evas_Event_Mouse_Down *)event_info; + edje_obj = (Evas_Object *)data; if (ev->button != 1) edje_object_part_table_clear(edje_obj, "table_part", EINA_TRUE); @@ -78,11 +83,11 @@ _on_mouse_down(void *data, Evas *evas, Evas_Object *obj, void *event_info) fprintf(stderr, "Cannot remove the selected rectangle\n"); evas_object_del(obj); - _columns_rows_print(); + _columns_rows_print(edje_obj); } static void -_rects_create(void) +_rects_create(Evas *evas, Evas_Object **rects, Evas_Object *edje_obj) { int i; @@ -93,26 +98,48 @@ _rects_create(void) evas_object_size_hint_weight_set(rects[i], 1.0, 1.0); evas_object_show(rects[i]); evas_object_event_callback_add(rects[i], EVAS_CALLBACK_MOUSE_DOWN, - _on_mouse_down, NULL); + _on_mouse_down, edje_obj); } } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - int i; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "table.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Evas_Object *rects[4]; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete); - ecore_evas_callback_resize_set(ee, _canvas_resize_cb); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); ecore_evas_title_set(ee, "Edje Table Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -121,15 +148,20 @@ main(void) evas_object_move(bg, 0, 0); /* at canvas' origin */ evas_object_resize(bg, WIDTH, HEIGHT); /* covers full canvas */ evas_object_show(bg); + ecore_evas_data_set(ee, "background", bg); edje_obj = edje_object_add(evas); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); edje_object_file_set(edje_obj, edje_file_path, "example_table"); evas_object_move(edje_obj, 0, 0); /* at canvas' origin */ evas_object_resize(edje_obj, WIDTH, HEIGHT); evas_object_show(edje_obj); + ecore_evas_data_set(ee, "edje_obj", edje_obj); - _rects_create(); + _rects_create(evas, rects, edje_obj); + ecore_evas_data_set(ee, "rects", rects); /* Colouring the rectangles */ evas_object_color_set(rects[0], 255, 0, 0, 255); @@ -154,12 +186,25 @@ main(void) 1, 1, 1, 1)) fprintf(stderr, "Cannot add the rectangle 4 to table\n"); - _columns_rows_print(); + _columns_rows_print(edje_obj); + + ecore_evas_show(ee); ecore_main_loop_begin(); + eina_prefix_free(pfx); ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } diff --git a/libraries/edje/src/examples/edje-text.c b/libraries/edje/src/examples/edje-text.c index 0916509..5f801a2 100644 --- a/libraries/edje/src/examples/edje-text.c +++ b/libraries/edje/src/examples/edje-text.c @@ -10,10 +10,9 @@ */ #ifdef HAVE_CONFIG_H -#include "config.h" +# include "config.h" #else -#define PACKAGE_EXAMPLES_DIR "." -#define __UNUSED__ +# define __UNUSED__ #endif #include @@ -23,11 +22,6 @@ #define WIDTH (300) #define HEIGHT (300) -static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/text.edj"; - -static Ecore_Evas *ee; -static Evas_Object *bg; - static void _on_delete(Ecore_Evas *ee __UNUSED__) { @@ -35,27 +29,47 @@ _on_delete(Ecore_Evas *ee __UNUSED__) } static void -_cb(void *data, Evas_Object *obj, const char *part) +_on_text_change(void *data __UNUSED__, Evas_Object *obj, const char *part) { printf("text: %s\n", edje_object_part_text_unescaped_get(obj, part)); } int -main(void) +main(int argc __UNUSED__, char *argv[]) { - Evas_Object *edje_obj, *rect, *obj; - Evas *evas; - - ecore_evas_init(); - edje_init(); + char edje_file_path[PATH_MAX]; + const char *edje_file = "text.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + Eina_Prefix *pfx; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + 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 free_prefix; ecore_evas_callback_delete_request_set(ee, _on_delete); ecore_evas_title_set(ee, "Edje text Example"); - ecore_evas_show(ee); evas = ecore_evas_get(ee); @@ -68,12 +82,14 @@ main(void) edje_obj = edje_object_add(evas); + snprintf(edje_file_path, sizeof(edje_file_path), + "%s/examples/%s", eina_prefix_data_get(pfx), edje_file); edje_object_file_set(edje_obj, edje_file_path, "example_group"); evas_object_move(edje_obj, 20, 20); evas_object_resize(edje_obj, WIDTH - 40, HEIGHT - 40); evas_object_show(edje_obj); - edje_object_text_change_cb_set(edje_obj, _cb, NULL); + edje_object_text_change_cb_set(edje_obj, _on_text_change, NULL); edje_object_part_text_set(edje_obj, "part_one", "one"); edje_object_part_text_set(edje_obj, "part_two", "two"); @@ -83,10 +99,23 @@ main(void) edje_object_part_text_select_none(edje_obj, "part_two"); printf("selection: %s\n", edje_object_part_text_selection_get(edje_obj, "part_two")); + ecore_evas_show(ee); + ecore_main_loop_begin(); + eina_prefix_free(pfx); ecore_evas_free(ee); ecore_evas_shutdown(); edje_shutdown(); - return 0; + + return EXIT_SUCCESS; + + free_prefix: + eina_prefix_free(pfx); + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; } 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