efl

Форк
0
/
svg-test.c 
111 строк · 2.5 Кб
1
/**
2
 * Simple Edje example illustrating svg part usuage in edc.
3
 *
4
 * You'll need at least one Evas engine built for it (excluding the
5
 * buffer one). See stdout/stderr for output.
6
 *
7
 * @verbatim
8
 * edje_cc svg.edc && gcc -o svg-test svg-test.c `pkg-config --libs --cflags evas ecore ecore-evas edje`
9
 * @endverbatim
10
 */
11

12
#ifdef HAVE_CONFIG_H
13
# include "config.h"
14
#else
15
# define EINA_UNUSED
16
#endif
17

18
#ifndef PACKAGE_DATA_DIR
19
#define PACKAGE_DATA_DIR "."
20
#endif
21

22
#include <Ecore.h>
23
#include <Ecore_Evas.h>
24
#include <Edje.h>
25

26
#define WIDTH  800
27
#define HEIGHT 800
28

29
static void
30
_on_destroy(Ecore_Evas *ee EINA_UNUSED)
31
{
32
   ecore_main_loop_quit();
33
}
34

35
/* here just to keep our example's window size and background image's
36
 * size in synchrony */
37
static void
38
_on_canvas_resize(Ecore_Evas *ee)
39
{
40
   Evas_Object *bg;
41
   Evas_Object *edje_obj;
42
   int          w;
43
   int          h;
44

45
   bg = ecore_evas_data_get(ee, "background");
46
   edje_obj = ecore_evas_data_get(ee, "edje_obj");
47
   ecore_evas_geometry_get(ee, NULL, NULL, &w, &h);
48
   evas_object_resize(bg, w, h);
49
   evas_object_resize(edje_obj, w, h);
50
}
51

52
int
53
main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
54
{
55
   const char  *edje_file = "./svg.edj";
56
   Ecore_Evas  *ee;
57
   Evas        *evas;
58
   Evas_Object *bg;
59
   Evas_Object *edje_obj;
60

61
   if (!ecore_evas_init())
62
     return EXIT_FAILURE;
63

64
   if (!edje_init())
65
     goto shutdown_ecore_evas;
66

67
   /* this will give you a window with an Evas canvas under the first
68
    * engine available */
69
   ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
70
   if (!ee) goto shutdown_edje;
71

72
   ecore_evas_callback_destroy_set(ee, _on_destroy);
73
   ecore_evas_callback_resize_set(ee, _on_canvas_resize);
74
   ecore_evas_title_set(ee, "SVG Example");
75

76
   evas = ecore_evas_get(ee);
77

78
   bg = evas_object_rectangle_add(evas);
79
   evas_object_color_set(bg, 0, 0, 0, 255);
80
   evas_object_resize(bg, WIDTH, HEIGHT);
81
   evas_object_focus_set(bg, EINA_TRUE);
82
   evas_object_show(bg);
83
   ecore_evas_data_set(ee, "background", bg);
84

85

86
   edje_obj = edje_object_add(evas);
87

88
   edje_object_file_set(edje_obj, edje_file, "svg-test");
89
   evas_object_move(edje_obj, 0, 0);
90
   evas_object_resize(edje_obj, WIDTH, HEIGHT);
91
   evas_object_show(edje_obj);
92
   ecore_evas_data_set(ee, "edje_obj", edje_obj);
93

94

95
   ecore_evas_show(ee);
96

97
   ecore_main_loop_begin();
98

99
   ecore_evas_free(ee);
100
   ecore_evas_shutdown();
101
   edje_shutdown();
102

103
   return EXIT_SUCCESS;
104

105
 shutdown_edje:
106
   edje_shutdown();
107
 shutdown_ecore_evas:
108
   ecore_evas_shutdown();
109

110
   return EXIT_FAILURE;
111
}
112

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.