annotate lisp/thumbs.el @ 62804:277990375bf4

*** empty log message ***
author Lute Kamstra <lute@gnu.org>
date Fri, 27 May 2005 11:51:14 +0000
parents 6dd34b690fa9
children 58c1e48ab7bc 5b029ff3b08d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 ;;; thumbs.el --- Thumbnails previewer for images files
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
2
60920
242e5edee3ce * complete.el, thumbs.el: Replace `legal' with `valid'.
Werner LEMBERG <wl@gnu.org>
parents: 59996
diff changeset
3 ;; Copyright 2004, 2005 Free Software Foundation, Inc
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
4
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Author: Jean-Philippe Theberge <jphiltheberge@videotron.ca>
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 ;; Keywords: Multimedia
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; any later version.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57831
diff changeset
24 ;;
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
25 ;; Thanks: Alex Schroeder <alex@gnu.org> for maintaining the package at some time
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
26 ;; The peoples at #emacs@freenode.net for numerous help
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
27 ;; RMS for emacs and the GNU project.
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
28 ;;
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;;; Commentary:
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;; This package create two new mode: thumbs-mode and
57831
5e17e1a1eacf (group thumbs): Add :version keyword.
John Paul Wallington <jpw@pobox.com>
parents: 56934
diff changeset
33 ;; thumbs-view-image-mode. It is used for images browsing and viewing
5e17e1a1eacf (group thumbs): Add :version keyword.
John Paul Wallington <jpw@pobox.com>
parents: 56934
diff changeset
34 ;; from within Emacs. Minimal image manipulation functions are also
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;; available via external programs.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;; The 'convert' program from 'ImageMagick'
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;; [URL:http://www.imagemagick.org/] is required.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;; CHANGELOG
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 ;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 ;; This is version 2.0
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 ;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 ;; USAGE
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 ;;
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 ;; Type M-x thumbs RET DIR RET to view the directory DIR in Thumbs mode.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 ;; That should be a directory containing image files.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 ;; from dired, C-t m enter in thumbs-mode with all marked files
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 ;; C-t a enter in thumbs-mode with all files in current-directory
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 ;; In thumbs-mode, pressing <return> on a image will bring you in image view mode
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 ;; for that image. C-h m will give you a list of available keybinding.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ;;; History:
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
55 ;;
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 ;;; Code:
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 (require 'dired)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 ;; CUSTOMIZATIONS
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (defgroup thumbs nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 "Thumbnails previewer."
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 57831
diff changeset
65 :version "22.1"
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 :group 'multimedia)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (defcustom thumbs-thumbsdir
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (expand-file-name "~/.emacs-thumbs")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 "*Directory to store thumbnails."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 :type 'directory
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 (defcustom thumbs-geometry "100x100"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 "*Size of thumbnails."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 (defcustom thumbs-per-line 5
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80 "*Number of thumbnails per line to show in directory."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 (defcustom thumbs-thumbsdir-max-size 50000000
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 "Max size for thumbnails directory.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
86 When it reachs that size (in bytes), a warning is sent."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 (defcustom thumbs-conversion-program
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 (if (equal 'windows-nt system-type)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 "convert.exe"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (or (executable-find "convert")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 "/usr/X11R6/bin/convert"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95 "*Name of conversion program for thumbnails generation.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 It must be 'convert'."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (defcustom thumbs-setroot-command
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 "xloadimage -onroot -fullscreen *"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 "Command to set the root window."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106 (defcustom thumbs-relief 5
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 "*Size of button-like border around thumbnails."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 (defcustom thumbs-margin 2
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112 "*Size of the margin around thumbnails.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 This is where you see the cursor."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 (defcustom thumbs-thumbsdir-auto-clean t
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 "If set, delete older file in the thumbnails directory.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 Deletion is done at load time when the directory size is bigger
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120 than 'thumbs-thumbsdir-max-size'."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 :type 'boolean
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
123
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
124 (defcustom thumbs-image-resizing-step 10
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
125 "Step by wich to resize image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
126 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
127 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
128
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
129 (defcustom thumbs-temp-dir
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130 "/tmp/"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 "Temporary directory to use.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
132 Leaving it to default '/tmp/' can let another user
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 see some of your images."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 :type 'directory
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137 (defcustom thumbs-temp-prefix "emacsthumbs"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 "Prefix to add to temp files."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 :type 'string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 :group 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142 ;; Initialize some variable, for later use.
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
143 (defvar thumbs-temp-file
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
144 (concat thumbs-temp-dir thumbs-temp-prefix)
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
145 "Temporary filename for images.")
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
146
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
147 (defvar thumbs-current-tmp-filename
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
148 nil
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
149 "Temporary filename of current image.")
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
150 (defvar thumbs-current-image-filename
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
151 nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
152 "Filename of current image.")
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
153 (defvar thumbs-current-image-size
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
154 nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
155 "Size of current image.")
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
156 (defvar thumbs-image-num
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
157 nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
158 "Number of current image.")
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
159 (defvar thumbs-current-dir
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
160 nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
161 "Current directory.")
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
162 (defvar thumbs-markedL
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
163 nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
164 "List of marked files.")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
165
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
166 ;; Make sure auto-image-file-mode is ON.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
167 (auto-image-file-mode t)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
168
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
169 ;; Create the thumbs directory if it does not exists.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
170 (setq thumbs-thumbsdir (expand-file-name thumbs-thumbsdir))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
171
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
172 (when (not (file-directory-p thumbs-thumbsdir))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
173 (progn
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
174 (make-directory thumbs-thumbsdir)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
175 (message "Creating thumbnails directory")))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
176
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
177 (defvar thumbs-gensym-counter 0)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
178
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
179 (defun thumbs-gensym (&optional arg)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
180 "Generate a new uninterned symbol.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
181 The name is made by appending a number to PREFIX, default \"Thumbs\"."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
182 (let ((prefix (if (stringp arg) arg "Thumbs"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
183 (num (if (integerp arg) arg
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
184 (prog1
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
185 thumbs-gensym-counter
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
186 (setq thumbs-gensym-counter (1+ thumbs-gensym-counter))))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
187 (make-symbol (format "%s%d" prefix num))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
188
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
189 (defun thumbs-cleanup-thumbsdir ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
190 "Clean the thumbnails directory.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
191 If the total size of all files in `thumbs-thumbsdir' is bigger than
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
192 `thumbs-thumbsdir-max-size', files are deleted until the max size is
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
193 reached."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
194 (let* ((filesL
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
195 (sort
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
196 (mapcar
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
197 (lambda (f)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
198 (let ((fattribsL (file-attributes f)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
199 `(,(nth 4 fattribsL) ,(nth 7 fattribsL) ,f)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
200 (directory-files thumbs-thumbsdir t (image-file-name-regexp)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
201 '(lambda (l1 l2) (time-less-p (car l1)(car l2)))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
202 (dirsize (apply '+ (mapcar (lambda (x) (cadr x)) filesL))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
203 (while (> dirsize thumbs-thumbsdir-max-size)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
204 (progn
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
205 (message "Deleting file %s" (cadr (cdar filesL))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
206 (delete-file (cadr (cdar filesL)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
207 (setq dirsize (- dirsize (car (cdar filesL))))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
208 (setq filesL (cdr filesL)))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
209
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
210 ;; Check the thumbsnail directory size and clean it if necessary.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
211 (when thumbs-thumbsdir-auto-clean
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
212 (thumbs-cleanup-thumbsdir))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
213
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
214 (defun thumbs-call-convert (filein fileout action
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
215 &optional arg output-format action-prefix)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
216 "Call the convert program.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
217 FILEIN is the input file,
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
218 FILEOUT is the output file,
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
219 ACTION is the command to send to convert.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
220 Optional arguments are:
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
221 ARG any arguments to the ACTION command,
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
222 OUTPUT-FORMAT is the file format to output (default is jpeg),
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
223 ACTION-PREFIX is the symbol to place before the ACTION command
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
224 (defaults to '-' but can sometimes be '+')."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
225 (let ((command (format "%s %s%s %s \"%s\" \"%s:%s\""
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
226 thumbs-conversion-program
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
227 (or action-prefix "-")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
228 action
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
229 (or arg "")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
230 filein
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
231 (or output-format "jpeg")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
232 fileout)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
233 (shell-command command)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
234
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
235 (defun thumbs-increment-image-size-element (n d)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
236 "Increment number N by D percent."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
237 (round (+ n (/ (* d n) 100))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
238
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
239 (defun thumbs-decrement-image-size-element (n d)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
240 "Decrement number N by D percent."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
241 (round (- n (/ (* d n) 100))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
242
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
243 (defun thumbs-increment-image-size (s)
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
244 "Increment S (a cons of width x height)."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
245 (cons
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
246 (thumbs-increment-image-size-element (car s)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
247 thumbs-image-resizing-step)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
248 (thumbs-increment-image-size-element (cdr s)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
249 thumbs-image-resizing-step)))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
250
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251 (defun thumbs-decrement-image-size (s)
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
252 "Decrement S (a cons of width x height)."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253 (cons
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
254 (thumbs-decrement-image-size-element (car s)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
255 thumbs-image-resizing-step)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 (thumbs-decrement-image-size-element (cdr s)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 thumbs-image-resizing-step)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 (defun thumbs-resize-image (&optional increment size)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260 "Resize image in current buffer.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 if INCREMENT is set, make the image bigger, else smaller.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 Or, alternatively, a SIZE may be specified."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264 ;; cleaning of old temp file
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
265 (condition-case nil
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 (apply 'delete-file
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 (directory-files
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268 thumbs-temp-dir t
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
269 thumbs-temp-prefix))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
270 (error nil))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
271 (let ((buffer-read-only nil)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
272 (x (if size
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
273 size
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
274 (if increment
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
275 (thumbs-increment-image-size
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
276 thumbs-current-image-size)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
277 (thumbs-decrement-image-size
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
278 thumbs-current-image-size))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
279 (tmp (format "%s%s.jpg" thumbs-temp-file (thumbs-gensym))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
280 (erase-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 (thumbs-call-convert thumbs-current-image-filename
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282 tmp "sample"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 (concat (number-to-string (car x)) "x"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284 (number-to-string (cdr x))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 (thumbs-insert-image tmp 'jpeg 0)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 (setq thumbs-current-tmp-filename tmp)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
288 (defun thumbs-resize-interactive (width height)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
289 "Resize Image interactively to specified WIDTH and HEIGHT."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
290 (interactive "nWidth: \nnHeight: ")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
291 (thumbs-resize-image nil (cons width height)))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
292
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
293 (defun thumbs-resize-image-size-down ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
294 "Resize image (smaller)."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
295 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
296 (thumbs-resize-image nil))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
298 (defun thumbs-resize-image-size-up ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 "Resize image (bigger)."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301 (thumbs-resize-image t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
302
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
303 (defun thumbs-thumbname (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
304 "Return a thumbnail name for the image IMG."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
305 (concat thumbs-thumbsdir "/"
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
306 (subst-char-in-string
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
307 ?\ ?\_
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
308 (apply
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
309 'concat
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
310 (split-string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
311 (expand-file-name img) "/")))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
312
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
313 (defun thumbs-make-thumb (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
314 "Create the thumbnail for IMG."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
315 (let* ((fn (expand-file-name img))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
316 (tn (thumbs-thumbname img)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
317 (if (or (not (file-exists-p tn))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
318 ;; This is not the right fix, but I don't understand
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
319 ;; the external program or why it produces a geometry
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
320 ;; unequal to the one requested -- rms.
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
321 ;;; (not (equal (thumbs-file-size tn) thumbs-geometry))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
322 )
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
323 (thumbs-call-convert fn tn "sample" thumbs-geometry))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
324 tn))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
325
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
326 (defun thumbs-image-type (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
327 "Return image type from filename IMG."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
328 (cond ((string-match ".*\\.jpe?g\\'" img) 'jpeg)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
329 ((string-match ".*\\.xpm\\'" img) 'xpm)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
330 ((string-match ".*\\.xbm\\'" img) 'xbm)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
331 ((string-match ".*\\.gif\\'" img) 'gif)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
332 ((string-match ".*\\.bmp\\'" img) 'bmp)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
333 ((string-match ".*\\.png\\'" img) 'png)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
334 ((string-match ".*\\.tiff?\\'" img) 'tiff)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
335
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
336 (defun thumbs-file-size (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
337 (let ((i (image-size (find-image `((:type ,(thumbs-image-type img) :file ,img))) t)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
338 (concat (number-to-string (round (car i)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
339 "x"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
340 (number-to-string (round (cdr i))))))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
341
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
342 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
343 (defun thumbs-find-thumb (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
344 "Display the thumbnail for IMG."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
345 (interactive "f")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
346 (find-file (thumbs-make-thumb img)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
347
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
348 (defun thumbs-insert-image (img type relief &optional marked)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
349 "Insert image IMG at point.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
350 TYPE and RELIEF will be used in constructing the image; see `image'
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
351 in the emacs-lisp manual for further documentation.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
352 If MARKED is non-nil, the image is marked."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
353 (let ((i `(image :type ,type
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
354 :file ,img
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
355 :relief ,relief
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
356 :conversion ,(if marked 'disabled)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
357 :margin ,thumbs-margin)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
358 (insert-image i)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
359 (setq thumbs-current-image-size
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
360 (image-size i t))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
361
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
362 (defun thumbs-insert-thumb (img &optional marked)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
363 "Insert the thumbnail for IMG at point.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
364 If MARKED is non-nil, the image is marked."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
365 (thumbs-insert-image
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
366 (thumbs-make-thumb img) 'jpeg thumbs-relief marked)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
367 (put-text-property (1- (point)) (point)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
368 'thumb-image-file img))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
369
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
370 (defun thumbs-do-thumbs-insertion (L)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
371 "Insert all thumbs in list L."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
372 (let ((i 0))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
373 (dolist (img L)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
374 (thumbs-insert-thumb img
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
375 (member img thumbs-markedL))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
376 (when (= 0 (mod (setq i (1+ i)) thumbs-per-line))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
377 (newline)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
378 (unless (bobp) (newline))))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
379
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
380 (defun thumbs-show-thumbs-list (L &optional buffer-name same-window)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
381 (when (not (display-images-p))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
382 (error "Images are not supported in this Emacs session"))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
383 (funcall (if same-window 'switch-to-buffer 'pop-to-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
384 (or buffer-name "*THUMB-View*"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
385 (let ((inhibit-read-only t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
386 (erase-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
387 (thumbs-mode)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
388 (thumbs-do-thumbs-insertion L)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
389 (goto-char (point-min))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
390 (setq thumbs-current-dir default-directory)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
391 (make-variable-buffer-local 'thumbs-current-dir)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
392
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
393 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
394 (defun thumbs-show-all-from-dir (dir &optional reg same-window)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
395 "Make a preview buffer for all images in DIR.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
396 Optional argument REG to select file matching a regexp,
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
397 and SAME-WINDOW to show thumbs in the same window."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
398 (interactive "DDir: ")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
399 (thumbs-show-thumbs-list
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
400 (directory-files dir t
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
401 (or reg (image-file-name-regexp)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
402 (concat "*Thumbs: " dir) same-window))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
403
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
404 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
405 (defun thumbs-dired-show-marked ()
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
406 "In dired, make a thumbs buffer with all marked files."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
407 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
408 (thumbs-show-thumbs-list (dired-get-marked-files) nil t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
409
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
410 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
411 (defun thumbs-dired-show-all ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
412 "In dired, make a thumbs buffer with all files in current directory."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
413 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
414 (thumbs-show-all-from-dir default-directory nil t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
415
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
416 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
417 (defalias 'thumbs 'thumbs-show-all-from-dir)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
418
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
419 (defun thumbs-find-image (img &optional num otherwin)
57831
5e17e1a1eacf (group thumbs): Add :version keyword.
John Paul Wallington <jpw@pobox.com>
parents: 56934
diff changeset
420 (funcall
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
421 (if otherwin 'switch-to-buffer-other-window 'switch-to-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
422 (concat "*Image: " (file-name-nondirectory img) " - "
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
423 (number-to-string (or num 0)) "*"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
424 (thumbs-view-image-mode)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
425 (let ((inhibit-read-only t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
426 (setq thumbs-current-image-filename img
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
427 thumbs-current-tmp-filename nil
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
428 thumbs-image-num (or num 0))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
429 (make-variable-buffer-local 'thumbs-current-image-filename)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
430 (make-variable-buffer-local 'thumbs-current-tmp-filename)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
431 (make-variable-buffer-local 'thumbs-current-image-size)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
432 (make-variable-buffer-local 'thumbs-image-num)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
433 (delete-region (point-min)(point-max))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
434 (thumbs-insert-image img (thumbs-image-type img) 0)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
435
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
436 (defun thumbs-find-image-at-point (&optional img otherwin)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
437 "Display image IMG for thumbnail at point.
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
438 Use another window if OTHERWIN is t."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
439 (interactive)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
440 (let* ((i (or img (thumbs-current-image))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
441 (thumbs-find-image i (point) otherwin)))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
442
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
443 (defun thumbs-find-image-at-point-other-window ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
444 "Display image for thumbnail at point in the preview buffer.
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
445 Open another window."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
446 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
447 (thumbs-find-image-at-point nil t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
448
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
449 (defun thumbs-mouse-find-image (event)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
450 "Display image for thumbnail at mouse click EVENT."
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
451 (interactive "e")
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
452 (mouse-set-point event)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
453 (thumbs-find-image-at-point))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
454
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
455 (defun thumbs-call-setroot-command (img)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
456 "Call the setroot program for IMG."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
457 (run-hooks 'thumbs-before-setroot-hook)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
458 (shell-command (replace-regexp-in-string
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
459 "\\*"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
460 (shell-quote-argument (expand-file-name img))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
461 thumbs-setroot-command nil t))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
462 (run-hooks 'thumbs-after-setroot-hook))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
463
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
464 (defun thumbs-set-image-at-point-to-root-window ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
465 "Set the image at point as the desktop wallpaper."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
466 (interactive)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
467 (thumbs-call-setroot-command
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
468 (thumbs-current-image)))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
469
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
470 (defun thumbs-set-root ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
471 "Set the current image as root."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
472 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
473 (thumbs-call-setroot-command
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
474 (or thumbs-current-tmp-filename
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
475 thumbs-current-image-filename)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
476
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
477 (defun thumbs-file-alist ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
478 "Make an alist of elements (POS . FILENAME) for all images in thumb buffer."
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
479 (save-excursion
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
480 (let (list)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
481 (goto-char (point-min))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
482 (while (not (eobp))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
483 (if (thumbs-current-image)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
484 (push (cons (point-marker)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
485 (thumbs-current-image))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
486 list))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
487 (forward-char 1))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
488 list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
489
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
490 (defun thumbs-file-list ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
491 "Make a list of file names for all images in thumb buffer."
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
492 (save-excursion
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
493 (let (list)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
494 (goto-char (point-min))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
495 (while (not (eobp))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
496 (if (thumbs-current-image)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
497 (push (thumbs-current-image) list))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
498 (forward-char 1))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
499 (nreverse list))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
500
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
501 (defun thumbs-delete-images ()
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
502 "Delete the image at point (and its thumbnail) (or marked files if any)."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
503 (interactive)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
504 (let ((files (or thumbs-markedL (list (thumbs-current-image)))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
505 (if (yes-or-no-p (format "Really delete %d files? " (length files)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
506 (let ((thumbs-fileL (thumbs-file-alist))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
507 (inhibit-read-only t))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
508 (dolist (x files)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
509 (let (failure)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
510 (condition-case ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
511 (progn
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
512 (delete-file x)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
513 (delete-file (thumbs-thumbname x)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
514 (file-error (setq failure t)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
515 (unless failure
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
516 (when (rassoc x thumbs-fileL)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
517 (goto-char (car (rassoc x thumbs-fileL)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
518 (delete-region (point) (1+ (point))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
519 (setq thumbs-markedL
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
520 (delq x thumbs-markedL)))))))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
521
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
522 (defun thumbs-rename-images (newfile)
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
523 "Rename the image at point (and its thumbnail) (or marked files if any)."
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
524 (interactive "FRename to file or directory: ")
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
525 (let ((files (or thumbs-markedL (list (thumbs-current-image))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
526 failures)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
527 (if (and (not (file-directory-p newfile))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
528 thumbs-markedL)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
529 (if (file-exists-p newfile)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
530 (error "Renaming marked files to file name `%s'" newfile)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
531 (make-directory newfile t)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
532 (if (yes-or-no-p (format "Really rename %d files? " (length files)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
533 (let ((thumbs-fileL (thumbs-file-alist))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
534 (inhibit-read-only t))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
535 (dolist (file files)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
536 (let (failure)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
537 (condition-case ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
538 (if (file-directory-p newfile)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
539 (rename-file file
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
540 (expand-file-name
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
541 (file-name-nondirectory file)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
542 newfile))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
543 (rename-file file newfile))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
544 (file-error (setq failure t)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
545 (push file failures)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
546 (unless failure
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
547 (when (rassoc file thumbs-fileL)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
548 (goto-char (car (rassoc file thumbs-fileL)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
549 (delete-region (point) (1+ (point))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
550 (setq thumbs-markedL
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
551 (delq file thumbs-markedL)))))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
552 (if failures
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
553 (display-warning 'file-error
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
554 (format "Rename failures for %s into %s"
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
555 failures newfile)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
556 :error))))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
557
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
558 (defun thumbs-kill-buffer ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
559 "Kill the current buffer."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
560 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
561 (let ((buffer (current-buffer)))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
562 (condition-case nil
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
563 (delete-window (selected-window))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
564 (error nil))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
565 (kill-buffer buffer)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
566
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
567 (defun thumbs-show-image-num (num)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
568 "Show the image with number NUM."
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
569 (let ((image-buffer (get-buffer-create "*Image*")))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
570 (let ((i (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
571 (with-current-buffer image-buffer
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
572 (thumbs-insert-image i (thumbs-image-type i) 0))
55213
a911edb6dadf (thumbs-delete-images): Fix formatting of prompt.
John Paul Wallington <jpw@pobox.com>
parents: 55206
diff changeset
573 (setq thumbs-image-num num
a911edb6dadf (thumbs-delete-images): Fix formatting of prompt.
John Paul Wallington <jpw@pobox.com>
parents: 55206
diff changeset
574 thumbs-current-image-filename i))))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
575
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
576 (defun thumbs-next-image ()
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
577 "Show the next image."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
578 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
579 (let* ((i (1+ thumbs-image-num))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
580 (list (thumbs-file-alist))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
581 (l (caar list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
582 (while (and (/= i thumbs-image-num) (not (assoc i list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
583 (setq i (if (>= i l) 1 (1+ i))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
584 (thumbs-show-image-num i)))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
585
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
586 (defun thumbs-previous-image ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
587 "Show the previous image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
588 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
589 (let* ((i (- thumbs-image-num 1))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
590 (list (thumbs-file-alist))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
591 (l (caar list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
592 (while (and (/= i thumbs-image-num) (not (assoc i list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
593 (setq i (if (<= i 1) l (1- i))))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
594 (thumbs-show-image-num i)))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
595
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
596 (defun thumbs-redraw-buffer ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
597 "Redraw the current thumbs buffer."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
598 (let ((p (point))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
599 (inhibit-read-only t)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
600 (files (thumbs-file-list)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
601 (erase-buffer)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
602 (thumbs-do-thumbs-insertion files)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
603 (goto-char p)))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
604
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
605 (defun thumbs-mark ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
606 "Mark the image at point."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
607 (interactive)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
608 (let ((elt (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
609 (unless elt
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
610 (error "No image here"))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
611 (push elt thumbs-markedL)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
612 (let ((inhibit-read-only t))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
613 (delete-char 1)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
614 (thumbs-insert-thumb elt t)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
615 (when (eolp) (forward-char)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
616
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
617 (defun thumbs-unmark ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
618 "Unmark the image at point."
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
619 (interactive)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
620 (let ((elt (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
621 (unless elt
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
622 (error "No image here"))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
623 (setq thumbs-markedL (delete elt thumbs-markedL))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
624 (let ((inhibit-read-only t))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
625 (delete-char 1)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
626 (thumbs-insert-thumb elt nil)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
627 (when (eolp) (forward-char)))
55206
c2c29cafaa74 (time-less-p): Remove.
Juanma Barranquero <lekktu@gmail.com>
parents: 54193
diff changeset
628
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
629 ;; Image modification routines
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
630
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
631 (defun thumbs-modify-image (action &optional arg)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
632 "Call convert to do ACTION on image with argument ARG.
60920
242e5edee3ce * complete.el, thumbs.el: Replace `legal' with `valid'.
Werner LEMBERG <wl@gnu.org>
parents: 59996
diff changeset
633 ACTION and ARG should be a valid convert command."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
634 (interactive "sAction: \nsValue: ")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
635 ;; cleaning of old temp file
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
636 (mapc 'delete-file
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
637 (directory-files
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
638 thumbs-temp-dir
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
639 t
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
640 thumbs-temp-prefix))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 (let ((buffer-read-only nil)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
642 (tmp (format "%s%s.jpg" thumbs-temp-file (thumbs-gensym))))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
643 (erase-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
644 (thumbs-call-convert thumbs-current-image-filename
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
645 tmp
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646 action
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
647 (or arg ""))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
648 (thumbs-insert-image tmp 'jpeg 0)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
649 (setq thumbs-current-tmp-filename tmp)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
650
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
651 (defun thumbs-emboss-image (emboss)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
652 "Emboss the image with value EMBOSS."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
653 (interactive "nEmboss value: ")
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
654 (if (or (< emboss 3) (> emboss 31) (zerop (% emboss 2)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
655 (error "Arg must be an odd number between 3 and 31"))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
656 (thumbs-modify-image "emboss" (number-to-string emboss)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
657
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
658 (defun thumbs-monochrome-image ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
659 "Turn the image to monochrome."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
660 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
661 (thumbs-modify-image "monochrome"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
662
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
663 (defun thumbs-negate-image ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
664 "Negate the image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
665 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 (thumbs-modify-image "negate"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
668 (defun thumbs-rotate-left ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
669 "Rotate the image 90 degrees counter-clockwise."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
671 (thumbs-modify-image "rotate" "270"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
672
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 (defun thumbs-rotate-right ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 "Rotate the image 90 degrees clockwise."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676 (thumbs-modify-image "rotate" "90"))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
678 (defun thumbs-current-image ()
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
679 "Return the name of the image file name at point."
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
680 (get-text-property (point) 'thumb-image-file))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
681
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682 (defun thumbs-forward-char ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 "Move forward one image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
684 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 (forward-char)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
686 (while (and (not (eobp)) (not (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
687 (forward-char))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
688 (thumbs-show-name))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
689
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
690 (defun thumbs-backward-char ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
691 "Move backward one image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
692 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
693 (forward-char -1)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
694 (while (and (not (bobp)) (not (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
695 (forward-char -1))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
696 (thumbs-show-name))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
697
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
698 (defun thumbs-forward-line ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699 "Move down one line."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 (forward-line 1)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
702 (thumbs-show-name))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704 (defun thumbs-backward-line ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
705 "Move up one line."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
706 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
707 (forward-line -1)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
708 (thumbs-show-name))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
709
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
710 (defun thumbs-show-name ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
711 "Show the name of the current file."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
712 (interactive)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
713 (let ((f (thumbs-current-image)))
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
714 (and f (message "%s [%s]" f (thumbs-file-size f)))))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
715
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
716 (defun thumbs-save-current-image ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
717 "Save the current image."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
718 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
719 (let ((f (or thumbs-current-tmp-filename
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
720 thumbs-current-image-filename))
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
721 (sa (read-from-minibuffer "Save image file as: "
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
722 thumbs-current-image-filename)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
723 (copy-file f sa)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
724
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
725 (defun thumbs-dired ()
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
726 "Use `dired' on the current thumbs directory."
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
727 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
728 (dired thumbs-current-dir))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
729
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
730 ;; thumbs-mode
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
731
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
732 (defvar thumbs-mode-map
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
733 (let ((map (make-sparse-keymap)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
734 (define-key map [return] 'thumbs-find-image-at-point)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
735 (define-key map [mouse-2] 'thumbs-mouse-find-image)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
736 (define-key map [(meta return)] 'thumbs-find-image-at-point-other-window)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
737 (define-key map [(control return)] 'thumbs-set-image-at-point-to-root-window)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
738 (define-key map [delete] 'thumbs-delete-images)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
739 (define-key map [right] 'thumbs-forward-char)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 (define-key map [left] 'thumbs-backward-char)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741 (define-key map [up] 'thumbs-backward-line)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
742 (define-key map [down] 'thumbs-forward-line)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
743 (define-key map "d" 'thumbs-dired)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
744 (define-key map "m" 'thumbs-mark)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
745 (define-key map "u" 'thumbs-unmark)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
746 (define-key map "R" 'thumbs-rename-images)
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
747 (define-key map "x" 'thumbs-delete-images)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
748 (define-key map "s" 'thumbs-show-name)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
749 (define-key map "q" 'thumbs-kill-buffer)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
750 map)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
751 "Keymap for `thumbs-mode'.")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
752
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
753 (put 'thumbs-mode 'mode-class 'special)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
754 (define-derived-mode thumbs-mode
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
755 fundamental-mode "thumbs"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
756 "Preview images in a thumbnails buffer"
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
757 (make-variable-buffer-local 'thumbs-markedL)
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
758 (setq buffer-read-only t)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
759 (setq thumbs-markedL nil))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
760
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
761 (defvar thumbs-view-image-mode-map
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
762 (let ((map (make-sparse-keymap)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
763 (define-key map [prior] 'thumbs-previous-image)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
764 (define-key map [next] 'thumbs-next-image)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
765 (define-key map "-" 'thumbs-resize-image-size-down)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
766 (define-key map "+" 'thumbs-resize-image-size-up)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
767 (define-key map "<" 'thumbs-rotate-left)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
768 (define-key map ">" 'thumbs-rotate-right)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
769 (define-key map "e" 'thumbs-emboss-image)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
770 (define-key map "r" 'thumbs-resize-interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
771 (define-key map "s" 'thumbs-save-current-image)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
772 (define-key map "q" 'thumbs-kill-buffer)
56934
ff141f26a0cb (thumbs-view-image-mode-map): Fix `thumbs-set-root' command name typo.
John Paul Wallington <jpw@pobox.com>
parents: 55827
diff changeset
773 (define-key map "w" 'thumbs-set-root)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
774 map)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
775 "Keymap for `thumbs-view-image-mode'.")
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
776
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
777 ;; thumbs-view-image-mode
55827
c5c73c8c2b3e Don't include cl. Don't bother with old Emacs versions.
Richard M. Stallman <rms@gnu.org>
parents: 55221
diff changeset
778 (put 'thumbs-view-image-mode 'mode-class 'special)
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
779 (define-derived-mode thumbs-view-image-mode
56934
ff141f26a0cb (thumbs-view-image-mode-map): Fix `thumbs-set-root' command name typo.
John Paul Wallington <jpw@pobox.com>
parents: 55827
diff changeset
780 fundamental-mode "image-view-mode"
ff141f26a0cb (thumbs-view-image-mode-map): Fix `thumbs-set-root' command name typo.
John Paul Wallington <jpw@pobox.com>
parents: 55827
diff changeset
781 (setq buffer-read-only t))
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
782
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
783 ;;;###autoload
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
784 (defun thumbs-dired-setroot ()
62692
6dd34b690fa9 (thumbs-thumbsdir-max-size, thumbs-temp-file, thumbs-cleanup-thumbsdir,
Juanma Barranquero <lekktu@gmail.com>
parents: 60920
diff changeset
785 "In dired, call the setroot program on the image at point."
54186
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
786 (interactive)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
787 (thumbs-call-setroot-command (dired-get-filename)))
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
788
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
789 ;; Modif to dired mode map
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
790 (define-key dired-mode-map "\C-ta" 'thumbs-dired-show-all)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
791 (define-key dired-mode-map "\C-tm" 'thumbs-dired-show-marked)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
792 (define-key dired-mode-map "\C-tw" 'thumbs-dired-setroot)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
793
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
794 (provide 'thumbs)
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
795
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
796 ;;; thumbs.el ends here
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
797
5d76d17025c5 New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
798
54193
318542a275c4 Resolve CVS conflicts
Miles Bader <miles@gnu.org>
parents: 54186
diff changeset
799 ;;; arch-tag: f9ac1ef8-83fc-42c0-8069-1fae43fd2e5c