summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/options.c825
-rw-r--r--src/thumbnail.c144
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);