blob: f4951c1c34e348e57e4cc1ffd8494fbd2aed78a2 [file] [log] [blame]
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05301<!--
2 * t
3 ****************************************************************************
Steve Kondikae271bc2015-11-15 02:50:53 +01004 * Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +05305 * *
6 * Permission is hereby granted, free of charge, to any person obtaining a *
7 * copy of this software and associated documentation files (the *
8 * "Software"), to deal in the Software without restriction, including *
9 * without limitation the rights to use, copy, modify, merge, publish, *
10 * distribute, distribute with modifications, sublicense, and/or sell *
11 * copies of the Software, and to permit persons to whom the Software is *
12 * furnished to do so, subject to the following conditions: *
13 * *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
16 * *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
20 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
23 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
24 * *
25 * Except as contained in this notice, the name(s) of the above copyright *
26 * holders shall not be used in advertising or otherwise to promote the *
27 * sale, use or other dealings in this Software without prior written *
28 * authorization. *
29 ****************************************************************************
Steve Kondikae271bc2015-11-15 02:50:53 +010030 * @Id: curs_mouse.3x,v 1.42 2015/07/21 09:27:39 tom Exp @
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053031-->
Steve Kondikae271bc2015-11-15 02:50:53 +010032<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053033<HTML>
34<HEAD>
Steve Kondikae271bc2015-11-15 02:50:53 +010035<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
36<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053037<TITLE>curs_mouse 3x</TITLE>
38<link rev=made href="mailto:bug-ncurses@gnu.org">
39<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
40</HEAD>
41<BODY>
Steve Kondikae271bc2015-11-15 02:50:53 +010042<H1 class="no-header">curs_mouse 3x</H1>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053043<PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053044<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
45
46
47
48
49</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +010050<H2><a name="h2-NAME">NAME</a></H2><PRE>
51 <STRONG>has_mouse</STRONG>, <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>,
52 <STRONG>mouse_trafo</STRONG>, <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface
53 through curses
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053054
55
56</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +010057<H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053058 <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
59
60 <STRONG>typedef</STRONG> <STRONG>unsigned</STRONG> <STRONG>long</STRONG> <STRONG>mmask_t;</STRONG>
61
Steve Kondikae271bc2015-11-15 02:50:53 +010062 <STRONG>typedef</STRONG> <STRONG>struct</STRONG> <STRONG>{</STRONG>
63 <STRONG>short</STRONG> <STRONG>id;</STRONG> <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053064 <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>y,</STRONG> <STRONG>z;</STRONG> <EM>/*</EM> <EM>event</EM> <EM>coordinates</EM> <EM>*/</EM>
65 <STRONG>mmask_t</STRONG> <STRONG>bstate;</STRONG> <EM>/*</EM> <EM>button</EM> <EM>state</EM> <EM>bits</EM> <EM>*/</EM>
Steve Kondikae271bc2015-11-15 02:50:53 +010066 <STRONG>}</STRONG> <STRONG>MEVENT;</STRONG>
67
68 <STRONG>bool</STRONG> <STRONG>has_mouse(void);</STRONG>
69 <STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
70 <STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
71 <STRONG>mmask_t</STRONG> <STRONG>mousemask(mmask_t</STRONG> <EM>newmask</EM><STRONG>,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*</STRONG><EM>oldmask</EM><STRONG>);</STRONG>
72 <STRONG>bool</STRONG> <STRONG>wenclose(const</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*</STRONG><EM>win</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>x</EM><STRONG>);</STRONG>
73 <STRONG>bool</STRONG> <STRONG>mouse_trafo(int*</STRONG> <EM>pY</EM><STRONG>,</STRONG> <STRONG>int*</STRONG> <EM>pX</EM><STRONG>,</STRONG> <STRONG>bool</STRONG> <EM>to</EM><STRONG>_</STRONG><EM>screen</EM><STRONG>);</STRONG>
74 <STRONG>bool</STRONG> <STRONG>wmouse_trafo(const</STRONG> <STRONG>WINDOW*</STRONG> <EM>win</EM><STRONG>,</STRONG> <STRONG>int*</STRONG> <EM>pY</EM><STRONG>,</STRONG> <STRONG>int*</STRONG> <EM>pX</EM><STRONG>,</STRONG>
75 <STRONG>bool</STRONG> <EM>to</EM><STRONG>_</STRONG><EM>screen</EM><STRONG>);</STRONG>
76 <STRONG>int</STRONG> <STRONG>mouseinterval(int</STRONG> <EM>erval</EM><STRONG>);</STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053077
78
79</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +010080<H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053081 These functions provide an interface to mouse events from
82 <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. Mouse events are represented by <STRONG>KEY_MOUSE</STRONG>
83 pseudo-key values in the <STRONG>wgetch</STRONG> input stream.
84
Steve Kondikae271bc2015-11-15 02:50:53 +010085
86</PRE>
87<H3><a name="h3-mousemask">mousemask</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +053088 To make mouse events visible, use the <STRONG>mousemask</STRONG> function.
89 This will set the mouse events to be reported. By de-
90 fault, no mouse events are reported. The function will
91 return a mask to indicate which of the specified mouse
92 events can be reported; on complete failure it returns 0.
93 If oldmask is non-NULL, this function fills the indicated
94 location with the previous value of the given window's
95 mouse event mask.
96
97 As a side effect, setting a zero mousemask may turn off
98 the mouse pointer; setting a nonzero mask may turn it on.
99 Whether this happens is device-dependent.
100
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530101
Steve Kondikae271bc2015-11-15 02:50:53 +0100102</PRE>
103<H3><a name="h3-Mouse-events">Mouse events</a></H3><PRE>
104 Here are the mouse event type masks which may be defined:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530105
106 <EM>Name</EM> <EM>Description</EM>
107 ---------------------------------------------------------------------
108 BUTTON1_PRESSED mouse button 1 down
109 BUTTON1_RELEASED mouse button 1 up
110 BUTTON1_CLICKED mouse button 1 clicked
111 BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
112 BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
113 ---------------------------------------------------------------------
114 BUTTON2_PRESSED mouse button 2 down
115 BUTTON2_RELEASED mouse button 2 up
116 BUTTON2_CLICKED mouse button 2 clicked
117 BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
Steve Kondikae271bc2015-11-15 02:50:53 +0100118
119
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530120 BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
121 ---------------------------------------------------------------------
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530122 BUTTON3_PRESSED mouse button 3 down
123 BUTTON3_RELEASED mouse button 3 up
124 BUTTON3_CLICKED mouse button 3 clicked
125 BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
126 BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
127 ---------------------------------------------------------------------
128 BUTTON4_PRESSED mouse button 4 down
129 BUTTON4_RELEASED mouse button 4 up
130 BUTTON4_CLICKED mouse button 4 clicked
131 BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
132 BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
133 ---------------------------------------------------------------------
134 BUTTON5_PRESSED mouse button 5 down
135 BUTTON5_RELEASED mouse button 5 up
136 BUTTON5_CLICKED mouse button 5 clicked
137 BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
138 BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
139 ---------------------------------------------------------------------
140 BUTTON_SHIFT shift was down during button state change
141 BUTTON_CTRL control was down during button state change
142 BUTTON_ALT alt was down during button state change
143 ALL_MOUSE_EVENTS report all button state changes
144 REPORT_MOUSE_POSITION report mouse movement
145 ---------------------------------------------------------------------
146
Steve Kondikae271bc2015-11-15 02:50:53 +0100147
148</PRE>
149<H3><a name="h3-getmouse">getmouse</a></H3><PRE>
150 Once a class of mouse events has been made visible in a
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530151 window, calling the <STRONG>wgetch</STRONG> function on that window may re-
152 turn <STRONG>KEY_MOUSE</STRONG> as an indicator that a mouse event has been
153 queued. To read the event data and pop the event off the
154 queue, call <STRONG>getmouse</STRONG>. This function will return <STRONG>OK</STRONG> if a
155 mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
156 otherwise. When <STRONG>getmouse</STRONG> returns <STRONG>OK</STRONG>, the data deposited
157 as y and x in the event structure coordinates will be
158 screen-relative character-cell coordinates. The returned
159 state mask will have exactly one bit set to indicate the
Steve Kondikae271bc2015-11-15 02:50:53 +0100160 event type. The corresponding data in the queue is marked
161 invalid. A subsequent call to <STRONG>getmouse</STRONG> will retrieve the
162 next older item from the queue.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530163
Steve Kondikae271bc2015-11-15 02:50:53 +0100164
165</PRE>
166<H3><a name="h3-ungetmouse">ungetmouse</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530167 The <STRONG>ungetmouse</STRONG> function behaves analogously to <STRONG>ungetch</STRONG>.
168 It pushes a <STRONG>KEY_MOUSE</STRONG> event onto the input queue, and as-
169 sociates with that event the given state data and screen-
170 relative character-cell coordinates.
171
Steve Kondikae271bc2015-11-15 02:50:53 +0100172
173</PRE>
174<H3><a name="h3-wenclose">wenclose</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530175 The <STRONG>wenclose</STRONG> function tests whether a given pair of
176 screen-relative character-cell coordinates is enclosed by
Steve Kondikae271bc2015-11-15 02:50:53 +0100177 a given window, returning <STRONG>TRUE</STRONG> if it is and <STRONG>FALSE</STRONG> other-
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530178 wise. It is useful for determining what subset of the
179 screen windows enclose the location of a mouse event.
180
Steve Kondikae271bc2015-11-15 02:50:53 +0100181
182</PRE>
183<H3><a name="h3-wmouse_trafo">wmouse_trafo</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530184 The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coor-
185 dinates from stdscr-relative coordinates to coordinates
Steve Kondikae271bc2015-11-15 02:50:53 +0100186 relative to the given window or vice versa. The resulting
187 stdscr-relative coordinates are not always identical to
188 window-relative coordinates due to the mechanism to re-
189 serve lines on top or bottom of the screen for other pur-
190 poses (see the <STRONG>ripoffline</STRONG> and <STRONG>slk_init</STRONG> calls, for exam-
191 ple).
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530192
Steve Kondikae271bc2015-11-15 02:50:53 +0100193 <STRONG>o</STRONG> If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG>
194 <STRONG>pX</STRONG> must reference the coordinates of a location inside
195 the window <STRONG>win</STRONG>. They are converted to window-relative
196 coordinates and returned through the pointers. If the
197 conversion was successful, the function returns <STRONG>TRUE</STRONG>.
198
199 <STRONG>o</STRONG> If one of the parameters was NULL or the location is
200 not inside the window, <STRONG>FALSE</STRONG> is returned.
201
202 <STRONG>o</STRONG> If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must refer-
203 ence window-relative coordinates. They are converted
204 to stdscr-relative coordinates if the window <STRONG>win</STRONG> en-
205 closes this point. In this case the function returns
206 <STRONG>TRUE</STRONG>.
207
208 <STRONG>o</STRONG> If one of the parameters is NULL or the point is not
209 inside the window, <STRONG>FALSE</STRONG> is returned. The referenced
210 coordinates are only replaced by the converted coordi-
211 nates if the transformation was successful.
212
213
214</PRE>
215<H3><a name="h3-mouse_trafo">mouse_trafo</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530216 The <STRONG>mouse_trafo</STRONG> function performs the same translation as
217 <STRONG>wmouse_trafo</STRONG>, using stdscr for <STRONG>win</STRONG>.
218
Steve Kondikae271bc2015-11-15 02:50:53 +0100219
220</PRE>
221<H3><a name="h3-mouseinterval">mouseinterval</a></H3><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530222 The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou-
223 sands of a second) that can elapse between press and re-
224 lease events for them to be recognized as a click. Use
225 <STRONG>mouseinterval(0)</STRONG> to disable click resolution. This func-
226 tion returns the previous interval value. Use <STRONG>mouseinter-</STRONG>
227 <STRONG>val(-1)</STRONG> to obtain the interval without altering it. The
228 default is one sixth of a second.
229
Steve Kondikae271bc2015-11-15 02:50:53 +0100230
231</PRE>
232<H3><a name="h3-has_mouse">has_mouse</a></H3><PRE>
233 The <STRONG>has_mouse</STRONG> function returns <STRONG>TRUE</STRONG> if the mouse driver
234 has been successfully initialized.
235
236 Note that mouse events will be ignored when input is in
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530237 cooked mode, and will cause an error beep when cooked mode
Steve Kondikae271bc2015-11-15 02:50:53 +0100238 is being simulated in a window by a function such as <STRONG>get-</STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530239 <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
240
241
242</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100243<H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
244 <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail-
245 ure or <STRONG>OK</STRONG> upon successful completion:
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530246
Steve Kondikae271bc2015-11-15 02:50:53 +0100247 <STRONG>getmouse</STRONG>
248 returns an error.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530249
Steve Kondikae271bc2015-11-15 02:50:53 +0100250 <STRONG>o</STRONG> If no mouse driver was initialized, or if the mask
251 parameter is zero,
252
253 <STRONG>o</STRONG> It also returns an error if no more events remain
254 in the queue.
255
256 <STRONG>ungetmouse</STRONG>
257 returns an error if the FIFO is full.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530258
259 <STRONG>mousemask</STRONG> returns the mask of reportable events.
260
261 <STRONG>mouseinterval</STRONG> returns the previous interval value, unless
262 the terminal was not initialized. In that case, it re-
263 turns the maximum interval value (166).
264
265 <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions returning
266 <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.
267
268
269</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100270<H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530271 These calls were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not
272 found in SVr4 curses, 4.4BSD curses, or any other previous
273 version of curses.
274
275 The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
276 preprocessor can be used to test whether these features
277 are present. If the interface is changed, the value of
278 <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incremented. These values
279 for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when configur-
280 ing ncurses:
281
Steve Kondikae271bc2015-11-15 02:50:53 +0100282 1 has definitions for reserved events. The mask uses
283 28 bits.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530284
Steve Kondikae271bc2015-11-15 02:50:53 +0100285 2 adds definitions for button 5, removes the defini-
286 tions for reserved events. The mask uses 29 bits.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530287
Steve Kondikae271bc2015-11-15 02:50:53 +0100288 The order of the <STRONG>MEVENT</STRONG> structure members is not guaran-
289 teed. Additional fields may be added to the structure in
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530290 the future.
291
Steve Kondikae271bc2015-11-15 02:50:53 +0100292 Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using ei-
293 ther xterm's built-in mouse-tracking API or platform-spe-
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530294 cific drivers including
Steve Kondikae271bc2015-11-15 02:50:53 +0100295
296 <STRONG>o</STRONG> Alessandro Rubini's gpm server
297
298 <STRONG>o</STRONG> FreeBSD sysmouse
299
300 <STRONG>o</STRONG> OS/2 EMX
301
302 If you are using an unsupported configuration, mouse
303 events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the <STRONG>mouse-</STRONG>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530304 <STRONG>mask</STRONG> function will always return <STRONG>0</STRONG>).
305
Steve Kondikae271bc2015-11-15 02:50:53 +0100306 If the terminfo entry contains a <STRONG>XM</STRONG> string, this is used
307 in the xterm mouse driver to control the way the terminal
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530308 is initialized for mouse operation. The default, if <STRONG>XM</STRONG> is
309 not found, corresponds to private mode 1000 of xterm:
Steve Kondikae271bc2015-11-15 02:50:53 +0100310
311 \E[?1000%?%p1%{1}%=%th%el%;
312
313 The <EM>z</EM> member in the event structure is not presently used.
314 It is intended for use with touch screens (which may be
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530315 pressure-sensitive) or with 3D-mice/trackballs/power
316 gloves.
317
Steve Kondikae271bc2015-11-15 02:50:53 +0100318 The <STRONG>ALL_MOUSE_EVENTS</STRONG> class does not include <STRONG>RE-</STRONG>
319 <STRONG>PORT_MOUSE_POSITION</STRONG>. They are distinct. For example, in
320 xterm, wheel/scrolling mice send position reports as a se-
321 quence of presses of buttons 4 or 5 without matching but-
322 ton-releases.
323
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530324
325</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100326<H2><a name="h2-BUGS">BUGS</a></H2><PRE>
327 Mouse events under xterm will not in fact be ignored dur-
328 ing cooked mode, if they have been enabled by <STRONG>mousemask</STRONG>.
329 Instead, the xterm mouse report sequence will appear in
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530330 the string read.
331
332 Mouse events under xterm will not be detected correctly in
Steve Kondikae271bc2015-11-15 02:50:53 +0100333 a window with its keypad bit off, since they are inter-
334 preted as a variety of function key. Your terminfo de-
335 scription should have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
336 of the response from xterm for mouse clicks). Other val-
337 ues for <STRONG>kmous</STRONG> are permitted, but under the same assump-
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530338 tion, i.e., it is the beginning of the response.
339
Steve Kondikae271bc2015-11-15 02:50:53 +0100340 Because there are no standard terminal responses that
341 would serve to identify terminals which support the xterm
342 mouse protocol, <STRONG>ncurses</STRONG> assumes that if your $TERM envi-
343 ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined in
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530344 the terminal description, then the terminal may send mouse
345 events.
346
347
348</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100349<H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
350 <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>, <STRONG>curs_vari-</STRONG>
351 <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>.
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530352
353
354
355 <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
356</PRE>
Steve Kondikae271bc2015-11-15 02:50:53 +0100357<div class="nav">
358<ul>
359<li><a href="#h2-NAME">NAME</a></li>
360<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
361<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
362<ul>
363<li><a href="#h3-mousemask">mousemask</a></li>
364<li><a href="#h3-Mouse-events">Mouse events</a></li>
365<li><a href="#h3-getmouse">getmouse</a></li>
366<li><a href="#h3-ungetmouse">ungetmouse</a></li>
367<li><a href="#h3-wenclose">wenclose</a></li>
368<li><a href="#h3-wmouse_trafo">wmouse_trafo</a></li>
369<li><a href="#h3-mouse_trafo">mouse_trafo</a></li>
370<li><a href="#h3-mouseinterval">mouseinterval</a></li>
371<li><a href="#h3-has_mouse">has_mouse</a></li>
372</ul>
373</li>
374<li><a href="#h2-RETURN-VALUE">RETURN VALUE</a></li>
375<li><a href="#h2-PORTABILITY">PORTABILITY</a></li>
376<li><a href="#h2-BUGS">BUGS</a></li>
377<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
378</ul>
379</div>
Amit Daniel Kachhape6a01f52011-07-20 11:45:59 +0530380</BODY>
381</HTML>