annotate lisp/obsolete/sun-curs.el @ 46205:6676ac71682b

Update mouse button info. Don't give the names of Emacs commands that the characters run. Clarify what SPC and DEL do. Clarify the description of the minibuffer. Wording change for completion. Explain Mouse-2 better.
author Richard M. Stallman <rms@gnu.org>
date Sun, 07 Jul 2002 11:31:31 +0000
parents 9a10bb9ac325
children 0d8b17d428b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
39022
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1 ;;; sun-curs.el --- cursor definitions for Sun windows
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
3 ;; Copyright (C) 1987 Free Software Foundation, Inc.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5 ;; Author: Jeff Peck <peck@sun.com>
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6 ;; Keywords: hardware
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
9
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
13 ;; any later version.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
14
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
19
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
24
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
26
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
27 ;;; Code:
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
29 ;;;
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30 ;;; Added some more cursors and moved the hot spots
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 ;;; Cursor defined by 16 pairs of 16-bit numbers
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 ;;;
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 ;;; 9-dec-86 Jeff Peck, Sun Microsystems Inc. <peck@sun.com>
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
34
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
35 (eval-when-compile (require 'cl))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
36 (require 'sun-fns)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
38 (eval-and-compile
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 (defvar sc::cursors nil "List of known cursors"))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
41 (defmacro defcursor (name x y string)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 (if (not (memq name sc::cursors))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43 (setq sc::cursors (cons name sc::cursors)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
44 (list 'defconst name (list 'vector x y string)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 ;;; push should be defined in common lisp, but if not use this:
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47 ;(defmacro push (v l)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 ; "The ITEM is evaluated and consed onto LIST, a list-valued atom"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 ; (list 'setq l (list 'cons v l)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51 ;;;
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52 ;;; The standard default cursor
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 ;;;
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
54 (defcursor sc:right-arrow 15 0
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
55 (concat '(0 1 0 3 0 7 0 15 0 31 0 63 0 127 0 15
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
56 0 27 0 25 0 48 0 48 0 96 0 96 0 192 0 192)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
57
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
58 ;;(sc:set-cursor sc:right-arrow)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
59
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
60 (defcursor sc:fat-left-arrow 0 8
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
61 (concat '(1 0 3 0 7 0 15 0 31 0 63 255 127 255 255 255
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
62 255 255 127 255 63 255 31 0 15 0 7 0 3 0 1 0)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
63
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
64 (defcursor sc:box 8 8
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
65 (concat '(15 252 8 4 8 4 8 4 8 4 8 4 8 4 8 4
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
66 8 132 8 4 8 4 8 4 8 4 8 4 8 4 15 252)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
67
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68 (defcursor sc:hourglass 8 8
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69 (concat "\177\376\100\002\040\014\032\070"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
70 "\017\360\007\340\003\300\001\200"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 "\001\200\002\100\005\040\010\020"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
72 "\021\210\043\304\107\342\177\376"))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
73
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
74 (defun sc:set-cursor (icon)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
75 "Change the Sun mouse cursor to ICON.
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
76 If ICON is nil, switch to the system default cursor,
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
77 Otherwise, ICON should be a vector or the name of a vector of [x y 32-chars]"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
78 (interactive "XIcon Name: ")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
79 (if (symbolp icon) (setq icon (symbol-value icon)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
80 (sun-change-cursor-icon icon))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
81
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82 (make-local-variable '*edit-icon*)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 (make-variable-buffer-local 'icon-edit)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84 (setq-default icon-edit nil)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 (or (assq 'icon-edit minor-mode-alist)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86 (push '(icon-edit " IconEdit") minor-mode-alist))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
87
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
88 (defun sc:edit-cursor (icon)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
89 "convert icon to rectangle, edit, and repack"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
90 (interactive "XIcon Name: ")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
91 (if (not icon) (setq icon (sc::menu-choose-cursor (selected-window) 1 1)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
92 (if (symbolp icon) (setq icon (symbol-value icon)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
93 (if (get-buffer "icon-edit") (kill-buffer "icon-edit"))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
94 (switch-to-buffer "icon-edit")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
95 (local-set-mouse '(text right) 'sc::menu-function)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
96 (local-set-mouse '(text left) '(sc::pic-ins-at-mouse 32))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
97 (local-set-mouse '(text middle) '(sc::pic-ins-at-mouse 64))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
98 (local-set-mouse '(text left middle) 'sc::hotspot)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
99 (sc::display-icon icon)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 (picture-mode)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101 (setq icon-edit t) ; for mode line display
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102 )
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 (defun sc::pic-ins-at-mouse (char)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105 "Picture insert char at mouse location"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106 (mouse-move-point *mouse-window* (min 15 *mouse-x*) (min 15 *mouse-y*))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
107 (move-to-column (1+ (min 15 (current-column))) t)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
108 (delete-char -1)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
109 (insert char)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
110 (sc::goto-hotspot))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
111
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
112 (defun sc::menu-function (window x y)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
113 (sun-menu-evaluate window (1+ x) y sc::menu))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
114
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
115 (defmenu sc::menu
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
116 ("Cursor Menu")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 ("Pack & Use" sc::pack-buffer-to-cursor)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 ("Pack to Icon" sc::pack-buffer-to-icon
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 (sc::menu-choose-cursor *menu-window* *menu-x* *menu-y*))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
120 ("New Icon" call-interactively 'sc::make-cursor)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
121 ("Edit Icon" sc:edit-cursor
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
122 (sc::menu-choose-cursor *menu-window* *menu-x* *menu-y*))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
123 ("Set Cursor" sc:set-cursor
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124 (sc::menu-choose-cursor *menu-window* *menu-x* *menu-y*))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
125 ("Reset Cursor" sc:set-cursor nil)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
126 ("Help" sc::edit-icon-help-menu)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127 ("Quit" sc::quit-edit)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128 )
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
129
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
130 (defun sc::quit-edit ()
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
131 (interactive)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132 (bury-buffer (current-buffer))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 (switch-to-buffer (other-buffer) 'no-record))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
134
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 (defun sc::make-cursor (symbol)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136 (interactive "SIcon Name: ")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 (eval (list 'defcursor symbol 0 0 ""))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
138 (sc::pack-buffer-to-icon (symbol-value symbol)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140 (defmenu sc::edit-icon-help-menu
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 ("Simple Icon Editor")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 ("Left => CLEAR")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
143 ("Middle => SET")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144 ("L & M => HOTSPOT")
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 ("Right => MENU"))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
147 (defun sc::edit-icon-help ()
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148 (message "Left=> CLEAR Middle=> SET Left+Middle=> HOTSPOT Right=> MENU"))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
149
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 (defun sc::pack-buffer-to-cursor ()
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 (sc::pack-buffer-to-icon *edit-icon*)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 (sc:set-cursor *edit-icon*))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
154 (defun sc::menu-choose-cursor (window x y)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
155 "Presents a menu of cursor names, and returns one or nil"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
156 (let ((curs sc::cursors)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
157 (items))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
158 (while curs
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159 (push (sc::menu-item-for-cursor (car curs)) items)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160 (setq curs (cdr curs)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
161 (push (list "Choose Cursor") items)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
162 (setq menu (menu-create items))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
163 (sun-menu-evaluate window x y menu)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
164
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
165 (defun sc::menu-item-for-cursor (cursor)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
166 "apply function to selected cursor"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
167 (list (symbol-name cursor) 'quote cursor))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
168
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
169 (defun sc::hotspot (window x y)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
170 (aset *edit-icon* 0 x)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
171 (aset *edit-icon* 1 y)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
172 (sc::goto-hotspot))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
173
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
174 (defun sc::goto-hotspot ()
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
175 (goto-line (1+ (aref *edit-icon* 1)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
176 (move-to-column (aref *edit-icon* 0)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
177
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
178 (defun sc::display-icon (icon)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
179 (setq *edit-icon* (copy-sequence icon))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
180 (let ((string (aref *edit-icon* 2))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
181 (index 0))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
182 (while (< index 32)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
183 (let ((char (aref string index))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
184 (bit 128))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
185 (while (> bit 0)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
186 (insert (sc::char-at-bit char bit))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
187 (setq bit (lsh bit -1))))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
188 (if (eq 1 (% index 2)) (newline))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
189 (setq index (1+ index))))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
190 (sc::goto-hotspot))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
191
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
192 (defun sc::char-at-bit (char bit)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
193 (if (> (logand char bit) 0) "@" " "))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
194
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
195 (defun sc::pack-buffer-to-icon (icon)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
196 "Pack 16 x 16 field into icon string"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
197 (goto-char (point-min))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
198 (aset icon 0 (aref *edit-icon* 0))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
199 (aset icon 1 (aref *edit-icon* 1))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
200 (aset icon 2 (mapconcat 'sc::pack-one-line "1234567890123456" ""))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
201 (sc::goto-hotspot)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
202 )
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
203
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
204 (defun sc::pack-one-line (dummy)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
205 (let* (char chr1 chr2)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
206 (setq char 0 chr1 (mapconcat 'sc::pack-one-char "12345678" "") chr1 char)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
207 (setq char 0 chr2 (mapconcat 'sc::pack-one-char "12345678" "") chr2 char)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
208 (forward-line 1)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
209 (concat (char-to-string chr1) (char-to-string chr2))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
210 ))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
211
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
212 (defun sc::pack-one-char (dummy)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
213 "pack following char into char, unless eolp"
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
214 (if (or (eolp) (char-equal (following-char) 32))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
215 (setq char (lsh char 1))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
216 (setq char (1+ (lsh char 1))))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
217 (if (not (eolp))(forward-char)))
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
218
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
219 (provide 'sun-curs)
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
220
9a10bb9ac325 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
221 ;;; sun-curs.el ends here