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