diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/options.c | 825 | ||||
-rw-r--r-- | src/thumbnail.c | 144 |
2 files changed, 494 insertions, 475 deletions
diff --git a/src/options.c b/src/options.c index 810bc63..6deaf85 100644 --- a/src/options.c +++ b/src/options.c @@ -156,7 +156,8 @@ static void feh_load_options_for_theme(char *theme) } else { home = getenv("HOME"); if (!home) - eprintf("D'oh! Please define HOME in your environment!" "It would really help me out...\n"); + eprintf("D'oh! Please define HOME in your environment! " + "It would really help me out...\n"); rcpath = estrjoin("/", home, ".fehrc", NULL); D(3, ("Trying %s for config\n", rcpath)); fp = fopen(rcpath, "r"); @@ -526,7 +527,8 @@ static void feh_parse_option_array(int argc, char **argv) else if (!strcasecmp(optarg, "format")) opt.sort = SORT_FORMAT; else { - weprintf("Unrecognised sort mode \"%s\". Defaulting to sort by filename", optarg); + weprintf("Unrecognised sort mode \"%s\". Defaulting to " + "sort by filename", optarg); opt.sort = SORT_FILENAME; } break; @@ -759,35 +761,39 @@ static void check_options(void) { D_ENTER(4); if ((opt.index + opt.collage) > 1) { - weprintf("you can't use collage mode and index mode together.\n" " I'm going with index"); + weprintf("you can't use collage mode and index mode together.\n" + " I'm going with index"); opt.collage = 0; } if (opt.full_screen && opt.multiwindow) { - weprintf - ("you shouldn't combine multiwindow mode with full-screen mode,\n" - " Multiwindow mode has been disabled."); + weprintf("you shouldn't combine multiwindow mode with full-screen mode,\n" + " Multiwindow mode has been disabled."); opt.multiwindow = 0; } if (opt.list && (opt.multiwindow || opt.index || opt.collage)) { - weprintf("list mode can't be combined with other processing modes,\n" " list mode disabled."); + weprintf("list mode can't be combined with other processing modes,\n" + " list mode disabled."); opt.list = 0; } if (opt.sort && opt.randomize) { - weprintf("You cant sort AND randomize the filelist...\n" "randomize mode has been unset\n"); + weprintf("You cant sort AND randomize the filelist...\n" + "randomize mode has been unset\n"); opt.randomize = 0; } if (opt.loadables && opt.unloadables) { weprintf("You cant show loadables AND unloadables...\n" - "you might as well use ls ;)\n" "loadables only will be shown\n"); + "you might as well use ls ;)\n" + "loadables only will be shown\n"); opt.unloadables = 0; } if (opt.thumb_title && (!opt.thumbs)) { - weprintf("Doesn't make sense to set thumbnail title when not in\n" "thumbnail mode.\n"); + weprintf("Doesn't make sense to set thumbnail title when not in\n" + "thumbnail mode.\n"); free(opt.thumb_title); opt.thumb_title = NULL; } @@ -802,336 +808,336 @@ void show_version(void) void show_mini_usage(void) { - fprintf(stdout, - PACKAGE " - No loadable images specified.\nUse " PACKAGE " --help for detailed usage information\n"); + fprintf(stdout, PACKAGE " - No loadable images specified.\n" + "Use " PACKAGE " --help for detailed usage information\n"); exit(0); } void show_usage(void) { fprintf(stdout, - "Usage : " PACKAGE " [OPTIONS]... FILES...\n" - " Where a FILE is an image file or a directory.\n" - " Multiple files are supported.\n" - " Urls are supported. They must begin with http:// or ftp:// and you must\n" - " have wget installed to download the files for viewing.\n" - " Options can also be specified in the in the feh configuration file. See\n" - " man feh for more details\n" - " -h, --help display this help and exit\n" - " -v, --version output version information and exit\n" - " -V, --verbose output useful information, progress bars, etc\n" - " -q, --quiet Don't report non-fatal errors for failed loads\n" - " Verbose and quiet modes are not mutually exclusive,\n" - " the first controls informational messages, the\n" - " second only errors.\n" - " -T, --theme THEME Load options from config file with name THEME\n" - " see man feh for more info.\n" - " -_, --rcfile FILE Use FILE to parse themes and options from,\n" - " instead of the default ~/.fehrc, /etc/fehrc files.\n" - " -r, --recursive Recursively expand any directories in FILE to\n" - " the content of those directories. (Take it easy)\n" - " -z, --randomize When viewing multiple files in a slideshow,\n" - " randomise the file list before displaying\n" - " --no-jump-on-resort Don't jump to the first image when the filelist\n" - " is resorted.\n" - " -g, --geometry STRING Limit (and don't change) the window size. Takes\n" - " an X-style geometry string like 640x480.\n" - " Note that larger images will be zoomed out to fit\n" - " but you can see them at 1:1 by clicking the zoom\n" - " button.\n" - " -f, --filelist FILE This option is similar to the playlists used by\n" - " music software. If FILE exists, it will be read\n" - " for a list of files to load, in the order they\n" - " appear. The format is a list of image filenames,\n" - " absolute or relative to the current directory,\n" - " one filename per line.\n" - " If FILE doesn't exist, it will be created from the\n" - " internal filelist at the end of a viewing session.\n" - " This is best used to store the results of complex\n" - " sorts (-Spixels for example) for later viewing.\n" - " Any changes to the internal filelist (such as\n" - " deleting a file or it being pruned for being\n" - " unloadable) will be saved to FILE when feh exits.\n" - " You can add files to filelists by specifying them\n" - " on the commandline when also specifying the list.\n" - " -|, --start-at POSITION Start at POSITION in the filelist\n" - " -p, --preload Preload images. This doesn't mean hold them in\n" - " RAM, it means run through and eliminate unloadable\n" - " images first. Otherwise they will be removed as you\n" - " flick through.\n" - " -., --scale-down Automatically scale down images too big for the\n" - " screen. Currently only works with -P\n" - " -F, --full-screen Make the window fullscreen\n" - " -Z, --auto-zoom Zoom picture to screen size in fullscreen mode,\n" - " is affected by the option --stretch\n" - " --zoom PERCENT Zooms images by a PERCENT, when in full screen\n" - " mode or when window geometry is fixed. If combined\n" - " with --auto-zoom, zooming will be limited to the\n" - " the size.\n" - " -w, --multiwindow Disable slideshow mode. With this setting,\n" - " instead of opening multiple files in slideshow\n" - " mode, multiple windows will be opened.\n" - " -x, --borderless Create borderless windows\n" - " -d, --draw-filename Draw the filename at the top-left of the image.\n" - " -^, --title TITLE Use TITLE as the window title in slideshow mode.\n" - " -D, --slideshow-delay NUM For slideshow mode, specifies time delay (seconds,\n" - " can be a decimal) between automatically changing\n" - " slides.\n" - " --cycle-once exit feh after one loop through a slideshow\n" - " -R, --reload NUM Use this option to tell feh to reload an image\n" - " after NUM seconds. Useful for viewing webcams\n" - " via http, or even on your local machine.\n" - " -Q, --builtin Use builtin http grabber to grab remote files\n" - " instead of wget.\n" - " mechanism, useful if don't have wget.\n" - " -k, --keep-http When viewing files using http, feh normally\n" - " deletes the local copies after viewing, or,\n" - " if caching, on exit. This option prevents this\n" - " so that you get to keep the local copies.\n" - " They will be in the current working directory\n" - " with \"feh\" in the name.\n" - " --caption-path PATH Path to directory containing image captions.\n" - " This turns on caption viewing, and if captions\n" - " are found in PATH, which is relative to the\n" - " directory of each image, they are overlayed\n" - " on the displayed image.\n" - " e.g with caption path \"captions\", and viewing\n" - " image images/foo.jpg, caption will be looked for\n" - " as \"images/captions/foo.jpg.txt\"\n" - " -j, --output-dir Output directory for saved files. Really only\n" - " useful with the -k flag.\n" - " -G, --wget-timestamp When viewing http images with reload set (eg\n" - " webcams), try to only reload the image if the\n" - " remote file has changed.\n" - " -l, --list Don't display images. Analyse them and display an\n" - " 'ls' style listing. Useful in scripts hunt out\n" - " images of a certain size/resolution/type etc.\n" - " -L, --customlist FORMAT Use FORMAT as the format specifier for list\n" - " output. FORMAT is a printf-like string containing\n" - " image info specifiers. See FORMAT SPECIFIERS.\n" - " -U, --loadable Don't display images. Just print out their name\n" - " if imlib2 can successfully load them.\n" - " -u, --unloadable Don't display images. Just print out their name\n" - " if imlib2 can NOT successfully load them.\n" - " -S, --sort SORT_TYPE The file list may be sorted according to image\n" - " parameters. Allowed sort types are: name,\n" - " filename, width, height, pixels, size, format.\n" - " For sort modes other than name or filename, a\n" - " preload run will be necessary, causing a delay\n" - " proportional to the number of images in the list\n" - " -n, --reverse Reverse the sort order. Use this to invert the order\n" - " of the filelist. Eg to sort in reverse width order,\n" - " use -nSwidth\n" - " -A, --action ACTION Specify a string as an action to perform on the\n" - " image. In slideshow or multiwindow modes, the action\n" - " in list mode, or loadable|unloadable modes, the\n" - " action will be run for each file.\n" - " The action will be executed by /bin/sh. Use\n" - " format specifiers to refer to image info. See\n" - " FORMAT SPECIFIERS for examples\n" - " Eg. -A \"mv %%f ~/images/%%n\"\n" - " In slideshow mode, the next image will be shown\n" - " after running the command, in multiwindow mode,\n" - " the window will be closed.\n" - " --action1 ACTION These extra action options allow you to specify\n" - " --action2 ACTION multiple additional actions which can be invoked\n" - " ... using the appropriate number key 1-9\n" - " --action9 ACTION\n" - " --draw-actions Show the defined actions and what they do\n" - " -m, --montage Enable montage mode. Montage mode creates a new\n" - " image consisting of a grid of thumbnails of the\n" - " images specified using FILE... When montage mode\n" - " is selected, certain other options become\n" - " available. See MONTAGE MODE OPTIONS\n" - " -c, --collage Same as montage mode, but the thumbnails are\n" - " distributed randomly. You must specify width and\n" - " height or supply a background image or both\n" - " -i, --index Enable Index mode. Index mode is similar to\n" - " montage mode, and accepts the same options. It\n" - " creates an index print of thumbails, printing the\n" - " images name beneath each thumbnail. Index mode\n" - " enables certain other options, see INDEX MODE\n" - " OPTIONS\n" - " -t, --thumbnails As --index, but clicking an image will open it in\n" - " a new viewing window\n" - " --cache-thumbnails Enable thumbnail caching\n" - " -~, --thumb-title STRING Set window title for images opened from thumbnail mode.\n" - " Supports format specifiers, see there.\n" - " -I, --fullindex Same as index mode, but below each thumbnail you\n" - " get image name, size and dimensions\n" - " --index-name BOOL Show/Don't show filename in index/thumbnail mode\n" - " --index-size BOOL Show/Don't show filesize in index/thumbnail mode\n" - " --index-dim BOOL Show/Don't show dimensions in index/thumbnail mode\n" - " --bg-tile FILE\n" - " --bg-center FILE\n" - " --bg-scale FILE\n" - " --bg-fill FILE\n" - " --bg-seamless FILE Set your desktop background to FILE. Feh can\n" - " use enlightenment IPC if you are running it,\n" - " or will fall back to X methods.\n" - " Feh stores the commandline necessary to restore\n" - " the background you chose in ~/.fehbg. So to have\n" - " feh-set backgrounds restored when you restart X,\n" - " add the line \"eval `cat $HOME/.fehbg`\" to your\n" - " X startup script (e.g. ~/.xsession). Note that\n" - " you only need to do this for non E window\n" - " managers.\n" - " -C, --fontpath PATH Specify an extra directory to look in for fonts,\n" - " can be used multiple times to add multiple paths.\n" - " -M, --menu-font FONT Use FONT for the font in menus.\n" - " --menu-style FILE Use FILE as the style descriptor for menu text.\n" - " -), --menu-bg BG Use BG for the background image in menus.\n" - " --menu-border INT Specify number of pixels that define the menu\n" - " background's border. Borders are not stretched\n" - " when images are scaled.\n" - " -B, --image-bg STYLE Set background for transparent images and the like.\n" - " Accepted values: white, black, default\n" - " -N, --no-menus Don't load or show any menus.\n" - " -0, --reload-button B Use button B to reload the image (defaults to 0)\n" - " -1, --pan-button B Use button B pan the image (hold button down, move\n" - " the mouse to move the image around. Advancesto the\n" - " next image when the mouse is not moved (defaults to\n" - " 1, usually the left button).\n" - " -2, --zoom-button B Use button B to zoom the current image in any\n" - " mode (defaults to 2, usually the middle button).\n" - " -3, --menu-button B Use CTRL+Button B to activate the menu in any\n" - " mode. Set to 0 for any button. This option\n" - " is disabled if the -N or --no-menus option is set\n" - " (defaults to 3, usually the right button).\n" - " --menu-ctrl-mask Require CTRL+Button for menu activation in\n" - " any mode (default=off).\n" - " -4, --prev-button B Use button B to switch to the previous image\n" - " (defaults to 4, which usually is <mousewheel up>).\n" - " -5, --next-button B Use button B to switch to the next image\n" - " (defaults to 5, which usually is <mousewheel down>).\n" - " -8, --rotate-button B Use CTRL+Button B to rotate the current image in\n" - " any mode (default=2).\n" - " --no-rotate-ctrl-mask Don't require CTRL+Button for rotation in\n" - " any mode -- just use the button (default=off).\n" - " -9, --blur-button B Use CTRL+Button B to blur the current image in\n" - " any mode (default=1).\n" - " --no-blur-ctrl-mask Don't require CTRL+Button for blurring in\n" - " any mode -- just use the button (default=off).\n" - " --no-xinerama Disable Xinerama support. Only useful if\n" - " you have Xinerama compiled in.\n" - " --screen-clip [0|1] Enable/disable window clipping based on screen\n" - " size. WARNING: with this option disabled,\n" - " image windows could become very large, making\n" - " them unmanageable in certain window managers.\n" - " --hide-pointer In full screen mode, hide the X mouse pointer.\n" - " FORMAT SPECIFIERS\n" - " %%f image path/filename\n" - " %%n image name\n" - " %%s image size (bytes)\n" - " %%p image pixel size\n" - " %%w image width\n" - " %%h image height\n" - " %%t image format\n" - " %%P prints feh\n" - " %%v prints the version\n" - " %%m prints the mode (slideshow, multiwindow...)\n" - " %%l prints the total number of files in the filelist\n" - " %%u prints the current file number\n" - " \\n prints a newline\n" - " Eg. feh -A \"mv %%f ~/images/%%n\" *\n" - " MONTAGE MODE OPTIONS\n" - " -X, --ignore-aspect By default, the montage thumbnails will retain\n" - " their aspect ratios, while fitting in --thumb-width\n" - " and --thumb-height. This option will force them to\n" - " be the size set by --thumb-width and --thumb-height\n" - " This will prevent any whitespace in the final\n" - " montage\n" - " -s, --stretch Normally, if an image is smaller than the specified\n" - " thumbnail size, it will not be enlarged. If this\n" - " option is set, the image will be scaled up to fit\n" - " the thumbnail size. (Aspect ratio will be maintained\n" - " unless --ignore-aspect is specified)\n" - " -y, --thumb-width NUM Set thumbnail width in pixels\n" - " -E, --thumb-height NUM Set thumbnail height in pixels\n" - " Thumbnails default to 20x20 pixels\n" - " -W, --limit-width NUM Limit the width of the montage in pixels\n" - " -H, --limit-height NUM Limit the height of the montage in pixels\n" - " These options can be used together (to define the\n" - " image size exactly), or separately. If only one is\n" - " specified, theother is calculated from the number\n" - " of files specified and the size of the thumbnails.\n" - " The default is to limit width to 800 pixels and\n" - " calculate the height\n" - " -b, --bg FILE|trans Use FILE as a background for your montage. With\n" - " this option specified, the size of the montage will\n" - " default to the size of FILE if no size restrictions\n" - " are specified. Alternatively, if FILE is \"trans\",\n" - " make the background transparent.\n" - " -a, --alpha NUM When drawing thumbnails onto the background, apply\n" - " them with a transparency level of NUM (0-255).\n" - " -o, --output FILE Save the created montage to FILE\n" - " -O, --output-only FILE Just save the created montage to FILE\n" - " WITHOUT displaying it (use in scripts)\n" - " INDEX MODE OPTIONS\n" - " -e, --font FONT Use FONT to print the information under each\n" - " thumbnail. FONT should be defined in the form\n" - " fontname/size(points). eg -e myfont/12\n" - " -@, --title-font FONT Use FONT to print a title on the index, if no\n" - " font is specified, a title will not be printed\n" - " SLIDESHOW KEYS\n" - " The default mode for viewing mulitple images is Slideshow mode\n" - " When viewing a slideshow, the following keys may be used:\n" - " p, P, <BACKSPACE>, <LEFT> Goto previous slide\n" - " n, N, <SPACE>, <RIGHT> Goto next slide\n" - " r, R Reload image (good for webcams)\n" - " v, V Toggle fullscreen\n" - " m, M Show popup menu\n" - " c, C Caption entry mode. If --caption-path has been\n" - " specified, then this enables caption editing.\n" - " The caption will turn yellow and be editable,\n" - " hit enter to confirm and save the caption, or\n" - " hit escape to cancel and revert the caption.\n" - " w, W Size window to current image dimensions\n" - " h, H Pause the slideshow (only useful when using\n" - " timed reloading or image changes)\n" - " a, A Toggle action display (--draw-actions)\n" - " d, D Toggle filename display (--draw-filename)\n" - " s, S Save current image to unique filename\n" - " f, F Save current filelist to unique filename\n" - " <, > In place editing, rotate 90 degrees right/left\n" - " <HOME> Goto first slide\n" - " <END> Goto last slide\n" - " <ESCAPE> Quit the slideshow\n" - " +, = Increase reload delay\n" - " -, _ Decrease reload delay\n" - " <DELETE> Remove the currently viewed file from the filelist\n" - " <CTRL+DELETE> Delete the currently viewed file and remove it\n" - " from the filelist\n" - " x, X Close current window\n" - " q, Q Quit the slideshow\n" - " <KEYPAD LEFT> Move the image to the left\n" - " <KEYPAD RIGHT> Move the image to the right\n" - " <KEYPAD UP> Move the image up\n" - " <KEYPAD DOWN> Move the image down\n" - " <KEYPAD BEGIN> Antialias the image\n" - " <KEYPAD +> Zoom in\n" - " <KEYPAD -> Zoom out\n" - " <KEYPAD *> Zoom to 100%%\n" - " <KEYPAD /> Zoom to fit the window\n" - " <ENTER>,0 Run action specified by --action option\n" - " 1-9 Run action 1-9 specified by --action[1-9] options\n" - "\n" - " MOUSE ACTIONS\n" - " When viewing an image, a click of mouse button 1 moves to the next image\n" - " (slideshow mode only), a drag of mouse button 1 pans the image, if the\n" - " viewable window is smaller than the image, button 2 zooms (click and drag\n" - " left->right to zoom in, right->left to zoom out, click once to restore\n" - " 1x zoom), and mouse button 3 pans.\n" - " Ctrl+button 1 blurs or sharpens the image (drag left to blur and right to\n" - " sharpen). Ctrl+button 2 rotates the image around the center point.\n" - " Button 3 activates the context-sensitive menu. Buttons can be redefined\n" - " with the -1 through -9 (or --*-button) cmdline flags. All you people\n" - " with million button mice can remove the ctrl mask with the --no-*-ctrl-mask\n" - " options.\n" "\n" - "See 'man feh' for more detailed information\n" "\n" - "This program is free software see the file COPYING for licensing info.\n" - "Copyright Tom Gilbert (and various contributors) 1999-2003\n" - "Email bugs to <derf@chaosdorf.de>\n"); +"Usage : " PACKAGE " [OPTIONS]... FILES...\n" +" Where a FILE is an image file or a directory.\n" +" Multiple files are supported.\n" +" Urls are supported. They must begin with http:// or ftp:// and you must\n" +" have wget installed to download the files for viewing.\n" +" Options can also be specified in the in the feh configuration file. See\n" +" man feh for more details\n" +" -h, --help display this help and exit\n" +" -v, --version output version information and exit\n" +" -V, --verbose output useful information, progress bars, etc\n" +" -q, --quiet Don't report non-fatal errors for failed loads\n" +" Verbose and quiet modes are not mutually exclusive,\n" +" the first controls informational messages, the\n" +" second only errors.\n" +" -T, --theme THEME Load options from config file with name THEME\n" +" see man feh for more info.\n" +" -_, --rcfile FILE Use FILE to parse themes and options from,\n" +" instead of the default ~/.fehrc, /etc/fehrc files.\n" +" -r, --recursive Recursively expand any directories in FILE to\n" +" the content of those directories. (Take it easy)\n" +" -z, --randomize When viewing multiple files in a slideshow,\n" +" randomise the file list before displaying\n" +" --no-jump-on-resort Don't jump to the first image when the filelist\n" +" is resorted.\n" +" -g, --geometry STRING Limit (and don't change) the window size. Takes\n" +" an X-style geometry string like 640x480.\n" +" Note that larger images will be zoomed out to fit\n" +" but you can see them at 1:1 by clicking the zoom\n" +" button.\n" +" -f, --filelist FILE This option is similar to the playlists used by\n" +" music software. If FILE exists, it will be read\n" +" for a list of files to load, in the order they\n" +" appear. The format is a list of image filenames,\n" +" absolute or relative to the current directory,\n" +" one filename per line.\n" +" If FILE doesn't exist, it will be created from the\n" +" internal filelist at the end of a viewing session.\n" +" This is best used to store the results of complex\n" +" sorts (-Spixels for example) for later viewing.\n" +" Any changes to the internal filelist (such as\n" +" deleting a file or it being pruned for being\n" +" unloadable) will be saved to FILE when feh exits.\n" +" You can add files to filelists by specifying them\n" +" on the commandline when also specifying the list.\n" +" -|, --start-at POSITION Start at POSITION in the filelist\n" +" -p, --preload Preload images. This doesn't mean hold them in\n" +" RAM, it means run through and eliminate unloadable\n" +" images first. Otherwise they will be removed as you\n" +" flick through.\n" +" -., --scale-down Automatically scale down images too big for the\n" +" screen. Currently only works with -P\n" +" -F, --full-screen Make the window fullscreen\n" +" -Z, --auto-zoom Zoom picture to screen size in fullscreen mode,\n" +" is affected by the option --stretch\n" +" --zoom PERCENT Zooms images by a PERCENT, when in full screen\n" +" mode or when window geometry is fixed. If combined\n" +" with --auto-zoom, zooming will be limited to the\n" +" the size.\n" +" -w, --multiwindow Disable slideshow mode. With this setting,\n" +" instead of opening multiple files in slideshow\n" +" mode, multiple windows will be opened.\n" +" -x, --borderless Create borderless windows\n" +" -d, --draw-filename Draw the filename at the top-left of the image.\n" +" -^, --title TITLE Use TITLE as the window title in slideshow mode.\n" +" -D, --slideshow-delay NUM For slideshow mode, specifies time delay (seconds,\n" +" can be a decimal) between automatically changing\n" +" slides.\n" +" --cycle-once exit feh after one loop through a slideshow\n" +" -R, --reload NUM Use this option to tell feh to reload an image\n" +" after NUM seconds. Useful for viewing webcams\n" +" via http, or even on your local machine.\n" +" -Q, --builtin Use builtin http grabber to grab remote files\n" +" instead of wget.\n" +" mechanism, useful if don't have wget.\n" +" -k, --keep-http When viewing files using http, feh normally\n" +" deletes the local copies after viewing, or,\n" +" if caching, on exit. This option prevents this\n" +" so that you get to keep the local copies.\n" +" They will be in the current working directory\n" +" with \"feh\" in the name.\n" +" --caption-path PATH Path to directory containing image captions.\n" +" This turns on caption viewing, and if captions\n" +" are found in PATH, which is relative to the\n" +" directory of each image, they are overlayed\n" +" on the displayed image.\n" +" e.g with caption path \"captions\", and viewing\n" +" image images/foo.jpg, caption will be looked for\n" +" as \"images/captions/foo.jpg.txt\"\n" +" -j, --output-dir Output directory for saved files. Really only\n" +" useful with the -k flag.\n" +" -G, --wget-timestamp When viewing http images with reload set (eg\n" +" webcams), try to only reload the image if the\n" +" remote file has changed.\n" +" -l, --list Don't display images. Analyse them and display an\n" +" 'ls' style listing. Useful in scripts hunt out\n" +" images of a certain size/resolution/type etc.\n" +" -L, --customlist FORMAT Use FORMAT as the format specifier for list\n" +" output. FORMAT is a printf-like string containing\n" +" image info specifiers. See FORMAT SPECIFIERS.\n" +" -U, --loadable Don't display images. Just print out their name\n" +" if imlib2 can successfully load them.\n" +" -u, --unloadable Don't display images. Just print out their name\n" +" if imlib2 can NOT successfully load them.\n" +" -S, --sort SORT_TYPE The file list may be sorted according to image\n" +" parameters. Allowed sort types are: name,\n" +" filename, width, height, pixels, size, format.\n" +" For sort modes other than name or filename, a\n" +" preload run will be necessary, causing a delay\n" +" proportional to the number of images in the list\n" +" -n, --reverse Reverse the sort order. Use this to invert the order\n" +" of the filelist. Eg to sort in reverse width order,\n" +" use -nSwidth\n" +" -A, --action ACTION Specify a string as an action to perform on the\n" +" image. In slideshow or multiwindow modes, the action\n" +" in list mode, or loadable|unloadable modes, the\n" +" action will be run for each file.\n" +" The action will be executed by /bin/sh. Use\n" +" format specifiers to refer to image info. See\n" +" FORMAT SPECIFIERS for examples\n" +" Eg. -A \"mv %%f ~/images/%%n\"\n" +" In slideshow mode, the next image will be shown\n" +" after running the command, in multiwindow mode,\n" +" the window will be closed.\n" +" --action1 ACTION These extra action options allow you to specify\n" +" --action2 ACTION multiple additional actions which can be invoked\n" +" ... using the appropriate number key 1-9\n" +" --action9 ACTION\n" +" --draw-actions Show the defined actions and what they do\n" +" -m, --montage Enable montage mode. Montage mode creates a new\n" +" image consisting of a grid of thumbnails of the\n" +" images specified using FILE... When montage mode\n" +" is selected, certain other options become\n" +" available. See MONTAGE MODE OPTIONS\n" +" -c, --collage Same as montage mode, but the thumbnails are\n" +" distributed randomly. You must specify width and\n" +" height or supply a background image or both\n" +" -i, --index Enable Index mode. Index mode is similar to\n" +" montage mode, and accepts the same options. It\n" +" creates an index print of thumbails, printing the\n" +" images name beneath each thumbnail. Index mode\n" +" enables certain other options, see INDEX MODE\n" +" OPTIONS\n" +" -t, --thumbnails As --index, but clicking an image will open it in\n" +" a new viewing window\n" +" --cache-thumbnails Enable thumbnail caching\n" +" -~, --thumb-title STRING Set window title for images opened from thumbnail mode.\n" +" Supports format specifiers, see there.\n" +" -I, --fullindex Same as index mode, but below each thumbnail you\n" +" get image name, size and dimensions\n" +" --index-name BOOL Show/Don't show filename in index/thumbnail mode\n" +" --index-size BOOL Show/Don't show filesize in index/thumbnail mode\n" +" --index-dim BOOL Show/Don't show dimensions in index/thumbnail mode\n" +" --bg-tile FILE\n" +" --bg-center FILE\n" +" --bg-scale FILE\n" +" --bg-fill FILE\n" +" --bg-seamless FILE Set your desktop background to FILE. Feh can\n" +" use enlightenment IPC if you are running it,\n" +" or will fall back to X methods.\n" +" Feh stores the commandline necessary to restore\n" +" the background you chose in ~/.fehbg. So to have\n" +" feh-set backgrounds restored when you restart X,\n" +" add the line \"eval `cat $HOME/.fehbg`\" to your\n" +" X startup script (e.g. ~/.xsession). Note that\n" +" you only need to do this for non E window\n" +" managers.\n" +" -C, --fontpath PATH Specify an extra directory to look in for fonts,\n" +" can be used multiple times to add multiple paths.\n" +" -M, --menu-font FONT Use FONT for the font in menus.\n" +" --menu-style FILE Use FILE as the style descriptor for menu text.\n" +" -), --menu-bg BG Use BG for the background image in menus.\n" +" --menu-border INT Specify number of pixels that define the menu\n" +" background's border. Borders are not stretched\n" +" when images are scaled.\n" +" -B, --image-bg STYLE Set background for transparent images and the like.\n" +" Accepted values: white, black, default\n" +" -N, --no-menus Don't load or show any menus.\n" +" -0, --reload-button B Use button B to reload the image (defaults to 0)\n" +" -1, --pan-button B Use button B pan the image (hold button down, move\n" +" the mouse to move the image around. Advancesto the\n" +" next image when the mouse is not moved (defaults to\n" +" 1, usually the left button).\n" +" -2, --zoom-button B Use button B to zoom the current image in any\n" +" mode (defaults to 2, usually the middle button).\n" +" -3, --menu-button B Use CTRL+Button B to activate the menu in any\n" +" mode. Set to 0 for any button. This option\n" +" is disabled if the -N or --no-menus option is set\n" +" (defaults to 3, usually the right button).\n" +" --menu-ctrl-mask Require CTRL+Button for menu activation in\n" +" any mode (default=off).\n" +" -4, --prev-button B Use button B to switch to the previous image\n" +" (defaults to 4, which usually is <mousewheel up>).\n" +" -5, --next-button B Use button B to switch to the next image\n" +" (defaults to 5, which usually is <mousewheel down>).\n" +" -8, --rotate-button B Use CTRL+Button B to rotate the current image in\n" +" any mode (default=2).\n" +" --no-rotate-ctrl-mask Don't require CTRL+Button for rotation in\n" +" any mode -- just use the button (default=off).\n" +" -9, --blur-button B Use CTRL+Button B to blur the current image in\n" +" any mode (default=1).\n" +" --no-blur-ctrl-mask Don't require CTRL+Button for blurring in\n" +" any mode -- just use the button (default=off).\n" +" --no-xinerama Disable Xinerama support. Only useful if\n" +" you have Xinerama compiled in.\n" +" --screen-clip [0|1] Enable/disable window clipping based on screen\n" +" size. WARNING: with this option disabled,\n" +" image windows could become very large, making\n" +" them unmanageable in certain window managers.\n" +" --hide-pointer In full screen mode, hide the X mouse pointer.\n" +" FORMAT SPECIFIERS\n" +" %%f image path/filename\n" +" %%n image name\n" +" %%s image size (bytes)\n" +" %%p image pixel size\n" +" %%w image width\n" +" %%h image height\n" +" %%t image format\n" +" %%P prints feh\n" +" %%v prints the version\n" +" %%m prints the mode (slideshow, multiwindow...)\n" +" %%l prints the total number of files in the filelist\n" +" %%u prints the current file number\n" +" \\n prints a newline\n" +" Eg. feh -A \"mv %%f ~/images/%%n\" *\n" +" MONTAGE MODE OPTIONS\n" +" -X, --ignore-aspect By default, the montage thumbnails will retain\n" +" their aspect ratios, while fitting in --thumb-width\n" +" and --thumb-height. This option will force them to\n" +" be the size set by --thumb-width and --thumb-height\n" +" This will prevent any whitespace in the final\n" +" montage\n" +" -s, --stretch Normally, if an image is smaller than the specified\n" +" thumbnail size, it will not be enlarged. If this\n" +" option is set, the image will be scaled up to fit\n" +" the thumbnail size. (Aspect ratio will be maintained\n" +" unless --ignore-aspect is specified)\n" +" -y, --thumb-width NUM Set thumbnail width in pixels\n" +" -E, --thumb-height NUM Set thumbnail height in pixels\n" +" Thumbnails default to 20x20 pixels\n" +" -W, --limit-width NUM Limit the width of the montage in pixels\n" +" -H, --limit-height NUM Limit the height of the montage in pixels\n" +" These options can be used together (to define the\n" +" image size exactly), or separately. If only one is\n" +" specified, theother is calculated from the number\n" +" of files specified and the size of the thumbnails.\n" +" The default is to limit width to 800 pixels and\n" +" calculate the height\n" +" -b, --bg FILE|trans Use FILE as a background for your montage. With\n" +" this option specified, the size of the montage will\n" +" default to the size of FILE if no size restrictions\n" +" are specified. Alternatively, if FILE is \"trans\",\n" +" make the background transparent.\n" +" -a, --alpha NUM When drawing thumbnails onto the background, apply\n" +" them with a transparency level of NUM (0-255).\n" +" -o, --output FILE Save the created montage to FILE\n" +" -O, --output-only FILE Just save the created montage to FILE\n" +" WITHOUT displaying it (use in scripts)\n" +" INDEX MODE OPTIONS\n" +" -e, --font FONT Use FONT to print the information under each\n" +" thumbnail. FONT should be defined in the form\n" +" fontname/size(points). eg -e myfont/12\n" +" -@, --title-font FONT Use FONT to print a title on the index, if no\n" +" font is specified, a title will not be printed\n" +" SLIDESHOW KEYS\n" +" The default mode for viewing mulitple images is Slideshow mode\n" +" When viewing a slideshow, the following keys may be used:\n" +" p, P, <BACKSPACE>, <LEFT> Goto previous slide\n" +" n, N, <SPACE>, <RIGHT> Goto next slide\n" +" r, R Reload image (good for webcams)\n" +" v, V Toggle fullscreen\n" +" m, M Show popup menu\n" +" c, C Caption entry mode. If --caption-path has been\n" +" specified, then this enables caption editing.\n" +" The caption will turn yellow and be editable,\n" +" hit enter to confirm and save the caption, or\n" +" hit escape to cancel and revert the caption.\n" +" w, W Size window to current image dimensions\n" +" h, H Pause the slideshow (only useful when using\n" +" timed reloading or image changes)\n" +" a, A Toggle action display (--draw-actions)\n" +" d, D Toggle filename display (--draw-filename)\n" +" s, S Save current image to unique filename\n" +" f, F Save current filelist to unique filename\n" +" <, > In place editing, rotate 90 degrees right/left\n" +" <HOME> Goto first slide\n" +" <END> Goto last slide\n" +" <ESCAPE> Quit the slideshow\n" +" +, = Increase reload delay\n" +" -, _ Decrease reload delay\n" +" <DELETE> Remove the currently viewed file from the filelist\n" +" <CTRL+DELETE> Delete the currently viewed file and remove it\n" +" from the filelist\n" +" x, X Close current window\n" +" q, Q Quit the slideshow\n" +" <KEYPAD LEFT> Move the image to the left\n" +" <KEYPAD RIGHT> Move the image to the right\n" +" <KEYPAD UP> Move the image up\n" +" <KEYPAD DOWN> Move the image down\n" +" <KEYPAD BEGIN> Antialias the image\n" +" <KEYPAD +> Zoom in\n" +" <KEYPAD -> Zoom out\n" +" <KEYPAD *> Zoom to 100%%\n" +" <KEYPAD /> Zoom to fit the window\n" +" <ENTER>,0 Run action specified by --action option\n" +" 1-9 Run action 1-9 specified by --action[1-9] options\n" +"\n" +" MOUSE ACTIONS\n" +" When viewing an image, a click of mouse button 1 moves to the next image\n" +" (slideshow mode only), a drag of mouse button 1 pans the image, if the\n" +" viewable window is smaller than the image, button 2 zooms (click and drag\n" +" left->right to zoom in, right->left to zoom out, click once to restore\n" +" 1x zoom), and mouse button 3 pans.\n" +" Ctrl+button 1 blurs or sharpens the image (drag left to blur and right to\n" +" sharpen). Ctrl+button 2 rotates the image around the center point.\n" +" Button 3 activates the context-sensitive menu. Buttons can be redefined\n" +" with the -1 through -9 (or --*-button) cmdline flags. All you people\n" +" with million button mice can remove the ctrl mask with the --no-*-ctrl-mask\n" +" options.\n" "\n" +"See 'man feh' for more detailed information\n" "\n" +"This program is free software see the file COPYING for licensing info.\n" +"Copyright Tom Gilbert (and various contributors) 1999-2003\n" +"Email bugs to <derf@chaosdorf.de>\n"); exit(0); } @@ -1147,81 +1153,82 @@ void feh_create_default_config(char *rcfile) } fprintf(fp, - "# Feh configuration file.\n" - "# Lines starting with # are comments. Don't use comments mid-line.\n" - "\n" - "# Feh expects to find this as ~/.fehrc or /etc/fehrc\n" - "# If both are available, ~/.fehrc will be used\n" - "\n" - "# Options are defined in theme_name/options pairs.\n" - "# Separate themename and options by whitespace.\n" - "\n" - "# There are two ways of specifying the theme. Either use feh -Tthemename,\n" - "# or use a symbolic link to feh with the name of the theme. eg\n" - "# ln -s `which feh` ~/bin/mkindex\n" - "# Now when you run 'mkindex', feh will load the config specified for the\n" - "# mkindex theme.\n" - "\n" - "# ======================\n" - "# Some examples of usage\n" - "# ======================\n" - "\n" - "# Set the default feh options to be recursive and verbose\n" - "# feh -rV\n" - "\n" - "# Multiple options can of course be used. They should all be on one line\n" - "# imagemap -rV --quiet -W 400 -H 300 --thumb-width 40 --thumb-height 30\n" - "\n" - "# ====================\n" - "# A few default themes\n" - "# ====================\n" - "\n" - "# Webcam mode, simply specify the url(s).\n" - "# e.g. feh -Twebcam http://cam1 http://cam2\n" - "webcam --multiwindow --reload 20\n" - "\n" - "# Create an index of the current directory. This version uses . as the\n" - "# current dir, so you don't even need any commandline arguments.\n" - "mkindex -iVO index.jpg .\n" - "\n" - "# More ambitious version...\n" - "imgidx -iVO .fehindex.jpg --limit-width 1200 --thumb-width 90 --thumb-height 90 .\n" - "\n" - "# Show a presentation\n" - "present --full-screen --sort name\n" - "\n" - "# Booth mode ;-)\n" - "booth --full-screen --hide-pointer --slideshow-delay 20\n" - "\n" - "# Screw xscreensaver, use feh =)\n" - "screensave --full-screen --randomize --slideshow-delay 5\n" - "\n" - "# Add <img> tags to your html with ease :-)\n" - "newimg -q -L \"<img src=\\\"%%f\\\" alt=\\\"%%n\\\" border=\\\"0\\\" width=\\\"%%w\\\" height=\\\"%%h\\\">\"\n" - "\n" - "# Different menus\n" - "chrome --menu-bg " - PREFIX "/share/feh/images/menubg_chrome.png\n" - "brushed --menu-bg " - PREFIX "/share/feh/images/menubg_brushed.png\n" - "pastel --menu-bg " - PREFIX "/share/feh/images/menubg_pastel.png\n" - "aluminium --menu-bg " - PREFIX "/share/feh/images/menubg_aluminium.png\n" - "wood --menu-bg " - PREFIX "/share/feh/images/menubg_wood.png\n" - "aqua --menu-bg " - PREFIX "/share/feh/images/menubg_aqua.png\n" - "sky --menu-bg " - PREFIX "/share/feh/images/menubg_sky.png\n" - "orange --menu-bg " - PREFIX "/share/feh/images/menubg_orange.png\n" - "light --menu-bg " - PREFIX "/share/feh/images/menubg_light.png\n" - "black --menu-bg " - PREFIX "/share/feh/images/menubg_black.png" - " --menu-style " - PREFIX "/share/feh/fonts/black.style\n"); +"# Feh configuration file.\n" +"# Lines starting with # are comments. Don't use comments mid-line.\n" +"\n" +"# Feh expects to find this as ~/.fehrc or /etc/fehrc\n" +"# If both are available, ~/.fehrc will be used\n" +"\n" +"# Options are defined in theme_name/options pairs.\n" +"# Separate themename and options by whitespace.\n" +"\n" +"# There are two ways of specifying the theme. Either use feh -Tthemename,\n" +"# or use a symbolic link to feh with the name of the theme. eg\n" +"# ln -s `which feh` ~/bin/mkindex\n" +"# Now when you run 'mkindex', feh will load the config specified for the\n" +"# mkindex theme.\n" +"\n" +"# ======================\n" +"# Some examples of usage\n" +"# ======================\n" +"\n" +"# Set the default feh options to be recursive and verbose\n" +"# feh -rV\n" +"\n" +"# Multiple options can of course be used. They should all be on one line\n" +"# imagemap -rV --quiet -W 400 -H 300 --thumb-width 40 --thumb-height 30\n" +"\n" +"# ====================\n" +"# A few default themes\n" +"# ====================\n" +"\n" +"# Webcam mode, simply specify the url(s).\n" +"# e.g. feh -Twebcam http://cam1 http://cam2\n" +"webcam --multiwindow --reload 20\n" +"\n" +"# Create an index of the current directory. This version uses . as the\n" +"# current dir, so you don't even need any commandline arguments.\n" +"mkindex -iVO index.jpg .\n" +"\n" +"# More ambitious version...\n" +"imgidx -iVO .fehindex.jpg --limit-width 1200 --thumb-width 90 --thumb-height 90 .\n" +"\n" +"# Show a presentation\n" +"present --full-screen --sort name\n" +"\n" +"# Booth mode ;-)\n" +"booth --full-screen --hide-pointer --slideshow-delay 20\n" +"\n" +"# Screw xscreensaver, use feh =)\n" +"screensave --full-screen --randomize --slideshow-delay 5\n" +"\n" +"# Add <img> tags to your html with ease :-)\n" +"newimg -q -L \"<img src=\\\"%%f\\\" alt=\\\"%%n\\\" border=\\\"0\\\" " +"width=\\\"%%w\\\" height=\\\"%%h\\\">\"\n" +"\n" +"# Different menus\n" +"chrome --menu-bg " +PREFIX "/share/feh/images/menubg_chrome.png\n" +"brushed --menu-bg " +PREFIX "/share/feh/images/menubg_brushed.png\n" +"pastel --menu-bg " +PREFIX "/share/feh/images/menubg_pastel.png\n" +"aluminium --menu-bg " +PREFIX "/share/feh/images/menubg_aluminium.png\n" +"wood --menu-bg " +PREFIX "/share/feh/images/menubg_wood.png\n" +"aqua --menu-bg " +PREFIX "/share/feh/images/menubg_aqua.png\n" +"sky --menu-bg " +PREFIX "/share/feh/images/menubg_sky.png\n" +"orange --menu-bg " +PREFIX "/share/feh/images/menubg_orange.png\n" +"light --menu-bg " +PREFIX "/share/feh/images/menubg_light.png\n" +"black --menu-bg " +PREFIX "/share/feh/images/menubg_black.png" +" --menu-style " +PREFIX "/share/feh/fonts/black.style\n"); fclose(fp); D_RETURN_(4); diff --git a/src/thumbnail.c b/src/thumbnail.c index d317ac7..7c5dad3 100644 --- a/src/thumbnail.c +++ b/src/thumbnail.c @@ -99,7 +99,8 @@ void init_thumbnail_mode(void) int fh, fw; td.font_title = gib_imlib_load_font(opt.title_font); - gib_imlib_get_text_size(td.font_title, "W", NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); + gib_imlib_get_text_size(td.font_title, "W", NULL, &fw, &fh, + IMLIB_TEXT_TO_RIGHT); title_area_h = fh + 4; } else td.font_title = imlib_load_font(DEFAULT_FONT_TITLE); @@ -108,9 +109,11 @@ void init_thumbnail_mode(void) eprintf("Error loading fonts"); /* Work out how tall the font is */ - gib_imlib_get_text_size(td.font_main, "W", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); + 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; + td.text_area_h = ((th + 2) * (opt.index_show_name + opt.index_show_size + + opt.index_show_dim)) + 5; /* This includes the text area for index data */ td.thumb_tot_h = opt.thumb_h + td.text_area_h; @@ -143,13 +146,16 @@ void init_thumbnail_mode(void) if (td.im_bg) gib_imlib_blend_image_onto_image(td.im_main, td.im_bg, gib_imlib_image_has_alpha - (td.im_bg), 0, 0, td.bg_w, td.bg_h, 0, 0, td.w, td.h, 1, 0, 0); + (td.im_bg), 0, 0, td.bg_w, td.bg_h, 0, 0, + td.w, td.h, 1, 0, 0); else if (trans_bg) { - gib_imlib_image_fill_rectangle(td.im_main, 0, 0, td.w, td.h + title_area_h, 0, 0, 0, 0); + gib_imlib_image_fill_rectangle(td.im_main, 0, 0, td.w, + td.h + title_area_h, 0, 0, 0, 0); gib_imlib_image_set_has_alpha(td.im_main, 1); } else { /* Colour the background */ - gib_imlib_image_fill_rectangle(td.im_main, 0, 0, td.w, td.h + title_area_h, 0, 0, 0, 255); + gib_imlib_image_fill_rectangle(td.im_main, 0, 0, td.w, + td.h + title_area_h, 0, 0, 0, 255); } /* Create title now */ @@ -210,7 +216,8 @@ void init_thumbnail_mode(void) hhh = hh; } - im_thumb = gib_imlib_create_cropped_scaled_image(im_temp, 0, 0, ww, hh, www, hhh, 1); + im_thumb = gib_imlib_create_cropped_scaled_image(im_temp, 0, 0, + ww, hh, www, hhh, 1); gib_imlib_free_image_and_decache(im_temp); if (opt.alpha) { @@ -226,22 +233,22 @@ 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); + 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); + 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); + 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; } @@ -287,38 +294,36 @@ void init_thumbnail_mode(void) gib_imlib_image_has_alpha (im_thumb), 0, 0, www, hhh, xxx, - yyy, www, hhh, 1, gib_imlib_image_has_alpha(im_thumb), 0); + yyy, www, hhh, 1, + gib_imlib_image_has_alpha(im_thumb), 0); - thumbnails = gib_list_add_front(thumbnails, feh_thumbnail_new(file, xxx, yyy, www, hhh)); + thumbnails = gib_list_add_front(thumbnails, + feh_thumbnail_new(file, xxx, yyy, www, hhh)); 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); + 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 - (ww, hh), IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); + td.font_main, NULL, + x + x_offset_dim, + y + opt.thumb_h + (lines++ * (th + 2)) + 2, + create_index_dimension_string(ww, hh), + 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), IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); + td.font_main, NULL, + x + x_offset_size, + y + opt.thumb_h + (lines++ * (th + 2)) + 2, + create_index_size_string(file->filename), + IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); if (td.vertical) y += td.thumb_tot_h; @@ -343,11 +348,12 @@ void init_thumbnail_mode(void) char *s; s = create_index_title_string(thumbnailcount, td.w, td.h); - gib_imlib_get_text_size(td.font_title, s, NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); + gib_imlib_get_text_size(td.font_title, s, NULL, &fw, &fh, + IMLIB_TEXT_TO_RIGHT); fx = (index_image_width - fw) >> 1; fy = index_image_height - fh - 2; gib_imlib_text_draw(td.im_main, td.font_title, NULL, fx, - fy, s, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); + fy, s, IMLIB_TEXT_TO_RIGHT, 255, 255, 255, 255); } if (opt.output && opt.output_file) { @@ -365,7 +371,8 @@ void init_thumbnail_mode(void) th = gib_imlib_image_get_height(td.im_main); fprintf(stdout, PACKAGE " - File saved as %s\n", output_buf); fprintf(stdout, - " - Image is %dx%d pixels and contains %d thumbnails\n", tw, th, thumbnailcount); + " - Image is %dx%d pixels and contains %d thumbnails\n", + tw, th, thumbnailcount); } } @@ -500,21 +507,20 @@ void feh_thumbnail_mark_removed(feh_file * file, int deleted) if (w) { td.font_main = imlib_load_font(DEFAULT_FONT_TITLE); if (deleted) - gib_imlib_image_fill_rectangle(w->im, - thumb->x, thumb->y, thumb->w, thumb->h, 255, 0, 0, 150); + gib_imlib_image_fill_rectangle(w->im, thumb->x, thumb->y, + thumb->w, thumb->h, 255, 0, 0, 150); else - gib_imlib_image_fill_rectangle(w->im, - thumb->x, thumb->y, thumb->w, thumb->h, 0, 0, 255, 150); + gib_imlib_image_fill_rectangle(w->im, thumb->x, thumb->y, + thumb->w, thumb->h, 0, 0, 255, 150); if (td.font_main) { int tw, th; - gib_imlib_get_text_size(td.font_main, "X", NULL, &tw, &th, IMLIB_TEXT_TO_RIGHT); - gib_imlib_text_draw(w->im, td.font_main, - NULL, - thumb->x + - ((thumb->w - tw) / 2), - thumb->y + - ((thumb->h - th) / 2), "X", IMLIB_TEXT_TO_RIGHT, 205, 205, 50, 255); + gib_imlib_get_text_size(td.font_main, "X", NULL, &tw, &th, + IMLIB_TEXT_TO_RIGHT); + gib_imlib_text_draw(w->im, td.font_main, NULL, + thumb->x + ((thumb->w - tw) / 2), + thumb->y + ((thumb->h - th) / 2), "X", + IMLIB_TEXT_TO_RIGHT, 205, 205, 50, 255); } else weprintf(DEFAULT_FONT_TITLE); winwidget_render_image(w, 0, 1); @@ -573,21 +579,22 @@ void feh_thumbnail_calculate_geometry(void) 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); + 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); + 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); + create_index_size_string(file->filename), + NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } @@ -620,21 +627,22 @@ void feh_thumbnail_calculate_geometry(void) 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); + 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); + 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); + create_index_size_string(file->filename), + NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } @@ -662,21 +670,22 @@ void feh_thumbnail_calculate_geometry(void) 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); + 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); + 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); + create_index_size_string(file->filename), + NULL, &fw, &fh, IMLIB_TEXT_TO_RIGHT); if (fw > td.text_area_w) td.text_area_w = fw; } @@ -785,7 +794,8 @@ char *feh_thumbnail_get_name_md5(char *uri) return md5_name; } -int feh_thumbnail_generate(Imlib_Image * image, feh_file * file, char *thumb_file, char *uri) +int feh_thumbnail_generate(Imlib_Image * image, feh_file * file, + char *thumb_file, char *uri) { int w, h, thumb_w, thumb_h; char *c_mtime; @@ -806,12 +816,14 @@ int feh_thumbnail_generate(Imlib_Image * image, feh_file * file, char *thumb_fil thumb_w = 128 * ratio; } - *image = gib_imlib_create_cropped_scaled_image(im_temp, 0, 0, w, h, thumb_w, thumb_h, 1); + *image = gib_imlib_create_cropped_scaled_image(im_temp, 0, 0, w, h, + thumb_w, thumb_h, 1); if (!stat(file->filename, &sb)) { char c_mtime[256]; sprintf(c_mtime, "%d", sb.st_mtime); - feh_png_write_png(*image, thumb_file, "Thumb::URI", uri, "Thumb::MTime", c_mtime); + feh_png_write_png(*image, thumb_file, "Thumb::URI", uri, + "Thumb::MTime", c_mtime); } gib_imlib_free_image_and_decache(im_temp); |