#ifdef HAVE_CONFIG_H # include #endif #include "Eo.h" #include "Evas.h" #include "Eo.hh" #include "Eina.hh" #include "Evas.hh" #include "main.h" #define EXPEDITE_CXX_TEST_IMPL #include "widgets_file_icons_capi.h" /* standard var */ static int done = 0; /* private data */ #define NUM 512 #define ICON_SIZE 64 static efl::eina::list images; static efl::eina::list texts; static const char *icons[] = // XXX { "bug.png", "bulb.png", "camera.png", "colorbox.png", "e.png", "error.png", "flower.png", "house.png", "mushroom.png", "pulse.png", "typewriter.png", "warning.png", "watch.png" }; /* setup */ static void _setup(void) { evas::canvas canvas(::eo_ref(G_evas)); for (int i = 0; i < NUM; i++) { evas::image o1(efl::eo::parent = canvas); images.push_back(o1); eo_do(o1._eo_ptr(), efl_file_set(build_path(icons[i % 13]), NULL)); // XXX o1.fill_set(0, 0, ICON_SIZE, ICON_SIZE); o1.evas::object::size_set(ICON_SIZE, ICON_SIZE); o1.visibility_set(true); evas::text o2(efl::eo::parent = canvas); texts.push_back(o2); o2.font_set("Vera-Bold", 10); o2.text_set(icons[i % 13]); o2.style_set(EVAS_TEXT_STYLE_FAR_SOFT_SHADOW); o2.evas::object::color_set(255, 255, 255, 255); o2.shadow_color_set(0, 0, 0, 24); o2.visibility_set(true); } done = 0; } /* cleanup */ static void _cleanup(void) { for (evas::image& i : images) i.parent_set(efl::eo::base(nullptr)); images.clear(); for (evas::text& t : texts) t.parent_set(efl::eo::base(nullptr)); texts.clear(); } /* loop - do things */ static void _loop(double t, int f) { Evas_Coord x, y, tw, th, cent; x = 0; y = 0 - f; efl::eina::list::iterator it1 = images.begin(), end1 = images.end(); efl::eina::list::iterator it2 = texts.begin(), end2 = texts.end(); for (; it1 != end1 && it2 != end2; ++it1, ++it2) { (*it1).evas::object::position_set(x + 8, y); (*it2).evas::object::size_get(&tw, &th); cent = (ICON_SIZE + 16 - tw) / 2; (*it2).evas::object::position_set(x + cent, y + ICON_SIZE + 4); x += ICON_SIZE + 16; if (x > win_w) { x = 0; y += ICON_SIZE + 16; } } FPS_STD(NAME); } static void _key(char *key) { KEY_STD; } extern "C" void FNAME(void) { ui_func_set(_key, _loop); _setup(); }