summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2019-05-20 08:52:11 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-05-20 08:52:11 -0400
commitc567278b5473fd42af7dd7090c4dc2979cc15558 (patch)
tree6719519be82da55319fbb6bf3ab64719462237d8
parentee7a6c9a40778768241a564bca22d283517c5c02 (diff)
downloadefl-c567278b5473fd42af7dd7090c4dc2979cc15558.tar.gz
evas example: add a png scale down example.
Reviewers: cedric, #committers, zmike Reviewed By: #committers, zmike Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8886
-rw-r--r--src/examples/evas/Makefile.examples1
-rw-r--r--src/examples/evas/evas-images6.c98
-rw-r--r--src/examples/evas/meson.build1
-rw-r--r--src/examples/evas/resources/images/scale_down.png0
4 files changed, 100 insertions, 0 deletions
diff --git a/src/examples/evas/Makefile.examples b/src/examples/evas/Makefile.examples
index 48173f91b6..7e3f7c2dd3 100644
--- a/src/examples/evas/Makefile.examples
+++ b/src/examples/evas/Makefile.examples
@@ -16,6 +16,7 @@ EXAMPLES= evas-aspect-hints \
evas-images3 \
evas-images4 \
evas-images5 \
+ evas-images6 \
evas-init-shutdown \
evas-map-utils \
evas-object-manipulation \
diff --git a/src/examples/evas/evas-images6.c b/src/examples/evas/evas-images6.c
new file mode 100644
index 0000000000..ac09b4486e
--- /dev/null
+++ b/src/examples/evas/evas-images6.c
@@ -0,0 +1,98 @@
+/**
+ * Example of handling events for image objects in Evas.
+ *
+ * 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-images6 evas-images6.c `pkg-config --libs --cflags evas ecore ecore-evas`
+ * @endverbatim
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#else
+#define PACKAGE_EXAMPLES_DIR "."
+#endif
+
+#include <Ecore.h>
+#include <Ecore_Evas.h>
+#include <stdio.h>
+#include <errno.h>
+#include "evas-common.h"
+
+#define WIDTH (960)
+#define HEIGHT (540)
+
+static const char *img_path = PACKAGE_EXAMPLES_DIR EVAS_IMAGE_FOLDER "/scale_down.png";
+
+struct test_data
+{
+ Ecore_Evas *ee;
+ Evas *evas;
+ Evas_Object *bg, *img;
+};
+
+static struct test_data d = {0};
+
+
+static void
+_on_destroy(Ecore_Evas *ee EINA_UNUSED)
+{
+ ecore_main_loop_quit();
+}
+
+/* Keep the example's window size in sync with the background image's size */
+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)
+{
+ 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.img = evas_object_image_filled_add(d.evas);
+ evas_object_image_file_set(d.img, img_path, NULL);
+ evas_object_image_load_scale_down_set(d.img, 2);
+ evas_object_resize(d.img, WIDTH, HEIGHT);
+ evas_object_show(d.img);
+
+ ecore_main_loop_begin();
+
+ ecore_evas_free(d.ee);
+ ecore_evas_shutdown();
+ return 0;
+
+error:
+ fprintf(stderr, "error: Requires at least one Evas engine built and linked"
+ " to ecore-evas for this example to run properly.\n");
+ ecore_evas_shutdown();
+ return -1;
+}
diff --git a/src/examples/evas/meson.build b/src/examples/evas/meson.build
index 34c8bd3463..9a9bd1fe2f 100644
--- a/src/examples/evas/meson.build
+++ b/src/examples/evas/meson.build
@@ -29,6 +29,7 @@ examples = [
'evas-images3',
'evas-images4',
'evas-images5',
+ 'evas-images6',
'evas-images',
'evas-init-shutdown',
'evas-map-aa',
diff --git a/src/examples/evas/resources/images/scale_down.png b/src/examples/evas/resources/images/scale_down.png
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/examples/evas/resources/images/scale_down.png