Imported Upstream version 1.7.1
[platform/upstream/edje.git] / src / examples / animations2.c
1 #ifdef HAVE_CONFIG_H
2 #include "config.h"
3 #else
4 #define PACKAGE_EXAMPLES_DIR "."
5 #define __UNUSED__
6 #endif
7
8 #include <Ecore.h>
9 #include <Ecore_Evas.h>
10 #include <Edje.h>
11 #include <stdio.h>
12
13 #define WIDTH     (700)
14 #define HEIGHT    (700)
15
16 static void
17 _on_delete(Ecore_Evas *ee)
18 {
19    ecore_main_loop_quit();
20 }
21
22 int
23 main(int argc __UNUSED__, char **argv)
24 {
25    char edje_file_path[PATH_MAX];
26    const char *edje_file = "animations2.edj";
27    Evas *evas;
28    Ecore_Evas *ee;
29    Eina_Prefix *pfx;
30    Evas_Object *edje_obj;
31    Evas_Object *bg;
32
33    if (!ecore_evas_init()) return EXIT_FAILURE;
34
35    if (!edje_init()) goto shutdown_ecore_evas;
36
37    pfx = eina_prefix_new(argv[0], main, "EDJE_EXAMPLES", "edje/examples",
38                          edje_file, PACKAGE_BIN_DIR, PACKAGE_LIB_DIR,
39                          PACKAGE_DATA_DIR, PACKAGE_DATA_DIR);
40
41    if (!pfx) goto shutdown_edje;
42
43    ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
44
45    if (!ee) goto eina_prefix_free;
46
47    ecore_evas_callback_delete_request_set(ee, _on_delete);
48    ecore_evas_title_set(ee, "Animations");
49
50    evas = ecore_evas_get(ee);
51
52    bg = evas_object_rectangle_add(evas);
53    evas_object_color_set(bg, 255, 255, 255, 255);
54    evas_object_move(bg, 0, 0);
55    evas_object_resize(bg, WIDTH, HEIGHT);
56    evas_object_show(bg);
57
58    ecore_evas_object_associate(ee, bg, ECORE_EVAS_OBJECT_ASSOCIATE_BASE);
59    evas_object_focus_set(bg, EINA_TRUE);
60
61    edje_obj = edje_object_add(evas);
62
63    snprintf(edje_file_path, sizeof(edje_file_path), "%s/examples/%s",
64             eina_prefix_data_get(pfx), edje_file);
65
66    if (!edje_object_file_set(edje_obj, edje_file_path, "animation_group"))
67      {
68         int err = edje_object_load_error_get(edje_obj);
69         const char *errmsg = edje_load_error_str(err);
70         fprintf(stderr, "Could not load the edje file - reason:%s\n", errmsg);
71         goto eina_prefix_free;
72      }
73
74    evas_object_resize(edje_obj, 700, 700);
75    evas_object_move(edje_obj, 50, 50);
76    evas_object_show(edje_obj);
77
78    ecore_evas_show(ee);
79
80    ecore_main_loop_begin();
81
82    eina_prefix_free(pfx);
83    ecore_evas_free(ee);
84    edje_shutdown();
85    ecore_evas_shutdown();
86
87    return EXIT_SUCCESS;
88
89    eina_prefix_free: eina_prefix_free(pfx);
90
91    shutdown_edje: edje_shutdown();
92
93    shutdown_ecore_evas: ecore_evas_shutdown();
94
95    return EXIT_FAILURE;
96 }