From a4e6d46d8a32ab97c495452205c2f28a823e23d8 Mon Sep 17 00:00:00 2001 From: Subhransu Mohanty Date: Tue, 21 Jun 2016 14:42:28 +0900 Subject: [PATCH] edje/example: Added example for testing vector part with svg images. Reviewers: cedric, jpeg Reviewed By: jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4062 --- src/examples/edje/Makefile.am | 25 ++++++- src/examples/edje/atom.svg | 14 ++++ src/examples/edje/bozo.svg | 15 +++++ src/examples/edje/bzrfeed.svg | 23 +++++++ src/examples/edje/cartman.svg | 11 ++++ src/examples/edje/dst.svg | 15 +++++ src/examples/edje/duke.svg | 25 +++++++ src/examples/edje/eee.svg | 4 ++ src/examples/edje/fsm.svg | 20 ++++++ src/examples/edje/google.svg | 4 ++ src/examples/edje/hg0.svg | 10 +++ src/examples/edje/ibm.svg | 44 +++++++++++++ src/examples/edje/osa.svg | 19 ++++++ src/examples/edje/scion.svg | 9 +++ src/examples/edje/svg-test.c | 111 ++++++++++++++++++++++++++++++++ src/examples/edje/svg.edc | 104 ++++++++++++++++++++++++++++++ src/examples/edje/ubuntu.svg | 26 ++++++++ src/examples/edje/wikimedia.svg | 5 ++ src/examples/edje/yinyang.svg | 6 ++ 19 files changed, 487 insertions(+), 3 deletions(-) create mode 100755 src/examples/edje/atom.svg create mode 100755 src/examples/edje/bozo.svg create mode 100755 src/examples/edje/bzrfeed.svg create mode 100755 src/examples/edje/cartman.svg create mode 100755 src/examples/edje/dst.svg create mode 100755 src/examples/edje/duke.svg create mode 100644 src/examples/edje/eee.svg create mode 100644 src/examples/edje/fsm.svg create mode 100644 src/examples/edje/google.svg create mode 100644 src/examples/edje/hg0.svg create mode 100644 src/examples/edje/ibm.svg create mode 100644 src/examples/edje/osa.svg create mode 100644 src/examples/edje/scion.svg create mode 100644 src/examples/edje/svg-test.c create mode 100644 src/examples/edje/svg.edc create mode 100755 src/examples/edje/ubuntu.svg create mode 100644 src/examples/edje/wikimedia.svg create mode 100755 src/examples/edje/yinyang.svg diff --git a/src/examples/edje/Makefile.am b/src/examples/edje/Makefile.am index 5d4f15dcde..f418cab164 100644 --- a/src/examples/edje/Makefile.am +++ b/src/examples/edje/Makefile.am @@ -50,7 +50,8 @@ box_example.edc \ embryo_tween_anim.edc \ embryo_set_state_anim.edc \ bezier-transition-example.edc \ -textblock-hyphen.edc +textblock-hyphen.edc \ +svg.edc DIST_EDCS = $(EDCS) @@ -85,6 +86,22 @@ red.png \ test.png \ Vera.ttf \ duck.wav \ +dst.svg \ +atom.svg \ +bojo.svg \ +bzrfeed.svg \ +yinyang.svg \ +ubuntu.svg \ +duke.svg \ +cartman.svg \ +ibm.svg \ +hg0.svg \ +fsm.svg \ +osa.svg \ +wikimedia.svg \ +scion.svg \ +eee.svg \ +google.svg \ en_IN/domain_name.po \ hi_IN/domain_name.po \ ta_IN/domain_name.mo \ @@ -111,7 +128,8 @@ signals2.c \ edje-swallow2.c \ edje-multisense.c \ edje-edit-part-box.c \ -edje-textblock-hyphenation.c +edje-textblock-hyphenation.c \ +svg-test.c EXTRA_DIST = $(DIST_EDCS) $(DATA_FILES) @@ -181,7 +199,8 @@ edje-basic2 \ signals2 \ edje-swallow2 \ edje-edit-part-box \ -edje-textblock-hyphenation +edje-textblock-hyphenation \ +svg-test if ENABLE_MULTISENSE EXTRA_PROGRAMS += edje-multisense diff --git a/src/examples/edje/atom.svg b/src/examples/edje/atom.svg new file mode 100755 index 0000000000..4dff5e330a --- /dev/null +++ b/src/examples/edje/atom.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/examples/edje/bozo.svg b/src/examples/edje/bozo.svg new file mode 100755 index 0000000000..fe62615d8a --- /dev/null +++ b/src/examples/edje/bozo.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/src/examples/edje/bzrfeed.svg b/src/examples/edje/bzrfeed.svg new file mode 100755 index 0000000000..e5d210f2e7 --- /dev/null +++ b/src/examples/edje/bzrfeed.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/examples/edje/cartman.svg b/src/examples/edje/cartman.svg new file mode 100755 index 0000000000..d4b2740c8f --- /dev/null +++ b/src/examples/edje/cartman.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/examples/edje/dst.svg b/src/examples/edje/dst.svg new file mode 100755 index 0000000000..16d1baa6bc --- /dev/null +++ b/src/examples/edje/dst.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/examples/edje/duke.svg b/src/examples/edje/duke.svg new file mode 100755 index 0000000000..64cdcf8ee7 --- /dev/null +++ b/src/examples/edje/duke.svg @@ -0,0 +1,25 @@ + + + + + diff --git a/src/examples/edje/eee.svg b/src/examples/edje/eee.svg new file mode 100644 index 0000000000..c23875ee18 --- /dev/null +++ b/src/examples/edje/eee.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/examples/edje/fsm.svg b/src/examples/edje/fsm.svg new file mode 100644 index 0000000000..f059954515 --- /dev/null +++ b/src/examples/edje/fsm.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/examples/edje/google.svg b/src/examples/edje/google.svg new file mode 100644 index 0000000000..3e51a42e9e --- /dev/null +++ b/src/examples/edje/google.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/examples/edje/hg0.svg b/src/examples/edje/hg0.svg new file mode 100644 index 0000000000..2c51e0cae7 --- /dev/null +++ b/src/examples/edje/hg0.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/examples/edje/ibm.svg b/src/examples/edje/ibm.svg new file mode 100644 index 0000000000..c87ad11684 --- /dev/null +++ b/src/examples/edje/ibm.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/examples/edje/osa.svg b/src/examples/edje/osa.svg new file mode 100644 index 0000000000..3c74d15eaa --- /dev/null +++ b/src/examples/edje/osa.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/examples/edje/scion.svg b/src/examples/edje/scion.svg new file mode 100644 index 0000000000..24fa109f9b --- /dev/null +++ b/src/examples/edje/scion.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/examples/edje/svg-test.c b/src/examples/edje/svg-test.c new file mode 100644 index 0000000000..6716f6e87b --- /dev/null +++ b/src/examples/edje/svg-test.c @@ -0,0 +1,111 @@ +/** + * Simple Edje example illustrating svg part usuage in edc. + * + * You'll need at least one Evas engine built for it (excluding the + * buffer one). See stdout/stderr for output. + * + * @verbatim + * edje_cc svg.edc && gcc -o svg-test svg-test.c `pkg-config --libs --cflags evas ecore ecore-evas edje` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#else +# define EINA_UNUSED +#endif + +#ifndef PACKAGE_DATA_DIR +#define PACKAGE_DATA_DIR "." +#endif + +#include +#include +#include + +#define WIDTH 800 +#define HEIGHT 800 + +static void +_on_destroy(Ecore_Evas *ee EINA_UNUSED) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_on_canvas_resize(Ecore_Evas *ee) +{ + 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); +} + +int +main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED) +{ + const char *edje_file = "./svg.edj"; + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *edje_obj; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + goto shutdown_ecore_evas; + + /* 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 shutdown_edje; + + ecore_evas_callback_destroy_set(ee, _on_destroy); + ecore_evas_callback_resize_set(ee, _on_canvas_resize); + ecore_evas_title_set(ee, "SVG Example"); + + evas = ecore_evas_get(ee); + + bg = evas_object_rectangle_add(evas); + evas_object_color_set(bg, 0, 0, 0, 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); + + + edje_obj = edje_object_add(evas); + + edje_object_file_set(edje_obj, edje_file, "svg-test"); + 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); + + + ecore_evas_show(ee); + + ecore_main_loop_begin(); + + ecore_evas_free(ee); + ecore_evas_shutdown(); + edje_shutdown(); + + return EXIT_SUCCESS; + + shutdown_edje: + edje_shutdown(); + shutdown_ecore_evas: + ecore_evas_shutdown(); + + return EXIT_FAILURE; +} diff --git a/src/examples/edje/svg.edc b/src/examples/edje/svg.edc new file mode 100644 index 0000000000..d458f451d0 --- /dev/null +++ b/src/examples/edje/svg.edc @@ -0,0 +1,104 @@ +#define SVG_PART(bg, vg, rel1x, rel1y, rel2x, rel2y,svg_id)\ + rect { bg; \ + description { state: "default" 0.0; \ + color: 255 255 255 255; \ + rel1.relative: rel1x rel1y; \ + rel2.relative: rel2x rel2y; \ + rel1.offset: 1 1; \ + rel2.offset: -1 -1; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + rel1.relative: 0.0 0.0; \ + rel2.relative: 1.0 1.0; \ + } \ + }\ + vector { vg;\ + description { state: "default" 0.0; \ + color: 255 255 255 255; \ + rel1.to: bg; \ + rel2.to: bg; \ + image.normal: svg_id; \ + } \ + description { state: "clicked" 0.0; \ + inherit: "default" 0.0; \ + } \ + } + + #define SVG_PROGRAM(bg, vg) \ + program { bg; \ + signal: "mouse,down,1"; \ + source: vg; \ + action: STATE_SET "clicked"; \ + transition: LINEAR 0.5; \ + target: bg; \ + }\ + program { vg; \ + signal: "mouse,up,1"; \ + source: vg; \ + action: STATE_SET "default"; \ + transition: LINEAR 0.5; \ + target: bg; \ + } + +collections { + base_scale: 1.0; + /* TODO: Please replace embedded image files to your application image files. */ + images { + vector: "dst.svg"; + vector: "atom.svg"; + vector: "bojo.svg"; + vector: "bzrfeed.svg"; + vector: "yinyang.svg"; + vector: "ubuntu.svg"; + vector: "duke.svg"; + vector: "cartman.svg"; + vector: "ibm.svg"; + vector: "hg0.svg"; + vector: "fsm.svg"; + vector: "osa.svg"; + vector: "wikimedia.svg"; + vector: "scion.svg"; + vector: "eee.svg"; + vector: "google.svg"; + + } + group { + name: "svg-test"; + parts { + SVG_PART("bg1", "vg1", 0.0, 0.0, .25, .25,"dst.svg") + SVG_PART("bg2", "vg2", 0.25, 0.0, .5, .25,"atom.svg") + SVG_PART("bg3", "vg3", 0.5, 0.0, .75, .25,"bojo.svg") + SVG_PART("bg4", "vg4", 0.75, 0.0, 1.0, .25,"bzrfreed.svg") + SVG_PART("bg5", "vg5", 0.0, 0.25, .25, .5,"yinyang.svg") + SVG_PART("bg6", "vg6", 0.25, 0.25, .5, .5,"ubuntu.svg") + SVG_PART("bg7", "vg7", 0.5, 0.25, .75, .5,"duke.svg") + SVG_PART("bg8", "vg8", 0.75, 0.25, 1.0, .5,"cartman.svg") + SVG_PART("bg9", "vg9", 0.0, 0.5, .25, .75,"ibm.svg") + SVG_PART("bg10", "vg10", 0.25, 0.5, .5, .75,"hg0.svg") + SVG_PART("bg11", "vg11", 0.5, 0.5, .75, .75,"fsm.svg") + SVG_PART("bg12", "vg12", 0.75, 0.5, 1.0, .75,"osa.svg") + SVG_PART("bg13", "vg13", 0.0, 0.75, .25, 1.0,"wikimedia.svg") + SVG_PART("bg14", "vg14", 0.25, 0.75, .5, 1.0,"scion.svg") + SVG_PART("bg15", "vg15", 0.5, 0.75, .75, 1.0,"eee.svg") + SVG_PART("bg16", "vg16", 0.75, 0.75, 1.0, 1.0,"google.svg") + } + programs { + SVG_PROGRAM("bg1", "vg1") + SVG_PROGRAM("bg2", "vg2") + SVG_PROGRAM("bg3", "vg3") + SVG_PROGRAM("bg4", "vg4") + SVG_PROGRAM("bg5", "vg5") + SVG_PROGRAM("bg6", "vg6") + SVG_PROGRAM("bg7", "vg7") + SVG_PROGRAM("bg8", "vg8") + SVG_PROGRAM("bg9", "vg9") + SVG_PROGRAM("bg10", "vg10") + SVG_PROGRAM("bg11", "vg11") + SVG_PROGRAM("bg12", "vg12") + SVG_PROGRAM("bg13", "vg13") + SVG_PROGRAM("bg14", "vg14") + SVG_PROGRAM("bg15", "vg15") + SVG_PROGRAM("bg16", "vg16") + } + } \ No newline at end of file diff --git a/src/examples/edje/ubuntu.svg b/src/examples/edje/ubuntu.svg new file mode 100755 index 0000000000..4d7b3ee586 --- /dev/null +++ b/src/examples/edje/ubuntu.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/examples/edje/wikimedia.svg b/src/examples/edje/wikimedia.svg new file mode 100644 index 0000000000..ad2c2115ca --- /dev/null +++ b/src/examples/edje/wikimedia.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/examples/edje/yinyang.svg b/src/examples/edje/yinyang.svg new file mode 100755 index 0000000000..3c64a6c7b3 --- /dev/null +++ b/src/examples/edje/yinyang.svg @@ -0,0 +1,6 @@ + + + + + +