Add thumbnailing for init screens :) (Thanks CodeWarrior)

Make Startup config dialog use static thumbnails in list now.


SVN revision: 23181
This commit is contained in:
Christopher Michael 2006-06-05 11:48:26 +00:00
parent 8a6d73acf6
commit f4814dc96d
2 changed files with 80 additions and 84 deletions

View File

@ -156,13 +156,10 @@ _load_inits(E_Config_Dialog *cfd, Evas_Object *il)
{
Evas_Object *ic = NULL;
ic = edje_object_add(evas);
e_util_edje_icon_set(ic, "enlightenment/run");
/*
ic = e_widget_preview_add(evas, 48, 48);
e_widget_preview_edje_set(ic, s, "init/splash");
*/
if (!e_thumb_exists(c))
ic = e_thumb_generate_begin(c, 48, 48, cfd->dia->win->evas, &ic, NULL, NULL);
else
ic = e_thumb_evas_object_get(c, cfd->dia->win->evas, 48, 48, 1);
e_widget_ilist_append(il, ic, _("Theme Init"), _ilist_cb_init_selected, cfd, "");
if (!e_config->init_default_theme)
@ -229,26 +226,10 @@ _load_inits(E_Config_Dialog *cfd, Evas_Object *il)
if (ecore_file_is_dir(full_path)) continue;
if (!e_util_edje_collection_exists(full_path, "init/splash")) continue;
ic = edje_object_add(evas);
e_util_edje_icon_set(ic, "enlightenment/run");
/*
* Using live previews for icons in list here
* really drains resources. */
/*
ic = e_widget_preview_add(evas, 48, 48);
e_widget_preview_edje_set(ic, full_path, "init/splash");
*/
/* e_thumb_generate cannot handle init splash yet */
/*
if (!e_thumb_exists(full_path))
ic = e_thumb_generate_begin(full_path, 48, 48, evas, &ic, NULL, NULL);
else
ic = e_thumb_evas_object_get(full_path, evas, 48, 48, 1);
*/
if (!e_thumb_exists(c))
ic = e_thumb_generate_begin(full_path, 48, 48, cfd->dia->win->evas, &ic, NULL, NULL);
else
ic = e_thumb_evas_object_get(full_path, cfd->dia->win->evas, 48, 48, 1);
e_widget_ilist_append(il, ic, ecore_file_strip_ext(init_file), _ilist_cb_init_selected, cfd, full_path);

View File

@ -280,9 +280,10 @@ const int *
_e_thumb_etheme_create(char *file, Evas_Coord w, Evas_Coord h, int *ww, int *hh, int *alpha, Evas_Object **im, Ecore_Evas **buf)
{
Evas *evasbuf;
Evas_Object *wallpaper, *window, *clock, *start, **pager;
Evas_Object *wallpaper, *window, *clock, *start, **pager, *init;
const int *pixels;
int is_init;
*ww = 640;
*hh = 480;
*alpha = 0;
@ -292,63 +293,77 @@ _e_thumb_etheme_create(char *file, Evas_Coord w, Evas_Coord h, int *ww, int *hh,
*buf = ecore_evas_buffer_new(w, h);
evasbuf = ecore_evas_get(*buf);
is_init = e_util_edje_collection_exists(file, "init/splash");
if (is_init)
{
init = edje_object_add(evasbuf);
edje_object_file_set(init, file, "init/splash");
evas_object_move(init, 0, 0);
evas_object_resize(init, w, h);
evas_object_show(init);
pixels = ecore_evas_buffer_pixels_get(*buf);
evas_object_del(init);
}
else
{
wallpaper = edje_object_add(evasbuf);
window = edje_object_add(evasbuf);
clock = edje_object_add(evasbuf);
start = edje_object_add(evasbuf);
pager = E_NEW(Evas_Object*, 3);
pager[0] = edje_object_add(evasbuf);
pager[1] = edje_object_add(evasbuf);
pager[2] = edje_object_add(evasbuf);
edje_object_file_set(wallpaper, file, "desktop/background");
edje_object_file_set(window, file, "widgets/border/default/border");
edje_object_file_set(clock, file, "modules/clock/main");
edje_object_file_set(clock, file, "modules/clock/main");
edje_object_file_set(start, file, "modules/start/main");
edje_object_file_set(pager[0], file, "modules/pager/main");
edje_object_file_set(pager[1], file, "modules/pager/desk");
edje_object_file_set(pager[2], file, "modules/pager/window");
edje_object_part_text_set(window, "title_text", file);
edje_object_part_swallow(pager[0], "items", pager[1]);
edje_object_part_swallow(pager[1], "items", pager[2]);
wallpaper = edje_object_add(evasbuf);
window = edje_object_add(evasbuf);
clock = edje_object_add(evasbuf);
start = edje_object_add(evasbuf);
pager = E_NEW(Evas_Object*, 3);
pager[0] = edje_object_add(evasbuf);
pager[1] = edje_object_add(evasbuf);
pager[2] = edje_object_add(evasbuf);
edje_object_file_set(wallpaper, file, "desktop/background");
edje_object_file_set(window, file, "widgets/border/default/border");
edje_object_file_set(clock, file, "modules/clock/main");
edje_object_file_set(clock, file, "modules/clock/main");
edje_object_file_set(start, file, "modules/start/main");
edje_object_file_set(pager[0], file, "modules/pager/main");
edje_object_file_set(pager[1], file, "modules/pager/desk");
edje_object_file_set(pager[2], file, "modules/pager/window");
edje_object_part_text_set(window, "title_text", file);
edje_object_part_swallow(pager[0], "items", pager[1]);
edje_object_part_swallow(pager[1], "items", pager[2]);
/* wallpaper */
evas_object_move(wallpaper, 0, 0);
evas_object_resize(wallpaper, w, h);
/* main window */
evas_object_move(window, (w * 0.1), (h * 0.05));
evas_object_resize(window, w * 0.8, h * 0.75);
/* clock */
evas_object_move(clock, (w * 0.9), (h * 0.9));
evas_object_resize(clock, w * 0.1, h * 0.1);
/* start */
evas_object_move(start, 0.1, (h * 0.9));
evas_object_resize(start, w * 0.1, h * 0.1);
/* pager */
evas_object_move(pager[0], (w * 0.3), (h * 0.9));
evas_object_resize(pager[0], w * 0.1, h * 0.1);
/* wallpaper */
evas_object_move(wallpaper, 0, 0);
evas_object_resize(wallpaper, w, h);
/* main window */
evas_object_move(window, (w * 0.1), (h * 0.05));
evas_object_resize(window, w * 0.8, h * 0.75);
/* clock */
evas_object_move(clock, (w * 0.9), (h * 0.9));
evas_object_resize(clock, w * 0.1, h * 0.1);
/* start */
evas_object_move(start, 0.1, (h * 0.9));
evas_object_resize(start, w * 0.1, h * 0.1);
/* pager */
evas_object_move(pager[0], (w * 0.3), (h * 0.9));
evas_object_resize(pager[0], w * 0.1, h * 0.1);
evas_object_show(wallpaper);
evas_object_show(window);
evas_object_show(clock);
evas_object_show(start);
evas_object_show(pager[0]);
evas_object_show(pager[1]);
evas_object_show(pager[2]);
pixels = ecore_evas_buffer_pixels_get(*buf);
evas_object_del(wallpaper);
evas_object_del(window);
evas_object_del(clock);
evas_object_del(start);
evas_object_del(pager[0]);
evas_object_del(pager[1]);
evas_object_del(pager[2]);
free(pager);
evas_object_show(wallpaper);
evas_object_show(window);
evas_object_show(clock);
evas_object_show(start);
evas_object_show(pager[0]);
evas_object_show(pager[1]);
evas_object_show(pager[2]);
pixels = ecore_evas_buffer_pixels_get(*buf);
evas_object_del(wallpaper);
evas_object_del(window);
evas_object_del(clock);
evas_object_del(start);
evas_object_del(pager[0]);
evas_object_del(pager[1]);
evas_object_del(pager[2]);
free(pager);
}
return pixels;
}