From: Daniel Caujolle-B. <f1...@us...> - 2002-12-30 01:38:37
|
Update of /cvsroot/xine/xine-ui/src/xitk In directory sc8-pr-cvs1:/tmp/cvs-serv24694 Modified Files: osd.c Log Message: if filename is too long for osd display, eat it from start (and add '...' at the beginning) Index: osd.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/osd.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- osd.c 23 Dec 2002 10:57:27 -0000 1.7 +++ osd.c 30 Dec 2002 01:38:34 -0000 1.8 @@ -215,7 +215,7 @@ if(gGui->osd.enabled) { uint32_t vwidth, vheight, asrate; const char *vcodec, *acodec; - char buffer[256]; + char buffer[256], *p; int x, y; int w, h, osdw; int playedtime, totaltime; @@ -241,11 +241,15 @@ sprintf(buffer, "%s", (gGui->is_display_mrl) ? gGui->mmk.mrl : gGui->mmk.ident); xine_osd_get_text_size(gGui->osd.info, buffer, &osdw, &h); + p = buffer; while(osdw > (vwidth - 40)) { - buffer[strlen(buffer) - 1] = '\0'; - xine_osd_get_text_size(gGui->osd.info, buffer, &osdw, &h); + *(p++) = '\0'; + *(p) = '.'; + *(p+1) = '.'; + *(p+2) = '.'; + xine_osd_get_text_size(gGui->osd.info, p, &osdw, &h); } - xine_osd_draw_text(gGui->osd.info, x, y, buffer, XINE_OSD_TEXT1); + xine_osd_draw_text(gGui->osd.info, x, y, p, XINE_OSD_TEXT1); y += h; |