summaryrefslogtreecommitdiff
path: root/lisp/strokes.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2004-03-27 11:33:37 +0000
committerEli Zaretskii <eliz@gnu.org>2004-03-27 11:33:37 +0000
commit88119483bc78da69117f40dac252fc590079b92e (patch)
tree96183c6fd4c37138f499a3614afa8381949c756f /lisp/strokes.el
parente6ceeac35af55fd7d0e76f88fee8dae8e8fcf2cc (diff)
downloademacs-88119483bc78da69117f40dac252fc590079b92e.tar.gz
(strokes-global-set-stroke-string): New function.
(strokes-list-strokes): Cope with strings, not just commands. Set foreground colour of image. (strokes-global-set-stroke): Doc fix.
Diffstat (limited to 'lisp/strokes.el')
-rw-r--r--lisp/strokes.el36
1 files changed, 30 insertions, 6 deletions
diff --git a/lisp/strokes.el b/lisp/strokes.el
index c6ad0c6d55a..cd3e82c4d3c 100644
--- a/lisp/strokes.el
+++ b/lisp/strokes.el
@@ -78,7 +78,7 @@
;; however, if you would probably just have the user enter in the
;; stroke interactively and then set the stroke to whatever he/she
-;; entered. The Lisp function to interactively read a stroke is
+;; entered. The Lisp function to interactively read a stroke is
;; `strokes-read-stroke'. This is especially helpful when you're
;; on a fast computer that can handle a 9x9 stroke grid.
@@ -435,7 +435,9 @@ or for window START-WINDOW if that is specified."
Operated just like `global-set-key', except for strokes.
COMMAND is a symbol naming an interactively-callable function. STROKE
is a list of sampled positions on the stroke grid as described in the
-documentation for the `strokes-define-stroke' function."
+documentation for the `strokes-define-stroke' function.
+
+See also `strokes-global-set-stroke-string'."
(interactive
(list
(and (or strokes-mode (strokes-mode t))
@@ -444,6 +446,22 @@ documentation for the `strokes-define-stroke' function."
(read-command "Command to map stroke to: ")))
(strokes-define-stroke strokes-global-map stroke command))
+(defun strokes-global-set-stroke-string (stroke string)
+ "Interactively give STROKE the global binding as STRING.
+Operated just like `global-set-key', except for strokes. STRING
+is a string to be inserted by the stroke. STROKE is a list of
+sampled positions on the stroke grid as described in the
+documentation for the `strokes-define-stroke' function.
+
+Compare `strokes-global-set-stroke'."
+ (interactive
+ (list
+ (and (or strokes-mode (strokes-mode t))
+ (strokes-read-complex-stroke
+ "Draw with mouse button 1 (or 2). End with button 3..."))
+ (read-string "String to map stroke to: ")))
+ (strokes-define-stroke strokes-global-map stroke string))
+
;;(defun global-unset-stroke (stroke); FINISH THIS DEFUN!
;; "delete all strokes matching STROKE from `strokes-global-map',
;; letting the user input
@@ -1319,7 +1337,9 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead."
"------- ------")
(loop for def in strokes-map do
(let ((stroke (car def))
- (command-name (symbol-name (cdr def))))
+ (command-name (if (symbolp (cdr def))
+ (symbol-name (cdr def))
+ (prin1-to-string (cdr def)))))
(strokes-xpm-for-stroke stroke " *strokes-xpm*")
(newline 2)
(insert-char ?\ 45)
@@ -1327,9 +1347,13 @@ If STROKES-MAP is not given, `strokes-global-map' will be used instead."
(insert command-name)
(beginning-of-line)
(forward-char 45)
- (insert-image (create-image (with-current-buffer " *strokes-xpm*"
- (buffer-string))
- 'xpm t)))
+ (insert-image
+ (create-image (with-current-buffer " *strokes-xpm*"
+ (buffer-string))
+ 'xpm t
+ :color-symbols
+ `(("foreground"
+ . ,(frame-parameter nil 'foreground-color))))))
finally do (kill-region (1+ (point)) (point-max)))
(view-buffer "*Strokes List*" nil)
(set (make-local-variable 'view-mode-map)