10 #define PACKAGE_EXAMPLES_DIR "."
14 #include <Ecore_Evas.h>
20 static Ecore_Evas *ee;
21 static const char *border_img_path = PACKAGE_EXAMPLES_DIR "/red.png";
23 static Evas_Object *bg, *r1, *r2, *r3; /* "sub" canvas objects */
24 static Evas_Object *border, *img; /* canvas objects */
27 _on_destroy(Ecore_Evas *ee __UNUSED__)
29 ecore_main_loop_quit();
33 _resize_cb(Ecore_Evas *ee)
35 int x, y, w, h, ow, oh;
38 evas_object_geometry_get(img, &x, &y, &ow, &oh);
39 ecore_evas_geometry_get(ee, &x, &y, &w, &h);
40 ecore_evas_request_geometry_get(ee, NULL, NULL, &rw, &rh);
41 fprintf(stderr, "EFL-App resize x/y=%d/%d req=%d/%d w/h=%d/%d obj=%d/%d\n", x, y, rw, rh, w, h, ow, oh); fflush(stderr);
45 main(int argc, char *argv[])
47 Evas *canvas, *sub_canvas;
61 for (i = 1; i < argc; i++) {
62 if (argv[i][0] == '@') {
63 appno = strtol(&argv[i][1], (char **)0, 0);
65 if (argv[i][0] != '-') continue;
66 if (strncasecmp(argv[i], "-width=", 7) == 0) {
67 width = strtol(&argv[i][7], (char **)0, 0);
69 else if (strncasecmp(argv[i], "-height=", 8) == 0) {
70 height = strtol(&argv[i][8], (char **)0, 0);
72 else if (strncasecmp(argv[i], "-color=", 7) == 0) {
73 color = strtoul(&argv[i][7], (char **)0, 0);
79 /* this will give you a window with an Evas canvas under the first
81 ee = ecore_evas_new(NULL, 0, 0, width, height, "frame=0");
84 ecore_evas_size_min_set(ee, width/4, height/4);
85 ecore_evas_size_max_set(ee, width*4, height*4);
87 ecore_evas_callback_resize_set(ee, _resize_cb);
89 ecore_evas_callback_delete_request_set(ee, _on_destroy);
90 sprintf(sTitle, "EFL_Native_Application_%d", appno);
91 ecore_evas_title_set(ee, sTitle);
94 canvas = ecore_evas_get(ee);
96 bg = evas_object_rectangle_add(canvas);
97 rr = (color>>16)&0x0ff;
98 gg = (color>>8)&0x0ff;
100 a = (color>>24)&0x0ff;
104 evas_object_color_set(bg, r, g, b, a); /* bg color */
105 evas_object_move(bg, 0, 0); /* at origin */
106 evas_object_resize(bg, width, height); /* covers full canvas */
107 evas_object_show(bg);
109 /* this is a border around the image containing a scene of another
111 border = evas_object_image_filled_add(canvas);
112 evas_object_image_file_set(border, border_img_path, NULL);
113 evas_object_image_border_set(border, 3, 3, 3, 3);
114 evas_object_image_border_center_fill_set(border, EVAS_BORDER_FILL_NONE);
116 evas_object_move(border, width / 6, height / 6);
117 evas_object_resize(border, (2 * width) / 3, (2 * height) / 3);
118 evas_object_show(border);
120 img = ecore_evas_object_image_new(ee);
121 evas_object_image_filled_set(img, EINA_TRUE);
122 evas_object_image_size_set(
123 img, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
124 sub_ee = ecore_evas_object_ecore_evas_get(img);
125 sub_canvas = ecore_evas_object_evas_get(img);
127 evas_object_move(img, (width / 6) + 3, (height / 6) + 3);
129 /* apply the same size on both! */
130 evas_object_resize(img, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
131 ecore_evas_resize(sub_ee, ((2 * width) / 3) - 6, ((2 * height) / 3) - 6);
133 r1 = evas_object_rectangle_add(sub_canvas);
134 evas_object_color_set(r1, gg, bb, rr, 255);
135 evas_object_move(r1, 10, 10);
136 evas_object_resize(r1, 100, 100);
137 evas_object_show(r1);
139 r2 = evas_object_rectangle_add(sub_canvas);
143 evas_object_color_set(r2, b, g, r, 128);
144 evas_object_move(r2, 10, 10);
145 evas_object_resize(r2, 50, 50);
146 evas_object_show(r2);
148 r3 = evas_object_rectangle_add(sub_canvas);
149 evas_object_color_set(r3, bb, rr, gg, 255);
150 evas_object_move(r3, 60, 60);
151 evas_object_resize(r3, 50, 50);
152 evas_object_show(r3);
154 evas_object_show(img);
155 ecore_main_loop_begin();
158 ecore_evas_shutdown();
163 fprintf(stderr, "You got to have at least one Evas engine built"
164 " and linked up to ecore-evas for this example to run properly.\n");
165 ecore_evas_shutdown();