/* Adds a rectangle object to the canvas */ static void _etk_test_canvas_object_add(void *data) { Etk_Canvas *canvas; Evas *evas; Evas_Object *object; Etk_Widget *etk_evas_object; int x, y; int cw, ch; if (!(canvas = ETK_CANVAS(data)) || !(evas = etk_widget_toplevel_evas_get(ETK_WIDGET(canvas)))) return; etk_widget_geometry_get(ETK_WIDGET(canvas), NULL, NULL, &cw, &ch); x = rand() % cw; y = rand() % ch; /* Add a rectangle */ if (rand() % 4 != 0) { int w, h; int r, g, b, a; object = evas_object_rectangle_add(evas); w = ETK_MAX(abs(rand() % (cw - x)), 10); h = ETK_MAX(abs(rand() % (ch - y)), 10); evas_object_resize(object, w, h); r = rand() % 255; g = rand() % 255; b = rand() % 255; a = ETK_MAX(rand() % 255, 40); evas_color_argb_premul(a, &r, &g, &b); evas_object_color_set(object, r, g, b, a); etk_evas_object = etk_evas_object_new(); etk_evas_object_set_object(ETK_EVAS_OBJECT(etk_evas_object), object); } /* Or add an image */ else { object = evas_object_image_add(evas); evas_object_image_file_set(object, PACKAGE_DATA_DIR "/images/test.png", NULL); evas_object_image_fill_set(object, 0, 0, 48, 48); evas_object_resize(object, 48, 48); etk_evas_object = etk_evas_object_new(); etk_evas_object_set_object(ETK_EVAS_OBJECT(etk_evas_object), object); } etk_canvas_put(canvas, etk_evas_object, x, y); etk_widget_show_all(etk_evas_object); }
void etk_test_evas_object_window_create(void *data) { Evas *evas; Evas_Object *edje_object; Evas_Object *evas_object; static Etk_Widget *window = NULL; Etk_Widget *vbox; Etk_Widget *frame; Etk_Widget *etk_evas_object; int w, h; if (window) { etk_widget_show_all(window); return; } window = etk_window_new(); etk_signal_connect_by_code(ETK_WINDOW_DELETE_EVENT_SIGNAL, ETK_OBJECT(window), ETK_CALLBACK(etk_window_hide_on_delete), NULL); etk_window_title_set(ETK_WINDOW(window), "Etk-Evas Object Test"); evas = etk_toplevel_evas_get(ETK_TOPLEVEL(window)); vbox = etk_vbox_new(ETK_FALSE, 5); /* Add an edje object */ frame = etk_frame_new("Edje Object"); edje_object = edje_object_add(evas); edje_object_file_set(edje_object, PACKAGE_DATA_DIR"/test/clock.edj", "icon"); edje_object_size_min_get(edje_object, &w, &h); edje_extern_object_min_size_set(edje_object, w, h); evas_object_resize(edje_object, w, h); etk_evas_object = etk_evas_object_new(); etk_evas_object_set_object(ETK_EVAS_OBJECT(etk_evas_object), edje_object); etk_container_add(ETK_CONTAINER(frame), etk_evas_object); etk_box_append(ETK_BOX(vbox), frame, ETK_BOX_START, ETK_BOX_EXPAND_FILL, 0); /* Add an evas rectangle */ frame = etk_frame_new("Evas Object"); evas_object = evas_object_rectangle_add(evas); evas_object_resize(evas_object, 150, 150); evas_object_color_set(evas_object, 150, 100, 100, 255); etk_evas_object = etk_evas_object_new(); etk_evas_object_set_object(ETK_EVAS_OBJECT(etk_evas_object), evas_object); etk_container_add(ETK_CONTAINER(frame), etk_evas_object); etk_box_append(ETK_BOX(vbox), frame, ETK_BOX_END, ETK_BOX_EXPAND_FILL, 0); etk_container_add(ETK_CONTAINER(window), vbox); etk_widget_show_all(window); }