From 2269fc2c54c989a87f6a5393069b8405ca180f19 Mon Sep 17 00:00:00 2001 From: "p.kalota" Date: Mon, 27 Jul 2020 10:23:14 +0200 Subject: [PATCH] added example for evas_vg_shape_equal_commands() Change-Id: Iab27b8044eb5c87e531c6181023535949a3ee1b5 --- src/examples/evas/evas-vg-cmd-equal.c | 152 ++++++++++++++++++++++++++++++++++ src/examples/evas/meson.build | 1 + 2 files changed, 153 insertions(+) create mode 100644 src/examples/evas/evas-vg-cmd-equal.c diff --git a/src/examples/evas/evas-vg-cmd-equal.c b/src/examples/evas/evas-vg-cmd-equal.c new file mode 100644 index 0000000..88bdfb9 --- /dev/null +++ b/src/examples/evas/evas-vg-cmd-equal.c @@ -0,0 +1,152 @@ +/** + * gcc -o evas-vg-cmd-equal evas-vg-cmd-equal.c `pkg-config --libs --cflags ecore ecore-evas` + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#else +#define PACKAGE_EXAMPLES_DIR "." +#endif + +#define WIDTH 400 +#define HEIGHT 400 + +#include +#include + +#define NUM_OF_SHAPES 6 + +struct content +{ + Ecore_Evas *ee; + Evas *ev; + Evas_Object *bg; + Evas_Object *vg; + Efl_VG *shapes[NUM_OF_SHAPES]; +}; +static struct content cnt; + + +static void +_on_delete(Ecore_Evas *ee EINA_UNUSED) +{ + ecore_main_loop_quit(); +} + +static void +_canvas_resize_cb(Ecore_Evas *ee) +{ + int w, h; + + ecore_evas_geometry_get(ee, NULL, NULL, &w, &h); + evas_object_resize(cnt.bg, w, h); + evas_object_resize(cnt.vg, w, h); +} + +static void +_on_keydown(void *data EINA_UNUSED, + Evas *evas EINA_UNUSED, + Evas_Object *o, + void *einfo) +{ + Evas_Event_Key_Down *ei = einfo; + + if (!strcmp(ei->key, "q")) + _on_delete(cnt.ee); +} + +static int +_init_win() +{ + if (!ecore_evas_init()) + return EXIT_FAILURE; + + cnt.ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL); + if (!cnt.ee) + { + ecore_evas_shutdown(); + return -1; + } + + ecore_evas_callback_delete_request_set(cnt.ee, _on_delete); + ecore_evas_callback_resize_set(cnt.ee, _canvas_resize_cb); + ecore_evas_show(cnt.ee); + + cnt.ev = ecore_evas_get(cnt.ee); + cnt.bg = evas_object_rectangle_add(cnt.ev); + evas_object_color_set(cnt.bg, 0, 0, 0, 255); + evas_object_focus_set(cnt.bg, EINA_TRUE); + evas_object_show(cnt.bg); + + evas_object_event_callback_add(cnt.bg, EVAS_CALLBACK_KEY_DOWN, _on_keydown, NULL); +} + +static void +_draw_commands(Efl_VG *container) +{ + /* Shape 1 Shape 2 */ + for (int i=0; i<2; ++i) + { + cnt.shapes[i] = evas_vg_shape_add(container); + evas_vg_shape_append_move_to(cnt.shapes[i], 150, 100); + evas_vg_shape_append_line_to(cnt.shapes[i], 253, 143); + evas_vg_shape_append_line_to(cnt.shapes[i], 374, 160); + evas_vg_shape_append_close(cnt.shapes[i]); + } + /* Shape 3 */ + cnt.shapes[2] = evas_vg_shape_add(container); + evas_vg_shape_append_move_to(cnt.shapes[2], 100, 100); + evas_vg_shape_append_line_to(cnt.shapes[2], 200, 244); + evas_vg_shape_stroke_join_set(cnt.shapes[2], EVAS_VG_JOIN_BEVEL); + evas_vg_shape_append_close(cnt.shapes[2]); + /* Shape 4 Shape 5 */ + for (int i=3; i