[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/scanner 9665335 10/56: add a menu and configuration fun
From: |
Stefan Monnier |
Subject: |
[elpa] externals/scanner 9665335 10/56: add a menu and configuration functions |
Date: |
Fri, 10 Apr 2020 13:55:59 -0400 (EDT) |
branch: externals/scanner
commit 96653355288b20cf5f8eceb21ad10a453a5b5889
Author: Raffael Stocker <address@hidden>
Commit: Raffael Stocker <address@hidden>
add a menu and configuration functions
---
scanner.el | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 63 insertions(+)
diff --git a/scanner.el b/scanner.el
index 5fa1d96..f570155 100644
--- a/scanner.el
+++ b/scanner.el
@@ -136,6 +136,38 @@ If nil, auto-detection will be attempted."
:type '(restricted-sexp :match-alternatives
(stringp 'nil)))
+(defvar scanner-menu
+ (let ((map (make-sparse-keymap)))
+ (define-key map [languages]
+ '(menu-item "Select languages" scanner-select-languages
+ :key-sequence nil
+ :help "Select languages for OCR."))
+ (define-key map [papersize]
+ '(menu-item "Select paper size" scanner-select-papersize
+ :key-sequence nil
+ :help "Select a paper size for document scanning."))
+ (define-key map [img-res]
+ '(menu-item "Set image resolution" scanner-set-image-resolution
+ :key-sequence nil
+ :help "Set the resolution for image scanning."))
+ (define-key map [doc-res]
+ '(menu-item "Set document resolution" scanner-set-document-resolution
+ :key-sequence nil
+ :help "Set the resolution for document scanning."))
+ (define-key map [seperator]
+ '(menu-item "--"))
+ (define-key map [image]
+ '(menu-item "Scan an image" scanner-scan-image
+ :key-sequence nil))
+ (define-key map [document]
+ '(menu-item "Scan a document" scanner-scan-document
+ :key-sequence nil))
+ map)
+ "The scanner menu map.")
+
+(define-key-after menu-bar-tools-menu [scanner]
+ (list 'menu-item "Scanner" scanner-menu))
+
(defvar scanner--detected-devices
nil
"List of devices detected by SANE.
@@ -200,6 +232,37 @@ name, the device type, and the vendor and model names."
(--filter (eql 3 (length it))
(mapcar (lambda (x) (split-string x "|")) scanners)))))
+(defun scanner-select-papersize ()
+ "Select the papersize for document scanning."
+ (interactive)
+ (let ((choices (delq nil (mapcar (lambda (x) (and (keywordp x)
+ (substring (symbol-name x) 1)))
+ scanner-paper-sizes))))
+ (setq scanner-doc-papersize
+ (intern (concat ":" (completing-read "Papersize: " choices nil t))))))
+
+(defun scanner-select-languages ()
+ "Select languages for optical character recognition."
+ (interactive)
+ (let ((langs (cdr (process-lines scanner-tesseract-program
+ "--list-langs"))))
+ (setq scanner-tesseract-languages
+ (completing-read-multiple "Languages: " langs nil t))))
+
+(defun scanner--set-resolution (type res)
+ "Set the resolution for scanning TYPE :image or :doc to RES."
+ (plist-put scanner-resolution type res))
+
+(defun scanner-set-image-resolution ()
+ "Set the resolution for scanning images."
+ (interactive)
+ (scanner--set-resolution :image (read-number "Image scan resolution: " 600)))
+
+(defun scanner-set-document-resolution ()
+ "Set the resolution for scanning documents."
+ (interactive)
+ (scanner--set-resolution :doc (read-number "Document scan resolution: "
300)))
+
(defun scanner-select-device (&optional detect)
"Select a scanning device, maybe running auto-detection.
If DETECT is non-nil or a prefix argument is supplied, force
- [elpa] branch externals/scanner created (now 72ecf43), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 704f055 04/56: add compile dependencies to check target, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 027658b 06/56: ignore image files, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 4596ed9 09/56: add autoloads, minor refactoring, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 30b97d3 05/56: add implementation of image scanning and first test case, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 9665335 10/56: add a menu and configuration functions,
Stefan Monnier <=
- [elpa] externals/scanner d5be7b8 12/56: clean up resolution setters, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 1e60cd2 03/56: add test and check targets to Makefile, gitignore dep, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 5bc37ff 02/56: add more customizations and validations, arglist functions, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner c952d0d 15/56: rename -options to -switches, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner e5c74e6 11/56: implement multi-page scan modes, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner dbb0ee4 14/56: add commentary, correct docstrings, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 3e0398c 22/56: correct to eval-and-compile (scanner--device-specific-switches), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 5f06a4a 21/56: implement correct cleanup and error handling (scanner-scan-document), Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 536e998 16/56: move commands were they belong, Stefan Monnier, 2020/04/10
- [elpa] externals/scanner 31c8a49 08/56: add document scanning command and test cases, Stefan Monnier, 2020/04/10