Loading src/index.c +2 −0 Original line number Diff line number Diff line Loading @@ -457,6 +457,8 @@ void get_index_string_dim(feh_file *file, Imlib_Font fn, int *fw, int *fh) gib_list_free_and_data(lines); printf("dim is %dx%d\n", max_w, total_h); *fw = max_w; *fh = total_h; return; Loading src/options.c +1 −13 Original line number Diff line number Diff line Loading @@ -409,9 +409,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) break; case 'm': opt.index = 1; opt.index_show_name = 0; opt.index_show_size = 0; opt.index_show_dim = 0; break; case 'c': opt.collage = 1; Loading @@ -419,9 +416,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 'i': opt.index = 1; opt.index_info = estrdup("%n"); opt.index_show_name = 1; opt.index_show_size = 0; opt.index_show_dim = 0; break; case '.': opt.scale_down = 1; Loading @@ -429,9 +423,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 'I': opt.index = 1; opt.index_info = estrdup("%n\n%S\n%wx%h"); opt.index_show_name = 1; opt.index_show_size = 1; opt.index_show_dim = 1; break; case 'l': opt.list = 1; Loading Loading @@ -612,10 +603,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) break; case 't': opt.thumbs = 1; opt.index_info = ("%n"); opt.index_show_name = 1; opt.index_show_size = 0; opt.index_show_dim = 0; opt.index_info = estrdup("%n"); break; case 'j': opt.output_dir = estrdup(optarg); Loading src/options.h +0 −3 Original line number Diff line number Diff line Loading @@ -32,9 +32,6 @@ struct __fehoptions { unsigned char montage; unsigned char collage; unsigned char index; unsigned char index_show_name; unsigned char index_show_dim; unsigned char index_show_size; unsigned char thumbs; unsigned char slideshow; unsigned char recursive; Loading src/thumbnail.c +33 −140 Original line number Diff line number Diff line Loading @@ -31,10 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "thumbnail.h" #include "md5.h" #include "feh_png.h" #include "index.h" static char *create_index_dimension_string(int w, int h); static char *create_index_size_string(char *file); static char *create_index_title_string(int num, int w, int h); static gib_list *thumbnails = NULL; static thumbmode_data td; Loading Loading @@ -65,15 +63,15 @@ void init_thumbnail_mode(void) unsigned char trans_bg = 0; int title_area_h = 0; int tw = 0, th = 0; int fw_name, fw_size, fw_dim, fh; int fw, fh; int thumbnailcount = 0; feh_file *file = NULL; gib_list *l, *last = NULL; int lines; int lineno; int index_image_width, index_image_height; int x_offset_name = 0, x_offset_dim = 0, x_offset_size = 0; char *s; unsigned int thumb_counter = 0; gib_list *line, *lines; /* initialize thumbnail mode data */ td.im_main = NULL; Loading Loading @@ -119,9 +117,8 @@ void init_thumbnail_mode(void) /* Work out how tall the font is */ gib_imlib_get_text_size(td.font_main, "W", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); /* For now, allow room for the right number of lines with small gaps */ td.text_area_h = ((th + 2) * (opt.index_show_name + opt.index_show_size + opt.index_show_dim)) + 5; get_index_string_dim(NULL, td.font_main, &fw, &fh); td.text_area_h = fh + 5; /* This includes the text area for index data */ td.thumb_tot_h = opt.thumb_h + td.text_area_h; Loading Loading @@ -264,34 +261,14 @@ void init_thumbnail_mode(void) td.text_area_w = opt.thumb_w; /* Now draw on the info text */ if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw_name, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_name > td.text_area_w) td.text_area_w = fw_name; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(ww, hh), NULL, &fw_dim, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_dim > td.text_area_w) td.text_area_w = fw_dim; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw_size, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_size > td.text_area_w) td.text_area_w = fw_size; if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } if (td.text_area_w > opt.thumb_w) td.text_area_w += 5; /* offsets for centering text */ x_offset_name = (td.text_area_w - fw_name) / 2; x_offset_dim = (td.text_area_w - fw_dim) / 2; x_offset_size = (td.text_area_w - fw_size) / 2; if (td.vertical) { if (td.text_area_w > td.max_column_w) td.max_column_w = td.text_area_w; Loading Loading @@ -332,28 +309,23 @@ void init_thumbnail_mode(void) gib_imlib_free_image_and_decache(im_thumb); lines = 0; if (opt.index_show_name) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_name, y + opt.thumb_h + (lines++ * (th + 2)) + 2, file->name, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); if (opt.index_show_dim) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_dim, y + opt.thumb_h + (lines++ * (th + 2)) + 2, create_index_dimension_string(orig_w, orig_h), IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); if (opt.index_show_size) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_size, y + opt.thumb_h + (lines++ * (th + 2)) + 2, create_index_size_string(file->filename), lineno = 0; if (opt.index_info) { line = lines = feh_wrap_string(create_index_string(file), opt.thumb_w * 3, td.font_main, NULL); while (line) { gib_imlib_get_text_size(td.font_main, (char *) line -> data, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + ((td.text_area_w - fw) >> 1), y + opt.thumb_h + (lineno++ * (th + 2)) + 2, (char *) line->data, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); line = line->next; } gib_list_free_and_data(lines); } if (td.vertical) y += td.thumb_tot_h; Loading Loading @@ -424,40 +396,6 @@ void init_thumbnail_mode(void) return; } static char *create_index_size_string(char *file) { static char str[50]; int size = 0; double kbs = 0.0; struct stat st; if (stat(file, &st)) kbs = 0.0; else { size = st.st_size; kbs = (double) size / 1000; } snprintf(str, sizeof(str), "%.2fKb", kbs); return(str); } static char *create_index_dimension_string(int w, int h) { static char str[50]; snprintf(str, sizeof(str), "%dx%d", w, h); return(str); } static char *create_index_title_string(int num, int w, int h) { static char str[50]; snprintf(str, sizeof(str), PACKAGE " index - %d thumbnails, %d by %d pixels", num, w, h); return(str); } feh_thumbnail *feh_thumbnail_new(feh_file * file, int x, int y, int w, int h) { feh_thumbnail *thumb; Loading Loading @@ -606,23 +544,8 @@ void feh_thumbnail_calculate_geometry(void) for (l = filelist; l; l = l->next) { file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading Loading @@ -654,23 +577,8 @@ void feh_thumbnail_calculate_geometry(void) file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; /* Calc width of text */ if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading @@ -697,23 +605,8 @@ void feh_thumbnail_calculate_geometry(void) for (l = filelist; l; l = l->next) { file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading Loading
src/index.c +2 −0 Original line number Diff line number Diff line Loading @@ -457,6 +457,8 @@ void get_index_string_dim(feh_file *file, Imlib_Font fn, int *fw, int *fh) gib_list_free_and_data(lines); printf("dim is %dx%d\n", max_w, total_h); *fw = max_w; *fh = total_h; return; Loading
src/options.c +1 −13 Original line number Diff line number Diff line Loading @@ -409,9 +409,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) break; case 'm': opt.index = 1; opt.index_show_name = 0; opt.index_show_size = 0; opt.index_show_dim = 0; break; case 'c': opt.collage = 1; Loading @@ -419,9 +416,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 'i': opt.index = 1; opt.index_info = estrdup("%n"); opt.index_show_name = 1; opt.index_show_size = 0; opt.index_show_dim = 0; break; case '.': opt.scale_down = 1; Loading @@ -429,9 +423,6 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) case 'I': opt.index = 1; opt.index_info = estrdup("%n\n%S\n%wx%h"); opt.index_show_name = 1; opt.index_show_size = 1; opt.index_show_dim = 1; break; case 'l': opt.list = 1; Loading Loading @@ -612,10 +603,7 @@ static void feh_parse_option_array(int argc, char **argv, int finalrun) break; case 't': opt.thumbs = 1; opt.index_info = ("%n"); opt.index_show_name = 1; opt.index_show_size = 0; opt.index_show_dim = 0; opt.index_info = estrdup("%n"); break; case 'j': opt.output_dir = estrdup(optarg); Loading
src/options.h +0 −3 Original line number Diff line number Diff line Loading @@ -32,9 +32,6 @@ struct __fehoptions { unsigned char montage; unsigned char collage; unsigned char index; unsigned char index_show_name; unsigned char index_show_dim; unsigned char index_show_size; unsigned char thumbs; unsigned char slideshow; unsigned char recursive; Loading
src/thumbnail.c +33 −140 Original line number Diff line number Diff line Loading @@ -31,10 +31,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. #include "thumbnail.h" #include "md5.h" #include "feh_png.h" #include "index.h" static char *create_index_dimension_string(int w, int h); static char *create_index_size_string(char *file); static char *create_index_title_string(int num, int w, int h); static gib_list *thumbnails = NULL; static thumbmode_data td; Loading Loading @@ -65,15 +63,15 @@ void init_thumbnail_mode(void) unsigned char trans_bg = 0; int title_area_h = 0; int tw = 0, th = 0; int fw_name, fw_size, fw_dim, fh; int fw, fh; int thumbnailcount = 0; feh_file *file = NULL; gib_list *l, *last = NULL; int lines; int lineno; int index_image_width, index_image_height; int x_offset_name = 0, x_offset_dim = 0, x_offset_size = 0; char *s; unsigned int thumb_counter = 0; gib_list *line, *lines; /* initialize thumbnail mode data */ td.im_main = NULL; Loading Loading @@ -119,9 +117,8 @@ void init_thumbnail_mode(void) /* Work out how tall the font is */ gib_imlib_get_text_size(td.font_main, "W", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); /* For now, allow room for the right number of lines with small gaps */ td.text_area_h = ((th + 2) * (opt.index_show_name + opt.index_show_size + opt.index_show_dim)) + 5; get_index_string_dim(NULL, td.font_main, &fw, &fh); td.text_area_h = fh + 5; /* This includes the text area for index data */ td.thumb_tot_h = opt.thumb_h + td.text_area_h; Loading Loading @@ -264,34 +261,14 @@ void init_thumbnail_mode(void) td.text_area_w = opt.thumb_w; /* Now draw on the info text */ if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw_name, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_name > td.text_area_w) td.text_area_w = fw_name; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(ww, hh), NULL, &fw_dim, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_dim > td.text_area_w) td.text_area_w = fw_dim; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw_size, &fh, IMLIB_TEXT_TO_RIGHT); if (fw_size > td.text_area_w) td.text_area_w = fw_size; if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } if (td.text_area_w > opt.thumb_w) td.text_area_w += 5; /* offsets for centering text */ x_offset_name = (td.text_area_w - fw_name) / 2; x_offset_dim = (td.text_area_w - fw_dim) / 2; x_offset_size = (td.text_area_w - fw_size) / 2; if (td.vertical) { if (td.text_area_w > td.max_column_w) td.max_column_w = td.text_area_w; Loading Loading @@ -332,28 +309,23 @@ void init_thumbnail_mode(void) gib_imlib_free_image_and_decache(im_thumb); lines = 0; if (opt.index_show_name) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_name, y + opt.thumb_h + (lines++ * (th + 2)) + 2, file->name, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); if (opt.index_show_dim) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_dim, y + opt.thumb_h + (lines++ * (th + 2)) + 2, create_index_dimension_string(orig_w, orig_h), IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); if (opt.index_show_size) gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + x_offset_size, y + opt.thumb_h + (lines++ * (th + 2)) + 2, create_index_size_string(file->filename), lineno = 0; if (opt.index_info) { line = lines = feh_wrap_string(create_index_string(file), opt.thumb_w * 3, td.font_main, NULL); while (line) { gib_imlib_get_text_size(td.font_main, (char *) line -> data, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); gib_imlib_text_draw(td.im_main, td.font_main, NULL, x + ((td.text_area_w - fw) >> 1), y + opt.thumb_h + (lineno++ * (th + 2)) + 2, (char *) line->data, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); line = line->next; } gib_list_free_and_data(lines); } if (td.vertical) y += td.thumb_tot_h; Loading Loading @@ -424,40 +396,6 @@ void init_thumbnail_mode(void) return; } static char *create_index_size_string(char *file) { static char str[50]; int size = 0; double kbs = 0.0; struct stat st; if (stat(file, &st)) kbs = 0.0; else { size = st.st_size; kbs = (double) size / 1000; } snprintf(str, sizeof(str), "%.2fKb", kbs); return(str); } static char *create_index_dimension_string(int w, int h) { static char str[50]; snprintf(str, sizeof(str), "%dx%d", w, h); return(str); } static char *create_index_title_string(int num, int w, int h) { static char str[50]; snprintf(str, sizeof(str), PACKAGE " index - %d thumbnails, %d by %d pixels", num, w, h); return(str); } feh_thumbnail *feh_thumbnail_new(feh_file * file, int x, int y, int w, int h) { feh_thumbnail *thumb; Loading Loading @@ -606,23 +544,8 @@ void feh_thumbnail_calculate_geometry(void) for (l = filelist; l; l = l->next) { file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading Loading @@ -654,23 +577,8 @@ void feh_thumbnail_calculate_geometry(void) file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; /* Calc width of text */ if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading @@ -697,23 +605,8 @@ void feh_thumbnail_calculate_geometry(void) for (l = filelist; l; l = l->next) { file = FEH_FILE(l->data); td.text_area_w = opt.thumb_w; if (opt.index_show_name) { gib_imlib_get_text_size(td.font_main, file->name, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_dim) { gib_imlib_get_text_size(td.font_main, create_index_dimension_string(1000, 1000), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } if (opt.index_show_size) { gib_imlib_get_text_size(td.font_main, create_index_size_string(file->filename), NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (opt.index_info) { get_index_string_dim(file, td.font_main, &fw, &fh); if (fw > td.text_area_w) td.text_area_w = fw; } Loading