annotate man/xemacs/mouse.texi @ 2421:ab71ad6ff3dd

[xemacs-hg @ 2004-12-06 03:50:53 by ben] (none) README.packages: Document use of --package-prefix. Fix error in specifying standard package location. make-docfile.c: Use QXE_PATH_MAX. info.el: Correct doc string giving example package path. menubar-items.el: Move Prefix Rectangle command up one level. xemacs/packages.texi: Add long form of Lisp Reference Manual to links. Add links pointing to Lisp Reference Manual for more detailed package discussion. lispref/range-tables.texi: Document range-table changes. internals/internals.texi: Update history section. elhash.c, elhash.h, profile.c: Create inchash_eq() to allow direct incrementing of hash-table entry. Use in profile.c to try to reduce profiling overhead. Increase initial size of profile hash tables to reduce profiling overhead. buffer.c, device-msw.c, dialog-msw.c, dired-msw.c, editfns.c, event-msw.c, events.c, glyphs-msw.c, keymap.c, objects-msw.c, process-nt.c, syswindows.h, text.c, text.h, unexnt.c: Rename xetcs* -> qxetcs* for consistency with qxestr*. Rename ei*_c(_*) -> ei*_ascii(_*) since they work with ASCII-only strings not "C strings", whatever those are. This is the last place where "c" was incorrectly being used for "ascii". dialog-msw.c, dumper.c, event-msw.c, fileio.c, glyphs-gtk.c, glyphs-x.c, nt.c, process-nt.c, realpath.c, sysdep.c, sysfile.h, unexcw.c, unexnext.c, unexnt.c: Try to avoid differences in systems that do or do not include final null byte in PATH_MAX. Create PATH_MAX_INTERNAL and PATH_MAX_EXTERNAL and use them everywhere. Rewrite code in dumper.c to avoid use of PATH_MAX. When necessary in nt.c, use _MAX_PATH instead of MAX_PATH to be consistent with other places. text.c: Code to short-circuit when binary or Unicode was not working due to EOL wrapping. Fix this code to work when either no EOL autodetection or no CR's or LF's in the text. lisp.h, rangetab.c, rangetab.h, regex.c, search.c: Implement different types of ranges (open/closed start and end). Change default to be start-closed, end-open.
author ben
date Mon, 06 Dec 2004 03:52:23 +0000
parents 376386a54a3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
1
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
2 @node Mouse Selection, Additional Mouse Operations, Mark, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
3 @comment node-name, next, previous, up
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
4 @section Selecting Text with the Mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
5 @cindex mouse selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
6
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
7 @cindex pointer shapes
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
8 If you are using XEmacs under X, you can use the mouse pointer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
9 to select text. (The normal mouse pointer is an I-beam, the same
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
10 pointer that @code{xterm} uses.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
11
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
12 @vindex modeline-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
13 @vindex nontext-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
14 @vindex text-pointer-glyph
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
15 The glyph variable @code{text-pointer-glyph} controls the shape of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
16 the mouse pointer when over text. You can also control the shape
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
17 of the mouse pointer when over nontext using @code{nontext-pointer-glyph},
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
18 and the shape of the mouse pointer when over the modeline using
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
19 @code{modeline-pointer-glyph}. (Remember, you should use
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
20 @code{set-glyph-image}, not @code{setq}, to set one of these
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
21 variables.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
22
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
23 @cindex pointer face
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
24 If you want to get fancy, you can set the foreground and background
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
25 colors of the mouse pointer by setting the @code{pointer} face.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
26
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
27 There are two ways to select a region of text with the mouse:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
28
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
29 To select a word in text, double-click with the left mouse button
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
30 while the mouse cursor is over the word. The word is highlighted when
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
31 selected. On monochrome monitors, a stippled background indicates that a
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
32 region of text has been highlighted. On color monitors, a color
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
33 background indicates highlighted text. You can triple-click to select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
34 whole lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
35
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
36 To select an arbitrary region of text:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
37
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
38 @enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
39 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
40 Move the mouse cursor over the character at the beginning of the region of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
41 text you want to select.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
42 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
43 Press and hold the left mouse button.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
44 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
45 While holding the left mouse button down, drag the cursor to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
46 character at the end of the region of text you want to select.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
47 @item
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
48 Release the left mouse button.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
49 @end enumerate
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
50 The selected region of text is highlighted.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
51
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
52 Once a region of text is selected, it becomes the primary X selection
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
53 (@pxref{Using X Selections}) as well as the Emacs selected region. You
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
54 can paste it into other X applications and use the options from the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
55 @b{Edit} pull-down menu on it. Since it is also the Emacs region, you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
56 can use Emacs region commands on it.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
57
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
58 @node Additional Mouse Operations, Killing, Mouse Selection, Top
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
59 @section Additional Mouse Operations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
60 @cindex mouse operations
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
61
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
62 XEmacs also provides the following mouse functions. Most of these are
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
63 not bound to mouse gestures by default, but they are provided for your
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
64 customization pleasure. For example, if you wanted @kbd{shift-left}
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
65 (that is, holding down the @key{Shift} key and clicking the left mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
66 button) to delete the character at which you are pointing, then you
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
67 could do this:
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
68
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
69 @example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
70 (global-set-key '(shift button1) 'mouse-del-char)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
71 @end example
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
72
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
73 @findex mouse-del-char
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
74 @findex mouse-delete-window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
75 @findex mouse-keep-one-window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
76 @findex mouse-kill-line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
77 @findex mouse-line-length
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
78 @findex mouse-scroll
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
79 @findex mouse-select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
80 @findex mouse-select-and-split
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
81 @findex mouse-set-mark
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
82 @findex mouse-set-point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
83 @findex mouse-track
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
84 @findex mouse-track-adjust
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
85 @findex mouse-track-and-copy-to-cutbuffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
86 @findex mouse-track-delete-and-insert
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
87
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
88 @table @kbd
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
89 @item mouse-del-char
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
90 Delete the character pointed to by the mouse.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
91 @item mouse-delete-window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
92 Delete the Emacs window that the mouse is on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
93 @item mouse-keep-one-window
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
94 Select the Emacs window that the mouse is on, then delete all other
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
95 windows on this frame.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
96 @item mouse-kill-line
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
97 Kill the line pointed to by the mouse.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
98 @item mouse-line-length
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
99 Print the length of the line indicated by the pointer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
100 @item mouse-scroll
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
101 Scroll point to the mouse position.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
102 @item mouse-select
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
103 Select the Emacs window the mouse is on.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
104 @item mouse-select-and-split
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
105 Select the Emacs window mouse is on, then split it vertically in half.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
106 @item mouse-set-mark
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
107 Select the Emacs window the mouse is on and set the mark at the mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
108 position. Display the cursor at that position for a second.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
109 @item mouse-set-point
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
110 Select the Emacs window that the mouse is on and move point to the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
111 mouse position.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
112 @item mouse-track
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
113 Make a selection with the mouse. This is the default binding of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
114 the left mouse button (@key{button1}).
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
115 @item mouse-track-adjust
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
116 Extend the existing selection. This is the default binding of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
117 @key{Shift-button1}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
118 @item mouse-track-and-copy-to-cutbuffer
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
119 Make a selection like @code{mouse-track}, but also copy it to the cut buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
120 @item mouse-track-delete-and-insert
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
121 Make a selection with the mouse and insert it at point. This is the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
122 default binding of @key{control-shift-button1}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
123 @item mouse-track-insert
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
124 Make a selection with the mouse and insert it at point.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
125 This is the default binding of @key{control-button1}.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
126 @item mouse-window-to-region
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
127 Narrow a window to the region between the cursor and the mouse pointer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
128 @end table
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
129
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
130 The @kbd{M-x mouse-track} command should be bound to a mouse button. If
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
131 you click-and-drag, the selection is set to the region between the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
132 point of the initial click and the point at which you release the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
133 button. These positions do not need to be ordered.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
134
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
135 If you click-and-release without moving the mouse, the point is moved,
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
136 and the selection is disowned (there will be no selection owner.) The
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
137 mark will be set to the previous position of point.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
138
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
139 If you double-click, the selection will extend by symbols instead of by
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
140 characters. If you triple-click, the selection will extend by lines.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
141
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
142 If you drag the mouse off the top or bottom of the window, you can
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
143 select pieces of text that are larger than the visible part of the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
144 buffer; the buffer will scroll as necessary.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
145
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
146 The selected text becomes the current X selection, and is also copied to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
147 the top of the kill ring. Point will be left at the position at
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
148 which you released the button and the mark will be left at the initial
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
149 click position. Bind a mouse click to
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
150 @kbd{mouse-track-and-copy-to-cutbuffer} to copy selections to the cut buffer.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
151 (See also the @code{mouse-track-adjust} command, on @kbd{Shift-button1}.)
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
152
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
153 The @kbd{M-x mouse-track-adjust} command should be bound to a mouse
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
154 button. The selection will be enlarged or shrunk so that the point of
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
155 the mouse click is one of its endpoints. This is only meaningful
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
156 after the @code{mouse-track} command (@key{button1}) has been executed.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
157
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
158 The @kbd{M-x mouse-track-delete-and-insert} command is exactly the same
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
159 as the @code{mouse-track} command on @key{button1}, except that point is
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
160 not moved; the selected text is immediately inserted after being
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
161 selected; and the text of the selection is deleted.
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
162
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
163 The @kbd{M-x mouse-track-insert} command is exactly the same as the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
164 @code{mouse-track} command on @key{button1}, except that point is not moved;
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
165 the selected text is immediately inserted after being selected; and the
376386a54a3c Import from CVS: tag r19-14
cvs
parents:
diff changeset
166 selection is immediately disowned afterwards.