Imported Upstream version 1.7.1
[platform/upstream/edje.git] / src / examples / edje_example.c
1 #include <Eina.h>
2 #include <Evas.h>
3 #include <Ecore.h>
4 #include <Ecore_Evas.h>
5 #include <Edje.h>
6
7 #define WIDTH 320
8 #define HEIGHT 240
9
10 static Evas_Object *create_my_group(Evas *canvas, const char *text)
11 {
12    Evas_Object *edje;
13
14    edje = edje_object_add(canvas);
15    if (!edje)
16      {
17         EINA_LOG_CRIT("could not create edje object!");
18         return NULL;
19      }
20
21    if (!edje_object_file_set(edje, "edje_example.edj", "my_group"))
22      {
23         int err = edje_object_load_error_get(edje);
24         const char *errmsg = edje_load_error_str(err);
25         EINA_LOG_ERR("could not load 'my_group' from edje_example.edj: %s",
26                      errmsg);
27
28         evas_object_del(edje);
29         return NULL;
30      }
31
32    if (text)
33      {
34         if (!edje_object_part_text_set(edje, "text", text))
35           {
36              EINA_LOG_WARN("could not set the text. "
37                            "Maybe part 'text' does not exist?");
38           }
39      }
40
41    evas_object_move(edje, 0, 0);
42    evas_object_resize(edje, WIDTH, HEIGHT);
43    evas_object_show(edje);
44    return edje;
45 }
46
47 int main(int argc, char *argv[])
48 {
49    Ecore_Evas *window;
50    Evas *canvas;
51    Evas_Object *edje;
52    const char *text;
53
54    ecore_evas_init();
55    edje_init();
56
57    window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
58    if (!window)
59      {
60         EINA_LOG_CRIT("could not create window.");
61         return -1;
62      }
63    canvas = ecore_evas_get(window);
64
65    text = (argc > 1) ? argv[1] : NULL;
66
67    edje = create_my_group(canvas, text);
68    if (!edje)
69      return -2;
70
71    ecore_evas_show(window);
72    ecore_main_loop_begin();
73
74    evas_object_del(edje);
75    ecore_evas_free(window);
76
77    edje_shutdown();
78    ecore_evas_shutdown();
79
80    return 0;
81 }