diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index ad9a391..d2b3a0d 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c @@ -192,7 +192,7 @@ void sb_skin_set_update_delay(int delay) */ char* sb_create_from_settings(enum screen_type screen) { - static char buf[128]; + static char buf[512]; char *ptr, *ptr2; int len, remaining = sizeof(buf); int bar_position = statusbar_position(screen); @@ -263,6 +263,21 @@ char* sb_create_from_settings(enum screen_type screen) len = snprintf(ptr, remaining, "%%ax%%Vi(-,0,%d,-,%d,1)\n", y, height); } + remaining -= len; + ptr += len; + /* now do the skin list */ + int font_height = font_get(global_status.font_id[screen])->height; + int padding = 6; // get it from wherever + int icon_size = get_icon_width(screen); + len = snprintf(ptr, remaining, + "%%V(0,0,0,0,0)\n" /* %Lb() needs to be in a viewport */ + "%%Lb(a,%d,%d)\n" /* setup the list viewport rectangle */ + "%%Vl(a,0,%d,%d,%d,-)\n%%xl(i,__list_icons__,%d,%d)\n%%?LI<%%LI%%xd(i,%%LI)>\n" /* the icon */ + "%%Vl(a,%d,%d,%d,%d,1)\n%%?Lc<%%Vs(gradient)%%s>%%LT\n" /* draw the text */, + screens[screen].getwidth(), font_height+padding*2, + padding, icon_size, icon_size,icon_size, icon_size, + icon_size+2, padding, screens[screen].getwidth() - icon_size+2 - icon_size, font_height); + printf("%s", buf); return buf; }