From cc81b58277dcea68587d3ff2f4a3ee8a6b28c074 Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Mon, 4 May 2015 21:12:28 +0200 Subject: Cleanup: deduplicate code. FileBrowser had its own 'shorten_string' func, when we have a full fledge one in interface_widget code... --- source/blender/editors/space_file/file_draw.c | 2 +- source/blender/editors/space_file/file_intern.h | 1 - source/blender/editors/space_file/filesel.c | 52 ------------------------- 3 files changed, 1 insertion(+), 54 deletions(-) (limited to 'source/blender/editors/space_file') diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c index d5b9c169192..3553a0ed79a 100644 --- a/source/blender/editors/space_file/file_draw.c +++ b/source/blender/editors/space_file/file_draw.c @@ -303,7 +303,7 @@ static void file_draw_string(int sx, int sy, const char *string, float width, in fs.align = align; BLI_strncpy(fname, string, FILE_MAXFILE); - file_shorten_string(fname, width + 1.0f, 0); + UI_text_clip_middle_ex(&fs, fname, width + 1.0f, UI_DPI_ICON_SIZE, sizeof(fname), NULL); /* no text clipping needed, UI_fontstyle_draw does it but is a bit too strict (for buttons it works) */ rect.xmin = sx; diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h index f1fd4e2b683..dbb5e8a773d 100644 --- a/source/blender/editors/space_file/file_intern.h +++ b/source/blender/editors/space_file/file_intern.h @@ -101,7 +101,6 @@ void file_operator_to_sfile(struct SpaceFile *sfile, struct wmOperator *op); /* filesel.c */ -float file_shorten_string(char *string, float w, int front); float file_string_width(const char *str); float file_font_pointsize(void); diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c index 82409c9ecb4..29a8a06fa23 100644 --- a/source/blender/editors/space_file/filesel.c +++ b/source/blender/editors/space_file/filesel.c @@ -398,58 +398,6 @@ void ED_fileselect_layout_tilepos(FileLayout *layout, int tile, int *x, int *y) } } -/* Shorten a string to a given width w. - * If front is set, shorten from the front, - * otherwise shorten from the end. */ -float file_shorten_string(char *string, float w, int front) -{ - char temp[FILE_MAX]; - short shortened = 0; - float sw = 0; - float pad = 0; - - if (w <= 0) { - *string = '\0'; - return 0.0; - } - - sw = file_string_width(string); - if (front == 1) { - const char *s = string; - BLI_strncpy(temp, "...", 4); - pad = file_string_width(temp); - while ((*s) && (sw + pad > w)) { - s++; - sw = file_string_width(s); - shortened = 1; - } - if (shortened) { - int slen = strlen(s); - BLI_strncpy(temp + 3, s, slen + 1); - temp[slen + 4] = '\0'; - BLI_strncpy(string, temp, slen + 4); - } - } - else { - const char *s = string; - while (sw > w) { - int slen = strlen(string); - string[slen - 1] = '\0'; - sw = file_string_width(s); - shortened = 1; - } - - if (shortened) { - int slen = strlen(string); - if (slen > 3) { - BLI_strncpy(string + slen - 3, "...", 4); - } - } - } - - return sw; -} - float file_string_width(const char *str) { uiStyle *style = UI_style_get(); -- cgit v1.2.3