From 80910393d6c88f55a8d02813a05481b298a6ef71 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Wed, 14 Nov 2012 20:12:53 +0000 Subject: [PATCH] merge: add evas tests and examples SVN revision: 79300 --- Makefile.am | 1 + configure.ac | 2 + src/Makefile.am | 4 +- src/examples/Makefile.am | 4 +- src/examples/eet/Makefile.am | 7 +- src/examples/eina/Makefile.am | 6 +- src/examples/eo/Makefile.am | 18 +- src/examples/evas/Makefile.am | Bin 0 -> 3911 bytes src/examples/evas/aspect.edc | 17 + src/examples/evas/cube1.png | Bin 0 -> 183167 bytes src/examples/evas/enlightenment.png | Bin 0 -> 17541 bytes src/examples/evas/evas-aspect-hints.c | 249 ++ src/examples/evas/evas-box.c | 382 +++ src/examples/evas/evas-buffer-simple.c | 228 ++ src/examples/evas/evas-events.c | 413 +++ src/examples/evas/evas-hints.c | 378 +++ src/examples/evas/evas-images.c | 353 +++ src/examples/evas/evas-images2.c | 311 +++ src/examples/evas/evas-images3.c | 196 ++ src/examples/evas/evas-init-shutdown.c | 56 + src/examples/evas/evas-map-utils.c | 321 +++ src/examples/evas/evas-object-manipulation.c | 235 ++ src/examples/evas/evas-smart-interface.c | 790 ++++++ src/examples/evas/evas-smart-object.c | 756 ++++++ src/examples/evas/evas-stacking.c | 329 +++ src/examples/evas/evas-table.c | 120 + src/examples/evas/evas-text.c | 411 +++ src/examples/evas/im1.png | Bin 0 -> 467518 bytes .../examples => src/examples/evas}/red.png | Bin src/tests/Makefile.am | 2 +- src/tests/evas/Makefile.am | 27 + .../tests/evas/evas_suite.c | 25 +- src/tests/evas/evas_suite.h | 12 + src/tests/evas/evas_test_callbacks.c | 135 + src/tests/evas/evas_test_init.c | 19 + src/tests/evas/evas_test_text.c | 493 ++++ src/tests/evas/evas_test_textblock.c | 2219 +++++++++++++++++ src/tests/evas/evas_tests_helpers.h | 40 + 38 files changed, 8530 insertions(+), 29 deletions(-) create mode 100644 src/examples/evas/Makefile.am create mode 100644 src/examples/evas/aspect.edc create mode 100644 src/examples/evas/cube1.png create mode 100644 src/examples/evas/enlightenment.png create mode 100644 src/examples/evas/evas-aspect-hints.c create mode 100644 src/examples/evas/evas-box.c create mode 100644 src/examples/evas/evas-buffer-simple.c create mode 100644 src/examples/evas/evas-events.c create mode 100644 src/examples/evas/evas-hints.c create mode 100644 src/examples/evas/evas-images.c create mode 100644 src/examples/evas/evas-images2.c create mode 100644 src/examples/evas/evas-images3.c create mode 100644 src/examples/evas/evas-init-shutdown.c create mode 100644 src/examples/evas/evas-map-utils.c create mode 100644 src/examples/evas/evas-object-manipulation.c create mode 100644 src/examples/evas/evas-smart-interface.c create mode 100644 src/examples/evas/evas-smart-object.c create mode 100644 src/examples/evas/evas-stacking.c create mode 100644 src/examples/evas/evas-table.c create mode 100644 src/examples/evas/evas-text.c create mode 100644 src/examples/evas/im1.png rename {legacy/ecore/src/examples => src/examples/evas}/red.png (100%) create mode 100644 src/tests/evas/Makefile.am rename legacy/edje/src/tests/edje_suite.c => src/tests/evas/evas_suite.c (74%) create mode 100644 src/tests/evas/evas_suite.h create mode 100644 src/tests/evas/evas_test_callbacks.c create mode 100644 src/tests/evas/evas_test_init.c create mode 100644 src/tests/evas/evas_test_text.c create mode 100644 src/tests/evas/evas_test_textblock.c create mode 100644 src/tests/evas/evas_tests_helpers.h diff --git a/Makefile.am b/Makefile.am index 45dd848e97..37bab29d29 100644 --- a/Makefile.am +++ b/Makefile.am @@ -168,6 +168,7 @@ if EFL_ENABLE_COVERAGE endif @./src/tests/eet/eet_suite$(EXEEXT) @./src/tests/eo/eo_suite$(EXEEXT) + @./src/tests/evas/evas_suite$(EXEEXT) if EFL_ENABLE_COVERAGE @$(MAKE) $(AM_MAKEFLAGS) lcov-report endif diff --git a/configure.ac b/configure.ac index b9af029886..cc0a3e06f4 100644 --- a/configure.ac +++ b/configure.ac @@ -1827,11 +1827,13 @@ src/examples/Makefile src/examples/eina/Makefile src/examples/eet/Makefile src/examples/eo/Makefile +src/examples/evas/Makefile src/lib/eina/eina_config.h src/tests/Makefile src/tests/eina/Makefile src/tests/eet/Makefile src/tests/eo/Makefile +src/tests/evas/Makefile spec/efl.spec pc/evil.pc pc/eina.pc diff --git a/src/Makefile.am b/src/Makefile.am index 72212a721d..bc4f1d27a8 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -21,11 +21,11 @@ include Makefile_Embryo.am .PHONY: benchmark examples benchmark: - @$(MAKE) $(AM_MAKEFLAGS) -C lib + @$(MAKE) $(AM_MAKEFLAGS) @$(MAKE) $(AM_MAKEFLAGS) -C benchmarks benchmark examples: - @make -C lib + @make @$(MAKE) $(AM_MAKEFLAGS) -C examples examples install-examples: diff --git a/src/examples/Makefile.am b/src/examples/Makefile.am index 9b095d82c2..831c727267 100644 --- a/src/examples/Makefile.am +++ b/src/examples/Makefile.am @@ -1,13 +1,15 @@ MAINTAINERCLEANFILES = Makefile.in -SUBDIRS = eina eo eet +SUBDIRS = eina eo eet evas examples: @$(MAKE) $(AM_MAKEFLAGS) -C eina examples @$(MAKE) $(AM_MAKEFLAGS) -C eo examples @$(MAKE) $(AM_MAKEFLAGS) -C eet examples + @$(MAKE) $(AM_MAKEFLAGS) -C evas examples install-examples: @$(MAKE) $(AM_MAKEFLAGS) -C eina install-examples @$(MAKE) $(AM_MAKEFLAGS) -C eo install-examples @$(MAKE) $(AM_MAKEFLAGS) -C eet install-examples + @$(MAKE) $(AM_MAKEFLAGS) -C evas install-examples diff --git a/src/examples/eet/Makefile.am b/src/examples/eet/Makefile.am index 121f237116..17756bae59 100644 --- a/src/examples/eet/Makefile.am +++ b/src/examples/eet/Makefile.am @@ -1,4 +1,5 @@ MAINTAINERCLEANFILES = Makefile.in + AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib/eina \ -I$(top_srcdir)/src/lib/eet \ @@ -44,10 +45,10 @@ clean-local: rm -f $(EXTRA_PROGRAMS) install-examples: - mkdir -p $(pkgdatadir)/examples/eet - $(install_sh_DATA) -c $(SRCS) $(pkgdatadir)/examples/eet + mkdir -p $(datadir)/eet/examples + $(install_sh_DATA) -c $(SRCS) $(datadir)/eet/examples uninstall-local: for f in $(SRCS) ; do \ - rm -f $(pkgdatadir)/examples/eet/$$f ; \ + rm -f $(datadir)/eet/examples/$$f ; \ done diff --git a/src/examples/eina/Makefile.am b/src/examples/eina/Makefile.am index 97671a4296..0af0a55124 100644 --- a/src/examples/eina/Makefile.am +++ b/src/examples/eina/Makefile.am @@ -112,12 +112,12 @@ clean-local: rm -f $(EXTRA_PROGRAMS) install-examples: - mkdir -p $(pkgdatadir)/examples/eina - $(install_sh_DATA) -c $(SRCS) $(pkgdatadir)/examples/eina + mkdir -p $(datadir)/eina/examples + $(install_sh_DATA) -c $(SRCS) $(datadir)/eina/examples uninstall-local: for f in $(SRCS) ; do \ - rm -f $(pkgdatadir)/examples/eina/$$f ; \ + rm -f $(datadir)/eina/examples/$$f ; \ done EXTRA_DIST = addr_book.txt chat.xml diff --git a/src/examples/eo/Makefile.am b/src/examples/eo/Makefile.am index 924138c41e..ede96e0e7b 100644 --- a/src/examples/eo/Makefile.am +++ b/src/examples/eo/Makefile.am @@ -67,20 +67,20 @@ clean-local: rm -f $(EXTRA_PROGRAMS) install-examples: - mkdir -p $(pkgdatadir)/examples/eo/isa - $(install_sh_DATA) -c $(eo_isa_SOURCES) $(pkgdatadir)/examples/eo/isa - mkdir -p $(pkgdatadir)/examples/eo/evas - $(install_sh_DATA) -c $(evas_SOURCES) $(pkgdatadir)/examples/eo/evas - mkdir -p $(pkgdatadir)/examples/eo/simple - $(install_sh_DATA) -c $(simple_SOURCES) $(pkgdatadir)/examples/eo/simple + mkdir -p $(datadir)/eo/examples/isa + $(install_sh_DATA) -c $(eo_isa_SOURCES) $(datadir)/eo/examples/isa + mkdir -p $(datadir)/eo/examples/evas + $(install_sh_DATA) -c $(evas_SOURCES) $(datadir)/eo/examples/evas + mkdir -p $(datadir)/eo/examples/simple + $(install_sh_DATA) -c $(simple_SOURCES) $(datadir)/eo/examples/simple uninstall-local: for f in $(eo_isa_SOURCES) ; do \ - rm -f $(pkgdatadir)/examples/eo/isa/$$f ; \ + rm -f $(datadir)/eo/examples/isa/$$f ; \ done for f in $(evas_SOURCES) ; do \ - rm -f $(pkgdatadir)/examples/eo/evas/$$f ; \ + rm -f $(datadir)/eo/examples/evas/$$f ; \ done for f in $(simple_SOURCES) ; do \ - rm -f $(pkgdatadir)/examples/eo/simple/$$f ; \ + rm -f $(datadir)/eo/examples/simple/$$f ; \ done diff --git a/src/examples/evas/Makefile.am b/src/examples/evas/Makefile.am new file mode 100644 index 0000000000000000000000000000000000000000..5da4518b4c42cf7011ef339acf2b57a128fb8c12 GIT binary patch literal 3911 zcmcInU2E$&5Z%}6R|w*Tl*I|#zV&XQZtRp?(hrjMavuspvE@doEeC(}7MA_*JF+ar za-Bli^+Q_E%#n07Gq#Ryy~W)l{DReN8F+W|#WGmqOMFXTSe}Cq*7cJU^Yn|7pTEQ^p1TES!B7e4|Axys3B+eKvUypgnz0SS@fB{P5Of zR&VACq0zo7@s{Nb(7!q7(-S>HdcW_3Mf&{cR>;U{6=h^6oOK5SDJxIc@s)^ff{LJ<=Y zkB<`Mf|sP&R%Mj^5^6ci)g>r{uEuME_K2?%L?c;3sA++#f{Pc-!YpS*^2c$OB-t-C zYWFwf_9~d&uL9C(luogA4R}glSb;`$_LcErS2YB-V}ZW75sTGwalMw!dxR5vV*)x> zEvJkwC*?Jq8qk28vds?O8e2S8Wuh7>`GPT)drTvDOc8~$Nsn_Am>ie@Uvj${{HTLkl&MjW&{k+aQyv~Q@ zRkHW8AtfKXjHJ)dsR0Alu1INK67_QF-fFqJ+-kV1;D%#+jv@1=)`1t33mGN;s*~>SUF=YCtDIr9bp!{qiIykwZFR7fd3|6SEhD&vdaeKkJMypFSNPYjcWq)yPulaf%=2M>&#NMgAEELcg zW4n=|24TXeaFZ;g$pt#eQ|!ilFfM>@lDK9rbdtWpT@AZ?fJd~X^~Fu*e5x@BI;k9Vf=$Br<{vfxfl) Ri}hoDt!-LUrt-@z_%GNn0%`yN literal 0 HcmV?d00001 diff --git a/src/examples/evas/aspect.edc b/src/examples/evas/aspect.edc new file mode 100644 index 0000000000..b8bfb313e0 --- /dev/null +++ b/src/examples/evas/aspect.edc @@ -0,0 +1,17 @@ +collections { + group { + name: "main"; + parts { + part { + name: "content"; + mouse_events: 0; + type: SWALLOW; + description { + state: "default" 0.0; + visible: 1; + } + } + } + } +} + diff --git a/src/examples/evas/cube1.png b/src/examples/evas/cube1.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f4fda6b3899885db5e030219c9def05bca640c GIT binary patch literal 183167 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

mJl4IAHaQy$A?o#L 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≤T>sk1v~1BFa0<%{D-4`Xoft)<0EI;$Mm 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

^eVa1YV*`8 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

_N|M`nw(MdQEgB%@brLj1V?mc4SDF=_9B7)@& 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 literal 0 HcmV?d00001 diff --git a/src/examples/evas/enlightenment.png b/src/examples/evas/enlightenment.png new file mode 100644 index 0000000000000000000000000000000000000000..aeb836bc980516237129f84045d055be11124484 GIT binary patch literal 17541 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 literal 0 HcmV?d00001 diff --git a/src/examples/evas/evas-aspect-hints.c b/src/examples/evas/evas-aspect-hints.c new file mode 100644 index 0000000000..de8ed50178 --- /dev/null +++ b/src/examples/evas/evas-aspect-hints.c @@ -0,0 +1,249 @@ +/** + * Simple Evas example illustrating aspect control hints on objects. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * You'll also need @b Edje for this one, as it has the only smart + * object implementing aspect control for children. + * + * @verbatim + * gcc -o evas-events evas-events.c `pkg-config --libs --cflags ecore-evas edje` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#endif + +#include +#include +#include +#include +#include + +#define WIDTH 320 +#define HEIGHT 480 + +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; +static const char *edje_file_path = PACKAGE_EXAMPLES_DIR "/aspect.edj"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *canvas; + Evas_Object *bg, *rect, *container, *border; +}; + +static struct test_data d = {0}; + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static const char * +_get_aspect_name(Evas_Aspect_Control aspect) +{ + switch (aspect) + { + case 0: + return "NONE"; + + case 1: + return "NEITHER"; + + case 2: + return "HORIZONTAL"; + + case 3: + return "VERTICAL"; + + case 4: + return "BOTH"; + + default: + return "INVALID"; + } +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o, + void *einfo) +{ + const Evas_Modifier *mods; + Evas_Event_Key_Down *ev = einfo; + + mods = evas_key_modifier_get(evas_object_evas_get(o)); + + if (evas_key_modifier_is_set(mods, "Shift") && + strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, "commands are:\n" + "\tc - cycle aspect control on object\n" + "\th - change horizontal aspect component\n" + "\tv - change vertical aspect component\n" + "\ts - print current object's status\n" + "\tH - print help\n"); + return; + } + + if (strcmp(ev->keyname, "s") == 0) /* get aspect status of the obj */ + { + Evas_Coord w, h; + Evas_Aspect_Control aspect; + + evas_object_size_hint_aspect_get(d.rect, &aspect, &w, &h); + + fprintf(stdout, "Object has aspect %s, with horizontal compontent %d" + " and vertical compontent %d\n", + _get_aspect_name(aspect), w, h); + + return; + } + + if (strcmp(ev->keyname, "c") == 0) /* cycle aspect control on obj */ + { + Evas_Coord w, h; + Evas_Aspect_Control aspect; + + evas_object_size_hint_aspect_get(d.rect, &aspect, &w, &h); + + aspect = (aspect + 1) % 5; + + evas_object_size_hint_aspect_set(d.rect, aspect, w, h); + + fprintf(stdout, "Changing aspect control to %s\n", + _get_aspect_name(aspect)); + + return; + } + + if (strcmp(ev->keyname, "h") == 0) /* change horizontal aspect component */ + { + Evas_Coord w, h; + Evas_Aspect_Control aspect; + + evas_object_size_hint_aspect_get(d.rect, &aspect, &w, &h); + + w = (w + 1) % 3; + + evas_object_size_hint_aspect_set(d.rect, aspect, w, h); + + fprintf(stdout, "Changing horizontal aspect component to %d\n", w); + + return; + } + + if (strcmp(ev->keyname, "v") == 0) /* change vertical aspect component */ + { + Evas_Coord w, h; + Evas_Aspect_Control aspect; + + evas_object_size_hint_aspect_get(d.rect, &aspect, &w, &h); + + h = (h + 1) % 3; + + evas_object_size_hint_aspect_set(d.rect, aspect, w, h); + + fprintf(stdout, "Changing vertical aspect component to %d\n", h); + + return; + } +} + +int +main(void) +{ + Eina_Bool ret; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + if (!edje_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.canvas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.canvas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.container = edje_object_add(d.canvas); + ret = edje_object_file_set(d.container, edje_file_path, "main"); + if (!ret) + { + Edje_Load_Error err = edje_object_load_error_get(d.container); + const char *msg = edje_load_error_str(err); + fprintf(stderr, "could not load 'main' from %s: %s", + edje_file_path, msg); + + goto panic; + } + + evas_object_move(d.container, (WIDTH / 4), (HEIGHT / 4)); + evas_object_resize(d.container, (WIDTH / 2), (HEIGHT / 2)); + evas_object_show(d.container); + + d.rect = evas_object_rectangle_add(d.canvas); + evas_object_color_set(d.rect, 0, 0, 255, 255); + evas_object_size_hint_aspect_set(d.rect, EVAS_ASPECT_CONTROL_NONE, 1, 1); + evas_object_show(d.rect); + + edje_object_part_swallow(d.container, "content", d.rect); + evas_object_smart_changed(d.container); + + /* this is a border around the edje object, container of the + * rectangle we are going to experiment with (change its aspect + * hints). this way you can see how their sizes relate */ + d.border = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(d.border, border_img_path, NULL); + evas_object_image_border_set(d.border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE); + evas_object_move(d.border, (WIDTH / 4) - 3, (HEIGHT / 4) - 3); + evas_object_resize(d.border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6); + evas_object_show(d.border); + + ecore_main_loop_begin(); + + ecore_evas_free(d.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"); +panic: + ecore_evas_free(d.ee); + ecore_evas_shutdown(); + edje_shutdown(); + + return -1; +} diff --git a/src/examples/evas/evas-box.c b/src/examples/evas/evas-box.c new file mode 100644 index 0000000000..ec795355fc --- /dev/null +++ b/src/examples/evas/evas-box.c @@ -0,0 +1,382 @@ +/** + * Simple Evas example illustrating a custom Evas box object + * + * You'll need at least one engine built for it (excluding the buffer + * one). See stdout/stderr for output. + * + * @verbatim + * gcc -o evas-box evas-box.c `pkg-config --libs --cflags evas ecore ecore-evas eina` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ +#endif + +#include +#include + +#include +#include +#include + +#define WIDTH (640) +#define HEIGHT (480) + +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +static const char *commands = \ + "commands are:\n" + "\ta - change the box's alignment values\n" + "\tp - change the box's padding values\n" + "\t1 - change the box's layout to horizontal\n" + "\t2 - change the box's layout to vertical\n" + "\t3 - change the box's layout to horizontal homogeneous\n" + "\t4 - change the box's layout to vertical homogeneous\n" + "\t5 - change the box's layout to horizontal maximum size homogeneous\n" + "\t6 - change the box's layout to vertical maximum size homogeneous\n" + "\t7 - change the box's layout to horizontal flow\n" + "\t8 - change the box's layout to vertical flow\n" + "\t9 - change the box's layout to stack\n" + "\t0 - change the box's layout to a custom-made one\n" + "\tCtrl + NUMBER - insert a new child object at that position in the box\n" + "\tShift + NUMBER - remove the child object at that position in the box\n" + "\th - print help\n"; + +struct exemple_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg, *box, *border; +}; + +static struct exemple_data d; + +static void /* custom 'diagonal' layout */ +_custom_layout(Evas_Object *o, + Evas_Object_Box_Data *p, + void *data __UNUSED__) +{ + 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); + ww = w / (count ? : 1); + hh = h / (count ? : 1); + if (ww < 1) ww = 1; + if (hh < 1) hh = 1; + + xx = x; + yy = y; + EINA_LIST_FOREACH(p->children, l, opt) + { + evas_object_move(opt->obj, xx, yy); + xx += ww; + yy += hh; + } +} + +static Evas_Object * /* new rectangle to be put in the box */ +_new_rectangle_add(Evas *e) +{ + Evas_Object *o; + + o = evas_object_rectangle_add(e); + evas_object_resize(o, 10, 10); + evas_object_color_set(o, 0, 255, 0, 255); + evas_object_show(o); + + return o; +} + +/* use the following commands to interact with this example - 'h' is + * the key for help */ +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + const Evas_Modifier *mods = evas_key_modifier_get(evas); + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (evas_key_modifier_is_set(mods, "Shift")) + { + int pos; + Eina_Bool ret; + Evas_Object *obj; + Eina_List *children; + + pos = atoi(ev->keyname); + children = evas_object_box_children_get(d.box); + + obj = eina_list_nth(children, pos); + if (!obj) goto list_free; + + ret = evas_object_box_remove_at(d.box, pos); + if (ret) evas_object_del(obj); + +list_free: + eina_list_free(children); + return; + } + + if (evas_key_modifier_is_set(mods, "Control")) + { + Evas_Object *o; + int pos; + pos = atoi(ev->keyname); + o = _new_rectangle_add(d.evas); + if (!evas_object_box_insert_at(d.box, o, pos)) + evas_object_box_append(d.box, o); + return; + } + + if (strcmp(ev->keyname, "a") == 0) + { + double h, v; + + evas_object_box_align_get(d.box, &h, &v); + + if (h == 0.5) + h = v = 1.0; + else if (h == 1.0) + h = v = -1.0; + else if (h == -1.0) + h = v = 0.0; + else if (h == 0.0) + h = v = 0.5; + + evas_object_box_align_set(d.box, h, v); + + fprintf(stdout, "Applying new alignment values (%.1f, %.1f)" + " on the box\n", h, v); + return; + } + + if (strcmp(ev->keyname, "p") == 0) + { + int h, v; + + evas_object_box_padding_get(d.box, &h, &v); + + if (h == 0) + h = v = 50; + else + h = v = 0; + + evas_object_box_padding_set(d.box, h, v); + + fprintf(stdout, "Applying new padding values (%d, %d)" + " on the box\n", h, v); + return; + } + + if (strcmp(ev->keyname, "1") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_horizontal, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "horizontal"); + return; + } + + if (strcmp(ev->keyname, "2") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_vertical, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "vertical"); + return; + } + + if (strcmp(ev->keyname, "3") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_homogeneous_horizontal, NULL, + NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", + "horizontal homogeneous"); + return; + } + + if (strcmp(ev->keyname, "4") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_homogeneous_vertical, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", + "vertical homogeneous"); + return; + } + + if (strcmp(ev->keyname, "5") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_homogeneous_max_size_horizontal, + NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", + "horizontal maximum size homogeneous"); + return; + } + + if (strcmp(ev->keyname, "6") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_homogeneous_max_size_vertical, + NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", + "vertical maximum size homogeneous"); + return; + } + + if (strcmp(ev->keyname, "7") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_flow_horizontal, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "horizontal flow"); + return; + } + + if (strcmp(ev->keyname, "8") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_flow_vertical, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "vertical flow"); + return; + } + + if (strcmp(ev->keyname, "9") == 0) + { + evas_object_box_layout_set( + d.box, evas_object_box_layout_stack, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "stack"); + return; + } + + if (strcmp(ev->keyname, "0") == 0) + { + evas_object_box_layout_set(d.box, _custom_layout, NULL, NULL); + + fprintf(stdout, "Applying '%s' layout on the box\n", "CUSTOM"); + return; + } +} + +static void +_on_delete(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +static void /* adjust canvas' contents on resizes */ +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + + evas_object_resize(d.bg, w, h); + + evas_object_move(d.box, (w / 4), (h / 4)); + evas_object_resize(d.box, (w / 2), (h / 2)); + + evas_object_move(d.border, (w / 4) - 2, (h / 4) - 2); + evas_object_resize(d.border, (w / 2) + 4, (h / 2) + 4); +} + +int +main(void) +{ + Evas_Object *last, *o; + int i; + + srand(time(NULL)); + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto panic; + + ecore_evas_callback_delete_request_set(d.ee, _on_delete); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.box = evas_object_box_add(d.evas); + evas_object_show(d.box); + + for (i = 1; i <= 5; i++) + { + o = last = evas_object_rectangle_add(d.evas); + evas_object_size_hint_min_set(o, 50, 50); + evas_object_color_set( + o, rand() % 256, rand() % 256, rand() % 256, 255); + evas_object_show(o); + + if (!evas_object_box_append(d.box, o)) + { + fprintf(stderr, "Error appending child object on the box!\n"); + goto error; + } + } + + /* this is a border around the box, container of the rectangles we + * are going to experiment with. this way you can see how the + * container relates to the children */ + d.border = evas_object_image_filled_add(d.evas); + evas_object_image_file_set(d.border, border_img_path, NULL); + evas_object_image_border_set(d.border, 2, 2, 2, 2); + evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE); + evas_object_show(d.border); + + fprintf(stdout, commands); + + _canvas_resize_cb(d.ee); + ecore_main_loop_begin(); + ecore_evas_shutdown(); + return 0; + +error: + ecore_evas_shutdown(); + return -1; + +panic: + 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"); + return -2; +} + diff --git a/src/examples/evas/evas-buffer-simple.c b/src/examples/evas/evas-buffer-simple.c new file mode 100644 index 0000000000..6676ef10b0 --- /dev/null +++ b/src/examples/evas/evas-buffer-simple.c @@ -0,0 +1,228 @@ +/** + * Simple Evas example using the Buffer engine. + * + * You must have Evas compiled with the buffer engine, and have the + * evas-software-buffer pkg-config files installed. + * + * Compile with: + * + * @verbatim + * gcc -o evas-buffer-simple evas-buffer-simple.c `pkg-config --libs --cflags evas evas-software-buffer` + * @endverbatim + * + */ +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +/* + * create_canvas(), destroy_canvas() and draw_scene() are support functions. + * + * They are only required to use raw Evas, but for real world usage, + * it is recommended to use ecore and its ecore-evas submodule, that + * provide convenience canvas creators, integration with main loop and + * automatic render of updates (draw_scene()) when system goes back to + * main loop. + */ +static Evas *create_canvas(int width, int height); +static void destroy_canvas(Evas *canvas); +static void draw_scene(Evas *canvas); + +// support function to save scene as PPM image +static void save_scene(Evas *canvas, const char *dest); + +int main(void) +{ + Evas *canvas; + Evas_Object *bg, *r1, *r2, *r3; + + evas_init(); + + // create your canvas + // NOTE: consider using ecore_evas_buffer_new() instead! + canvas = create_canvas(WIDTH, HEIGHT); + if (!canvas) + return -1; + + bg = evas_object_rectangle_add(canvas); + evas_object_color_set(bg, 255, 255, 255, 255); // white bg + evas_object_move(bg, 0, 0); // at origin + evas_object_resize(bg, WIDTH, HEIGHT); // covers full canvas + evas_object_show(bg); + + puts("initial scene, with just background:"); + draw_scene(canvas); + + r1 = evas_object_rectangle_add(canvas); + evas_object_color_set(r1, 255, 0, 0, 255); // 100% opaque red + evas_object_move(r1, 10, 10); + evas_object_resize(r1, 100, 100); + evas_object_show(r1); + + // pay attention to transparency! Evas color values are pre-multiplied by + // alpha, so 50% opaque green is: + // non-premul: r=0, g=255, b=0 a=128 (50% alpha) + // premul: + // r_premul = r * a / 255 = 0 * 128 / 255 = 0 + // g_premul = g * a / 255 = 255 * 128 / 255 = 128 + // b_premul = b * a / 255 = 0 * 128 / 255 = 0 + // + // this 50% green is over a red background, so it will show in the + // final output as yellow (green + red = yellow) + r2 = evas_object_rectangle_add(canvas); + evas_object_color_set(r2, 0, 128, 0, 128); // 50% opaque green + evas_object_move(r2, 10, 10); + evas_object_resize(r2, 50, 50); + evas_object_show(r2); + + r3 = evas_object_rectangle_add(canvas); + evas_object_color_set(r3, 0, 128, 0, 255); // 100% opaque dark green + evas_object_move(r3, 60, 60); + evas_object_resize(r3, 50, 50); + evas_object_show(r3); + + puts("final scene (note updates):"); + draw_scene(canvas); + save_scene(canvas, "/tmp/evas-buffer-simple-render.ppm"); + + // NOTE: use ecore_evas_buffer_new() and here ecore_evas_free() + destroy_canvas(canvas); + + evas_shutdown(); + + return 0; +} + +static Evas *create_canvas(int width, int height) +{ + Evas *canvas; + Evas_Engine_Info_Buffer *einfo; + int method; + void *pixels; + + method = evas_render_method_lookup("buffer"); + if (method <= 0) + { + fputs("ERROR: evas was not compiled with 'buffer' engine!\n", stderr); + return NULL; + } + + canvas = evas_new(); + if (!canvas) + { + fputs("ERROR: could not instantiate new evas canvas.\n", stderr); + return NULL; + } + + evas_output_method_set(canvas, method); + evas_output_size_set(canvas, width, height); + evas_output_viewport_set(canvas, 0, 0, width, height); + + einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(canvas); + if (!einfo) + { + fputs("ERROR: could not get evas engine info!\n", stderr); + evas_free(canvas); + return NULL; + } + + // ARGB32 is sizeof(int), that is 4 bytes, per pixel + pixels = malloc(width * height * sizeof(int)); + if (!pixels) + { + fputs("ERROR: could not allocate canvas pixels!\n", stderr); + evas_free(canvas); + return NULL; + } + + einfo->info.depth_type = EVAS_ENGINE_BUFFER_DEPTH_ARGB32; + einfo->info.dest_buffer = pixels; + einfo->info.dest_buffer_row_bytes = width * sizeof(int); + einfo->info.use_color_key = 0; + einfo->info.alpha_threshold = 0; + einfo->info.func.new_update_region = NULL; + einfo->info.func.free_update_region = NULL; + evas_engine_info_set(canvas, (Evas_Engine_Info *)einfo); + + return canvas; +} + +static void destroy_canvas(Evas *canvas) +{ + Evas_Engine_Info_Buffer *einfo; + + einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(canvas); + if (!einfo) + { + fputs("ERROR: could not get evas engine info!\n", stderr); + evas_free(canvas); + return; + } + + free(einfo->info.dest_buffer); + evas_free(canvas); +} + +static void draw_scene(Evas *canvas) +{ + Eina_List *updates, *n; + Eina_Rectangle *update; + + // render and get the updated rectangles: + updates = evas_render_updates(canvas); + + // informative only here, just print the updated areas: + EINA_LIST_FOREACH(updates, n, update) + printf("UPDATED REGION: pos: %3d, %3d size: %3dx%3d\n", + update->x, update->y, update->w, update->h); + + // free list of updates + evas_render_updates_free(updates); +} + +static void save_scene(Evas *canvas, const char *dest) +{ + Evas_Engine_Info_Buffer *einfo; + const unsigned int *pixels, *pixels_end; + int width, height; + FILE *f; + + einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(canvas); + if (!einfo) + { + fputs("ERROR: could not get evas engine info!\n", stderr); + return; + } + evas_output_size_get(canvas, &width, &height); + + f = fopen(dest, "wb+"); + if (!f) + { + fprintf(stderr, "ERROR: could not open for writing '%s': %s\n", + dest, strerror(errno)); + return; + } + + pixels = einfo->info.dest_buffer; + pixels_end = pixels + (width * height); + + // PPM P6 format is dead simple to write: + fprintf(f, "P6\n%d %d\n255\n", width, height); + for (; pixels < pixels_end; pixels++) + { + int r, g, b; + + r = ((*pixels) & 0xff0000) >> 16; + g = ((*pixels) & 0x00ff00) >> 8; + b = (*pixels) & 0x0000ff; + + fprintf(f, "%c%c%c", r, g, b); + } + + fclose(f); + printf("saved scene as '%s'\n", dest); +} diff --git a/src/examples/evas/evas-events.c b/src/examples/evas/evas-events.c new file mode 100644 index 0000000000..28b22ed7e5 --- /dev/null +++ b/src/examples/evas/evas-events.c @@ -0,0 +1,413 @@ +/** + * Simple Evas example illustrating how to interact with canvas' (and + * its objects') events and other canvas operations. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas-events evas-events.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *img_path = PACKAGE_EXAMPLES_DIR "/enlightenment.png"; + +static const char *commands = \ + "commands are:\n" + "\ta - toggle animation timer\n" + "\tc - cycle between focus and key grabs for key input\n" + "\td - delete canvas callbacks\n" + "\tf - freeze input for 3 seconds\n" + "\tp - toggle precise point collision detection on image\n" + "\tControl + o - add an obscured rectangle\n" + "\th - print help\n"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *canvas; + Evas_Object *img, *bg; + Ecore_Timer *resize_timer, *freeze_timer; + Eina_Bool obscured, focus; +}; + +static struct test_data d = {0}; + +/* here to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +/* called when our rectangle gets focus */ +static void +_object_focus_in_cb(void *data __UNUSED__, + Evas *e, + void *event_info) +{ + fprintf(stdout, "An object got focused: %s\n", + evas_object_name_get(event_info)); + + fprintf(stdout, "Let's recheck it: %s\n", + evas_object_name_get(evas_focus_get(e))); + + fprintf(stdout, "And again: %s\n", evas_object_focus_get(event_info) ? + "OK!" : "Oops, something is bad."); +} + +/* render flush callback */ +static void +_render_flush_cb(void *data __UNUSED__, + Evas *e __UNUSED__, + void *event_info __UNUSED__) +{ + fprintf(stdout, "Canvas is about to flush its rendering pipeline!\n"); +} + +/* put some action in the canvas */ +static Eina_Bool +_resize_cb(void *data __UNUSED__) +{ + int w, h, cw, ch; + + evas_object_geometry_get(d.img, NULL, NULL, &w, &h); + ecore_evas_geometry_get(d.ee, NULL, NULL, &cw, &ch); + + if (w < cw) + evas_object_resize(d.img, cw, ch); + else + evas_object_resize(d.img, cw / 2, ch / 2); + + return EINA_TRUE; /* re-issue the timer */ +} + +/* let's have our events back */ +static Eina_Bool +_thaw_cb(void *data __UNUSED__) +{ + fprintf(stdout, "Canvas was frozen %d times, now thawing.\n", + evas_event_freeze_get(d.canvas)); + evas_event_thaw(d.canvas); + return EINA_FALSE; /* do not re-issue the timer */ +} + +/* mouse enters the object's area */ +static void +_on_mouse_in(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo __UNUSED__) +{ + fprintf(stdout, "Enlightenment logo has had the mouse in.\n"); +} + +static void +_on_mouse_out(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo __UNUSED__) +{ + fprintf(stdout, "Enlightenment logo has had the mouse out.\n"); +} /* mouse exits the object's area */ + +/* examine the keys pressed */ +static void +_on_keydown(void *data __UNUSED__, + Evas *evas, + Evas_Object *o __UNUSED__, + void *einfo) +{ + const Evas_Modifier *mods; + Evas_Event_Key_Down *ev = einfo; + + fprintf(stdout, "We've got key input: %s\n", ev->keyname); + fprintf(stdout, "It actually came from %s\n", d.focus ? + "focus" : "key grab"); + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "a") == 0) /* toggle animation timer */ + { + if (d.resize_timer != NULL) + { + fprintf(stdout, "Stopping animation timer\n"); + ecore_timer_del(d.resize_timer); + d.resize_timer = NULL; + } + else + { + fprintf(stdout, "Re-issuing animation timer\n"); + d.resize_timer = ecore_timer_add(2, _resize_cb, NULL); + } + return; + } + + if (strcmp(ev->keyname, "c") == 0) /* cycle between focus and key + * grabs for key input */ + { + Eina_Bool ret; + Evas_Modifier_Mask mask = + evas_key_modifier_mask_get(d.canvas, "Control"); + + fprintf(stdout, "Switching to %s for key input\n", d.focus ? + "key grabs" : "focus"); + + if (d.focus) + { + evas_object_focus_set(d.bg, EINA_FALSE); + fprintf(stdout, "Focused object is now %s\n", + evas_focus_get(d.canvas) ? + "still valid! Something went wrong." : "none."); + + ret = evas_object_key_grab(d.bg, "a", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "c", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "d", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "f", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "p", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "o", mask, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + ret = evas_object_key_grab(d.bg, "h", 0, 0, EINA_TRUE); + if (!ret) + { + fprintf(stdout, "Something went wrong with key grabs.\n"); + goto c_end; + } + } + else /* got here by key grabs */ + { + evas_object_key_ungrab(d.bg, "a", 0, 0); + evas_object_key_ungrab(d.bg, "c", 0, 0); + evas_object_key_ungrab(d.bg, "d", 0, 0); + evas_object_key_ungrab(d.bg, "f", 0, 0); + evas_object_key_ungrab(d.bg, "p", 0, 0); + evas_object_key_ungrab(d.bg, "o", mask, 0); + evas_object_key_ungrab(d.bg, "h", 0, 0); + + evas_object_focus_set(d.bg, EINA_TRUE); + } + +c_end: + d.focus = !d.focus; + + return; + } + + if (strcmp(ev->keyname, "d") == 0) /* delete canvas' callbacks */ + { + fprintf(stdout, "Deleting canvas event callbacks\n"); + evas_event_callback_del_full(evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, + _render_flush_cb, NULL); + evas_event_callback_del_full( + evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _object_focus_in_cb, NULL); + return; + } + + if (strcmp(ev->keyname, "f") == 0) /* freeze input for 3 seconds */ + { + fprintf(stdout, "Freezing input for 3 seconds\n"); + evas_event_freeze(evas); + d.freeze_timer = ecore_timer_add(3, _thaw_cb, NULL); + return; + } + + if (strcmp(ev->keyname, "p") == 0) /* toggle precise point + * collision detection */ + { + Eina_Bool precise = evas_object_precise_is_inside_get(d.img); + + fprintf(stdout, "Toggling precise point collision detection %s on" + " Enlightenment logo\n", precise ? "off" : "on"); + evas_object_precise_is_inside_set(d.img, !precise); + + return; + } + + mods = evas_key_modifier_get(evas); + if (evas_key_modifier_is_set(mods, "Control") && + (strcmp(ev->keyname, "o") == 0)) /* add an obscured + * rectangle to the middle + * of the canvas */ + { + fprintf(stdout, "Toggling obscured rectangle on canvas\n"); + if (!d.obscured) + { + int w, h; + evas_output_viewport_get(evas, NULL, NULL, &w, &h); + evas_obscured_rectangle_add(evas, w / 4, h / 4, w / 2, h / 2); + } + else + { + int w, h; + Eina_Rectangle *rect; + Eina_List *updates, *l; + + evas_output_viewport_get(evas, NULL, NULL, &w, &h); + evas_obscured_clear(evas); + + /* we have to flag a damage region here because + * evas_obscured_clear() doesn't change the canvas' + * state. we'd have to wait for an animation step, for + * example, to get the result, without it */ + evas_damage_rectangle_add(evas, 0, 0, w, h); + + updates = evas_render_updates(evas); + + EINA_LIST_FOREACH(updates, l, rect) + { + fprintf(stdout, "Rectangle (%d, %d, %d, %d) on canvas got a" + " rendering update.\n", rect->x, rect->y, + rect->w, + rect->h); + } + evas_render_updates_free(updates); + } + d.obscured = !d.obscured; + } /* end of obscured region command */ +} + +int +main(void) +{ + int err; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.canvas = ecore_evas_get(d.ee); + + evas_event_callback_add(d.canvas, EVAS_CALLBACK_RENDER_FLUSH_PRE, + _render_flush_cb, NULL); + if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) + { + fprintf(stderr, "ERROR: Callback registering failed! Aborting.\n"); + goto panic; + } + + evas_event_callback_add(d.canvas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _object_focus_in_cb, NULL); + if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) + { + fprintf(stderr, "ERROR: Callback registering failed! Aborting.\n"); + goto panic; + } /* two canvas event callbacks */ + + d.bg = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.bg, "our dear rectangle"); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); /* so we get input events */ + d.focus = EINA_TRUE; + + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + if (evas_alloc_error() != EVAS_ALLOC_ERROR_NONE) + { + fprintf(stderr, "ERROR: Callback registering failed! Aborting.\n"); + goto panic; + } + + d.img = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(d.img, img_path, NULL); + err = evas_object_image_load_error_get(d.img); + if (err != EVAS_LOAD_ERROR_NONE) + { + goto panic; + } + else + { + evas_object_move(d.img, 0, 0); + evas_object_resize(d.img, WIDTH, HEIGHT); + evas_object_show(d.img); + evas_object_event_callback_add( + d.img, EVAS_CALLBACK_MOUSE_IN, _on_mouse_in, NULL); + evas_object_event_callback_add( + d.img, EVAS_CALLBACK_MOUSE_OUT, _on_mouse_out, NULL); + } + + d.resize_timer = ecore_timer_add(2, _resize_cb, NULL); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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"); +panic: + ecore_evas_shutdown(); + return -1; +} diff --git a/src/examples/evas/evas-hints.c b/src/examples/evas/evas-hints.c new file mode 100644 index 0000000000..78c09ba4ab --- /dev/null +++ b/src/examples/evas/evas-hints.c @@ -0,0 +1,378 @@ +/** + * Simple Evas example illustrating alignment, minimum size, maximum + * size, padding and weight hints on objects. + * + * To exemplify those hints, whe use the Evas box object, one of the + * managers using size hints to layout its children. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas-events evas-events.c `pkg-config --libs --cflags ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#define __UNUSED__ +#endif + +#include +#include + +#include +#include +#include + +#define WIDTH 320 +#define HEIGHT 480 +#define PACKAGE_EXAMPLES_DIR "." + +static const char commands[] = \ + "commands are:\n" + "\tShift + a - change alignment hints on top rectangle\n" + "\tShift + m - change min. size hint on top rectangle\n" + "\tShift + n - change max. size hint on top rectangle\n" + "\tShift + p - change padding hints on top rectangle\n" + "\tShift + w - change weight hints on top rectangle\n\n" + "\tControl + a - change alignment hints on bottom rectangle\n" + "\tControl + m - change min. size hint on bottom rectangle\n" + "\tControl + n - change max. size hint on bottom rectangle\n" + "\tControl + p - change padding hints on bottom rectangle\n" + "\tControl + w - change weight hints on bottom rectangle\n\n" + "\ts - print current hints information\n" + "\th - print help\n"; + +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +struct coord_tuple +{ + Evas_Coord w, h; +}; + +struct weight_tuple +{ + double x, y; +}; + +struct padding_tuple +{ + Evas_Coord l, r, t, b; +}; + +struct rect_data +{ + struct coord_tuple *min_ptr; + struct coord_tuple min[4]; + + struct coord_tuple *max_ptr; + struct coord_tuple max[4]; + + struct weight_tuple *align_ptr; + struct weight_tuple align[3]; + + struct weight_tuple *weight_ptr; + struct weight_tuple weight[3]; + + struct padding_tuple *padding_ptr; + struct padding_tuple padding[3]; +}; + +struct test_data +{ + Ecore_Evas *ee; + Evas *canvas; + struct rect_data t_data, b_data; + Evas_Object *bg, *box, *t_rect, *b_rect, *border; +}; + +static struct test_data d = {0}; + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); + + evas_object_move(d.box, (w / 4), (h / 4)); + evas_object_resize(d.box, (w / 2), (h / 2)); + + evas_object_move(d.border, (w / 4) - 3, (h / 4) - 3); + evas_object_resize(d.border, (w / 2) + 6, (h / 2) + 6); +} + +static void +_print_rect_stats(Evas_Object *rect) +{ + Evas_Coord w, h, l, r, t, b; + double x, y; + + evas_object_size_hint_align_get(rect, &x, &y); + fprintf(stdout, "\talign hints: h(%f), v(%f)\n", x, y); + + evas_object_size_hint_min_get(rect, &w, &h); + fprintf(stdout, "\tmin. size hints: h(%d), v(%d)\n", w, h); + + evas_object_size_hint_max_get(rect, &w, &h); + fprintf(stdout, "\tmax. size hints: h(%d), v(%d)\n", w, h); + + evas_object_size_hint_padding_get(rect, &l, &r, &t, &b); + fprintf(stdout, "\tpadding hints: l(%d), r(%d), t(%d), b(%d)\n", + l, r, t, b); + + evas_object_size_hint_weight_get(rect, &x, &y); + fprintf(stdout, "\tweight hints: h(%f), v(%f)\n", x, y); +} + +/* use the following commands to interact with this example - 'h' is + * the key for help */ +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + struct rect_data *r_data = NULL; + const Evas_Modifier *mods; + Evas_Object *rect = NULL; + const char *name = NULL; + + mods = evas_key_modifier_get(evas); + if (evas_key_modifier_is_set(mods, "Shift")) + { + rect = d.t_rect; + r_data = &d.t_data; + name = "top"; + } + else if (evas_key_modifier_is_set(mods, "Control")) + { + rect = d.b_rect; + r_data = &d.b_data; + name = "bottom"; + } + else if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + else if (strcmp(ev->keyname, "s") == 0) /* get aspect status of the + * rectangles WRT size + * hints */ + { + fprintf(stdout, "Top rectangle:\n"); + _print_rect_stats(d.t_rect); + + fprintf(stdout, "\nBottom rectangle:\n"); + _print_rect_stats(d.b_rect); + + return; + } + + if (!rect) return; + + if (strcmp(ev->keyname, "a") == 0) /* alignment hints */ + { + (r_data->align_ptr)++; + + if ((unsigned) + (((void *)(r_data->align_ptr)) - ((void *)(r_data->align))) >= + sizeof(r_data->align)) + r_data->align_ptr = r_data->align; + + evas_object_size_hint_align_set( + rect, r_data->align_ptr->x, r_data->align_ptr->y); + + fprintf(stdout, "Changing align hints for %s rect. to (%f, %f)\n", + name, r_data->align_ptr->x, r_data->align_ptr->y); + return; + } + + if (strcmp(ev->keyname, "m") == 0) /* min. size hints */ + { + (r_data->min_ptr)++; + + if ((unsigned) + (((void *)(r_data->min_ptr)) - ((void *)(r_data->min))) >= + sizeof(r_data->min)) + r_data->min_ptr = r_data->min; + + evas_object_size_hint_min_set( + rect, r_data->min_ptr->w, r_data->min_ptr->h); + + fprintf(stdout, "Changing min. size hints for %s rect. to (%d, %d)\n", + name, r_data->min_ptr->w, r_data->min_ptr->h); + return; + } + + if (strcmp(ev->keyname, "n") == 0) /* max. size hints */ + { + (r_data->max_ptr)++; + + if ((unsigned) + (((void *)(r_data->max_ptr)) - ((void *)(r_data->max))) >= + sizeof(r_data->max)) + r_data->max_ptr = r_data->max; + + evas_object_size_hint_max_set( + rect, r_data->max_ptr->w, r_data->max_ptr->h); + + fprintf(stdout, "Changing max. size hints for %s rect. to (%d, %d)\n", + name, r_data->max_ptr->w, r_data->max_ptr->h); + return; + } + + if (strcmp(ev->keyname, "p") == 0) /* padding size hints */ + { + (r_data->padding_ptr)++; + + if ((unsigned) + (((void *)(r_data->padding_ptr)) - ((void *)(r_data->padding))) >= + sizeof(r_data->padding)) + r_data->padding_ptr = r_data->padding; + + evas_object_size_hint_padding_set( + rect, r_data->padding_ptr->l, r_data->padding_ptr->r, + r_data->padding_ptr->t, r_data->padding_ptr->b); + + fprintf(stdout, "Changing padding size hints for %s rect." + " to (%d, %d, %d, %d)\n", + name, r_data->padding_ptr->l, r_data->padding_ptr->r, + r_data->padding_ptr->t, r_data->padding_ptr->b); + return; + } + + /* experiment with weights here. keep in mind that, for the box + * object, only if all the children have non zero weights this hint + * will have an effect */ + if (strcmp(ev->keyname, "w") == 0) /* weight hints */ + { + (r_data->weight_ptr)++; + + if ((unsigned) + (((void *)(r_data->weight_ptr)) - ((void *)(r_data->weight))) >= + sizeof(r_data->weight)) + r_data->weight_ptr = r_data->weight; + + evas_object_size_hint_weight_set( + rect, r_data->weight_ptr->x, r_data->weight_ptr->y); + + fprintf(stdout, "Changing weight hints for %s rect. to (%f, %f)\n", + name, r_data->weight_ptr->x, r_data->weight_ptr->y); + return; + } +} + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +int +main(void) +{ + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* init values one is going to cycle through while running this + * example */ + struct rect_data init_data = \ + { + .min = {{0, 0}, {30, 30}, {100, 70}, {200, 200}}, + .max = {{0, 0}, {100, 100}, {100, 70}, {300, 300}}, + .align = {{0.0, 0.0}, {0.5, 0.5}, {1.0, 0.5}}, + .weight = {{0.0, 0.0}, {3, 6}, {10, 100}}, + .padding = {{0, 0, 0, 0}, {3, 6, 9, 12}, {10, 20, 0, 30}} + }; + + d.t_data = init_data; + + d.t_data.min_ptr = d.t_data.min + 1; + d.t_data.max_ptr = d.t_data.max + 1; + d.t_data.align_ptr = d.t_data.align; + d.t_data.weight_ptr = d.t_data.weight; + d.t_data.padding_ptr = d.t_data.padding; + + d.b_data = init_data; + + d.b_data.min_ptr = d.b_data.min + 1; + d.b_data.max_ptr = d.b_data.max + 1; + d.b_data.align_ptr = d.b_data.align; + d.b_data.weight_ptr = d.b_data.weight; + d.b_data.padding_ptr = d.b_data.padding; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.canvas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.canvas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + /* Evas box with vertical layout */ + d.box = evas_object_box_add(d.canvas); + evas_object_box_layout_set( + d.box, evas_object_box_layout_vertical, NULL, NULL); + evas_object_show(d.box); + + /* this is a border around the box, container of the rectangles we + * are going to experiment with (changing some size hints). this + * way you can see how the container relates to the children */ + d.border = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(d.border, border_img_path, NULL); + evas_object_image_border_set(d.border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE); + evas_object_show(d.border); + + d.t_rect = evas_object_rectangle_add(d.canvas); + evas_object_color_set(d.t_rect, 0, 0, 255, 255); + + evas_object_size_hint_min_set( + d.t_rect, d.t_data.min_ptr->w, d.t_data.min_ptr->h); + evas_object_show(d.t_rect); + evas_object_box_append(d.box, d.t_rect); + + d.b_rect = evas_object_rectangle_add(d.canvas); + evas_object_color_set(d.b_rect, 0, 255, 0, 255); + + evas_object_size_hint_min_set( + d.b_rect, d.b_data.min_ptr->w, d.b_data.min_ptr->h); + evas_object_show(d.b_rect); + evas_object_box_append(d.box, d.b_rect); + + _canvas_resize_cb(d.ee); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + ecore_evas_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"); + return -1; +} + diff --git a/src/examples/evas/evas-images.c b/src/examples/evas/evas-images.c new file mode 100644 index 0000000000..a8cf3c41fa --- /dev/null +++ b/src/examples/evas/evas-images.c @@ -0,0 +1,353 @@ +/** + * Simple Evas example illustrating some image objects functions + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas-images evas-images.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; +static const char *valid_path = PACKAGE_EXAMPLES_DIR "/enlightenment.png"; +static const char *bogus_path = "/tmp/non-existent-220986.png"; +static const char *commands = \ + "commands are:\n" + "\tx - change image's x fill coordinate\n" + "\ty - change image's y fill coordinate\n" + "\tw - change image's w fill size\n" + "\te - change image's h fill size\n" + "\tf - toggle image filled property (overrides fill)\n" + "\ta - toggle image's alpha channel usage\n" + "\tm - toggle border's smooth scaling\n" + "\tt - change border's thickness\n" + "\tb - change border's center region aspect\n" + "\tc - change border's scaling factor\n" + "\ts - print image's fill property status\n" + "\th - print help\n"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *img1, *img2, *bg, *border; +}; + +static struct test_data d = {0}; + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static const char * +_border_fill_mode_to_str(Evas_Border_Fill_Mode mode) +{ + switch (mode) + { + case EVAS_BORDER_FILL_NONE: + return "none"; + + case EVAS_BORDER_FILL_DEFAULT: + return "default"; + + case EVAS_BORDER_FILL_SOLID: + return "solid"; + + default: + return "invalid"; + } +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "m") == 0) /* toggle border image's smooth scaling */ + { + Eina_Bool smooth_scale = evas_object_image_smooth_scale_get(d.border); + + evas_object_image_smooth_scale_set(d.border, !smooth_scale); + + fprintf(stdout, "Image's border is now %s smooth scaling\n", + smooth_scale ? "without" : "with"); + + return; + } + + if (strcmp(ev->keyname, "t") == 0) /* change border's thickness */ + { + int l, r, t, b; + + evas_object_image_border_get(d.border, &l, &r, &t, &b); + + l = (l + 3) % 9; + r = (r + 3) % 9; + t = (t + 3) % 9; + b = (b + 3) % 9; + + evas_object_image_border_set(d.border, l, r, t, b); + + fprintf(stdout, "Image's border thickness is now %d\n", l); + + return; + } + + if (strcmp(ev->keyname, "c") == 0) /* change border's scaling factor */ + { + double scale = evas_object_image_border_scale_get(d.border); + + scale *= 2; + if (scale > 4.0) scale = 1.0; + + evas_object_image_border_scale_set(d.border, scale); + + fprintf(stdout, "Image's border scaling factor is now %f\n", scale); + + return; + } + + if (strcmp(ev->keyname, "b") == 0) /* change border's center + * region's aspect */ + { + Eina_Bool fill = \ + evas_object_image_border_center_fill_get(d.border); + + fill = (fill + 1) % 3; + + evas_object_image_border_center_fill_set(d.border, fill); + + fprintf(stdout, "Image's border center region aspect is now \"%s\"\n", + _border_fill_mode_to_str(fill)); + + return; + } + + if (strcmp(ev->keyname, "a") == 0) /* toggle alpha channel usage */ + { + Eina_Bool alpha = evas_object_image_alpha_get(d.img1); + + evas_object_image_alpha_set(d.img1, !alpha); + + fprintf(stdout, "Image's alpha channel is now %s\n", + alpha ? "off" : "on"); + + return; + } + + if (strcmp(ev->keyname, "f") == 0) /* toggle filled property */ + { + Eina_Bool filled = evas_object_image_filled_get(d.img1); + + evas_object_image_filled_set(d.img1, !filled); + + fprintf(stdout, "Image's x filled property is now %s\n", + filled ? "off" : "on"); + + return; + } + + if (strcmp(ev->keyname, "x") == 0) /* change x fill coordinate */ + { + Evas_Coord x, y, w, h; + + evas_object_image_fill_get(d.img1, &x, &y, &w, &h); + x = (x + 20) % (WIDTH / 2); + evas_object_image_fill_set(d.img1, x, y, w, h); + + fprintf(stdout, "Image's x fill coordinate changed to %d\n", x); + + return; + } + + if (strcmp(ev->keyname, "y") == 0) /* change y fill coordinate */ + { + Evas_Coord x, y, w, h; + + evas_object_image_fill_get(d.img1, &x, &y, &w, &h); + y = (y + 20) % (HEIGHT / 2); + evas_object_image_fill_set(d.img1, x, y, w, h); + + fprintf(stdout, "Image's y fill coordinate changed to %d\n", y); + + return; + } + + if (strcmp(ev->keyname, "w") == 0) /* change w fill size */ + { + Evas_Coord x, y, w, h; + + evas_object_image_fill_get(d.img1, &x, &y, &w, &h); + if (w == (WIDTH / 4)) w = (WIDTH / 2); + else if (w == WIDTH / 2) w = WIDTH; + else w = (WIDTH / 4); + evas_object_image_fill_set(d.img1, x, y, w, h); + + fprintf(stdout, "Image's w fill size changed to %d\n", w); + + return; + } + + if (strcmp(ev->keyname, "e") == 0) /* change h fill size */ + { + Evas_Coord x, y, w, h; + + evas_object_image_fill_get(d.img1, &x, &y, &w, &h); + if (h == (HEIGHT / 4)) h = (HEIGHT / 2); + else if (h == HEIGHT / 2) h = HEIGHT; + else h = (HEIGHT / 4); + evas_object_image_fill_set(d.img1, x, y, w, h); + + fprintf(stdout, "Image's h fill size changed to %d\n", h); + + return; + } + + if (strcmp(ev->keyname, "s") == 0) /* status */ + { + Evas_Coord x, y, w, h; + + evas_object_image_fill_get(d.img1, &x, &y, &w, &h); + + fprintf(stdout, "Image has fill properties set to: %d, %d, %d, %d\n", + x, y, w, h); + + return; + } +} + +int +main(void) +{ + int err; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + d.img1 = evas_object_image_add(d.evas); + evas_object_image_file_set(d.img1, valid_path, NULL); + err = evas_object_image_load_error_get(d.img1); + if (err != EVAS_LOAD_ERROR_NONE) + { + fprintf(stderr, "could not load image '%s'. error string is \"%s\"\n", + valid_path, evas_load_error_str(err)); + } + else + { + fprintf(stdout, + "loaded image '%s' with succes! error string is \"%s\"\n", + valid_path, evas_load_error_str(err)); + + evas_object_move(d.img1, 3, 3); + evas_object_image_fill_set(d.img1, 0, 0, WIDTH / 2, HEIGHT / 2); + evas_object_resize(d.img1, WIDTH / 2, HEIGHT / 2); + evas_object_show(d.img1); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + } + + /* this is a border around the image above, here just to emphasize + * its geometry */ + d.border = evas_object_image_filled_add(d.evas); + evas_object_image_file_set(d.border, border_img_path, NULL); + evas_object_image_border_set(d.border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE); + + evas_object_move(d.border, 0, 0); + evas_object_resize(d.border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6); + evas_object_show(d.border); + + /* image loading will fail for this one -- unless one cheats and + * puts a valid image on that path */ + d.img2 = evas_object_image_add(d.evas); + evas_object_image_file_set(d.img2, bogus_path, NULL); + err = evas_object_image_load_error_get(d.img2); + if (err != EVAS_LOAD_ERROR_NONE) + { + fprintf(stderr, "could not load image '%s': error string is \"%s\"\n", + bogus_path, evas_load_error_str(err)); + } + else + { + evas_object_move(d.img2, WIDTH / 2, HEIGHT / 2); + evas_object_image_fill_set(d.img2, 0, 0, WIDTH / 2, HEIGHT / 2); + evas_object_resize(d.img2, WIDTH / 2, HEIGHT / 2); + evas_object_show(d.img2); + } + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-images2.c b/src/examples/evas/evas-images2.c new file mode 100644 index 0000000000..64f4c9fc43 --- /dev/null +++ b/src/examples/evas/evas-images2.c @@ -0,0 +1,311 @@ +/** + * Simple Evas example illustrating some image objects functions + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader/saver also built. See stdout/stderr + * for output. + * + * @verbatim + * gcc -o evas-images2 evas-images2.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *img_path = PACKAGE_EXAMPLES_DIR "/enlightenment.png"; +static const char *commands = \ + "commands are:\n" + "\tp - change proxy image's source\n" + "\ts - print noise image's stride value\n" + "\ta - save noise image to disk (/tmp dir)\n" + "\tv - change source visibility\n" + "\te - enable/disable source events\n" + "\th - print help\n"; + +const char *file_path = "/tmp/evas-images2-example.png"; +const char *quality_str = "quality=100"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *logo, *noise_img, *proxy_img, *bg; +}; + +static struct test_data d = {0}; + +static void +_mouse_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Mouse_Down *ev = event_info; + printf("Mouse Down - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_mouse_move(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Mouse_Move *ev = event_info; + printf("Mouse Move - obj(%p), coords(%d %d)\n", obj, ev->cur.canvas.x, + ev->cur.canvas.y); +} + +static void +_mouse_up(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Mouse_Up *ev = event_info; + printf("Mouse Up - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_multi_down(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Multi_Down *ev = event_info; + printf("Multi Down - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_multi_move(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Multi_Move *ev = event_info; + printf("Multi Move - obj(%p), coords(%d %d)\n", obj, ev->cur.canvas.x, + ev->cur.canvas.y); +} + +static void +_multi_up(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Multi_Up *ev = event_info; + printf("Multi Up - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_mouse_in(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Mouse_In *ev = event_info; + printf("Mouse In - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_mouse_out(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Mouse_Out *ev = event_info; + printf("Mouse Out - obj(%p), coords(%d %d)\n", obj, ev->canvas.x, + ev->canvas.y); +} + +static void +_hold(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj, + void *event_info) +{ + Evas_Event_Hold *ev = event_info; + printf("Hold - obj(%p), hold(%d)\n", obj, ev->hold); +} + +static void +_on_preloaded(void *data __UNUSED__, + Evas *e __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info __UNUSED__) +{ + fprintf(stdout, "Image has been pre-loaded!\n"); +} + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "s") == 0) /* print proxy image' stride value */ + { + int stride = evas_object_image_stride_get(d.noise_img); + + fprintf(stdout, "Image has row stride value of %d, which accounts" + " for %d pixels\n", stride, stride / 4); + + return; + } + + if (strcmp(ev->keyname, "p") == 0) /* change proxy's source */ + { + Evas_Object *source = evas_object_image_source_get(d.proxy_img); + + if (source == d.logo) source = d.noise_img; + else source = d.logo; + + evas_object_image_source_set(d.proxy_img, source); + + fprintf(stdout, "Proxy image's source changed\n"); + + return; + } + + if (strcmp(ev->keyname, "a") == 0) /* save noise image to disk */ + { + if (!evas_object_image_save(d.noise_img, file_path, NULL, quality_str)) + fprintf(stderr, "Cannot save image to '%s' (flags '%s')\n", + file_path, quality_str); + else + fprintf(stdout, "Image saved to '%s' (flags '%s'), check it out with " + "an image viewer\n", file_path, quality_str); + + return; + } + + if (strcmp(ev->keyname, "v") == 0) /* change source visibility */ + { + Eina_Bool src_visible = + evas_object_image_source_visible_get(d.proxy_img); + evas_object_image_source_visible_set(d.proxy_img, !src_visible); + return; + } + + if (strcmp(ev->keyname, "e") == 0) /* change source events */ + { + Eina_Bool src_events = evas_object_image_source_events_get(d.proxy_img); + evas_object_image_source_events_set(d.proxy_img, !src_events); + return; + } +} + +int +main(void) +{ + unsigned int i; + unsigned int pixels[(WIDTH / 4) * (HEIGHT / 4)]; + + srand(time(NULL)); + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.logo = evas_object_image_filled_add(d.evas); + + evas_object_event_callback_add( + d.logo, EVAS_CALLBACK_IMAGE_PRELOADED, _on_preloaded, NULL); + evas_object_image_preload(d.logo, EINA_TRUE); + + evas_object_image_file_set(d.logo, img_path, NULL); + evas_object_resize(d.logo, WIDTH / 2, HEIGHT / 2); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MOUSE_UP, _mouse_up, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MOUSE_IN, _mouse_in, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MOUSE_OUT, _mouse_out, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MULTI_DOWN, _multi_down, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MULTI_UP, _multi_up, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_MULTI_MOVE, _multi_move, 0); + evas_object_event_callback_add(d.logo, EVAS_CALLBACK_HOLD, _hold, 0); + + evas_object_show(d.logo); + + /* creating noise image */ + for (i = 0; i < sizeof(pixels) / sizeof(pixels[0]); i++) + pixels[i] = rand(); + + d.noise_img = evas_object_image_add(d.evas); + evas_object_image_size_set(d.noise_img, WIDTH / 4, HEIGHT / 4); + evas_object_image_data_set(d.noise_img, pixels); + evas_object_image_filled_set(d.noise_img, EINA_TRUE); + evas_object_move(d.noise_img, (WIDTH * 3) / 4, 0); + evas_object_resize(d.noise_img, WIDTH / 4, HEIGHT / 4); + evas_object_show(d.noise_img); + fprintf(stdout, "Creating noise image with size %d, %d\n", + WIDTH / 4, HEIGHT / 4); + + d.proxy_img = evas_object_image_filled_add(d.evas); + evas_object_image_source_set(d.proxy_img, d.logo); + evas_object_move(d.proxy_img, WIDTH / 4, HEIGHT / 2); + evas_object_resize(d.proxy_img, WIDTH / 2, HEIGHT / 2); + evas_object_show(d.proxy_img); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-images3.c b/src/examples/evas/evas-images3.c new file mode 100644 index 0000000000..5d627b0a37 --- /dev/null +++ b/src/examples/evas/evas-images3.c @@ -0,0 +1,196 @@ +/** + * Simple Evas example illustrating some image objects functions + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader/saver also built. See stdout/stderr + * for output. + * + * @verbatim + * gcc -o evas-images2 evas-images2.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *img_path = PACKAGE_EXAMPLES_DIR "/enlightenment.png"; +static const char *commands = \ + "commands are:\n" + "\tw - write new pixel data to image\n" + "\ti - print image info\n" + "\ta - save noise image to disk (/tmp dir)\n" + "\th - print help\n"; + +const char *file_path = "/tmp/evas-images2-example.png"; +const char *quality_str = "quality=100"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; + Evas_Object *logo, *logo1; +}; + +static struct test_data d = {0}; + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); + evas_object_resize(d.logo, w / 2, h); + evas_object_move(d.logo1, w / 2, 0); + evas_object_resize(d.logo1, w / 2, h); +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "i") == 0) /* change proxy's source */ + { + int stride = evas_object_image_stride_get(d.logo); + int w, h; + + evas_object_image_size_get(d.logo, &w, &h); + + printf("image size: %dx%d; stride: %d\n", w, h, stride); + + return; + } + + if (strcmp(ev->keyname, "w") == 0) /* save noise image to disk */ + { + int i; + char *pixels = evas_object_image_data_get(d.logo, EINA_FALSE); + char *bufpixels; + int w, h; + int stride; + Eina_Bool equal = EINA_TRUE; + + evas_object_image_size_get(d.logo, &w, &h); + stride = evas_object_image_stride_get(d.logo); + + bufpixels = malloc(sizeof(char) * stride * h); + memcpy(bufpixels, pixels, sizeof(char) * stride * h); + + pixels = evas_object_image_data_get(d.logo, EINA_TRUE); + + for (i = 0; i < (stride * h); i++) + { + if (bufpixels[i] != pixels[i]) + { + equal = EINA_FALSE; + break; + } + } + + free(bufpixels); + + if (!equal) + printf("write pixels different from readonly pixels.\n"); + + for (i = ((stride * h) / 4) ; i < ((stride * h) / 2) ; i++) + { + pixels[i] = 0; + } + + // evas_object_image_data_set(d.logo, pixels); + evas_object_image_data_update_add(d.logo, 0, 0, w, h); + return; + } +} + +int +main(void) +{ + // unsigned int i; + // unsigned int pixels[(WIDTH / 4) * (HEIGHT / 4)]; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.logo = evas_object_image_filled_add(d.evas); + + evas_object_image_file_set(d.logo, img_path, NULL); + evas_object_resize(d.logo, WIDTH / 2, HEIGHT); + evas_object_show(d.logo); + + d.logo1 = evas_object_image_filled_add(d.evas); + evas_object_image_file_set(d.logo1, img_path, NULL); + evas_object_resize(d.logo1, WIDTH / 2, HEIGHT); + evas_object_move(d.logo1, WIDTH / 2, 0); + evas_object_show(d.logo1); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-init-shutdown.c b/src/examples/evas/evas-init-shutdown.c new file mode 100644 index 0000000000..a7508d8685 --- /dev/null +++ b/src/examples/evas/evas-init-shutdown.c @@ -0,0 +1,56 @@ +/** + * Simple example illustrating usage of evas_init() and + * evas_shutdown(). Usually one would instantiate a canvas to have + * something useful out of Evas. For an example of this kind, see the + * @ref Example_Evas_Buffer_Simple. + * + * Here, we are just listing the engine Evas was compiled with support + * to. + * + * @verbatim + * gcc -o evas-init-shutdown evas-init-shutdown.c `pkg-config --libs \ + * --cflags evas` + * @endverbatim + * + */ + +#include +#include +#include + +/* + * Simple example illustrating usage of evas_init() and + * evas_shutdown(). Usually one would instantiate a canvas to have + * something useful out of Evas. For an example of this kind, see the + * evas-buffer-simple.c, which requires the buffer engine module + * compiled in Evas. + * + * Here, we are just listing the engine Evas was compiled with support + * to. + */ + +int +main(void) +{ + Eina_List *engine_list, *l; + char *engine_name; + + evas_init(); + + engine_list = evas_render_method_list(); + if (!engine_list) + { + fprintf(stderr, "ERROR: Evas supports no engines! Exit.\n"); + exit(-1); + } + + printf("Available Evas Engines:\n"); + EINA_LIST_FOREACH(engine_list, l, engine_name) + printf("%s\n", engine_name); + + evas_render_method_list_free(engine_list); + + evas_shutdown(); + return 0; + } + diff --git a/src/examples/evas/evas-map-utils.c b/src/examples/evas/evas-map-utils.c new file mode 100644 index 0000000000..2d15882f53 --- /dev/null +++ b/src/examples/evas/evas-map-utils.c @@ -0,0 +1,321 @@ +/* + * gcc -o evas-map-utils evas-map-utils.c `pkg-config --cflags --libs evas ecore ecore-evas` + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#define __UNUSED__ +#endif + +#include +#include + +#include +#include +#include +#include + +#define WIDTH 480 +#define HEIGHT 480 + +typedef struct +{ + Ecore_Evas *ee; + Evas *canvas; + struct { + int r, g, b, a; + } colors[6]; + int colors_index; + int frame; + Eina_Bool alpha : 1; + Eina_Bool smooth : 1; + Eina_Bool backface_culling : 1; + Eina_Bool apply_perspective : 1; + Eina_Bool apply_lighting : 1; +} App_Data; + +static const char *help_string = + "Valid commands:\n" + "\ta - toggle alpha for maps\n" + "\ts - toggle smooth for maps\n" + "\tc - switch map color\n" + "\tb - toggle backface culling\n" + "\tp - toggle perspective\n" + "\tl - toggle lighting\n" + "\th - prints this help\n"; + +static Eina_Bool +_anim_cb(void *data) +{ + App_Data *ad = data; + Evas_Map *m; + const Evas_Map *old_map; + Evas_Object *o; + int r, g, b, a; + int win_w, win_h, img_w, img_h; + Evas_Coord x, y, w, h; + + evas_output_size_get(ad->canvas, &win_w, &win_h); + + m = evas_map_new(4); + evas_map_smooth_set(m, ad->smooth); + evas_map_alpha_set(m, ad->alpha); + + r = ad->colors[ad->colors_index].r; + g = ad->colors[ad->colors_index].g; + b = ad->colors[ad->colors_index].b; + a = ad->colors[ad->colors_index].a; + evas_map_util_points_color_set(m, r, g, b, a); + + o = evas_object_name_find(ad->canvas, "obj1"); + evas_object_geometry_get(o, &x, &y, &w, &h); + + evas_map_util_points_populate_from_object(m, o); + evas_map_util_rotate(m, 3 * ad->frame, x + (w / 2), y + (h / 2)); + evas_object_map_set(o, m); + evas_object_map_enable_set(o, EINA_TRUE); + + o = evas_object_name_find(ad->canvas, "obj2"); + evas_object_geometry_get(o, &x, &y, &w, &h); + evas_object_image_size_get(o, &img_w, &img_h); + + evas_map_util_points_populate_from_object_full(m, o, 100); + evas_map_point_image_uv_set(m, 0, 0, 0); + evas_map_point_image_uv_set(m, 1, img_w, 0); + evas_map_point_image_uv_set(m, 2, img_w, img_h); + evas_map_point_image_uv_set(m, 3, 0, img_h); + evas_map_util_3d_rotate(m, ad->frame * 6, ad->frame * 6, ad->frame * 6, + x + (w / 3), y + 10, 0); + if (ad->apply_lighting) + evas_map_util_3d_lighting(m, win_w / 2, win_h / 2, -100, + 255, 255, 255, 0, 0, 0); + evas_object_map_set(o, m); + evas_object_map_enable_set(o, EINA_TRUE); + + o = evas_object_name_find(ad->canvas, "obj3"); + evas_object_geometry_get(o, &x, &y, &w, &h); + evas_object_image_size_get(o, &img_w, &img_h); + + evas_map_util_points_populate_from_geometry(m, x, y + (h / 2), w, h, -20); + evas_map_point_image_uv_set(m, 0, 0, 0); + evas_map_point_image_uv_set(m, 1, img_w, 0); + evas_map_point_image_uv_set(m, 2, img_w, img_h); + evas_map_point_image_uv_set(m, 3, 0, img_h); + evas_map_util_3d_rotate(m, 20, ad->frame * 6, 0, + x + (w / 2), y + (w / 2), w / 2); + + if (ad->apply_perspective) + evas_map_util_3d_perspective(m, x + (w / 2), y + (h / 2), 0, 256); + if (ad->apply_lighting) + { + Evas_Coord mx, my; + evas_pointer_canvas_xy_get(ad->canvas, &mx, &my); + evas_map_util_3d_lighting(m, mx, my, -256, + 255, 255, 255, 0, 0, 0); + } + if (ad->backface_culling) + { + if (evas_map_util_clockwise_get(m)) + evas_object_show(o); + else + evas_object_hide(o); + } + else + evas_object_show(o); + evas_object_map_set(o, m); + evas_object_map_enable_set(o, EINA_TRUE); + + evas_map_free(m); + + o = evas_object_name_find(ad->canvas, "obj4"); + evas_object_geometry_get(o, &x, &y, &w, &h); + evas_object_image_size_get(evas_object_image_source_get(o), &img_w, &img_h); + + m = evas_map_new(4); + evas_map_point_coord_set(m, 0, x, y + h, 0); + evas_map_point_coord_set(m, 1, x + w, y + h, 0); + evas_map_point_coord_set(m, 2, win_w - 10, win_h - 30, 0); + evas_map_point_coord_set(m, 3, (win_w / 2) + 10, win_h - 30, 0); + evas_map_point_image_uv_set(m, 0, 0, img_h); + evas_map_point_image_uv_set(m, 1, img_w, img_h); + evas_map_point_image_uv_set(m, 2, img_w, 2 * (img_h / 3)); + evas_map_point_image_uv_set(m, 3, 0, 2 * (img_h / 3)); + evas_map_point_color_set(m, 0, 200, 200, 200, 150); + evas_map_point_color_set(m, 1, 200, 200, 200, 150); + evas_map_point_color_set(m, 2, 0, 0, 0, 0); + evas_map_point_color_set(m, 3, 0, 0, 0, 0); + evas_object_map_set(o, m); + evas_object_map_enable_set(o, EINA_TRUE); + + evas_map_free(m); + + ad->frame = (ad->frame + 1) % 60; + + return EINA_TRUE; +} + +static void +_on_keydown(void *data, Evas *e, Evas_Object *o, void *event) +{ + App_Data *ad = data; + Evas_Event_Key_Down *ev = event; + const Evas_Modifier *mods; + + mods = evas_key_modifier_get(ad->canvas); + switch (ev->keyname[0]) + { + case 'a': + ad->alpha = !ad->alpha; + break; + case 's': + ad->smooth = !ad->smooth; + break; + case 'c': + ad->colors_index = (ad->colors_index + 1) % 6; + break; + case 'b': + ad->backface_culling = !ad->backface_culling; + break; + case 'p': + ad->apply_perspective = !ad->apply_perspective; + break; + case 'l': + ad->apply_lighting = !ad->apply_lighting; + break; + case 'h': + puts(help_string); + break; + default: + break; + } +} + +static void +_objs_fit(Evas *e) +{ + Evas_Object *o; + int w, h; + + evas_output_size_get(e, &w, &h); + w /= 2; + h /= 2; + + o = evas_object_name_find(e, "obj1"); + evas_object_move(o, w / 4, h / 4); + evas_object_resize(o, w / 2, h / 2); + + o = evas_object_name_find(e, "obj2"); + evas_object_move(o, 5 * w / 4, h / 4); + evas_object_resize(o, w / 2, h / 2); + + o = evas_object_name_find(e, "obj3"); + evas_object_move(o, w / 4, 5 * h / 4); + evas_object_resize(o, w / 2, h / 2); + + o = evas_object_name_find(e, "obj4_source"); + evas_object_move(o, 5 * w / 4, 5 * h / 4); + evas_object_resize(o, w / 2, h / 2); + + o = evas_object_name_find(e, "obj4"); + evas_object_move(o, 5 * w / 4, 5 * h / 4); + evas_object_resize(o, w / 2, h / 2); +} + +static void +_on_resize(void *data __UNUSED__, Evas *e, Evas_Object *o __UNUSED__, void *event __UNUSED__) +{ + _objs_fit(e); +} + +static void +_on_free(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *o __UNUSED__, void *event __UNUSED__) +{ + ecore_main_loop_quit(); +} + +int +main(void) +{ + Evas_Object *bg, *o, *osrc; + static App_Data d = { + .ee = NULL, + .canvas = NULL, + .colors = { + { 255, 255, 255, 255 }, + { 128, 128, 0, 128 }, + { 255, 0, 0, 255 }, + { 64, 128, 255, 255 }, + { 11, 23, 58, 132 }, + { 0, 0, 0, 255 } + }, + .colors_index = 0, + .frame = 0, + .alpha = EINA_FALSE, + .smooth = EINA_FALSE, + .backface_culling = EINA_FALSE, + .apply_perspective = EINA_TRUE, + .apply_lighting = EINA_TRUE + }; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + d.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + d.canvas = ecore_evas_get(d.ee); + + bg = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(bg, "cube1.png", NULL); + ecore_evas_object_associate(d.ee, bg, 0); + evas_object_focus_set(bg, EINA_TRUE); + evas_object_move(bg, 0, 0); + evas_object_resize(bg, WIDTH, HEIGHT); + evas_object_show(bg); + + o = evas_object_rectangle_add(d.canvas); + evas_object_name_set(o, "obj1"); + evas_object_color_set(o, 128, 0, 200, 200); + evas_object_show(o); + + o = evas_object_image_filled_add(d.canvas); + evas_object_name_set(o, "obj2"); + evas_object_image_file_set(o, "enlightenment.png", NULL); + evas_object_show(o); + + o = evas_object_image_filled_add(d.canvas); + evas_object_name_set(o, "obj3"); + evas_object_image_file_set(o, "enlightenment.png", NULL); + evas_object_show(o); + + osrc = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(osrc, "im1.png", NULL); + evas_object_name_set(osrc, "obj4_source"); + evas_object_show(osrc); + + o = evas_object_image_filled_add(d.canvas); + evas_object_image_source_set(o, osrc); + evas_object_name_set(o, "obj4"); + evas_object_show(o); + + _objs_fit(d.canvas); + + evas_object_event_callback_add(bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, &d); + evas_object_event_callback_add(bg, EVAS_CALLBACK_RESIZE, _on_resize, NULL); + evas_object_event_callback_add(bg, EVAS_CALLBACK_FREE, _on_free, NULL); + + ecore_animator_add(_anim_cb, &d); + + ecore_main_loop_begin(); + + ecore_evas_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"); +panic: + ecore_evas_shutdown(); + return -1; +} diff --git a/src/examples/evas/evas-object-manipulation.c b/src/examples/evas/evas-object-manipulation.c new file mode 100644 index 0000000000..e9c94427c6 --- /dev/null +++ b/src/examples/evas/evas-object-manipulation.c @@ -0,0 +1,235 @@ +/** + * Simple Evas example illustrating basic objects manipulation. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas-object-manipulation evas-object-manipulation.c `pkg-config --libs --cflags ecore evas ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *img_path = PACKAGE_EXAMPLES_DIR "/enlightenment.png"; +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +struct test_data +{ + Ecore_Evas *ee; + Evas *canvas; + Evas_Object *img, *bg, *clipper, *clipper_border, *text; +}; + +static struct test_data d = {0}; + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, "commands are:\n" + "\to - change clipper's opacity\n" + "\tr - toggle clipper's color between red and white\n" + "\tc - toggle clipper's clipping function\n" + "\tv - toggle clipper's visibility\n"); + return; + } + + if (strcmp(ev->keyname, "o") == 0) /* change clipper's opacity */ + { + int alpha, r, g, b; + + evas_object_color_get(d.clipper, &r, &g, &b, &alpha); + alpha -= 20; + if (alpha < 0) + alpha = 255; + + evas_object_color_set(d.clipper, r, g, b, alpha); + + fprintf(stdout, "Changing clipper's opacity: %d%%\n", + (int)((alpha / 255.0) * 100)); + return; + } + + if (strcmp(ev->keyname, "r") == 0) /* toggle clipper's color + * between red and white */ + { + int alpha, r, g, b; + + fprintf(stdout, "Changing clipper's color to"); + + evas_object_color_get(d.clipper, &r, &g, &b, &alpha); + if (g > 0) + { + fprintf(stdout, "red\n"); + g = b = 0; + } + else + { + fprintf(stdout, "white\n"); + g = b = 255; + } + + evas_object_color_set(d.clipper, r, g, b, alpha); + return; + } + + if (strcmp(ev->keyname, "c") == 0) /* toggle clipper's clipping function */ + { + fprintf(stdout, "Toggling clipping "); + + if (evas_object_clip_get(d.img) == d.clipper) + { + evas_object_clip_unset(d.img); + fprintf(stdout, "off\n"); + } + else + { + evas_object_clip_set(d.img, d.clipper); + fprintf(stdout, "on\n"); + } + return; + } + + if (strcmp(ev->keyname, "v") == 0) /* toggle clipper's visibility */ + { + fprintf(stdout, "Clipper is now "); + + if (evas_object_visible_get(d.clipper)) + { + evas_object_hide(d.clipper); + fprintf(stdout, "hidden\n"); + } + else + { + evas_object_show(d.clipper); + fprintf(stdout, "visible\n"); + } + return; + } +} + +int +main(void) +{ + int err; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.canvas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.bg, "background rectangle"); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.img = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(d.img, img_path, NULL); + err = evas_object_image_load_error_get(d.img); + if (err != EVAS_LOAD_ERROR_NONE) + { + goto panic; + } + else + { + evas_object_move(d.img, 0, 0); + evas_object_resize(d.img, WIDTH, HEIGHT); + evas_object_show(d.img); + + fprintf(stdout, "Image object added, type is: %s\n", + evas_object_type_get(d.img)); + } + + /* border on the image's clipper, here just to emphasize its position */ + d.clipper_border = evas_object_image_filled_add(d.canvas); + evas_object_image_file_set(d.clipper_border, border_img_path, NULL); + err = evas_object_image_load_error_get(d.clipper_border); + if (err != EVAS_LOAD_ERROR_NONE) + { + goto panic; + } + else + { + evas_object_image_border_set(d.clipper_border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set( + d.clipper_border, EVAS_BORDER_FILL_NONE); + evas_object_move(d.clipper_border, (WIDTH / 4) - 3, (HEIGHT / 4) - 3); + evas_object_resize( + d.clipper_border, (WIDTH / 2) + 6, (HEIGHT / 2) + 6); + evas_object_show(d.clipper_border); + } + + /* solid white clipper (note that it's the default color for a + * rectangle) - it won't change clippees' colors, then (multiplying + * by 255) */ + d.clipper = evas_object_rectangle_add(d.canvas); + evas_object_move(d.clipper, WIDTH / 4, HEIGHT / 4); + evas_object_resize(d.clipper, WIDTH / 2, HEIGHT / 2); + evas_object_clip_set(d.img, d.clipper); + evas_object_show(d.clipper); + + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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"); +panic: + ecore_evas_free(d.ee); + ecore_evas_shutdown(); + return -1; +} diff --git a/src/examples/evas/evas-smart-interface.c b/src/examples/evas/evas-smart-interface.c new file mode 100644 index 0000000000..97b9a9e6a6 --- /dev/null +++ b/src/examples/evas/evas-smart-interface.c @@ -0,0 +1,790 @@ +/** + * Simple Evas example illustrating Evas smart interfaces + * + * You'll need at least one engine built for it (excluding the buffer + * one). See stdout/stderr for output. + * + * @verbatim + * gcc -o evas-smart-interface evas-smart-interface.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *commands = \ + "commands are:\n" + "\tl - insert child rectangle on the left\n" + "\tr - insert child rectangle on the right\n" + "\tw - remove and delete all members from the smart object\n" + "\tright arrow - move smart object to the right\n" + "\tleft arrow - move smart object to the left\n" + "\tup arrow - move smart object up\n" + "\tdown arrow - move smart object down\n" + "\td - decrease smart object's size\n" + "\ti - increase smart object's size\n" + "\tc - change smart object's clipper color\n" + "\th - print help\n" + "\tq - quit\n" +; + +#define WHITE {255, 255, 255, 255} +#define RED {255, 0, 0, 255} +#define GREEN {0, 255, 0, 255} +#define BLUE {0, 0, 255, 255} + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *smt, *bg, *clipper, *rects[2]; +}; + +struct color_tuple +{ + int r, g, b, a; +} clipper_colors[4] = {WHITE, RED, GREEN, BLUE}; +int cur_color = 0; + +static const char * +_index_to_color(int i) +{ + switch (i) + { + case 0: + return "WHITE (default)"; + + case 1: + return "RED"; + + case 2: + return "GREEN"; + + case 3: + return "BLUE"; + + default: + return "other"; + } +} + +static struct test_data d = {0}; +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +#define _evas_smart_example_type "Evas_Smart_Example" + +static const char iface1_data[] = "iface1_data"; +static const char IFACE1_NAME[] = "iface1"; + +static Eina_Bool _iface1_add(Evas_Object *); +static void _iface1_del(Evas_Object *); +static void _iface1_custom_fn(Evas_Object *); + +typedef struct _Evas_Smart_Example_Interface Evas_Smart_Example_Interface; +struct _Evas_Smart_Example_Interface +{ + Evas_Smart_Interface base; + void (*example_func)(Evas_Object *obj); +}; + +static Evas_Smart_Example_Interface iface1; + +static Eina_Bool +_iface1_add(Evas_Object *obj) +{ + printf("iface1's add()!\n"); + + return EINA_TRUE; +} + +static void +_iface1_del(Evas_Object *obj) +{ + printf("iface1's del()! Data is %s\n", + (char *)evas_object_smart_interface_data_get + (obj, (Evas_Smart_Interface *)&iface1)); +} + +static void +_iface1_custom_fn(Evas_Object *obj) +{ + printf("iface1's custom_fn()!\n"); +} + +static const Evas_Smart_Interface *_smart_interfaces[] = +{ + (Evas_Smart_Interface *)&iface1, NULL +}; + +#define EVT_CHILDREN_NUMBER_CHANGED "children,changed" + +static const Evas_Smart_Cb_Description _smart_callbacks[] = +{ + {EVT_CHILDREN_NUMBER_CHANGED, "i"}, + {NULL, NULL} +}; + +typedef struct _Evas_Smart_Example_Data Evas_Smart_Example_Data; +/* + * This structure augments clipped smart object's instance data, + * providing extra members required by our example smart object's + * implementation. + */ +struct _Evas_Smart_Example_Data +{ + Evas_Object_Smart_Clipped_Data base; + Evas_Object *children[2], *border; + int child_count; +}; + +#define EVAS_SMART_EXAMPLE_DATA_GET(o, ptr) \ + Evas_Smart_Example_Data * ptr = evas_object_smart_data_get(o) + +#define EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN(o, ptr) \ + EVAS_SMART_EXAMPLE_DATA_GET(o, ptr); \ + if (!ptr) \ + { \ + fprintf(stderr, "No widget data for object %p (%s)!", \ + o, evas_object_type_get(o)); \ + fflush(stderr); \ + abort(); \ + return; \ + } + +#define EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ + EVAS_SMART_EXAMPLE_DATA_GET(o, ptr); \ + if (!ptr) \ + { \ + fprintf(stderr, "No widget data for object %p (%s)!", \ + o, evas_object_type_get(o)); \ + fflush(stderr); \ + abort(); \ + return val; \ + } + +EVAS_SMART_SUBCLASS_IFACE_NEW + (_evas_smart_example_type, _evas_smart_example, Evas_Smart_Class, + Evas_Smart_Class, evas_object_smart_clipped_class_get, _smart_callbacks, + _smart_interfaces); + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static void +_on_child_del(void *data, + Evas *evas __UNUSED__, + Evas_Object *o, + void *einfo __UNUSED__) +{ + Evas_Object *example_smart = data; + long idx; + + EVAS_SMART_EXAMPLE_DATA_GET(example_smart, priv); + + idx = (long)evas_object_data_get(o, "index"); + idx--; + + priv->children[idx] = NULL; + + evas_object_smart_member_del(o); + evas_object_smart_changed(example_smart); +} + +static void +_evas_smart_example_child_callbacks_unregister(Evas_Object *obj) +{ + evas_object_data_set(obj, "index", NULL); + evas_object_event_callback_del(obj, EVAS_CALLBACK_FREE, _on_child_del); +} + +static void +_evas_smart_example_child_callbacks_register(Evas_Object *o, + Evas_Object *child, + long idx) +{ + evas_object_event_callback_add(child, EVAS_CALLBACK_FREE, _on_child_del, o); + evas_object_data_set(child, "index", (void *)(++idx)); +} + +/* create and setup a new example smart object's internals */ +static void +_evas_smart_example_smart_add(Evas_Object *o) +{ + EVAS_SMART_DATA_ALLOC(o, Evas_Smart_Example_Data); + + /* this is a border around the smart object's area, delimiting it */ + priv->border = evas_object_image_filled_add(evas_object_evas_get(o)); + evas_object_image_file_set(priv->border, border_img_path, NULL); + evas_object_image_border_set(priv->border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set( + priv->border, EVAS_BORDER_FILL_NONE); + evas_object_smart_member_add(priv->border, o); + + _evas_smart_example_parent_sc->add(o); +} + +static void +_evas_smart_example_smart_del(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) + { + _evas_smart_example_child_callbacks_unregister(priv->children[0]); + priv->children[0] = NULL; + } + + if (priv->children[1]) + { + _evas_smart_example_child_callbacks_unregister(priv->children[1]); + priv->children[1] = NULL; + } + + _evas_smart_example_parent_sc->del(o); +} + +static void +_evas_smart_example_smart_show(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) evas_object_show(priv->children[0]); + if (priv->children[1]) evas_object_show(priv->children[1]); + evas_object_show(priv->border); + + _evas_smart_example_parent_sc->show(o); +} + +static void +_evas_smart_example_smart_hide(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) evas_object_hide(priv->children[0]); + if (priv->children[1]) evas_object_hide(priv->children[1]); + evas_object_hide(priv->border); + + _evas_smart_example_parent_sc->hide(o); +} + +static void +_evas_smart_example_smart_resize(Evas_Object *o, + Evas_Coord w, + Evas_Coord h) +{ + Evas_Coord ow, oh; + evas_object_geometry_get(o, NULL, NULL, &ow, &oh); + if ((ow == w) && (oh == h)) return; + + /* this will trigger recalculation */ + evas_object_smart_changed(o); +} + +/* act on child objects' properties, before rendering */ +static void +_evas_smart_example_smart_calculate(Evas_Object *o) +{ + Evas_Coord x, y, w, h; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN(o, priv); + evas_object_geometry_get(o, &x, &y, &w, &h); + + evas_object_resize(priv->border, w, h); + evas_object_move(priv->border, x, y); + + if (priv->children[0]) + { + evas_object_move(priv->children[0], x + 3, y + 3); + evas_object_resize(priv->children[0], (w / 2) - 3, (h / 2) - 3); + } + + if (priv->children[1]) + { + evas_object_move(priv->children[1], x + (w / 2), y + (h / 2)); + evas_object_resize(priv->children[1], (w / 2) - 3, (h / 2) - 3); + } +} + +/* setting our smart interface */ +static void +_evas_smart_example_smart_set_user(Evas_Smart_Class *sc) +{ + /* specializing these two */ + sc->add = _evas_smart_example_smart_add; + sc->del = _evas_smart_example_smart_del; + sc->show = _evas_smart_example_smart_show; + sc->hide = _evas_smart_example_smart_hide; + + /* clipped smart object has no hook on resizes or calculations */ + sc->resize = _evas_smart_example_smart_resize; + sc->calculate = _evas_smart_example_smart_calculate; +} + +/* BEGINS example smart object's own interface */ + +/* add a new example smart object to a canvas */ +Evas_Object * +evas_smart_example_add(Evas *evas) +{ + return evas_object_smart_add(evas, _evas_smart_example_smart_class_new()); +} + +static void +_evas_smart_example_remove_do(Evas_Smart_Example_Data *priv, + Evas_Object *child, + int idx) +{ + priv->children[idx] = NULL; + priv->child_count--; + _evas_smart_example_child_callbacks_unregister(child); + evas_object_smart_member_del(child); +} + +/* remove a child element, return its pointer (or NULL on errors) */ +Evas_Object * +evas_smart_example_remove(Evas_Object *o, + Evas_Object *child) +{ + long idx; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + + if (priv->children[0] != child && priv->children[1] != child) + { + fprintf(stderr, "You are trying to remove something not belonging to" + " the example smart object!\n"); + return NULL; + } + + idx = (long)evas_object_data_get(child, "index"); + idx--; + + _evas_smart_example_remove_do(priv, child, idx); + + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + evas_object_smart_changed(o); + + return child; +} + +/* set to return any previous object set to the left position of the + * smart object or NULL, if any (or on errors) */ +Evas_Object * +evas_smart_example_set_left(Evas_Object *o, + Evas_Object *child) +{ + Evas_Object *ret = NULL; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + if (!child) + return NULL; + + if (priv->children[1] == child) + { + fprintf(stderr, "You mustn't place a child on both slots of" + " the example smart object!\n"); + return NULL; + } + + if (priv->children[0]) + { + if (priv->children[0] != child) + { + ret = priv->children[0]; + _evas_smart_example_remove_do(priv, priv->children[0], 0); + } + else return child; + } + + priv->children[0] = child; + _evas_smart_example_child_callbacks_register(o, child, 0); + evas_object_smart_member_add(child, o); + evas_object_smart_changed(o); + + priv->child_count++; + if (!ret) + { + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + } + + return ret; +} + +/* set to return any previous object set to the right position of the + * smart object or NULL, if any (or on errors) */ +Evas_Object * +evas_smart_example_set_right(Evas_Object *o, + Evas_Object *child) +{ + Evas_Object *ret = NULL; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + if (!child) + return NULL; + + if (priv->children[0] == child) + { + fprintf(stderr, "You mustn't place a child on both slots of" + " the example smart object!\n"); + return NULL; + } + + if (priv->children[1]) + { + if (priv->children[1] != child) + { + ret = priv->children[1]; + _evas_smart_example_remove_do(priv, priv->children[1], 1); + } + else return child; + } + + priv->children[1] = child; + _evas_smart_example_child_callbacks_register(o, child, 1); + evas_object_smart_member_add(child, o); + evas_object_smart_changed(o); + + priv->child_count++; + if (!ret) + { + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + } + + return ret; +} + +/* END OF example smart object's own interface */ + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "q") == 0) /* print help */ + { + _on_destroy(NULL); + return; + } + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "w") == 0) /* clear out smart object (WRT + * members) */ + { + if (d.rects[0]) + { + evas_smart_example_remove(d.smt, d.rects[0]); + evas_object_del(d.rects[0]); + } + if (d.rects[1]) + { + evas_smart_example_remove(d.smt, d.rects[1]); + evas_object_del(d.rects[1]); + } + + memset(d.rects, 0, sizeof(d.rects)); + + fprintf(stdout, "Deleting all members of the smart object.\n"); + + return; + } + + if (strcmp(ev->keyname, "l") == 0) /* insert random colored + * rectangle on the left */ + { + Evas_Object *rect = evas_object_rectangle_add(d.evas), *prev; + evas_object_color_set( + rect, rand() % 255, rand() % 255, rand() % 255, 255); + evas_object_show(rect); + + prev = evas_smart_example_set_left(d.smt, rect); + d.rects[0] = rect; + + fprintf(stdout, "Setting smart object's left spot with a new" + " rectangle.\n"); + fprintf(stdout, "Checking its new smart object parent: %s\n", + evas_object_smart_parent_get(rect) == d.smt ? "OK!" : + "Failure!"); + if (prev) + { + int r, g, b; + + evas_object_color_get(prev, &r, &g, &b, NULL); + fprintf(stdout, "Deleting previous left child," + " which had colors (%d, %d, %d)\n", r, g, b); + evas_object_del(prev); + } + + return; + } + + if (strcmp(ev->keyname, "r") == 0) /* insert random colored + * rectangle on the right */ + { + Evas_Object *rect = evas_object_rectangle_add(d.evas), *prev; + evas_object_color_set( + rect, rand() % 255, rand() % 255, rand() % 255, 255); + evas_object_show(rect); + + prev = evas_smart_example_set_right(d.smt, rect); + d.rects[1] = rect; + + fprintf(stdout, "Setting smart object's right spot with a new" + " rectangle.\n"); + fprintf(stdout, "Checking its new smart object parent: %s\n", + evas_object_smart_parent_get(rect) == d.smt ? "OK!" : + "Failure!"); + if (prev) + { + int r, g, b; + + evas_object_color_get(prev, &r, &g, &b, NULL); + fprintf(stdout, "Deleting previous right child," + " which had colors (%d, %d, %d)\n", r, g, b); + evas_object_del(prev); + } + + return; + } + + /* move smart object along the canvas */ + if (strcmp(ev->keyname, "Right") == 0 || strcmp(ev->keyname, "Left") == 0 || + strcmp(ev->keyname, "Up") == 0 || strcmp(ev->keyname, "Down") == 0) + { + Evas_Coord x, y; + + evas_object_geometry_get(d.smt, &x, &y, NULL, NULL); + + switch (ev->keyname[0]) + { + case 'R': + x += 20; + break; + + case 'L': + x -= 20; + break; + + case 'U': + y -= 20; + break; + + case 'D': + y += 20; + break; + } + + evas_object_move(d.smt, x, y); + + return; + } + + /* increase smart object's size */ + if (strcmp(ev->keyname, "i") == 0) + { + Evas_Coord w, h; + + evas_object_geometry_get(d.smt, NULL, NULL, &w, &h); + + w *= 1.1; + h *= 1.1; + + evas_object_resize(d.smt, w, h); + + return; + } + + /* decrease smart object's size */ + if (strcmp(ev->keyname, "d") == 0) + { + Evas_Coord w, h; + + evas_object_geometry_get(d.smt, NULL, NULL, &w, &h); + + w *= 0.9; + h *= 0.9; + + evas_object_resize(d.smt, w, h); + + return; + } + + /* change smart object's clipper color */ + if (strcmp(ev->keyname, "c") == 0) + { + cur_color = (cur_color + 1) % 4; + + evas_object_color_set( + d.clipper, clipper_colors[cur_color].r, clipper_colors[cur_color].g, + clipper_colors[cur_color].b, clipper_colors[cur_color].a); + + fprintf(stderr, "Changing clipper's color to %s\n", + _index_to_color(cur_color)); + + return; + } +} + +static void +/* callback on number of member objects changed */ +_on_example_smart_object_child_num_change(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + fprintf(stdout, "Number of child members on our example smart" + " object changed to %lu\n", (long)event_info); +} + +int +main(void) +{ + const Evas_Smart_Cb_Description **descriptions; + Evas_Smart_Example_Interface *iface; + unsigned int count; + Eina_Bool ret; + + srand(time(NULL)); + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); + evas_object_move(d.bg, 0, 0); + evas_object_resize(d.bg, WIDTH, HEIGHT); + evas_object_show(d.bg); + + iface = (Evas_Smart_Example_Interface *)&iface1; + iface->base.name = IFACE1_NAME; + iface->base.private_size = sizeof(iface1_data); + iface->base.add = _iface1_add; + iface->base.del = _iface1_del; + iface->example_func = _iface1_custom_fn; + + d.smt = evas_smart_example_add(d.evas); + + evas_object_move(d.smt, WIDTH / 4, HEIGHT / 4); + evas_object_resize(d.smt, WIDTH / 2, HEIGHT / 2); + evas_object_show(d.smt); + + ret = evas_object_smart_type_check(d.smt, _evas_smart_example_type); + fprintf(stdout, "Adding smart object of type \"%s\" to the canvas: %s.\n", + _evas_smart_example_type, ret ? "success" : "failure"); + + d.clipper = evas_object_smart_clipped_clipper_get(d.smt); + fprintf(stdout, "Checking if clipped smart object's clipper is a " + "\"static\" one: %s\n", evas_object_static_clip_get( + d.clipper) ? "yes" : "no"); + + evas_object_color_set( + d.clipper, clipper_colors[cur_color].r, clipper_colors[cur_color].g, + clipper_colors[cur_color].b, clipper_colors[cur_color].a); + + evas_object_smart_callbacks_descriptions_get( + d.smt, &descriptions, &count, NULL, NULL); + + for (; *descriptions; descriptions++) + { + fprintf(stdout, "We've found a smart callback on the smart object!" + "\n\tname: %s\n\ttype: %s\n", (*descriptions)->name, + (*descriptions)->type); + + if (strcmp((*descriptions)->type, "i")) continue; + /* we know we don't have other types of smart callbacks + * here, just playing with it */ + + /* for now, we know the only one callback is the one + * reporting number of member objects changed on the + * example smart object */ + evas_object_smart_callback_add( + d.smt, (*descriptions)->name, + _on_example_smart_object_child_num_change, NULL); + } + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + iface = (Evas_Smart_Example_Interface *)evas_object_smart_interface_get + (d.smt, IFACE1_NAME); + if (iface) + { + char *data; + + fprintf(stdout, "We've found a smart interface on the smart object!" + "\n\tname: %s\n", iface->base.name); + + fprintf(stdout, "Setting its interface data...\n"); + data = evas_object_smart_interface_data_get + (d.smt, (Evas_Smart_Interface *)iface); + memcpy(data, iface1_data, sizeof(iface1_data)); + + fprintf(stdout, "Calling an interface's function...\n"); + iface->example_func(d.smt); + } + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-smart-object.c b/src/examples/evas/evas-smart-object.c new file mode 100644 index 0000000000..8b65981390 --- /dev/null +++ b/src/examples/evas/evas-smart-object.c @@ -0,0 +1,756 @@ +/** + * Simple Evas example illustrating a custom Evas smart object + * + * You'll need at least one engine built for it (excluding the buffer + * one). See stdout/stderr for output. + * + * @verbatim + * gcc -o evas-smart-object evas-smart-object.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +static const char *commands = \ + "commands are:\n" + "\tl - insert child rectangle on the left\n" + "\tr - insert child rectangle on the right\n" + "\tw - remove and delete all members from the smart object\n" + "\tright arrow - move smart object to the right\n" + "\tleft arrow - move smart object to the left\n" + "\tup arrow - move smart object up\n" + "\tdown arrow - move smart object down\n" + "\td - decrease smart object's size\n" + "\ti - increase smart object's size\n" + "\tc - change smart object's clipper color\n" + "\t. - rotate object to the right\n" + "\t, - rotate object to the left\n" + "\th - print help\n" + "\tq - quit\n" +; + +#define WHITE {255, 255, 255, 255} +#define RED {255, 0, 0, 255} +#define GREEN {0, 255, 0, 255} +#define BLUE {0, 0, 255, 255} + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *smt, *bg, *clipper, *rects[2]; +}; + +struct color_tuple +{ + int r, g, b, a; +} clipper_colors[4] = {WHITE, RED, GREEN, BLUE}; +int cur_color = 0; +int cur_angle = 0; + +static const char * +_index_to_color(int i) +{ + switch (i) + { + case 0: + return "WHITE (default)"; + + case 1: + return "RED"; + + case 2: + return "GREEN"; + + case 3: + return "BLUE"; + + default: + return "other"; + } +} + +static struct test_data d = {0}; +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +#define _evas_smart_example_type "Evas_Smart_Example" +#define EVT_CHILDREN_NUMBER_CHANGED "children,changed" + +static const Evas_Smart_Cb_Description _smart_callbacks[] = +{ + {EVT_CHILDREN_NUMBER_CHANGED, "i"}, + {NULL, NULL} +}; + +typedef struct _Evas_Smart_Example_Data Evas_Smart_Example_Data; +/* + * This structure augments clipped smart object's instance data, + * providing extra members required by our example smart object's + * implementation. + */ +struct _Evas_Smart_Example_Data +{ + Evas_Object_Smart_Clipped_Data base; + Evas_Object *children[2], *border; + int child_count; +}; + +#define EVAS_SMART_EXAMPLE_DATA_GET(o, ptr) \ + Evas_Smart_Example_Data * ptr = evas_object_smart_data_get(o) + +#define EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN(o, ptr) \ + EVAS_SMART_EXAMPLE_DATA_GET(o, ptr); \ + if (!ptr) \ + { \ + fprintf(stderr, "No widget data for object %p (%s)!", \ + o, evas_object_type_get(o)); \ + fflush(stderr); \ + abort(); \ + return; \ + } + +#define EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, ptr, val) \ + EVAS_SMART_EXAMPLE_DATA_GET(o, ptr); \ + if (!ptr) \ + { \ + fprintf(stderr, "No widget data for object %p (%s)!", \ + o, evas_object_type_get(o)); \ + fflush(stderr); \ + abort(); \ + return val; \ + } + +EVAS_SMART_SUBCLASS_NEW(_evas_smart_example_type, _evas_smart_example, + Evas_Smart_Class, Evas_Smart_Class, + evas_object_smart_clipped_class_get, _smart_callbacks); + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static void +_on_child_del(void *data, + Evas *evas __UNUSED__, + Evas_Object *o, + void *einfo __UNUSED__) +{ + Evas_Object *example_smart = data; + long idx; + + EVAS_SMART_EXAMPLE_DATA_GET(example_smart, priv); + + idx = (long)evas_object_data_get(o, "index"); + idx--; + + priv->children[idx] = NULL; + + evas_object_smart_member_del(o); + evas_object_smart_changed(example_smart); +} + +static void +_evas_smart_example_child_callbacks_unregister(Evas_Object *obj) +{ + evas_object_data_set(obj, "index", NULL); + evas_object_event_callback_del(obj, EVAS_CALLBACK_FREE, _on_child_del); +} + +static void +_evas_smart_example_child_callbacks_register(Evas_Object *o, + Evas_Object *child, + long idx) +{ + evas_object_event_callback_add(child, EVAS_CALLBACK_FREE, _on_child_del, o); + evas_object_data_set(child, "index", (void *)(++idx)); +} + +/* create and setup a new example smart object's internals */ +static void +_evas_smart_example_smart_add(Evas_Object *o) +{ + EVAS_SMART_DATA_ALLOC(o, Evas_Smart_Example_Data); + + /* this is a border around the smart object's area, delimiting it */ + priv->border = evas_object_image_filled_add(evas_object_evas_get(o)); + evas_object_image_file_set(priv->border, border_img_path, NULL); + evas_object_image_border_set(priv->border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set( + priv->border, EVAS_BORDER_FILL_NONE); + evas_object_smart_member_add(priv->border, o); + + _evas_smart_example_parent_sc->add(o); +} + +static void +_evas_smart_example_smart_del(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) + { + _evas_smart_example_child_callbacks_unregister(priv->children[0]); + priv->children[0] = NULL; + } + + if (priv->children[1]) + { + _evas_smart_example_child_callbacks_unregister(priv->children[1]); + priv->children[1] = NULL; + } + + _evas_smart_example_parent_sc->del(o); +} + +static void +_evas_smart_example_smart_show(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) evas_object_show(priv->children[0]); + if (priv->children[1]) evas_object_show(priv->children[1]); + evas_object_show(priv->border); + + _evas_smart_example_parent_sc->show(o); +} + +static void +_evas_smart_example_smart_hide(Evas_Object *o) +{ + EVAS_SMART_EXAMPLE_DATA_GET(o, priv); + + if (priv->children[0]) evas_object_hide(priv->children[0]); + if (priv->children[1]) evas_object_hide(priv->children[1]); + evas_object_hide(priv->border); + + _evas_smart_example_parent_sc->hide(o); +} + +static void +_evas_smart_example_smart_resize(Evas_Object *o, + Evas_Coord w, + Evas_Coord h) +{ + Evas_Coord ow, oh; + evas_object_geometry_get(o, NULL, NULL, &ow, &oh); + if ((ow == w) && (oh == h)) return; + + /* this will trigger recalculation */ + evas_object_smart_changed(o); +} + +/* act on child objects' properties, before rendering */ +static void +_evas_smart_example_smart_calculate(Evas_Object *o) +{ + Evas_Coord x, y, w, h; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN(o, priv); + evas_object_geometry_get(o, &x, &y, &w, &h); + + evas_object_resize(priv->border, w, h); + evas_object_move(priv->border, x, y); + + if (priv->children[0]) + { + evas_object_move(priv->children[0], x + 3, y + 3); + evas_object_resize(priv->children[0], (w / 2) - 3, (h / 2) - 3); + } + + if (priv->children[1]) + { + evas_object_move(priv->children[1], x + (w / 2), y + (h / 2)); + evas_object_resize(priv->children[1], (w / 2) - 3, (h / 2) - 3); + } +} + +/* setting our smart interface */ +static void +_evas_smart_example_smart_set_user(Evas_Smart_Class *sc) +{ + /* specializing these two */ + sc->add = _evas_smart_example_smart_add; + sc->del = _evas_smart_example_smart_del; + sc->show = _evas_smart_example_smart_show; + sc->hide = _evas_smart_example_smart_hide; + + /* clipped smart object has no hook on resizes or calculations */ + sc->resize = _evas_smart_example_smart_resize; + sc->calculate = _evas_smart_example_smart_calculate; +} + +/* BEGINS example smart object's own interface */ + +/* add a new example smart object to a canvas */ +Evas_Object * +evas_smart_example_add(Evas *evas) +{ + return evas_object_smart_add(evas, _evas_smart_example_smart_class_new()); +} + +static void +_evas_smart_example_remove_do(Evas_Smart_Example_Data *priv, + Evas_Object *child, + int idx) +{ + priv->children[idx] = NULL; + priv->child_count--; + _evas_smart_example_child_callbacks_unregister(child); + evas_object_smart_member_del(child); +} + +/* remove a child element, return its pointer (or NULL on errors) */ +Evas_Object * +evas_smart_example_remove(Evas_Object *o, + Evas_Object *child) +{ + long idx; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + + if (priv->children[0] != child && priv->children[1] != child) + { + fprintf(stderr, "You are trying to remove something not belonging to" + " the example smart object!\n"); + return NULL; + } + + idx = (long)evas_object_data_get(child, "index"); + idx--; + + _evas_smart_example_remove_do(priv, child, idx); + + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + evas_object_smart_changed(o); + + return child; +} + +/* set to return any previous object set to the left position of the + * smart object or NULL, if any (or on errors) */ +Evas_Object * +evas_smart_example_set_left(Evas_Object *o, + Evas_Object *child) +{ + Evas_Object *ret = NULL; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + if (!child) + return NULL; + + if (priv->children[1] == child) + { + fprintf(stderr, "You mustn't place a child on both slots of" + " the example smart object!\n"); + return NULL; + } + + if (priv->children[0]) + { + if (priv->children[0] != child) + { + ret = priv->children[0]; + _evas_smart_example_remove_do(priv, priv->children[0], 0); + } + else return child; + } + + priv->children[0] = child; + _evas_smart_example_child_callbacks_register(o, child, 0); + evas_object_smart_member_add(child, o); + evas_object_smart_changed(o); + + priv->child_count++; + if (!ret) + { + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + } + + return ret; +} + +/* set to return any previous object set to the right position of the + * smart object or NULL, if any (or on errors) */ +Evas_Object * +evas_smart_example_set_right(Evas_Object *o, + Evas_Object *child) +{ + Evas_Object *ret = NULL; + + EVAS_SMART_EXAMPLE_DATA_GET_OR_RETURN_VAL(o, priv, NULL); + if (!child) + return NULL; + + if (priv->children[0] == child) + { + fprintf(stderr, "You mustn't place a child on both slots of" + " the example smart object!\n"); + return NULL; + } + + if (priv->children[1]) + { + if (priv->children[1] != child) + { + ret = priv->children[1]; + _evas_smart_example_remove_do(priv, priv->children[1], 1); + } + else return child; + } + + priv->children[1] = child; + _evas_smart_example_child_callbacks_register(o, child, 1); + evas_object_smart_member_add(child, o); + evas_object_smart_changed(o); + + priv->child_count++; + if (!ret) + { + evas_object_smart_callback_call( + o, EVT_CHILDREN_NUMBER_CHANGED, (void *)(long)priv->child_count); + } + + return ret; +} + +/* END OF example smart object's own interface */ + +static void +_map_update(void) +{ + Evas_Map *m; + Evas_Coord x, y, w, h; + + evas_object_geometry_get(d.smt, &x, &y, &w, &h); + m = evas_map_new(4); + evas_map_util_points_populate_from_object(m, d.smt); + evas_map_util_rotate(m, cur_angle, x + (w / 2), y + (h / 2)); + evas_object_map_set(d.smt, m); + evas_object_map_enable_set(d.smt, EINA_TRUE); + evas_map_free(m); +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "q") == 0) /* print help */ + { + _on_destroy(NULL); + return; + } + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "w") == 0) /* clear out smart object (WRT + * members) */ + { + if (d.rects[0]) + { + evas_smart_example_remove(d.smt, d.rects[0]); + evas_object_del(d.rects[0]); + } + if (d.rects[1]) + { + evas_smart_example_remove(d.smt, d.rects[1]); + evas_object_del(d.rects[1]); + } + + memset(d.rects, 0, sizeof(d.rects)); + + fprintf(stdout, "Deleting all members of the smart object.\n"); + + return; + } + + if (strcmp(ev->keyname, "l") == 0) /* insert random colored + * rectangle on the left */ + { + Evas_Object *rect = evas_object_rectangle_add(d.evas), *prev; + evas_object_color_set( + rect, rand() % 255, rand() % 255, rand() % 255, 255); + evas_object_show(rect); + + prev = evas_smart_example_set_left(d.smt, rect); + d.rects[0] = rect; + + fprintf(stdout, "Setting smart object's left spot with a new" + " rectangle.\n"); + fprintf(stdout, "Checking its new smart object parent: %s\n", + evas_object_smart_parent_get(rect) == d.smt ? "OK!" : + "Failure!"); + if (prev) + { + int r, g, b; + + evas_object_color_get(prev, &r, &g, &b, NULL); + fprintf(stdout, "Deleting previous left child," + " which had colors (%d, %d, %d)\n", r, g, b); + evas_object_del(prev); + } + + return; + } + + if (strcmp(ev->keyname, "r") == 0) /* insert random colored + * rectangle on the right */ + { + Evas_Object *rect = evas_object_rectangle_add(d.evas), *prev; + evas_object_color_set( + rect, rand() % 255, rand() % 255, rand() % 255, 255); + evas_object_show(rect); + + prev = evas_smart_example_set_right(d.smt, rect); + d.rects[1] = rect; + + fprintf(stdout, "Setting smart object's right spot with a new" + " rectangle.\n"); + fprintf(stdout, "Checking its new smart object parent: %s\n", + evas_object_smart_parent_get(rect) == d.smt ? "OK!" : + "Failure!"); + if (prev) + { + int r, g, b; + + evas_object_color_get(prev, &r, &g, &b, NULL); + fprintf(stdout, "Deleting previous right child," + " which had colors (%d, %d, %d)\n", r, g, b); + evas_object_del(prev); + } + + return; + } + + /* move smart object along the canvas */ + if (strcmp(ev->keyname, "Right") == 0 || strcmp(ev->keyname, "Left") == 0 || + strcmp(ev->keyname, "Up") == 0 || strcmp(ev->keyname, "Down") == 0) + { + Evas_Coord x, y; + + evas_object_geometry_get(d.smt, &x, &y, NULL, NULL); + + switch (ev->keyname[0]) + { + case 'R': + x += 20; + break; + + case 'L': + x -= 20; + break; + + case 'U': + y -= 20; + break; + + case 'D': + y += 20; + break; + } + + evas_object_move(d.smt, x, y); + _map_update(); + + return; + } + + /* increase smart object's size */ + if (strcmp(ev->keyname, "i") == 0) + { + Evas_Coord w, h; + + evas_object_geometry_get(d.smt, NULL, NULL, &w, &h); + + w *= 1.1; + h *= 1.1; + + evas_object_resize(d.smt, w, h); + _map_update(); + + return; + } + + /* decrease smart object's size */ + if (strcmp(ev->keyname, "d") == 0) + { + Evas_Coord w, h; + + evas_object_geometry_get(d.smt, NULL, NULL, &w, &h); + + w *= 0.9; + h *= 0.9; + + evas_object_resize(d.smt, w, h); + _map_update(); + + return; + } + + /* change smart object's clipper color */ + if (strcmp(ev->keyname, "c") == 0) + { + cur_color = (cur_color + 1) % 4; + + evas_object_color_set( + d.clipper, clipper_colors[cur_color].r, clipper_colors[cur_color].g, + clipper_colors[cur_color].b, clipper_colors[cur_color].a); + + fprintf(stderr, "Changing clipper's color to %s\n", + _index_to_color(cur_color)); + + return; + } + + /* rotate object to the right */ + if (strcmp(ev->keyname, "period") == 0) + { + cur_angle = (cur_angle + 30) % 360; + _map_update(); + return; + } + + if (strcmp(ev->keyname, "comma") == 0) + { + cur_angle = (cur_angle - 30) % 360; + _map_update(); + return; + } + + fprintf(stderr, "Invalid key: '%s'\n", ev->keyname); +} + +static void +/* callback on number of member objects changed */ +_on_example_smart_object_child_num_change(void *data __UNUSED__, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + fprintf(stdout, "Number of child members on our example smart" + " object changed to %lu\n", (long)event_info); +} + +int +main(void) +{ + const Evas_Smart_Cb_Description **descriptions; + unsigned int count; + Eina_Bool ret; + + srand(time(NULL)); + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); + evas_object_move(d.bg, 0, 0); + evas_object_resize(d.bg, WIDTH, HEIGHT); + evas_object_show(d.bg); + + d.smt = evas_smart_example_add(d.evas); + evas_object_move(d.smt, WIDTH / 4, HEIGHT / 4); + evas_object_resize(d.smt, WIDTH / 2, HEIGHT / 2); + evas_object_show(d.smt); + + ret = evas_object_smart_type_check(d.smt, _evas_smart_example_type); + fprintf(stdout, "Adding smart object of type \"%s\" to the canvas: %s.\n", + _evas_smart_example_type, ret ? "success" : "failure"); + + d.clipper = evas_object_smart_clipped_clipper_get(d.smt); + fprintf(stdout, "Checking if clipped smart object's clipper is a " + "\"static\" one: %s\n", evas_object_static_clip_get( + d.clipper) ? "yes" : "no"); + + evas_object_color_set( + d.clipper, clipper_colors[cur_color].r, clipper_colors[cur_color].g, + clipper_colors[cur_color].b, clipper_colors[cur_color].a); + + evas_object_smart_callbacks_descriptions_get( + d.smt, &descriptions, &count, NULL, NULL); + + for (; *descriptions; descriptions++) + { + fprintf(stdout, "We've found a smart callback on the smart object!" + "\n\tname: %s\n\ttype: %s\n", (*descriptions)->name, + (*descriptions)->type); + + if (strcmp((*descriptions)->type, "i")) continue; + /* we know we don't have other types of smart callbacks + * here, just playing with it */ + + /* for now, we know the only one callback is the one + * reporting number of member objects changed on the + * example smart object */ + evas_object_smart_callback_add( + d.smt, (*descriptions)->name, + _on_example_smart_object_child_num_change, NULL); + } + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-stacking.c b/src/examples/evas/evas-stacking.c new file mode 100644 index 0000000000..49fc81922f --- /dev/null +++ b/src/examples/evas/evas-stacking.c @@ -0,0 +1,329 @@ +/** + * Simple Evas example illustrating objects stacking and + * canvas layers. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. See stdout/stderr for + * output. + * + * @verbatim + * gcc -o evas-stacking evas-stacking.c `pkg-config --libs --cflags evas ecore ecore-evas edje` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#else + +#define __UNUSED__ + +#endif + +#include +#include + +#include +#include +#include + +#define WIDTH 320 +#define HEIGHT 320 + +struct test_data +{ + Ecore_Evas *ee; + Evas *canvas; + Evas_Object *bg; + Evas_Object *rects[3]; /* red, green, blue */ + int layers[3]; /* default, below it, above it */ + int cur_rect, cur_layer; +}; + +static struct test_data d = {0}; + +static const char *commands = \ + "commands are:\n" + "\tc - change the target rectangle to operate on\n" + "\ta - stack target rectangle one level above\n" + "\tb - stack target rectangle one level below\n" + "\tt - stack target rectangle up to the top of its layer\n" + "\tm - stack target rectangle down to the bottom of its layer\n" + "\tp - toggle target rectangle's 'pass events' property\n" + "\tr - toggle target rectangle's 'repeat events' property\n" + "\ts - print current stacking information\n" + "\tl - change background rectangle's layer\n" + "\th - print help\n"; + +static void +_on_mouse_down(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o, + void *einfo __UNUSED__) +{ + fprintf(stdout, "Mouse down on rectangle %s!\n", evas_object_name_get(o)); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +/* use the following commands to interact with this example - 'h' is + * the key for help */ +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + const char *name = evas_object_name_get(d.rects[d.cur_rect]); + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "s") == 0) /* get status of the + * rectangles WRT size + * hints */ + { + Evas_Object *rect; + + fprintf(stdout, "Order of stacking, from top to bottom, is: "); + + rect = evas_object_top_get(evas); + fprintf(stdout, "%s", evas_object_name_get(rect)); + + rect = evas_object_below_get(rect); + while (rect) + { + fprintf(stdout, ", %s", evas_object_name_get(rect)); + rect = evas_object_below_get(rect); + } + + fprintf(stdout, ".\n"); + + fprintf(stdout, "Current target rectangle is %s\n", + evas_object_name_get(d.rects[d.cur_rect])); + + fprintf(stdout, "Background rectangle's layer is %d\n", + evas_object_layer_get(d.bg)); + + return; + } + + if (strcmp(ev->keyname, "l") == 0) /* change background rectangle's layer */ + { + d.cur_layer = (d.cur_layer + 1) % 3; + evas_object_layer_set(d.bg, d.layers[d.cur_layer]); + + fprintf(stdout, "Changing background rectangle's layer to %d\n", + d.layers[d.cur_layer]); + return; + } + + if (strcmp(ev->keyname, "c") == 0) /* change rectangle to operate on */ + { + d.cur_rect = (d.cur_rect + 1) % 3; + + fprintf(stdout, "Changing target rectangle to the %s one\n", + evas_object_name_get(d.rects[d.cur_rect])); + return; + } + + if (strcmp(ev->keyname, "t") == 0) /* bring target to top */ + { + Evas_Object *neighbour; + + evas_object_raise(d.rects[d.cur_rect]); + + fprintf(stdout, "%s rectangle was re-stacked to the top if its layer\n", + name); + + neighbour = evas_object_below_get(d.rects[d.cur_rect]); + fprintf(stdout, "Below of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + return; + } + + if (strcmp(ev->keyname, "m") == 0) /* bring target to bottom */ + { + Evas_Object *neighbour; + + evas_object_lower(d.rects[d.cur_rect]); + + fprintf(stdout, + "%s rectangle was re-stacked to the bottom if its layer\n", + name); + + neighbour = evas_object_below_get(d.rects[d.cur_rect]); + fprintf(stdout, "Below of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + return; + } + + if (strcmp(ev->keyname, "p") == 0) /* toggle pass events */ + { + Eina_Bool pass = evas_object_pass_events_get(d.rects[d.cur_rect]); + + evas_object_pass_events_set(d.rects[d.cur_rect], !pass); + + fprintf(stdout, "%s rectangle is now set to%s pass (ignore) events\n", + name, pass ? " NOT" : ""); + + return; + } + + if (strcmp(ev->keyname, "r") == 0) /* toggle repeat events */ + { + Eina_Bool repeat = evas_object_repeat_events_get(d.rects[d.cur_rect]); + + evas_object_repeat_events_set(d.rects[d.cur_rect], !repeat); + + fprintf(stdout, "%s rectangle is now set to%s repeat events\n", + name, repeat ? " NOT" : ""); + + return; + } + + if (strcmp(ev->keyname, "a") == 0) /* stack target above */ + { + Evas_Object *neighbour = evas_object_above_get(d.rects[d.cur_rect]); + + if (!neighbour || (evas_object_layer_get(d.rects[d.cur_rect]) != + evas_object_layer_get(neighbour))) + return; + + evas_object_stack_above(d.rects[d.cur_rect], neighbour); + + fprintf(stdout, "%s rectangle was re-stacked one level above\n", name); + + neighbour = evas_object_above_get(d.rects[d.cur_rect]); + fprintf(stdout, "Above of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + + neighbour = evas_object_below_get(d.rects[d.cur_rect]); + fprintf(stdout, "Below of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + return; + } + + if (strcmp(ev->keyname, "b") == 0) /* stack target below */ + { + Evas_Object *neighbour = evas_object_below_get(d.rects[d.cur_rect]); + + if (!neighbour || (evas_object_layer_get(d.rects[d.cur_rect]) != + evas_object_layer_get(neighbour))) + return; + + evas_object_stack_below(d.rects[d.cur_rect], neighbour); + + fprintf(stdout, "%s rectangle was re-stacked one level below\n", name); + + neighbour = evas_object_above_get(d.rects[d.cur_rect]); + fprintf(stdout, "Above of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + + neighbour = evas_object_below_get(d.rects[d.cur_rect]); + + fprintf(stdout, "Below of %s rect is %s\n", name, + neighbour ? evas_object_name_get(neighbour) : "no object"); + return; + } +} + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +int +main(void) +{ + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.canvas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.bg, "background"); /* white bg */ + evas_object_color_set(d.bg, 255, 255, 255, 255); + evas_object_move(d.bg, 0, 0); + evas_object_resize(d.bg, WIDTH, HEIGHT); + + d.layers[0] = evas_object_layer_get(d.bg); + d.layers[1] = d.layers[0] - 1; + d.layers[2] = d.layers[0] + 1; + + d.cur_layer = 1; + evas_object_layer_set(d.bg, d.layers[d.cur_layer]); /* let's start with it + * below the default + * layer */ + + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.rects[2] = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.rects[2], "blue"); + evas_object_color_set(d.rects[2], 0, 0, 255, 255); + + evas_object_resize(d.rects[2], WIDTH / 2.2, WIDTH / 2.2); + evas_object_move(d.rects[2], WIDTH / 6, WIDTH / 4.5); + evas_object_show(d.rects[2]); + evas_object_event_callback_add( + d.rects[2], EVAS_CALLBACK_MOUSE_DOWN, _on_mouse_down, NULL); + + d.rects[1] = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.rects[1], "green"); + evas_object_color_set(d.rects[1], 0, 255, 0, 255); + + evas_object_resize(d.rects[1], WIDTH / 2.2, WIDTH / 2.2); + evas_object_move(d.rects[1], WIDTH / 2.5, WIDTH / 7); + evas_object_show(d.rects[1]); + evas_object_event_callback_add( + d.rects[1], EVAS_CALLBACK_MOUSE_DOWN, _on_mouse_down, NULL); + + d.rects[0] = evas_object_rectangle_add(d.canvas); + evas_object_name_set(d.rects[0], "red"); + evas_object_color_set(d.rects[0], 255, 0, 0, 255); + + evas_object_resize(d.rects[0], WIDTH / 2.2, WIDTH / 2.2); + evas_object_move(d.rects[0], WIDTH / 3, WIDTH / 2.5); + evas_object_show(d.rects[0]); + evas_object_event_callback_add( + d.rects[0], EVAS_CALLBACK_MOUSE_DOWN, _on_mouse_down, NULL); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_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"); + return -1; +} diff --git a/src/examples/evas/evas-table.c b/src/examples/evas/evas-table.c new file mode 100644 index 0000000000..19fb68a5a4 --- /dev/null +++ b/src/examples/evas/evas-table.c @@ -0,0 +1,120 @@ +/** + * Simple Evas example illustrating usage of table object. + * + * You'll need at least one engine built for it (excluding the buffer + * one) and the png image loader also built. + * + * @verbatim + * gcc -o evas-table evas-table.c `pkg-config --libs --cflags ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#define __UNUSED__ +#endif + +#include +#include + +#include + +#define WIDTH 100 +#define HEIGHT 150 + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + Evas_Object *bg; +}; + +static struct test_data d = {0}; + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +int +main(void) +{ + Evas_Object *table, *rect; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + table = evas_object_table_add(d.evas); + evas_object_table_homogeneous_set(table, EVAS_OBJECT_TABLE_HOMOGENEOUS_NONE); + evas_object_table_padding_set(table, 0, 0); + evas_object_resize(table, WIDTH, HEIGHT); + evas_object_show(table); + + rect = evas_object_rectangle_add(d.evas); + evas_object_color_set(rect, 255, 0, 0, 255); + evas_object_size_hint_min_set(rect, 100, 50); + evas_object_show(rect); + evas_object_table_pack(table, rect, 1, 1, 2, 1); + + rect = evas_object_rectangle_add(d.evas); + evas_object_color_set(rect, 0, 255, 0, 255); + evas_object_size_hint_min_set(rect, 50, 100); + evas_object_show(rect); + evas_object_table_pack(table, rect, 1, 2, 1, 2); + + rect = evas_object_rectangle_add(d.evas); + evas_object_color_set(rect, 0, 0, 255, 255); + evas_object_size_hint_min_set(rect, 50, 50); + evas_object_show(rect); + evas_object_table_pack(table, rect, 2, 2, 1, 1); + + rect = evas_object_rectangle_add(d.evas); + evas_object_color_set(rect, 255, 255, 0, 255); + evas_object_size_hint_min_set(rect, 50, 50); + evas_object_show(rect); + evas_object_table_pack(table, rect, 2, 3, 1, 1); + + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} diff --git a/src/examples/evas/evas-text.c b/src/examples/evas/evas-text.c new file mode 100644 index 0000000000..ba556629cc --- /dev/null +++ b/src/examples/evas/evas-text.c @@ -0,0 +1,411 @@ +/** + * Simple Evas example illustrating text objects + * + * You'll need at least one engine built for it (excluding the buffer + * one). See stdout/stderr for output. + * + * @verbatim + * gcc -o evas-text evas-text.c `pkg-config --libs --cflags evas ecore ecore-evas` + * @endverbatim + */ + +#ifdef HAVE_CONFIG_H + +#include "config.h" +#else + +#define PACKAGE_EXAMPLES_DIR "." +#define __UNUSED__ + +#endif + +#include +#include +#include +#include + +#define WIDTH (320) +#define HEIGHT (240) + +#define GREY {190, 190, 190, 255} +#define BLACK {0, 0, 0, 255} +#define WHITE {255, 255, 255, 255} +#define RED {255, 0, 0, 255} +#define GREEN {0, 255, 0, 255} +#define BLUE {0, 0, 255, 255} + +#define POINTER_CYCLE(_ptr, _array) \ + do \ + { \ + if ((unsigned)(((void *)(_ptr)) - ((void *)(_array))) >= \ + sizeof(_array)) \ + _ptr = _array; \ + } \ + while(0) + +static const char *commands = \ + "commands are:\n" + "\tt - change text's current style\n" + "\tz - change text's font size\n" + "\tf - change text's font family\n" + "\tb - change text's base color\n" + "\ts - change text's \'shadow\' color\n" + "\to - change text's \'outline\' color\n" + "\tw - change text's \'glow\' color\n" + "\tg - change text's \'glow 2\' color\n" + "\th - print help\n"; + +static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png"; + +struct color_tuple +{ + int r, g, b, a; +}; + +struct text_preset_data +{ + const char **font_ptr; + const char *font[3]; + + struct color_tuple *text_ptr; + struct color_tuple text[6]; + + struct color_tuple *shadow_ptr; + struct color_tuple shadow[4]; + + struct color_tuple *outline_ptr; + struct color_tuple outline[4]; + + struct color_tuple *glow_ptr; + struct color_tuple glow[4]; + + struct color_tuple *glow2_ptr; + struct color_tuple glow2[4]; +}; + +struct test_data +{ + Ecore_Evas *ee; + Evas *evas; + struct text_preset_data t_data; + Evas_Object *text, *bg, *border; +}; + +static struct test_data d = {0}; + +static void +_on_destroy(Ecore_Evas *ee __UNUSED__) +{ + ecore_main_loop_quit(); +} + +/* here just to keep our example's window size and background image's + * size in synchrony */ +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(d.bg, w, h); +} + +static const char * +_text_style_type_to_str(Evas_Text_Style_Type mode) +{ + switch (mode) + { + case EVAS_TEXT_STYLE_PLAIN: + return "plain"; + + case EVAS_TEXT_STYLE_SHADOW: + return "shadow"; + + case EVAS_TEXT_STYLE_OUTLINE: + return "outline"; + + case EVAS_TEXT_STYLE_SOFT_OUTLINE: + return "soft outline"; + + case EVAS_TEXT_STYLE_GLOW: + return "glow"; + + case EVAS_TEXT_STYLE_OUTLINE_SHADOW: + return "outline shadow"; + + case EVAS_TEXT_STYLE_FAR_SHADOW: + return "far shadow"; + + case EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW: + return "outline soft shadow"; + + case EVAS_TEXT_STYLE_SOFT_SHADOW: + return "soft shadow"; + + case EVAS_TEXT_STYLE_FAR_SOFT_SHADOW: + return "far soft shadow"; + + default: + return "invalid"; + } +} + +static void +_on_keydown(void *data __UNUSED__, + Evas *evas __UNUSED__, + Evas_Object *o __UNUSED__, + void *einfo) +{ + Evas_Event_Key_Down *ev = einfo; + + if (strcmp(ev->keyname, "h") == 0) /* print help */ + { + fprintf(stdout, commands); + return; + } + + if (strcmp(ev->keyname, "t") == 0) /* change text's current style */ + { + Evas_Text_Style_Type type = evas_object_text_style_get(d.text); + + type = (type + 1) % 10; + + evas_object_text_style_set(d.text, type); + + fprintf(stdout, "Changing text's style to \'%s\'\n", + _text_style_type_to_str(type)); + + return; + } + + if (strcmp(ev->keyname, "f") == 0) /* change text's font */ + { + int sz; + + (d.t_data.font_ptr)++; + + evas_object_text_font_get(d.text, NULL, &sz); + + POINTER_CYCLE(d.t_data.font_ptr, d.t_data.font); + + evas_object_text_font_set(d.text, *d.t_data.font_ptr, sz); + + fprintf(stdout, "Changing text's font to %s\n", *d.t_data.font_ptr); + + return; + } + + if (strcmp(ev->keyname, "b") == 0) /* change text's base color */ + { + (d.t_data.text_ptr)++; + + POINTER_CYCLE(d.t_data.text_ptr, d.t_data.text); + + evas_object_color_set( + d.text, d.t_data.text_ptr->r, d.t_data.text_ptr->g, + d.t_data.text_ptr->b, d.t_data.text_ptr->a); + + fprintf(stdout, "Changing base color for text to (%d, %d, %d, %d)\n", + d.t_data.text_ptr->r, d.t_data.text_ptr->g, + d.t_data.text_ptr->b, d.t_data.text_ptr->a); + + return; + } + + if (strcmp(ev->keyname, "g") == 0) /* change text's glow 2 color */ + { + (d.t_data.glow2_ptr)++; + + POINTER_CYCLE(d.t_data.glow2_ptr, d.t_data.glow2); + + evas_object_text_glow2_color_set( + d.text, d.t_data.glow2_ptr->r, d.t_data.glow2_ptr->g, + d.t_data.glow2_ptr->b, d.t_data.glow2_ptr->a); + + fprintf(stdout, "Changing glow 2 color for text to (%d, %d, %d, %d)\n", + d.t_data.glow2_ptr->r, d.t_data.glow2_ptr->g, + d.t_data.glow2_ptr->b, d.t_data.glow2_ptr->a); + + return; + } + + if (strcmp(ev->keyname, "w") == 0) /* change text's glow color */ + { + (d.t_data.glow_ptr)++; + + POINTER_CYCLE(d.t_data.glow_ptr, d.t_data.glow); + + evas_object_text_glow_color_set( + d.text, d.t_data.glow_ptr->r, d.t_data.glow_ptr->g, + d.t_data.glow_ptr->b, d.t_data.glow_ptr->a); + + fprintf(stdout, "Changing glow color for text to (%d, %d, %d, %d)\n", + d.t_data.glow_ptr->r, d.t_data.glow_ptr->g, + d.t_data.glow_ptr->b, d.t_data.glow_ptr->a); + + return; + } + + if (strcmp(ev->keyname, "o") == 0) /* change text's outline color */ + { + (d.t_data.outline_ptr)++; + + POINTER_CYCLE(d.t_data.outline_ptr, d.t_data.outline); + + evas_object_text_outline_color_set( + d.text, d.t_data.outline_ptr->r, d.t_data.outline_ptr->g, + d.t_data.outline_ptr->b, d.t_data.outline_ptr->a); + + fprintf(stdout, "Changing outline color for text to (%d, %d, %d, %d)\n", + d.t_data.outline_ptr->r, d.t_data.outline_ptr->g, + d.t_data.outline_ptr->b, d.t_data.outline_ptr->a); + + return; + } + + if (strcmp(ev->keyname, "s") == 0) /* change text's shadow color */ + { + (d.t_data.shadow_ptr)++; + + POINTER_CYCLE(d.t_data.shadow_ptr, d.t_data.shadow); + + evas_object_text_shadow_color_set( + d.text, d.t_data.shadow_ptr->r, d.t_data.shadow_ptr->g, + d.t_data.shadow_ptr->b, d.t_data.shadow_ptr->a); + + fprintf(stdout, "Changing shadow color for text to (%d, %d, %d, %d)\n", + d.t_data.shadow_ptr->r, d.t_data.shadow_ptr->g, + d.t_data.shadow_ptr->b, d.t_data.shadow_ptr->a); + + return; + } + + if (strcmp(ev->keyname, "z") == 0) /* change text's font size */ + { + const char *font; + int size; + + evas_object_text_font_get(d.text, &font, &size); + + size = (size + 10) % 50; + if (!size) size = 10; + + evas_object_text_font_set(d.text, font, size); + + fprintf(stdout, "Changing text's font size to %d\n", size); + + return; + } +} + +int +main(void) +{ + int size; + const char *font; + + if (!ecore_evas_init()) + return EXIT_FAILURE; + + /* init values one is going to cycle through while running this + * example */ + struct text_preset_data init_data = + { + .font = {"DejaVu", "Courier", "Utopia"}, + .text = {BLACK, WHITE, GREY, RED, GREEN, BLUE}, + .shadow = {WHITE, BLUE, GREEN, RED}, + .outline = {WHITE, RED, GREEN, BLUE}, + .glow = {WHITE, BLUE, GREEN, RED}, + .glow2 = {WHITE, RED, BLUE, GREEN} + }; + + d.t_data = init_data; + d.t_data.font_ptr = d.t_data.font; + d.t_data.text_ptr = d.t_data.text; + d.t_data.glow_ptr = d.t_data.glow; + d.t_data.glow2_ptr = d.t_data.glow2; + d.t_data.outline_ptr = d.t_data.outline; + d.t_data.shadow_ptr = d.t_data.shadow; + + /* this will give you a window with an Evas canvas under the first + * engine available */ + d.ee = ecore_evas_new(NULL, 10, 10, WIDTH, HEIGHT, NULL); + if (!d.ee) + goto error; + + ecore_evas_callback_destroy_set(d.ee, _on_destroy); + ecore_evas_callback_resize_set(d.ee, _canvas_resize_cb); + ecore_evas_show(d.ee); + + /* the canvas pointer, de facto */ + d.evas = ecore_evas_get(d.ee); + + d.bg = evas_object_rectangle_add(d.evas); + evas_object_color_set(d.bg, 255, 255, 255, 255); /* white bg */ + evas_object_move(d.bg, 0, 0); /* at canvas' origin */ + evas_object_resize(d.bg, WIDTH, HEIGHT); /* covers full canvas */ + evas_object_show(d.bg); + + evas_object_focus_set(d.bg, EINA_TRUE); + evas_object_event_callback_add( + d.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); + + d.text = evas_object_text_add(d.evas); + evas_object_text_style_set(d.text, EVAS_TEXT_STYLE_PLAIN); + + /* let the pre-set thingies be enforced */ + evas_object_color_set( + d.text, d.t_data.text_ptr->r, d.t_data.text_ptr->g, + d.t_data.text_ptr->b, d.t_data.text_ptr->a); + + evas_object_text_glow_color_set( + d.text, d.t_data.glow_ptr->r, d.t_data.glow_ptr->g, + d.t_data.glow_ptr->b, d.t_data.glow_ptr->a); + + evas_object_text_glow2_color_set( + d.text, d.t_data.glow2_ptr->r, d.t_data.glow2_ptr->g, + d.t_data.glow2_ptr->b, d.t_data.glow2_ptr->a); + + evas_object_text_outline_color_set( + d.text, d.t_data.outline_ptr->r, d.t_data.outline_ptr->g, + d.t_data.outline_ptr->b, d.t_data.outline_ptr->a); + + evas_object_text_shadow_color_set( + d.text, d.t_data.shadow_ptr->r, d.t_data.shadow_ptr->g, + d.t_data.shadow_ptr->b, d.t_data.shadow_ptr->a); + + evas_object_text_font_set(d.text, *d.t_data.font_ptr, 30); + evas_object_text_text_set(d.text, "sample text"); + + evas_object_resize(d.text, (3 * WIDTH) / 4, HEIGHT / 4); + evas_object_move(d.text, WIDTH / 8, (3 * HEIGHT) / 8); + evas_object_show(d.text); + + evas_object_text_font_get(d.text, &font, &size); + fprintf(stdout, "Adding text object with font %s, size %d\n", font, size); + + /* this is a border around the text object above, here just to + * emphasize its geometry */ + d.border = evas_object_image_filled_add(d.evas); + evas_object_image_file_set(d.border, border_img_path, NULL); + evas_object_image_border_set(d.border, 3, 3, 3, 3); + evas_object_image_border_center_fill_set(d.border, EVAS_BORDER_FILL_NONE); + + evas_object_resize(d.border, ((3 * WIDTH) / 4) + 3, (HEIGHT / 4) + 3); + evas_object_move(d.border, (WIDTH / 8) - 3, ((3 * HEIGHT) / 8) - 3); + evas_object_show(d.border); + + fprintf(stdout, commands); + ecore_main_loop_begin(); + + ecore_evas_free(d.ee); + ecore_evas_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; +} + diff --git a/src/examples/evas/im1.png b/src/examples/evas/im1.png new file mode 100644 index 0000000000000000000000000000000000000000..aa3786928ec961c6f45464e77cd920e005c32398 GIT binary patch literal 467518 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 u2G8!~D;G@_MGMpke5*o?LIT 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%0DD?YCNMM2ERO}FMO-%~ab&013gmD<>7l?> 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%0ApoO(dH{SZ5xj+FjDVICqq? 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⁣&8KOqn`ytdNDsI;-9)q;&yVp`gSH4mTO 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 #include -#include +#include -#include "edje_suite.h" +#include "evas_suite.h" -typedef struct _Edje_Test_Case Edje_Test_Case; +typedef struct _Evas_Test_Case Evas_Test_Case; -struct _Edje_Test_Case +struct _Evas_Test_Case { const char *test_case; void (*build)(TCase *tc); }; -static const Edje_Test_Case etc[] = { - { "Edje", edje_test_edje }, +static const Evas_Test_Case etc[] = { + { "Evas", evas_test_init }, + { "Object Textblock", evas_test_textblock }, + { "Object Text", evas_test_text }, + { "Callbacks", evas_test_callbacks }, { NULL, NULL } }; static void _list_tests(void) { - const Edje_Test_Case *itr; + const Evas_Test_Case *itr; itr = etc; fputs("Available Test Cases:\n", stderr); @@ -45,13 +48,13 @@ _use_test(int argc, const char **argv, const char *test_case) } static Suite * -edje_suite_build(int argc, const char **argv) +evas_suite_build(int argc, const char **argv) { TCase *tc; Suite *s; int i; - s = suite_create("Edje"); + s = suite_create("Evas"); for (i = 0; etc[i].test_case; ++i) { @@ -90,12 +93,14 @@ main(int argc, char **argv) return 0; } - s = edje_suite_build(argc - 1, (const char **)argv + 1); + evas_init(); + s = evas_suite_build(argc - 1, (const char **)argv + 1); sr = srunner_create(s); srunner_run_all(sr, CK_ENV); failed_count = srunner_ntests_failed(sr); srunner_free(sr); + evas_shutdown(); return (failed_count == 0) ? 0 : 255; } diff --git a/src/tests/evas/evas_suite.h b/src/tests/evas/evas_suite.h new file mode 100644 index 0000000000..31d6d18ac1 --- /dev/null +++ b/src/tests/evas/evas_suite.h @@ -0,0 +1,12 @@ +#ifndef _EVAS_SUITE_H +#define _EVAS_SUITE_H + +#include + +void evas_test_init(TCase *tc); +void evas_test_textblock(TCase *tc); +void evas_test_text(TCase *tc); +void evas_test_callbacks(TCase *tc); + + +#endif /* _EVAS_SUITE_H */ diff --git a/src/tests/evas/evas_test_callbacks.c b/src/tests/evas/evas_test_callbacks.c new file mode 100644 index 0000000000..164851e94a --- /dev/null +++ b/src/tests/evas/evas_test_callbacks.c @@ -0,0 +1,135 @@ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include "evas_suite.h" +#include "Evas.h" +#include "evas_tests_helpers.h" + +#define START_CALLBACK_TEST() \ + Evas *evas; \ + Evas_Object *rect; \ + evas = EVAS_TEST_INIT_EVAS(); \ + rect = evas_object_rectangle_add(evas); \ +do \ +{ \ +} \ +while (0) + +#define END_CALLBACK_TEST() \ +do \ +{ \ + evas_object_del(rect); \ + evas_free(evas); \ + evas_shutdown(); \ +} \ +while (0) + +static uintptr_t counter = 1; + +static void +_obj_event_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) +{ + (void) e; + (void) obj; + (void) event_info; + + fail_if(((uintptr_t) data) != counter); + + counter++; +} + +START_TEST(evas_object_event_callbacks_priority) +{ + START_CALLBACK_TEST(); + counter = 1; + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, -10, + _obj_event_cb, (void *) 1); + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 0, + _obj_event_cb, (void *) 2); + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 10, + _obj_event_cb, (void *) 3); + evas_object_move(rect, 2, 2); + + /* Make sure we got through all the callbacks */ + fail_if(counter != 4); + + /* Delete _obj_event_cb 3 times */ + evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb); + evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb); + evas_object_event_callback_del(rect, EVAS_CALLBACK_MOVE, _obj_event_cb); + counter = 1; + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 0, + _obj_event_cb, (void *) 2); + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, -10, + _obj_event_cb, (void *) 1); + evas_object_event_callback_priority_add(rect, EVAS_CALLBACK_MOVE, 10, + _obj_event_cb, (void *) 3); + evas_object_move(rect, 3, 3); + + /* Make sure we got through all the callbacks */ + fail_if(counter != 4); + + END_CALLBACK_TEST(); +} +END_TEST + +static void +_event_cb(void *data, Evas *e, void *event_info) +{ + (void) e; + (void) event_info; + + fail_if(((uintptr_t) data) != counter); + + counter++; +} + +START_TEST(evas_event_callbacks_priority) +{ + START_CALLBACK_TEST(); + evas_object_focus_set(rect, EINA_FALSE); + counter = 1; + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + -10, _event_cb, (void *) 1); + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + 0, _event_cb, (void *) 2); + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + 10, _event_cb, (void *) 3); + evas_object_focus_set(rect, EINA_TRUE); + + /* Make sure we got through all the callbacks */ + fail_if(counter != 4); + + /* Delete _event_cb 3 times */ + evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _event_cb); + evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _event_cb); + evas_event_callback_del(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + _event_cb); + evas_object_focus_set(rect, EINA_FALSE); + counter = 1; + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + 0, _event_cb, (void *) 2); + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + -10, _event_cb, (void *) 1); + evas_event_callback_priority_add(evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_IN, + 10, _event_cb, (void *) 3); + evas_object_focus_set(rect, EINA_TRUE); + + /* Make sure we got through all the callbacks */ + fail_if(counter != 4); + + END_CALLBACK_TEST(); +} +END_TEST + +void evas_test_callbacks(TCase *tc) +{ + tcase_add_test(tc, evas_object_event_callbacks_priority); + tcase_add_test(tc, evas_event_callbacks_priority); +} diff --git a/src/tests/evas/evas_test_init.c b/src/tests/evas/evas_test_init.c new file mode 100644 index 0000000000..7637d9cb2a --- /dev/null +++ b/src/tests/evas/evas_test_init.c @@ -0,0 +1,19 @@ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include "evas_suite.h" +#include "Evas.h" + +START_TEST(evas_simple) +{ +} +END_TEST + +void evas_test_init(TCase *tc) +{ + tcase_add_test(tc, evas_simple); +} diff --git a/src/tests/evas/evas_test_text.c b/src/tests/evas/evas_test_text.c new file mode 100644 index 0000000000..99ab405e40 --- /dev/null +++ b/src/tests/evas/evas_test_text.c @@ -0,0 +1,493 @@ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include "evas_suite.h" +#include "Evas.h" +#include "evas_tests_helpers.h" + +#define START_TEXT_TEST() \ + Evas *evas; \ + Evas_Object *to; \ + evas = EVAS_TEST_INIT_EVAS(); \ + evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); \ + to = evas_object_text_add(evas); \ +do \ +{ \ +} \ +while (0) + +#define END_TEXT_TEST() \ +do \ +{ \ + evas_object_del(to); \ + evas_free(evas); \ + evas_shutdown(); \ +} \ +while (0) + +START_TEST(evas_text_simple) +{ + START_TEXT_TEST(); + const char *buf = "Test - בדיקה"; + evas_object_text_text_set(to, buf); + fail_if(strcmp(evas_object_text_text_get(to), buf)); + END_TEXT_TEST(); +} +END_TEST + +/* Various text related geometries */ +START_TEST(evas_text_geometries) +{ + START_TEXT_TEST(); + const char *buf = "Tests"; + const char *font = "Sans"; + Evas_Font_Size size = 14; + Evas_Coord prev; + int i; + Evas_Coord x, y, w, h, px; + + evas_object_text_text_set(to, buf); + + /* All should be 0 without a font set */ + fail_if(evas_object_text_ascent_get(to) != 0); + fail_if(evas_object_text_descent_get(to) != 0); + fail_if(evas_object_text_max_ascent_get(to) != 0); + fail_if(evas_object_text_max_descent_get(to) != 0); + fail_if(evas_object_text_horiz_advance_get(to) != 0); + fail_if(evas_object_text_vert_advance_get(to) != 0); + + evas_object_text_font_set(to, font, size); + + /* Check that they are bigger than 0. */ + fail_if(evas_object_text_ascent_get(to) <= 0); + fail_if(evas_object_text_descent_get(to) <= 0); + fail_if(evas_object_text_max_ascent_get(to) <= 0); + fail_if(evas_object_text_max_descent_get(to) <= 0); + fail_if(evas_object_text_horiz_advance_get(to) <= 0); + fail_if(evas_object_text_vert_advance_get(to) <= 0); + + /* Check that expanding the text does what we expect it */ + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_ascent_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_ascent_get(to) != prev); + + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_descent_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_descent_get(to) != prev); + + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_max_ascent_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_max_ascent_get(to) != prev); + + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_max_descent_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_max_descent_get(to) != prev); + + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_horiz_advance_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_horiz_advance_get(to) <= prev); + + evas_object_text_text_set(to, "Test"); + prev = evas_object_text_vert_advance_get(to); + evas_object_text_text_set(to, "Testing"); + fail_if(evas_object_text_vert_advance_get(to) != prev); + + /* Go through all the characters, making sure the geometries we get + * are in a monotonically increasing order and that all sizes are + * bigger than 0. */ + evas_object_text_text_set(to, "Testing..."); + x = 0; + px = -100; + for (i = 0 ; i < eina_unicode_utf8_get_len("Testing...") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* Last up to pos */ + Evas_Coord adv; + int pos, prev_pos; + evas_object_text_text_set(to, "Test - 유니코드"); + adv = evas_object_text_horiz_advance_get(to); + pos = prev_pos = 0; + for (x = 0 ; x <= (adv - 1) ; x++) + { + pos = evas_object_text_last_up_to_pos(to, x, 0); + fail_if(pos < prev_pos); + prev_pos = pos; + } + pos = evas_object_text_last_up_to_pos(to, x, 0); + fail_if(pos != -1); + pos = evas_object_text_last_up_to_pos(to, -50, 0); + fail_if(pos != -1); + + END_TEXT_TEST(); +} +END_TEST + +/* Various evas stuff, such as scale */ +START_TEST(evas_text_evas) +{ + Evas_Coord w, h, bw, bh; + START_TEXT_TEST(); + const char *buf = "Test - בדיקה"; + const char *font = "Sans"; + Evas_Font_Size size = 14; + + evas_object_text_font_set(to, font, size); + evas_object_text_text_set(to, buf); + evas_object_geometry_get(to, NULL, NULL, &bw, &bh); + evas_object_scale_set(to, 3.0); + evas_object_geometry_get(to, NULL, NULL, &w, &h); + fail_if((w <= bw) || (h <= bh)); + + evas_object_scale_set(to, 0.5); + evas_object_geometry_get(to, NULL, NULL, &w, &h); + fail_if((w >= bw) || (h >= bh)); + + END_TEXT_TEST(); +} +END_TEST + +/* Tests for functions that are in evas_object_text.c but + * don't really have anything to do with it. */ +START_TEST(evas_text_unrelated) +{ + START_TEXT_TEST(); + const char *buf = "נסיון"; + int pos; + int value; + /* Actually, they are tested in eina, just doing it for completeness. */ + fail_if(evas_string_char_len_get(buf) != 5); + + pos = 0; + fail_if(2 != evas_string_char_next_get(buf, pos, &value)); + fail_if(value != L'נ'); + + pos = 2; + fail_if(0 != evas_string_char_prev_get(buf, pos, &value)); + fail_if(value != L'ס'); + + END_TEXT_TEST(); +} +END_TEST + +#define _CHECK_SET_GET(x) \ +do \ +{ \ + Evas_Coord r, g, b, a; \ + evas_object_text_##x##_set(to, 100, 150, 125, 12); \ + evas_object_text_##x##_get(to, &r, &g, &b, &a); \ + fail_if((r != 100) || (g != 150) || (b != 125) || (a != 12)); \ + /* Set to the same value */ \ + evas_object_text_##x##_set(to, 100, 150, 125, 12); \ + evas_object_text_##x##_get(to, &r, &g, &b, &a); \ + fail_if((r != 100) || (g != 150) || (b != 125) || (a != 12)); \ +} \ +while (0) + +START_TEST(evas_text_set_get) +{ + START_TEXT_TEST(); + const char *buf = "Test - בדיקה"; + /* Text */ + evas_object_text_text_set(to, buf); + fail_if(strcmp(evas_object_text_text_get(to), buf)); + + /* Colors */ + _CHECK_SET_GET(shadow_color); + _CHECK_SET_GET(glow_color); + _CHECK_SET_GET(glow2_color); + _CHECK_SET_GET(outline_color); + + /* Font and size */ + const char *font = "Sans"; + Evas_Font_Size size = 14; + evas_object_text_font_set(to, font, size); + font = NULL; + size = 0; + evas_object_text_font_get(to, &font, &size); + fail_if(strcmp(font, "Sans")); + fail_if(size != 14); + evas_object_text_font_set(to, font, size); + font = NULL; + size = 0; + evas_object_text_font_get(to, &font, &size); + fail_if(strcmp(font, "Sans")); + fail_if(size != 14); + + font = "NON-EXISTING-FONT"; + size = 14; + evas_object_text_font_set(to, font, size); + font = NULL; + size = 0; + evas_object_text_font_get(to, &font, &size); + fail_if(strcmp(font, "NON-EXISTING-FONT")); + + font = "Serif"; + size = 2; + evas_object_text_font_set(to, font, size); + font = NULL; + size = 0; + evas_object_text_font_get(to, &font, &size); + fail_if(strcmp(font, "Serif")); + fail_if(size != 2); + + evas_object_text_font_source_set(to, "/usr/share/fonts/Sans.ttf"); + font = evas_object_text_font_source_get(to); + fail_if(strcmp(font, "/usr/share/fonts/Sans.ttf")); + evas_object_text_font_source_set(to, "/usr/share/fonts/Sans.ttf"); + font = evas_object_text_font_source_get(to); + fail_if(strcmp(font, "/usr/share/fonts/Sans.ttf")); + + /* BiDi Delimiters */ + evas_object_text_bidi_delimiters_set(to, ",.|"); + fail_if(strcmp(evas_object_text_bidi_delimiters_get(to), ",.|")); + evas_object_text_bidi_delimiters_set(to, ",|"); + fail_if(strcmp(evas_object_text_bidi_delimiters_get(to), ",|")); + evas_object_text_bidi_delimiters_set(to, NULL); + fail_if(evas_object_text_bidi_delimiters_get(to)); + evas_object_text_bidi_delimiters_set(to, ",|"); + fail_if(strcmp(evas_object_text_bidi_delimiters_get(to), ",|")); + + /* Style */ + evas_object_text_text_set(to, ""); + evas_object_text_style_set(to, EVAS_TEXT_STYLE_SHADOW); + fail_if(evas_object_text_style_get(to) != EVAS_TEXT_STYLE_SHADOW); + evas_object_text_style_set(to, EVAS_TEXT_STYLE_OUTLINE); + fail_if(evas_object_text_style_get(to) != EVAS_TEXT_STYLE_OUTLINE); + + /* Rehinting */ + evas_object_text_text_set(to, "Bla"); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_BYTECODE); + + /* Direction of an empty text should be NEUTRAL */ + evas_object_text_text_set(to, ""); + fail_if(evas_object_text_direction_get(to) != EVAS_BIDI_DIRECTION_NEUTRAL); + + END_TEXT_TEST(); +} +END_TEST + +START_TEST(evas_text_style) +{ + Evas_Coord l, r, t, b; + START_TEXT_TEST(); + const char *buf = "Test"; + evas_object_text_text_set(to, buf); + evas_object_text_style_set(to, EVAS_TEXT_STYLE_PLAIN); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 0) || (r != 0) || (t != 0) || (b != 0)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 0) || (r != 1) || (t != 0) || (b != 1)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_OUTLINE); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 1) || (r != 1) || (t != 1) || (b != 1)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_SOFT_OUTLINE); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 2) || (r != 2) || (t != 2) || (b != 2)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_GLOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 2) || (r != 2) || (t != 2) || (b != 2)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_OUTLINE_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 1) || (r != 2) || (t != 1) || (b != 2)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_FAR_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 1) || (r != 2) || (t != 1) || (b != 2)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 1) || (r != 3) || (t != 1) || (b != 3)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_SOFT_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 1) || (r != 3) || (t != 1) || (b != 3)); + + evas_object_text_style_set(to, EVAS_TEXT_STYLE_FAR_SOFT_SHADOW); + evas_object_text_style_pad_get(to, &l, &r, &t, &b); + fail_if((l != 0) || (r != 4) || (t != 0) || (b != 4)); + + fail_if(strcmp(evas_object_text_text_get(to), buf)); + END_TEXT_TEST(); +} +END_TEST + +#ifdef HAVE_FRIBIDI +START_TEST(evas_text_bidi) +{ + START_TEXT_TEST(); + const char *buf = "Test - בדיקה"; + int i; + Evas_Coord x, y, w, h, px; + const char *font = "Sans"; + Evas_Font_Size size = 14; + + evas_object_text_font_set(to, font, size); + + evas_object_text_text_set(to, buf); + fail_if(evas_object_text_direction_get(to) != EVAS_BIDI_DIRECTION_LTR); + evas_object_text_text_set(to, "בדיקה"); + fail_if(evas_object_text_direction_get(to) != EVAS_BIDI_DIRECTION_RTL); + + /* With RTL text coords should be monotontically decreasing. */ + evas_object_text_text_set(to, "נסיון..."); + x = 0; + px = 200; + for (i = 0 ; i < eina_unicode_utf8_get_len("נסיון...") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* Bidi text is a bit more complex */ + evas_object_text_text_set(to, "Test - נסיון..."); + x = 0; + px = -100; + for (i = 0 ; i < eina_unicode_utf8_get_len("Test - ") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* First rtl char requires more specific handling */ + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + i++; + for ( ; i < eina_unicode_utf8_get_len("Test - נסיון") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + /* First ltr char requires more specific handling */ + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + i++; + for ( ; i < eina_unicode_utf8_get_len("Test - נסיון...") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* And with an rtl text */ + evas_object_text_text_set(to, "נסיון - test..."); + x = 0; + px = 100; + for (i = 0 ; i < eina_unicode_utf8_get_len("נסיון - ") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* First ltr char requires more specific handling */ + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + i++; + for ( ; i < eina_unicode_utf8_get_len("נסיון - test") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x <= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + /* First rtl char requires more specific handling */ + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + i++; + for ( ; i < eina_unicode_utf8_get_len("נסיון - test...") ; i++) + { + fail_if(!evas_object_text_char_pos_get(to, i, &x, &y, &w, &h)); + fail_if(x >= px); + px = x; + /* Get back the coords */ + fail_if(i != evas_object_text_char_coords_get(to, x + (w / 2), + y + (h / 2), &x, &y, &w, &h)); + } + + /* And some last up to pos tests */ + Evas_Coord adv; + int pos, prev_pos; + evas_object_text_text_set(to, "Test - נסיון..."); + adv = evas_object_text_horiz_advance_get(to); + pos = prev_pos = 0; + for (x = 0 ; x <= (adv - 1) ; x++) + { + pos = evas_object_text_last_up_to_pos(to, x, 0); + fail_if(pos < prev_pos); + prev_pos = pos; + } + pos = evas_object_text_last_up_to_pos(to, x, 0); + fail_if(pos != -1); + pos = evas_object_text_last_up_to_pos(to, -50, 0); + fail_if(pos != -1); + + END_TEXT_TEST(); +} +END_TEST +#endif + +void evas_test_text(TCase *tc) +{ + tcase_add_test(tc, evas_text_simple); + tcase_add_test(tc, evas_text_style); + tcase_add_test(tc, evas_text_set_get); + tcase_add_test(tc, evas_text_geometries); + tcase_add_test(tc, evas_text_evas); +#ifdef HAVE_FRIBIDI + tcase_add_test(tc, evas_text_bidi); +#endif + + tcase_add_test(tc, evas_text_unrelated); +} diff --git a/src/tests/evas/evas_test_textblock.c b/src/tests/evas/evas_test_textblock.c new file mode 100644 index 0000000000..e3fdfa8b6c --- /dev/null +++ b/src/tests/evas/evas_test_textblock.c @@ -0,0 +1,2219 @@ +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include + +#include + +#include "evas_suite.h" +#include "Evas.h" + +#include "evas_tests_helpers.h" + +/* Functions defined in evas_object_textblock.c */ +EAPI Eina_Bool +_evas_textblock_check_item_node_link(Evas_Object *obj); +EAPI int +_evas_textblock_format_offset_get(const Evas_Object_Textblock_Node_Format *n); +/* end of functions defined in evas_object_textblock.c */ + + +static const char *style_buf = + "DEFAULT='font=Sans font_size=10 color=#000 text_class=entry'" + "newline='br'" + "b='+ font=Sans:style=bold'"; + +#define START_TB_TEST() \ + Evas *evas; \ + Evas_Object *tb; \ + Evas_Textblock_Style *st; \ + Evas_Textblock_Cursor *cur; \ + evas = EVAS_TEST_INIT_EVAS(); \ + evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); \ + tb = evas_object_textblock_add(evas); \ + fail_if(!tb); \ + evas_object_textblock_legacy_newline_set(tb, EINA_FALSE); \ + st = evas_textblock_style_new(); \ + fail_if(!st); \ + evas_textblock_style_set(st, style_buf); \ + fail_if(strcmp(style_buf, evas_textblock_style_get(st))); \ + evas_object_textblock_style_set(tb, st); \ + cur = evas_object_textblock_cursor_new(tb); \ +do \ +{ \ +} \ +while (0) + +#define END_TB_TEST() \ +do \ +{ \ + evas_textblock_cursor_free(cur); \ + evas_object_del(tb); \ + evas_textblock_style_free(st); \ + evas_free(evas); \ + evas_shutdown(); \ +} \ +while (0) + +START_TEST(evas_textblock_simple) +{ + START_TB_TEST(); + const char *buf = "This is a
test."; + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); + END_TB_TEST(); +} +END_TEST + +#define _CHECK_CURSOR_COORDS() \ +do \ +{ \ + Evas_Coord cx, cy, cw, ch; \ + int ret; \ + ret = evas_textblock_cursor_geometry_get(cur, &cx, &cy, &cw, &ch, \ + NULL, EVAS_TEXTBLOCK_CURSOR_UNDER); \ + fail_if(ret == -1); \ + ret = evas_textblock_cursor_geometry_get(cur, &cx, &cy, &cw, &ch, \ + NULL, EVAS_TEXTBLOCK_CURSOR_BEFORE); \ + fail_if(ret == -1); \ + ret = evas_textblock_cursor_char_geometry_get(cur, \ + &cx, &cy, &cw, &ch); \ + fail_if(ret == -1); \ + ret = evas_textblock_cursor_pen_geometry_get(cur, &cx, &cy, &cw, &ch); \ + fail_if(ret == -1); \ + ret = evas_textblock_cursor_line_geometry_get(cur, \ + &cx, &cy, &cw, &ch); \ + fail_if(ret == -1); \ +} \ +while (0) +START_TEST(evas_textblock_cursor) +{ + START_TB_TEST(); + Evas_Coord x, y, w, h; + size_t i, len; + Evas_Coord nw, nh; + const char *buf = "This is a
test.Lets see if this works.עוד פסקה."; + + /* Walk the textblock using cursor_char_next */ + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); + len = eina_unicode_utf8_get_len(buf) - 12; /* 12 because len(
) == 1 and len() == 1 */ + for (i = 0 ; i < len ; i++) + { + _CHECK_CURSOR_COORDS(); + + fail_if(evas_textblock_cursor_pos_get(cur) != (int) i); + + fail_if(!evas_textblock_cursor_char_next(cur) && (i < len - 1)); + } + fail_if(evas_textblock_cursor_char_next(cur)); + + /* Jump to positions all aronud the textblock */ + evas_textblock_cursor_pos_set(cur, -1); + fail_if(evas_textblock_cursor_pos_get(cur) != 0); + + evas_textblock_cursor_pos_set(cur, len + 5); + fail_if(evas_textblock_cursor_pos_get(cur) != (int) len); + + for (i = 0 ; i < len ; i++) + { + evas_textblock_cursor_pos_set(cur, i); + + _CHECK_CURSOR_COORDS(); + + fail_if(evas_textblock_cursor_pos_get(cur) != (int) i); + } + + /* Create another cursor and insert text, making sure everything + * is in sync. */ + evas_object_textblock_clear(tb); + Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); + evas_textblock_cursor_copy(main_cur, cur); + fail_if(evas_textblock_cursor_pos_get(cur) != + evas_textblock_cursor_pos_get(main_cur)); + + evas_textblock_cursor_text_prepend(main_cur, "a"); + fail_if(evas_textblock_cursor_pos_get(cur) == + evas_textblock_cursor_pos_get(main_cur)); + evas_textblock_cursor_text_prepend(main_cur, "a"); + fail_if(evas_textblock_cursor_pos_get(cur) == + evas_textblock_cursor_pos_get(main_cur)); + + /* Insert text to a non-empty textblock */ + evas_object_textblock_clear(tb); + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_copy(main_cur, cur); + fail_if(evas_textblock_cursor_pos_get(cur) != + evas_textblock_cursor_pos_get(main_cur)); + + evas_textblock_cursor_text_prepend(main_cur, "a"); + fail_if(evas_textblock_cursor_pos_get(cur) == + evas_textblock_cursor_pos_get(main_cur)); + evas_textblock_cursor_text_prepend(main_cur, "a"); + fail_if(evas_textblock_cursor_pos_get(cur) == + evas_textblock_cursor_pos_get(main_cur)); + + /* Make sure append works */ + evas_textblock_cursor_copy(main_cur, cur); + fail_if(evas_textblock_cursor_pos_get(cur) != + evas_textblock_cursor_pos_get(main_cur)); + evas_textblock_cursor_text_append(main_cur, "a"); + fail_if(evas_textblock_cursor_pos_get(cur) != + evas_textblock_cursor_pos_get(main_cur)); + + /* Cursor comparison */ + evas_textblock_cursor_pos_set(cur, 1); + evas_textblock_cursor_pos_set(main_cur, 2); + fail_if(evas_textblock_cursor_compare(cur, main_cur) != -1); + + evas_textblock_cursor_pos_set(cur, 2); + evas_textblock_cursor_pos_set(main_cur, 2); + fail_if(evas_textblock_cursor_compare(cur, main_cur) != 0); + + evas_textblock_cursor_pos_set(cur, 3); + evas_textblock_cursor_pos_set(main_cur, 2); + fail_if(evas_textblock_cursor_compare(cur, main_cur) != 1); + + /* Paragraph first */ + evas_object_textblock_text_markup_set(tb, buf); + for (i = 0 ; i < len ; i++) + { + evas_textblock_cursor_pos_set(cur, i); + + evas_textblock_cursor_paragraph_first(cur); + fail_if(evas_textblock_cursor_pos_get(cur) != 0); + } + + /* Paragraph last */ + for (i = 0 ; i < len ; i++) + { + evas_textblock_cursor_pos_set(cur, i); + + evas_textblock_cursor_paragraph_last(cur); + fail_if(evas_textblock_cursor_pos_get(cur) != (int) len); + } + + /* Paragraph next */ + evas_textblock_cursor_paragraph_last(cur); + fail_if(evas_textblock_cursor_paragraph_next(cur)); + + evas_textblock_cursor_paragraph_first(cur); + fail_if(!evas_textblock_cursor_paragraph_next(cur)); + fail_if(!evas_textblock_cursor_paragraph_next(cur)); + + /* Paragraph prev */ + evas_textblock_cursor_paragraph_first(cur); + fail_if(evas_textblock_cursor_paragraph_prev(cur)); + + evas_textblock_cursor_paragraph_last(cur); + fail_if(!evas_textblock_cursor_paragraph_prev(cur)); + fail_if(!evas_textblock_cursor_paragraph_prev(cur)); + + /* Cher next */ + evas_textblock_cursor_paragraph_last(cur); + fail_if(evas_textblock_cursor_char_next(cur)); + + evas_textblock_cursor_paragraph_first(cur); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(!evas_textblock_cursor_paragraph_next(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(!evas_textblock_cursor_paragraph_next(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + + /* Cher prev */ + evas_textblock_cursor_paragraph_first(cur); + fail_if(evas_textblock_cursor_char_prev(cur)); + + evas_textblock_cursor_paragraph_last(cur); + fail_if(!evas_textblock_cursor_char_prev(cur)); + fail_if(!evas_textblock_cursor_paragraph_prev(cur)); + fail_if(!evas_textblock_cursor_char_prev(cur)); + + /* Paragraph char first */ + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_paragraph_first(cur); + fail_if(!evas_textblock_cursor_char_next(cur)); + evas_textblock_cursor_paragraph_char_first(cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + /* Paragraph char last */ + evas_textblock_cursor_paragraph_last(main_cur); + evas_textblock_cursor_paragraph_last(cur); + fail_if(!evas_textblock_cursor_char_prev(cur)); + evas_textblock_cursor_paragraph_char_last(cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + /* Line char first */ + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_paragraph_first(cur); + fail_if(!evas_textblock_cursor_char_next(cur)); + evas_textblock_cursor_line_char_first(cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + evas_textblock_cursor_pos_set(cur, 12); + evas_textblock_cursor_line_char_first(cur); + fail_if(evas_textblock_cursor_pos_get(cur) != 10); + + /* Line char first */ + evas_textblock_cursor_paragraph_last(main_cur); + evas_textblock_cursor_paragraph_last(cur); + fail_if(!evas_textblock_cursor_char_prev(cur)); + evas_textblock_cursor_line_char_last(cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + evas_textblock_cursor_pos_set(cur, 12); + evas_textblock_cursor_line_char_last(cur); + fail_if(evas_textblock_cursor_pos_get(cur) != 16); + + /* Line set */ + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_paragraph_last(cur); + + fail_if(!evas_textblock_cursor_line_set(cur, 0)); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + fail_if(!evas_textblock_cursor_line_set(cur, 1)); + fail_if(!evas_textblock_cursor_line_set(cur, 2)); + fail_if(!evas_textblock_cursor_line_set(cur, 3)); + + fail_if(evas_textblock_cursor_line_set(cur, -1)); + fail_if(evas_textblock_cursor_line_set(cur, 99)); + + /* Paragraph text get */ + evas_textblock_cursor_paragraph_first(cur); + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "This is a
test.")); + evas_textblock_cursor_paragraph_next(cur); + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "Lets see if this works.")); + evas_textblock_cursor_paragraph_next(cur); + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "עוד פסקה.")); + + /* Paragraph length get */ + evas_textblock_cursor_paragraph_first(cur); + /* -4 because len(
) == 1 */ + fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != + eina_unicode_utf8_get_len("This is a
test.") - 4); + evas_textblock_cursor_paragraph_next(cur); + fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != + eina_unicode_utf8_get_len("Lets see if this works.")); + evas_textblock_cursor_paragraph_next(cur); + fail_if(evas_textblock_cursor_paragraph_text_length_get(cur) != + eina_unicode_utf8_get_len("עוד פסקה.")); + + /* Cursor content get */ + evas_textblock_cursor_pos_set(cur, 0); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "T")); + evas_textblock_cursor_pos_set(cur, 9); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "
")); + evas_textblock_cursor_pos_set(cur, 43); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "ד")); + + /* Eol get */ + for (i = 0 ; i < len ; i++) + { + evas_textblock_cursor_pos_set(cur, i); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_line_char_last(main_cur); + + if (!evas_textblock_cursor_compare(cur, main_cur)) + { + fail_if(!evas_textblock_cursor_eol_get(cur)); + } + else + { + fail_if(evas_textblock_cursor_eol_get(cur)); + } + } + + /* Format positions */ + const Evas_Object_Textblock_Node_Format *fnode; + fnode = evas_textblock_node_format_first_get(tb); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + evas_textblock_cursor_copy(cur, main_cur); + fail_if(evas_textblock_cursor_pos_get(cur) != 9); + fail_if(evas_textblock_cursor_format_get(cur) != fnode); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_pos_get(cur) != 16); + fail_if(evas_textblock_cursor_format_get(cur) != fnode); + evas_textblock_cursor_format_next(main_cur); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_pos_get(cur) != 9); + fail_if(evas_textblock_cursor_format_get(cur) != fnode); + evas_textblock_cursor_format_prev(main_cur); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_char_next(main_cur); + evas_textblock_cursor_format_prev(main_cur); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + + evas_object_textblock_text_markup_set(tb, buf); + + /* Check that pen geometry and getting char at coord are in sync. */ + do + { + int cur_pos; + + /* Check if it's the last char, if it is, break, otherwise, go back + * to the current char because our test advanced the cursor. */ + if (!evas_textblock_cursor_char_next(cur)) + break; + else + evas_textblock_cursor_char_prev(cur); + + cur_pos = evas_textblock_cursor_pos_get(cur); + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + evas_textblock_cursor_char_coord_set(cur, x + (w / 2), y + (h / 2)); + fail_if(cur_pos != evas_textblock_cursor_pos_get(cur)); + } + while (evas_textblock_cursor_char_next(cur)); + + /* Try positions before the first paragraph, and after the last paragraph */ + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_native_get(tb, &nw, &nh); + evas_object_resize(tb, nw, nh); + evas_textblock_cursor_pos_set(cur, 5); + evas_textblock_cursor_char_coord_set(cur, nw / 2, + -50); + evas_textblock_cursor_paragraph_first(main_cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + evas_textblock_cursor_pos_set(cur, 5); + evas_textblock_cursor_char_coord_set(cur, nw / 2, + nh + 50); + evas_textblock_cursor_paragraph_last(main_cur); + fail_if(evas_textblock_cursor_compare(cur, main_cur)); + + /* Try positions beyond the left/right limits of lines. */ + for (i = 0 ; i < 2 ; i++) + { + evas_textblock_cursor_line_set(cur, i); + evas_textblock_cursor_line_geometry_get(cur, &x, &y, &w, &h); + + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_char_coord_set(main_cur, x + w + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + } + +#ifdef HAVE_FRIBIDI + evas_object_textblock_text_markup_set(tb, + "testנסיוןtestנסיון" + "נסיוןtestנסיוןtest" + "testנסיוןtest" + "נסיוןtestנסיון" + "testנסיון
נסיון" + "נסיוןtest
test" + ); + + for (i = 0 ; i < 8 ; i++) + { + evas_textblock_cursor_line_set(cur, i); + evas_textblock_cursor_line_geometry_get(cur, &x, &y, &w, &h); + switch (i) + { + case 0: + case 2: + case 4: + case 5: + /* Ltr paragraph */ + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x + w + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + break; + case 1: + case 3: + case 6: + case 7: + /* Rtl paragraph */ + evas_textblock_cursor_line_char_last(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x - 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_line_char_first(cur); + evas_textblock_cursor_pos_set(main_cur, 7); + evas_textblock_cursor_char_coord_set(main_cur, x + w + 50, y); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + break; + } + } +#endif + + evas_object_textblock_text_markup_set(tb, buf); + /* Testing line geometry.*/ + { + Evas_Coord lx, ly, lw, lh; + Evas_Coord plx, ply, plw, plh; + evas_textblock_cursor_line_set(cur, 0); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_line_char_last(main_cur); + evas_textblock_cursor_line_geometry_get(cur, &plx, &ply, &plw, &plh); + + while (evas_textblock_cursor_compare(cur, main_cur) <= 0) + { + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + fail_if(0 != evas_textblock_cursor_line_geometry_get( + cur, &lx, &ly, &lw, &lh)); + fail_if((x < lx) || (x + w > lx + lw) || + (y < ly) || (y + h > ly + lh)); + fail_if((lx != plx) || (ly != ply) || (lw != plw) || (lh != plh)); + + plx = lx; + ply = ly; + plw = lw; + plh = lh; + evas_textblock_cursor_char_next(cur); + } + + evas_textblock_cursor_line_set(cur, 1); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_line_char_last(main_cur); + evas_textblock_cursor_line_geometry_get(cur, &plx, &ply, &plw, &plh); + + while (evas_textblock_cursor_compare(cur, main_cur) <= 0) + { + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + fail_if(1 != evas_textblock_cursor_line_geometry_get( + cur, &lx, &ly, &lw, &lh)); + fail_if((x < lx) || (x + w > lx + lw) || + (y < ly) || (y + h > ly + lh)); + fail_if((lx != plx) || (ly != ply) || (lw != plw) || (lh != plh)); + + plx = lx; + ply = ly; + plw = lw; + plh = lh; + evas_textblock_cursor_char_next(cur); + } + + evas_textblock_cursor_paragraph_last(cur); + evas_textblock_cursor_line_set(cur, 0); + evas_textblock_cursor_line_geometry_get(cur, &plx, &ply, &plw, &plh); + evas_object_textblock_line_number_geometry_get(tb, 0, + &lx, &ly, &lw, &lh); + fail_if((lx != plx) || (ly != ply) || (lw != plw) || (lh != plh)); + fail_if(0 != evas_textblock_cursor_line_coord_set(cur, ly + (lh / 2))); + + evas_textblock_cursor_line_set(cur, 1); + evas_textblock_cursor_line_geometry_get(cur, &plx, &ply, &plw, &plh); + evas_object_textblock_line_number_geometry_get(tb, 1, + &lx, &ly, &lw, &lh); + fail_if((lx != plx) || (ly != ply) || (lw != plw) || (lh != plh)); + fail_if(1 != evas_textblock_cursor_line_coord_set(cur, ly + (lh / 2))); + + /* Before the start of the textblock */ + fail_if(0 != evas_textblock_cursor_line_coord_set(cur, -50)); + fail_if(3 != evas_textblock_cursor_line_coord_set(cur, 100000)); + + /* And now with a valigned textblock. */ + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_native_get(tb, &nw, &nh); + evas_object_resize(tb, 2 * nw, 2 * nh); + + evas_object_textblock_valign_set(tb, 0.5); + evas_textblock_cursor_paragraph_first(cur); + evas_textblock_cursor_pen_geometry_get(cur, &x, &y, &w, &h); + fail_if(y <= 0); + + evas_textblock_cursor_paragraph_last(main_cur); + evas_textblock_cursor_char_coord_set(main_cur, x + w, y / 2); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_paragraph_last(main_cur); + evas_textblock_cursor_line_coord_set(main_cur, y / 2); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + /* Fail if they are equal, i.e if it for some reason thinks it should + * go to the end. */ + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_paragraph_last(cur); + evas_textblock_cursor_char_coord_set(main_cur, x + w, nh + 1); + fail_if(!evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_paragraph_last(cur); + evas_textblock_cursor_line_coord_set(main_cur, nh + 1); + fail_if(!evas_textblock_cursor_compare(main_cur, cur)); + + /* Fail if it doesn't go to the end. */ + evas_textblock_cursor_paragraph_last(cur); + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_char_coord_set(main_cur, x + w, (2 * nh) - 1); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + + evas_textblock_cursor_paragraph_first(main_cur); + evas_textblock_cursor_line_coord_set(main_cur, (2 * nh) - 1); + fail_if(evas_textblock_cursor_compare(main_cur, cur)); + } + + { + const char *buf_wb = "a This is_a t:e.s't a"; + evas_object_textblock_text_markup_set(tb, buf_wb); + + /* Word start/end */ + evas_textblock_cursor_pos_set(cur, 3); + evas_textblock_cursor_word_start(cur); + fail_if(2 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_end(cur); + fail_if(5 != evas_textblock_cursor_pos_get(cur)); + + evas_textblock_cursor_pos_set(cur, 13); + evas_textblock_cursor_word_end(cur); + fail_if(18 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_start(cur); + fail_if(12 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_start(cur); + fail_if(12 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_start(cur); + fail_if(12 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_end(cur); + fail_if(18 != evas_textblock_cursor_pos_get(cur)); + evas_textblock_cursor_word_end(cur); + fail_if(18 != evas_textblock_cursor_pos_get(cur)); + + /* Bug with 1 char word separators at paragraph start. */ + evas_object_textblock_text_markup_set(tb, "=test"); + evas_textblock_cursor_pos_set(cur, 4); + evas_textblock_cursor_word_start(cur); + fail_if(1 != evas_textblock_cursor_pos_get(cur)); + } + + END_TB_TEST(); +} +END_TEST + +START_TEST(evas_textblock_format_removal) +{ + START_TB_TEST(); + int i; + const char *buf = "This a
tesst."; + const Evas_Object_Textblock_Node_Format *fnode; + Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); + evas_object_textblock_text_markup_set(tb, buf); + + /* Remove the "b" pair. */ + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ a")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- a")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Now also remove the a pair */ + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Remove the "a" pair. */ + evas_object_textblock_text_markup_set(tb, buf); + + fnode = evas_textblock_node_format_first_get(tb); + fnode = evas_textblock_node_format_next_get(fnode); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Now also remove the b pair */ + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Now remove formats by removing text */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_pos_set(cur, 6); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + /* Only b formats should remain */ + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* No formats should remain. */ + evas_textblock_cursor_pos_set(cur, 2); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Try to remove the formats in a way that shouldn't remove them */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_pos_set(cur, 7); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + evas_textblock_cursor_char_delete(cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ a")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- a")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Try range deletion to delete a */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_pos_set(cur, 6); + evas_textblock_cursor_pos_set(main_cur, 9); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Range deletion to delete both */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_pos_set(cur, 2); + evas_textblock_cursor_pos_set(main_cur, 11); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Range deletion across paragraphs */ + evas_object_textblock_text_markup_set(tb, + "This ate" + "sst."); + evas_textblock_cursor_pos_set(cur, 6); + evas_textblock_cursor_pos_set(main_cur, 10); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Range deletion across paragraph - a bug found in elm. */ + evas_object_textblock_text_markup_set(tb, + "This is an entry widget in this window that" + "uses markup like this for styling and" + "formatting like this, as well as" + "links in the text, so enter text" + "in here to edit it. By the way, links are" + "called Anchors so you will need" + "to refer to them this way." + "" + + "Also you can stick in items with (relsize + ascent): " + "" + " (full) " + "" + " (to the left)" + + "Also (size + ascent): " + "" + " (full) " + "" + " (before this)" + + "And as well (absize + ascent): " + "" + " (full) " + "" + " or even paths to image files on disk too like: " + "" + " ... end."); + evas_textblock_cursor_paragraph_first(cur); + evas_textblock_cursor_paragraph_last(main_cur); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if(fnode); + + + /* Deleting a range with just one char and surrounded by formats, that + * deletes a paragraph. */ + evas_object_textblock_text_markup_set(tb, "AB"); + evas_textblock_cursor_pos_set(cur, 2); + evas_textblock_cursor_pos_set(main_cur, 3); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Two formats in the same place. */ + evas_object_textblock_text_markup_set(tb, "abb"); + evas_textblock_cursor_pos_set(cur, 1); + evas_textblock_cursor_char_delete(cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Two formats across different paragraphs with notihng in between. */ + evas_object_textblock_text_markup_set(tb, ""); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_char_delete(cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Try with range */ + evas_object_textblock_text_markup_set(tb, ""); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_pos_set(main_cur, 1); + evas_textblock_cursor_range_delete(cur, main_cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Verify fmt position and REP_CHAR positions are the same */ + evas_object_textblock_text_markup_set(tb, + "This isan a."); + evas_textblock_cursor_pos_set(cur, 7); + evas_textblock_cursor_char_delete(cur); + fnode = evas_textblock_node_format_first_get(tb); + fail_if(_evas_textblock_format_offset_get(fnode) != 10); + + /* Out of order mixes. */ + evas_object_textblock_text_markup_set(tb, "abcde"); + evas_textblock_cursor_pos_set(cur, 2); + + for (i = 0 ; i < 2 ; i++) + { + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + evas_textblock_cursor_char_delete(cur); + } + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* This time with a generic closer */ + evas_object_textblock_text_markup_set(tb, "abcde"); + evas_textblock_cursor_pos_set(cur, 2); + + for (i = 0 ; i < 2 ; i++) + { + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + evas_textblock_cursor_char_delete(cur); + } + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* And now with remove pair. */ + evas_object_textblock_text_markup_set(tb, "abcde"); + evas_textblock_cursor_pos_set(cur, 2); + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Remove the other pair */ + evas_object_textblock_text_markup_set(tb, "abcde"); + evas_textblock_cursor_pos_set(cur, 2); + fnode = evas_textblock_node_format_first_get(tb); + fnode = evas_textblock_node_format_next_get(fnode); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + /* Remove two pairs with the same name and same positions. */ + evas_object_textblock_text_markup_set(tb, "A"); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_char_delete(cur); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (fnode); + + /* Try to remove a format that doesn't have a pair (with a bad mkup) */ + evas_object_textblock_text_markup_set(tb, "abcde"); + evas_textblock_cursor_pos_set(cur, 2); + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, + (Evas_Object_Textblock_Node_Format *) fnode); + + fnode = evas_textblock_node_format_first_get(tb); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- i")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if (fnode); + + END_TB_TEST(); +} +END_TEST + +/* Testing items */ +START_TEST(evas_textblock_items) +{ + Evas_Coord w, h, w2, h2, nw, nh, ih; + START_TB_TEST(); + const char *buf = "This is an ."; + + /* Absolute item size */ + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < 93) || (h != 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != 93) || (h != 152)); + + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < 93) || (h <= 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != 93) || (h != 152)); + + /* Size is the same as abssize, unless there's scaling applied. */ + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < 93) || (h != 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != 93) || (h != 152)); + + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < 93) || (h <= 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != 93) || (h != 152)); + + evas_object_scale_set(tb, 2.0); + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < (2 * 93)) || (h != (2 * 152))); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != (2 * 93)) || (h != (2 * 152))); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != (2 * 93)) || (h != (2 * 152))); + + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w < (2 * 93)) || (h <= (2 * 152))); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + fail_if((w != (2 * 93)) || (h != (2 * 152))); + + evas_object_scale_set(tb, 1.0); + + /* Relsize */ + /* relsize means it should adjust itself to the size of the line */ + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w >= 93) || (h >= 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &ih); + fail_if((w > 90) || (h != ih)); + + buf = "This is an ."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w >= 93) || (h >= 152)); + evas_textblock_cursor_pos_set(cur, 11); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &ih); + fail_if((w > 90) || (h <= ih)); + + /* Relsize and abs size in the same line, all should be the same size */ + buf = ""; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_textblock_size_native_get(tb, &nw, &nh); + fail_if((nw != w) || (nh != h)); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w2, &h2); + fail_if((w != w2) || (h != h2)); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w, &h); + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_format_item_geometry_get(cur, NULL, NULL, &w2, &h2); + fail_if((w != w2) || (h != h2)); + + /* FIXME: Also verify x,y positions of the item. */ + + /* FIXME We need some item tests that involve line wrapping that make the + * items move between lines that are in different sizes. + * Also, tests that involve wrapping positions with relsized items. We + * want to make sure the item gets a relsize on the correct time (before + * the wrapping, and then is updated after the wrapping) and that + * all the lines have the correct sizes afterwards. */ + + END_TB_TEST(); +} +END_TEST + +/* Wrapping tests */ +START_TEST(evas_textblock_wrapping) +{ + Evas_Coord bw, bh, w, h, nw, nh; + int i; + START_TB_TEST(); + evas_object_textblock_text_markup_set(tb, "a"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + + /* Char wrap */ + evas_object_textblock_text_markup_set(tb, "aaaaaaa"); + evas_textblock_cursor_format_prepend(cur, "+ wrap=char"); + evas_object_resize(tb, bw, bh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + /* Wrap to minimum */ + fail_if(w != bw); + fail_if(h <= bh); + + /* Mixed - fallback to char wrap */ + evas_object_textblock_text_markup_set(tb, "aaaaaaa"); + evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); + evas_object_resize(tb, bw, bh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + /* Wrap to minimum */ + fail_if(w != bw); + fail_if(h <= bh); + + /* Basic Word wrap */ + evas_object_textblock_text_markup_set(tb, "aaaa"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + + evas_object_textblock_text_markup_set(tb, "aaaa aa"); + evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); + evas_object_resize(tb, bw, bh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + /* Wrap to minimum */ + fail_if(w != bw); + fail_if(h <= bh); + + /* Mixed - fallback to word wrap */ + evas_object_textblock_text_markup_set(tb, "aaaa aa"); + evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); + evas_object_resize(tb, bw + 1, bh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + /* Wrap to minimum */ + fail_if(w != bw); + fail_if(h <= bh); + + /* Wrap and then expand again. */ + evas_object_textblock_text_markup_set(tb, "aaaa aa"); + evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); + evas_object_resize(tb, bw, bh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_textblock_size_native_get(tb, &nw, &nh); + evas_object_resize(tb, nw, nh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w != nw) || (h != nh)); + + /* Reduce size until reaching the minimum, making sure we don't + * get something wrong along the way */ + /* Char wrap */ + evas_object_textblock_text_markup_set(tb, "a"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + evas_object_textblock_text_markup_set(tb, + "aaaa aaaa aaa aa aaa" + "aaaa aaa aaa aaa aaa" + "a aaaaa aaaaaaaaaaaaaa
aaaaa" + "aaaaaa" + ); + evas_textblock_cursor_format_prepend(cur, "+ wrap=char"); + evas_object_textblock_size_native_get(tb, &nw, &nh); + + Evas_Coord iw; + for (iw = nw ; iw >= bw ; iw--) + { + evas_object_resize(tb, iw, 1000); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if(w < bw); + fail_if(w > iw); + } + fail_if(w != bw); + + /* Word wrap */ + evas_object_textblock_text_markup_set(tb, "aaaaaa"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + evas_object_textblock_text_markup_set(tb, + "aaaa aaaa aaa aa aaa" + "aaaa aaa aaa aaa aaa" + "a aaaaa aaaaaa
aaaaa" + "aaaaa" + ); + evas_textblock_cursor_format_prepend(cur, "+ wrap=word"); + evas_object_textblock_size_native_get(tb, &nw, &nh); + + for (iw = nw ; iw >= bw ; iw--) + { + evas_object_resize(tb, iw, 1000); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if(w < bw); + fail_if(w > iw); + } + fail_if(w != bw); + + /* Mixed wrap */ + evas_object_textblock_text_markup_set(tb, "a"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + evas_object_textblock_text_markup_set(tb, + "aaaa aaaa aaa aa aaa" + "aaaa aaa aaa aaa aaa" + "a aaaaa aaaaaa
aaaaa" + "aaaaa" + ); + evas_textblock_cursor_format_prepend(cur, "+ wrap=mixed"); + evas_object_textblock_size_native_get(tb, &nw, &nh); + + for (iw = nw ; iw >= bw ; iw--) + { + evas_object_resize(tb, iw, 1000); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if(w < bw); + fail_if(w > iw); + } + fail_if(w != bw); + + /* Resize, making sure we keep going down in the minimum size. */ + char *wrap_style[] = { "+ wrap=word", "+ wrap=char", "+ wrap=mixed" }; + int wrap_items = sizeof(wrap_style) / sizeof(*wrap_style); + + evas_object_textblock_text_markup_set(tb, + "This is an entry widget in this window that
" + "uses markup like this for styling and
" + "formatting like this, as well as
" + "links in the text, so enter text
" + "in here to edit it. By the way, links are
" + "called Anchors so you will need
" + "to refer to them this way.
" + "
" + + "Also you can stick in items with (relsize + ascent): " + "" + " (full) " + "" + " (to the left)
" + + "Also (size + ascent): " + "" + " (full) " + "" + " (before this)
" + + "And as well (absize + ascent): " + "" + " (full) " + "" + " or even paths to image files on disk too like: " + "" + " ... end." + ); + + /* Get minimum size */ + evas_object_textblock_size_native_get(tb, &nw, &nh); + + for (i = 0 ; i < wrap_items ; i++) + { + evas_textblock_cursor_format_prepend(cur, wrap_style[i]); + evas_object_resize(tb, 0, 0); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + + for (iw = nw ; iw >= bw ; iw--) + { + evas_object_resize(tb, iw, 1000); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if(w < bw); + fail_if(w > iw); + } + fail_if(w != bw); + } + + + /* Ellipsis */ + evas_object_textblock_text_markup_set(tb, "aaaaaaaaaa"); + evas_textblock_cursor_format_prepend(cur, "+ ellipsis=1.0"); + evas_object_textblock_size_native_get(tb, &nw, &nh); + evas_object_resize(tb, nw / 2, nh); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w > (nw / 2)) || (h != nh)); + + evas_object_textblock_text_markup_set(tb, "aaaaaaaaaaaaaaaaaa
b"); + evas_textblock_cursor_format_prepend(cur, "+ ellipsis=1.0 wrap=word"); + evas_object_textblock_size_native_get(tb, &nw, &nh); + evas_object_resize(tb, nw / 2, nh * 2); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if(w > (nw / 2)); + + END_TB_TEST(); +} +END_TEST + +/* Various textblock stuff */ +START_TEST(evas_textblock_various) +{ + Evas_Coord w, h, bw, bh; + START_TB_TEST(); + const char *buf = "Thistextblockhasalotoflines."; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + /* Move outside of the screen so it'll have to search for the correct + * paragraph and etc. */ + evas_object_move(tb, -(w / 2), -(h / 2)); + + /* Replacement char */ + evas_object_textblock_text_markup_set(tb, "*"); + evas_object_textblock_size_formatted_get(tb, &bw, &bh); + evas_object_textblock_replace_char_set(tb, "*"); + evas_object_textblock_text_markup_set(tb, "|"); + evas_object_textblock_size_formatted_get(tb, &w, &h); + fail_if((w != bw) || (h != bh)); + + /* Items have correct text node information */ + evas_object_textblock_text_markup_set(tb, ""); + fail_if(!_evas_textblock_check_item_node_link(tb)); + evas_object_textblock_text_markup_set(tb, ""); + fail_if(!_evas_textblock_check_item_node_link(tb)); + evas_object_textblock_text_markup_set(tb, "a"); + fail_if(!_evas_textblock_check_item_node_link(tb)); + evas_object_textblock_text_markup_set(tb, "aa"); + fail_if(!_evas_textblock_check_item_node_link(tb)); + evas_object_textblock_text_markup_set(tb, "aa"); + fail_if(!_evas_textblock_check_item_node_link(tb)); + evas_object_textblock_text_markup_set(tb, "aaa"); + fail_if(!_evas_textblock_check_item_node_link(tb)); + + /* These shouldn't crash (although the desired outcome is not yet defined) */ + evas_object_textblock_text_markup_set(tb, ""); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_char_delete(cur); + + evas_object_textblock_text_markup_set(tb, "\xEF\xBF\xBC"); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_char_delete(cur); + + END_TB_TEST(); +} +END_TEST + +/* Various geometries. e.g. range geometry. */ +START_TEST(evas_textblock_geometries) +{ + START_TB_TEST(); + const char *buf = "This is a
test."; + evas_object_textblock_text_markup_set(tb, buf); + + /* Single line range */ + Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_pos_set(main_cur, 6); + + Eina_List *rects, *rects2; + Evas_Textblock_Rectangle *tr, *tr2; + rects = evas_textblock_cursor_range_geometry_get(cur, main_cur); + fail_if(!rects); + rects2 = evas_textblock_cursor_range_geometry_get(main_cur, cur); + fail_if(!rects2); + + fail_if(eina_list_count(rects) != 1); + fail_if(eina_list_count(rects2) != 1); + + tr = eina_list_data_get(rects); + fail_if((tr->h <= 0) || (tr->w <= 0)); + tr2 = eina_list_data_get(rects2); + fail_if((tr2->h <= 0) || (tr2->w <= 0)); + + fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) || + (tr->h != tr2->h)); + + /* Multiline range */ + evas_textblock_cursor_pos_set(cur, 0); + evas_textblock_cursor_pos_set(main_cur, 14); + + rects = evas_textblock_cursor_range_geometry_get(cur, main_cur); + fail_if(!rects); + rects2 = evas_textblock_cursor_range_geometry_get(main_cur, cur); + fail_if(!rects2); + + fail_if(eina_list_count(rects) != 2); + fail_if(eina_list_count(rects2) != 2); + + tr = eina_list_data_get(rects); + fail_if((tr->h <= 0) || (tr->w <= 0)); + tr2 = eina_list_data_get(rects2); + fail_if((tr2->h <= 0) || (tr2->w <= 0)); + + fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) || + (tr->h != tr2->h)); + + tr = eina_list_data_get(eina_list_next(rects)); + fail_if((tr->h <= 0) || (tr->w <= 0)); + tr2 = eina_list_data_get(eina_list_next(rects2)); + fail_if((tr2->h <= 0) || (tr2->w <= 0)); + + fail_if((tr->x != tr2->x) || (tr->y != tr2->y) || (tr->w != tr2->w) || + (tr->h != tr2->h)); + + /* Check that the second line is positioned below the first */ + tr = eina_list_data_get(rects); + tr2 = eina_list_data_get(eina_list_next(rects)); + fail_if(tr->y >= tr2->y); + + END_TB_TEST(); +} +END_TEST + +/* Should handle all the text editing. */ +START_TEST(evas_textblock_editing) +{ + START_TB_TEST(); + const char *buf = "First par.Second par."; + evas_object_textblock_text_markup_set(tb, buf); + Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); + + /* Check deletion works */ + /* Try deleting after the end of the textblock */ + { + char *content; + evas_textblock_cursor_paragraph_last(cur); + content = strdup(evas_object_textblock_text_markup_get(tb)); + evas_textblock_cursor_char_delete(cur); + fail_if(strcmp(content, evas_object_textblock_text_markup_get(tb))); + free(content); + } + + /* Delete the first char */ + evas_textblock_cursor_paragraph_first(cur); + evas_textblock_cursor_char_delete(cur); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), + "irst par.Second par.")); + + /* Delete some arbitrary char */ + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_char_delete(cur); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), + "irs par.Second par.")); + + /* Delete a range */ + evas_textblock_cursor_pos_set(main_cur, 1); + evas_textblock_cursor_pos_set(cur, 6); + evas_textblock_cursor_range_delete(cur, main_cur); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), + "ir.Second par.")); + evas_textblock_cursor_paragraph_char_first(main_cur); + evas_textblock_cursor_paragraph_char_last(cur); + evas_textblock_cursor_char_next(cur); + evas_textblock_cursor_range_delete(cur, main_cur); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), + "Second par.")); + + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_paragraph_last(main_cur); + evas_object_textblock_text_markup_prepend(main_cur, "Testblabla."); + evas_textblock_cursor_paragraph_last(cur); + evas_textblock_cursor_paragraph_char_first(main_cur); + evas_textblock_cursor_range_delete(cur, main_cur); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), + "First par.")); + + /* Merging paragraphs */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_paragraph_char_last(cur); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_char_delete(cur); + + evas_textblock_cursor_paragraph_first(cur); + fail_if(evas_textblock_cursor_paragraph_next(cur)); + + /* Split paragraphs */ + evas_textblock_cursor_format_prepend(cur, "ps"); + + evas_textblock_cursor_paragraph_first(cur); + fail_if(!evas_textblock_cursor_paragraph_next(cur)); + fail_if(evas_textblock_cursor_paragraph_next(cur)); + + /* Merge paragraphs using range deletion */ + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_paragraph_first(cur); + evas_textblock_cursor_paragraph_char_last(cur); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_char_prev(cur); + evas_textblock_cursor_char_next(main_cur); + + evas_textblock_cursor_range_delete(cur, main_cur); + evas_textblock_cursor_paragraph_first(cur); + fail_if(evas_textblock_cursor_paragraph_next(cur)); + + { + /* Limit to 1000 iterations so we'll never get into an infinite loop, + * even if broken */ + int limit = 1000; + evas_object_textblock_text_markup_set(tb, "this is a test eauoeuaouthis is a test1this is a test 3"); + evas_textblock_cursor_paragraph_last(cur); + while (evas_textblock_cursor_pos_get(cur) > 0) + { + limit--; + fail_if(limit <= 0); + evas_textblock_cursor_copy(cur, main_cur); + evas_textblock_cursor_char_prev(cur); + evas_textblock_cursor_word_start(cur); + evas_textblock_cursor_range_delete(cur, main_cur); + } + } + + + /* Insert illegal characters inside the format. */ + { + const char *content; + evas_object_textblock_text_markup_set(tb, "a\n"); + evas_textblock_cursor_pos_set(cur, 1); + content = evas_textblock_cursor_content_get(cur); + + evas_object_textblock_text_markup_set(tb, "a\t"); + evas_textblock_cursor_pos_set(cur, 1); + content = evas_textblock_cursor_content_get(cur); + + evas_object_textblock_text_markup_set(tb, "a\xEF\xBF\xBC"); + evas_textblock_cursor_pos_set(cur, 1); + content = evas_textblock_cursor_content_get(cur); + + evas_object_textblock_text_markup_set(tb, "a\xE2\x80\xA9"); + evas_textblock_cursor_pos_set(cur, 1); + content = evas_textblock_cursor_content_get(cur); + (void) content; + } + + /* FIXME: Also add text appending/prepending */ + + END_TB_TEST(); +} +END_TEST + +/* Text getters */ +START_TEST(evas_textblock_text_getters) +{ + START_TB_TEST(); + const char *buf = "This is a
test." + "טקסט בעבריתand now in english."; + evas_object_textblock_text_markup_set(tb, buf); + evas_textblock_cursor_paragraph_first(cur); + + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "This is a
test.")); + + evas_textblock_cursor_paragraph_next(cur); + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "טקסט בעברית")); + + evas_textblock_cursor_paragraph_next(cur); + fail_if(strcmp(evas_textblock_cursor_paragraph_text_get(cur), + "and now in english.")); + + /* Range get */ + Evas_Textblock_Cursor *main_cur = evas_object_textblock_cursor_get(tb); + evas_textblock_cursor_pos_set(main_cur, 2); + evas_textblock_cursor_pos_set(cur, 2); + fail_if(*evas_textblock_cursor_range_text_get(main_cur, cur, + EVAS_TEXTBLOCK_TEXT_MARKUP)); + + evas_textblock_cursor_pos_set(main_cur, 2); + evas_textblock_cursor_pos_set(cur, 6); + fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "is i")); + + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_pos_set(cur, 14); + fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "is a
te")); + + evas_textblock_cursor_pos_set(main_cur, 14); + evas_textblock_cursor_pos_set(cur, 20); + fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.טק")); + + evas_textblock_cursor_pos_set(main_cur, 14); + evas_textblock_cursor_pos_set(cur, 32); + fail_if(strcmp(evas_textblock_cursor_range_text_get(main_cur, cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.טקסט בעבריתan")); + + /* Backward range get */ + evas_textblock_cursor_pos_set(main_cur, 2); + evas_textblock_cursor_pos_set(cur, 2); + fail_if(*evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP)); + + evas_textblock_cursor_pos_set(main_cur, 2); + evas_textblock_cursor_pos_set(cur, 6); + fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "is i")); + + evas_textblock_cursor_pos_set(main_cur, 5); + evas_textblock_cursor_pos_set(cur, 14); + fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "is a
te")); + + evas_textblock_cursor_pos_set(main_cur, 14); + evas_textblock_cursor_pos_set(cur, 20); + fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.טק")); + + evas_textblock_cursor_pos_set(main_cur, 14); + evas_textblock_cursor_pos_set(cur, 32); + fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "st.טקסט בעבריתan")); + + /* Uninit cursors and other weird cases */ + evas_object_textblock_clear(tb); + evas_textblock_cursor_copy(main_cur, cur); + evas_textblock_cursor_text_prepend(main_cur, "aaa"); + fail_if(strcmp(evas_textblock_cursor_range_text_get(cur, main_cur, + EVAS_TEXTBLOCK_TEXT_MARKUP), "aaa")); + + /* Markup to plain and vice versa */ + { + char *tmp, *tmp2; + + /* Real textblock object */ + tmp = evas_textblock_text_markup_to_utf8(tb, "
aa<\n/>bb<\t/>"); + fail_if(strcmp(tmp, "\naa\nbb\t")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "
aa
bb")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "a"); + fail_if(strcmp(tmp, "a\xEF\xBF\xBC")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "a")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "a "); + fail_if(strcmp(tmp, "a\xC2\xA0")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "a\xC2\xA0")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "aba"); + fail_if(strcmp(tmp, "aba")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "aba")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "a&a"); + fail_if(strcmp(tmp, "a&a")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "a&a")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "aa"); + fail_if(strcmp(tmp, "a\na")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "a
a")); + free(tmp2); + free(tmp); + + /* NULL textblock object */ + tmp = evas_textblock_text_markup_to_utf8(NULL, "
aa<\n/>bb<\t/>"); + fail_if(strcmp(tmp, "\naa\nbb\t")); + tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp); + fail_if(strcmp(tmp2, "
aa
bb")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(NULL, "a"); + fail_if(strcmp(tmp, "a\xEF\xBF\xBC")); + tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp); + fail_if(strcmp(tmp2, "a")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(NULL, "a "); + fail_if(strcmp(tmp, "a\xC2\xA0")); + tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp); + fail_if(strcmp(tmp2, "a\xC2\xA0")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(NULL, "aba"); + fail_if(strcmp(tmp, "aba")); + tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp); + fail_if(strcmp(tmp2, "aba")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(tb, "a&a"); + fail_if(strcmp(tmp, "a&a")); + tmp2 = evas_textblock_text_utf8_to_markup(tb, tmp); + fail_if(strcmp(tmp2, "a&a")); + free(tmp2); + free(tmp); + + tmp = evas_textblock_text_markup_to_utf8(NULL, "aa"); + fail_if(strcmp(tmp, "aa")); + tmp2 = evas_textblock_text_utf8_to_markup(NULL, tmp); + fail_if(strcmp(tmp2, "aa")); + free(tmp2); + free(tmp); + } + + END_TB_TEST(); +} +END_TEST + +/* Formats */ +START_TEST(evas_textblock_formats) +{ + START_TB_TEST(); + const char *buf = "This is a
test."; + const Evas_Object_Textblock_Node_Format *fnode; + evas_object_textblock_text_markup_set(tb, buf); + + /* Walk from the start */ + fnode = evas_textblock_node_format_first_get(tb); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ font_size=15 wrap=none")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- font_size=13")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "br")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "ps")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ item")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(fnode); + + /* Walk backwards */ + fnode = evas_textblock_node_format_last_get(tb); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ item")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "ps")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "br")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- ")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "- font_size=13")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), + "+ font_size=15 wrap=none")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + + fnode = evas_textblock_node_format_prev_get(fnode); + fail_if(fnode); + + /* Cursor and format detection */ + fnode = evas_textblock_node_format_first_get(tb); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_format_is_visible_get(cur)); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_format_is_visible_get(cur)); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_format_is_visible_get(cur)); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(evas_textblock_cursor_format_is_visible_get(cur)); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + evas_textblock_cursor_at_format_set(cur, fnode); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + + size_t i = 0; + evas_textblock_cursor_paragraph_first(cur); + do + { + switch (i) + { + case 2: + case 3: + case 6: + case 7: + case 10: + case 14: + case 17: + case 18: + fail_if(!evas_textblock_cursor_is_format(cur)); + break; + default: + fail_if(evas_textblock_cursor_is_format(cur)); + fail_if(evas_textblock_cursor_format_is_visible_get(cur)); + break; + } + i++; + } + while (evas_textblock_cursor_char_next(cur)); + + /* Format text nodes invalidation */ + { + Evas_Coord w, h, nw, nh; + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_textblock_cursor_paragraph_first(cur); + evas_textblock_cursor_format_prepend(cur, "+ font_size=40"); + evas_object_textblock_size_formatted_get(tb, &nw, &nh); + fail_if((w >= nw) || (h >= nh)); + } + /* FIXME: Should extend invalidation tests. */ + + /* Various formats, just verify there's no seg, we can't really + * verify them visually, well, we can some of them. Possibly in the + * future we will */ + evas_object_textblock_text_markup_set(tb, + "font_size=40" + "color=#F210B3FF" + "underline=single underline_color=#A2B3C4" + "underline=double underline_color=#F00 underline2_color=#00F" + "underline=dashed underline_dash_color=#0F0 underline_dash_width=2 underline_dash_gap=1" + "style=outline outline_color=#F0FA" + "style=shadow shadow_color=#F0F" + "style=glow glow_color=#BBB" + "style=glow glow2_color=#0F0" + "style=glow color=#fff glow2_color=#fe87 glow_color=#f214" + "backing=on backing_color=#00F" + "strikethrough=on strikethrough_color=#FF0" + "align=right" + "valign=0.0" + "tabstops=<\\t>50" + "linesize=40" + "linerelsize=200%" + "linegap=20" + "linerelgap=100%"); + + /* Force a relayout */ + evas_object_textblock_size_formatted_get(tb, NULL, NULL); + + /* Removing paired formats. */ + evas_object_textblock_text_markup_set(tb, "aabbcc"); + fnode = evas_textblock_node_format_first_get(tb); + evas_textblock_node_format_remove_pair(tb, (Evas_Object_Textblock_Node_Format *) fnode); + fnode = evas_textblock_node_format_first_get(tb); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ b")); + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- b")); + + evas_object_textblock_text_markup_set(tb, "aabbcc"); + fnode = evas_textblock_node_format_first_get(tb); + fnode = evas_textblock_node_format_next_get(fnode); + evas_textblock_node_format_remove_pair(tb, (Evas_Object_Textblock_Node_Format *) fnode); + fnode = evas_textblock_node_format_first_get(tb); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ a")); + fnode = evas_textblock_node_format_next_get(fnode); + fail_if(!fnode); + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "- a")); + + /* Format list get */ + evas_object_textblock_text_markup_set(tb, "aab" + "bbcc"); + const Eina_List *flist = evas_textblock_node_format_list_get(tb, "a"); + const Eina_List *itr; + EINA_LIST_FOREACH(flist, itr, fnode) + { + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ a")); + } + + flist = evas_textblock_node_format_list_get(tb, "item"); + EINA_LIST_FOREACH(flist, itr, fnode) + { + fail_if(strcmp(evas_textblock_node_format_text_get(fnode), "+ item")); + } + + /* Make sure we get all the types of visible formats correctly. */ + evas_object_textblock_text_markup_set(tb, "a
aa"); + fail_if(strcmp(evas_textblock_node_format_text_get( + evas_textblock_cursor_format_get(cur)), "ps")); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "")); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(strcmp(evas_textblock_node_format_text_get( + evas_textblock_cursor_format_get(cur)), "br")); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "
")); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(strcmp(evas_textblock_node_format_text_get( + evas_textblock_cursor_format_get(cur)), "tab")); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "")); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(!evas_textblock_cursor_char_next(cur)); + fail_if(strcmp(evas_textblock_node_format_text_get( + evas_textblock_cursor_format_get(cur)), "+ item")); + fail_if(strcmp(evas_textblock_cursor_content_get(cur), "")); + fail_if(!evas_textblock_cursor_format_is_visible_get(cur)); + + END_TB_TEST(); +} +END_TEST + +/* Different text styles, for example, shadow. */ +START_TEST(evas_textblock_style) +{ + Evas_Coord w, h, nw, nh; + Evas_Coord l, r, t, b; + START_TB_TEST(); + Evas_Textblock_Style *newst; + const char *buf = "TestTest2נסיון"; + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); + + evas_object_textblock_size_formatted_get(tb, &w, &h); + newst = evas_textblock_style_new(); + fail_if(!newst); + evas_textblock_style_set(newst, + "DEFAULT='font=Sans font_size=20 color=#000 text_class=entry'" + "br='\n'" + "ps='ps'" + "tab='\t'"); + evas_object_textblock_style_set(tb, newst); + evas_object_textblock_size_formatted_get(tb, &nw, &nh); + fail_if((w >= nw) || (h >= nh)); + + /* Style padding. */ + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 0) || (r != 0) || (t != 0) || (b != 0)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 0) || (r != 1) || (t != 0) || (b != 1)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 1) || (t != 1) || (b != 1)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 2) || (r != 2) || (t != 2) || (b != 2)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 2) || (r != 2) || (t != 2) || (b != 2)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 2) || (t != 1) || (b != 2)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 2) || (t != 1) || (b != 2)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 3) || (t != 1) || (b != 3)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 3) || (t != 1) || (b != 3)); + + evas_object_textblock_text_markup_set(tb, "Test"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 0) || (r != 4) || (t != 0) || (b != 4)); + + /* Mixed style padding */ + evas_object_textblock_text_markup_set(tb, + "TestTest"); + evas_object_textblock_style_insets_get(tb, &l, &r, &t, &b); + fail_if((l != 1) || (r != 4) || (t != 1) || (b != 4)); + + END_TB_TEST(); +} +END_TEST + +/* Various setters and getters */ +START_TEST(evas_textblock_set_get) +{ + START_TB_TEST(); + const char *buf = ""; + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_textblock_style_get(st), style_buf)); + fail_if(evas_object_textblock_style_get(tb) != st); + evas_object_textblock_replace_char_set(tb, "|"); + fail_if(strcmp(evas_object_textblock_replace_char_get(tb), "|")); + evas_object_textblock_replace_char_set(tb, "ש"); + fail_if(strcmp(evas_object_textblock_replace_char_get(tb), "ש")); + + evas_object_textblock_valign_set(tb, -1.0); + fail_if(evas_object_textblock_valign_get(tb) != 0.0); + evas_object_textblock_valign_set(tb, 0.0); + fail_if(evas_object_textblock_valign_get(tb) != 0.0); + evas_object_textblock_valign_set(tb, 0.432); + fail_if(evas_object_textblock_valign_get(tb) != 0.432); + evas_object_textblock_valign_set(tb, 1.0); + fail_if(evas_object_textblock_valign_get(tb) != 1.0); + evas_object_textblock_valign_set(tb, 1.5); + fail_if(evas_object_textblock_valign_get(tb) != 1.0); + + evas_object_textblock_bidi_delimiters_set(tb, ",.|"); + fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",.|")); + evas_object_textblock_bidi_delimiters_set(tb, ",|"); + fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|")); + evas_object_textblock_bidi_delimiters_set(tb, NULL); + fail_if(evas_object_textblock_bidi_delimiters_get(tb)); + evas_object_textblock_bidi_delimiters_set(tb, ",|"); + fail_if(strcmp(evas_object_textblock_bidi_delimiters_get(tb), ",|")); + + /* Hinting */ + evas_object_textblock_text_markup_set(tb, "This isa test
bla"); + /* Force relayout */ + evas_object_textblock_size_formatted_get(tb, NULL, NULL); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_NONE); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); + evas_font_hinting_set(evas, EVAS_FONT_HINTING_BYTECODE); + END_TB_TEST(); +} +END_TEST + +/* Aux evas stuff, such as scale. */ +START_TEST(evas_textblock_evas) +{ + Evas_Coord w, h, sw, sh; + START_TB_TEST(); + const char *buf = "Test"; + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_scale_set(tb, 3.0); + evas_object_textblock_size_formatted_get(tb, &sw, &sh); + fail_if((sw <= w) || (sh <= h)); + + evas_object_scale_set(tb, 0.5); + evas_object_textblock_size_formatted_get(tb, &sw, &sh); + fail_if((sw >= w) || (sh >= h)); + + END_TB_TEST(); +} +END_TEST + +/* All the string escaping stuff */ +START_TEST(evas_textblock_escaping) +{ + int len; + START_TB_TEST(); + fail_if(strcmp(evas_textblock_escape_string_get("&"), "&")); + fail_if(strcmp(evas_textblock_string_escape_get("&", &len), "&")); + fail_if(len != 1); + + fail_if(strcmp(evas_textblock_escape_string_get("·"), "\xc2\xb7")); + fail_if(strcmp(evas_textblock_string_escape_get("\xc2\xb7", &len), + "·")); + fail_if(len != 2); + + fail_if(strcmp(evas_textblock_escape_string_get("👙"), + "\xF0\x9F\x91\x99")); + fail_if(strcmp(evas_textblock_escape_string_get("👙"), + "\xF0\x9F\x91\x99")); + + fail_if(evas_textblock_escape_string_get("·aa")); + const char *tmp = "·aa"; + fail_if(strcmp(evas_textblock_escape_string_range_get(tmp, tmp + 8), + "\xc2\xb7")); + fail_if(evas_textblock_escape_string_range_get(tmp, tmp + 9)); + fail_if(evas_textblock_escape_string_range_get(tmp, tmp + 7)); + fail_if(evas_textblock_escape_string_range_get(tmp, tmp + 5)); + + const char *buf = "This · is"; + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); + + buf = "This   is"; + evas_object_textblock_text_markup_set(tb, buf); + fail_if(strcmp(evas_object_textblock_text_markup_get(tb), buf)); + + END_TB_TEST(); +} +END_TEST + +START_TEST(evas_textblock_size) +{ + START_TB_TEST(); + Evas_Coord w, h, h2, nw, nh; + const char *buf = "This is a
test.
גם בעברית"; + /* When wrapping is off, native size should be the same as formatted + * size */ + + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_textblock_size_native_get(tb, &nw, &nh); + fail_if((w != nw) || (h != nh)); + fail_if(w != 0); + + evas_object_textblock_text_markup_set(tb, "a
a"); + evas_object_textblock_size_formatted_get(tb, &w, &h2); + evas_object_textblock_size_native_get(tb, &nw, &nh); + fail_if((w != nw) || (h2 != nh)); + + /* Two lines == double the height */ + fail_if(h * 2 != h2); + + evas_object_textblock_text_markup_set(tb, buf); + + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_textblock_size_native_get(tb, &nw, &nh); + fail_if((w != nw) || (h != nh)); + fail_if(w <= 0); + + /* This time with margins. */ + { + Evas_Textblock_Style *newst; + Evas_Coord oldw, oldh, oldnw, oldnh; + + evas_object_textblock_text_markup_set(tb, buf); + evas_object_textblock_size_formatted_get(tb, &oldw, &oldh); + evas_object_textblock_size_native_get(tb, &oldnw, &oldnh); + + + newst = evas_textblock_style_new(); + fail_if(!newst); + evas_textblock_style_set(newst, + "DEFAULT='left_margin=4 right_margin=4'"); + evas_object_textblock_style_user_push(tb, newst); + + evas_object_textblock_size_formatted_get(tb, &w, &h); + evas_object_textblock_size_native_get(tb, &nw, &nh); + + fail_if((w != oldw + 8) || (h != oldh) || + (nw != oldnw + 8) || (nh != oldnh)); + } + + /* FIXME: There is a lot more to be done. */ + END_TB_TEST(); +} +END_TEST + +void evas_test_textblock(TCase *tc) +{ + tcase_add_test(tc, evas_textblock_simple); + tcase_add_test(tc, evas_textblock_cursor); + tcase_add_test(tc, evas_textblock_size); + tcase_add_test(tc, evas_textblock_editing); + tcase_add_test(tc, evas_textblock_style); + tcase_add_test(tc, evas_textblock_evas); + tcase_add_test(tc, evas_textblock_text_getters); + tcase_add_test(tc, evas_textblock_formats); + tcase_add_test(tc, evas_textblock_format_removal); + tcase_add_test(tc, evas_textblock_escaping); + tcase_add_test(tc, evas_textblock_set_get); + tcase_add_test(tc, evas_textblock_geometries); + tcase_add_test(tc, evas_textblock_various); + tcase_add_test(tc, evas_textblock_wrapping); + tcase_add_test(tc, evas_textblock_items); +} + diff --git a/src/tests/evas/evas_tests_helpers.h b/src/tests/evas/evas_tests_helpers.h new file mode 100644 index 0000000000..2ed07894f4 --- /dev/null +++ b/src/tests/evas/evas_tests_helpers.h @@ -0,0 +1,40 @@ +#ifndef EVAS_TEST_HELPERS_H +#define EVAS_TEST_HELPERS_H + +/* FIXME: Currently depends on the buffer engine, should we do anything + * fancier? */ + +#define EVAS_TEST_INIT_EVAS() _setup_evas() + +#define EVAS_TEST_FREE_EVAS() \ +do \ +{ \ + evas_textblock_cursor_free(cur); \ + evas_object_del(tb); \ + evas_textblock_style_free(st); \ + evas_free(evas); \ + evas_shutdown(); \ +} \ +while (0) + +static Evas * +_setup_evas() +{ + Evas *evas; + Evas_Engine_Info *einfo; + + evas_init(); + evas = evas_new(); + + evas_output_method_set(evas, evas_render_method_lookup("buffer")); + einfo = evas_engine_info_get(evas); + evas_engine_info_set(evas, einfo); + + evas_output_size_set(evas, 500, 500); + evas_output_viewport_set(evas, 0, 0, 500, 500); + + return evas; +} + +#endif +