6 #define FNAME poly_blend_start
7 #define NAME "Polygon Blend"
8 #define ICON "rect.png"
17 static Evas_Object *o_images[OBNUM];
20 poly(Evas_Object *o, int type, Evas_Coord x, Evas_Coord y)
22 efl_canvas_polygon_points_clear(o);
25 case 0: /* triangle */
26 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 50, y + 0));
27 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 100, y + 100));
28 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 0, y + 100));
31 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 0, y + 0));
32 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 100, y + 0));
33 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 100, y + 100));
34 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 0, y + 100));
37 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 50, y + 0));
38 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 100, y + 30));
39 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 100, y + 70));
40 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 50, y + 100));
41 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 0, y + 70));
42 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 0, y + 30));
45 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 50, y + 0));
46 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 60, y + 40));
47 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 90, y + 30));
48 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 70, y + 60));
49 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 90, y + 100));
50 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 50, y + 70));
51 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 10, y + 100));
52 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 30, y + 60));
53 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 10, y + 30));
54 efl_canvas_polygon_point_add(o, EINA_POSITION2D(x + 40, y + 40));
62 static void _setup(void)
67 for (i = 0; i < OBNUM; i++)
71 o = efl_add(EFL_CANVAS_POLYGON_CLASS, evas);
74 r = ((rnd()&0xff) * a) / 255;
75 g = ((rnd()&0xff) * a) / 255;
76 b = ((rnd()&0xff) * a) / 255;
77 efl_gfx_color_set(o, r, g, b, a);
78 efl_gfx_entity_visible_set(o, EINA_TRUE);
85 static void _cleanup(void)
88 for (i = 0; i < OBNUM; i++) efl_del(o_images[i]);
91 /* loop - do things */
92 static void _loop(double t, int f)
95 Evas_Coord x, y, w, h;
98 for (i = 0; i < OBNUM; i++)
102 exp_size_get(o, &w, &h);
103 x = (win_w / 2) - (w / 2);
104 x += sin((double)(f + (i * 13)) / (36.7 * SLOW)) * (win_w / 4);
105 y = (win_h / 2) - (h / 2);
106 y += cos((double)(f + (i * 28)) / (43.8 * SLOW)) * (win_h / 4);
108 efl_gfx_entity_position_set(o, EINA_POSITION2D(x, y));
113 /* prepend special key handlers if interactive (before STD) */
114 static void _key(const char *key)
130 /* template stuff - ignore */
135 _ui_menu_item_add(ICON, NAME, FNAME);
146 ui_func_set(_key, _loop, _setup);