]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_mouse.3x
ncurses 6.4 - patch 20240420
[ncurses.git] / man / curs_mouse.3x
index 9c9048f7f63999cc6bd5fe57b1f6f758b10c233f..8e5c7018134525ea2d8401adc66fe8cae9883625 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.89 2024/02/17 21:43:03 tom Exp $
-.TH curs_mouse 3X 2024-02-17 "ncurses 6.4" "Library calls"
+.\" $Id: curs_mouse.3x,v 1.98 2024/04/20 19:02:07 tom Exp $
+.TH curs_mouse 3X 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -69,16 +69,17 @@ get mouse events in \fIcurses\fR
 .PP
 \fBbool has_mouse(void);
 .PP
+\fBmmask_t mousemask(mmask_t \fInewmask\fP, mmask_t *\fIoldmask\fP);
+.PP
 \fBint getmouse(MEVENT *\fIevent\fP);
 \fBint ungetmouse(MEVENT *\fIevent\fP);
 .PP
-\fBmmask_t mousemask(mmask_t \fInewmask\fP, mmask_t *\fIoldmask\fP);
-.PP
 \fBbool wenclose(const WINDOW *\fIwin\fP, int \fIy\fP, int \fIx\fP);
 .PP
 \fBbool mouse_trafo(int* \fIpY\fP, int* \fIpX\fP, bool \fIto_screen\fP);
 \fBbool wmouse_trafo(const WINDOW* \fIwin\fP,
-                  \fBint* \fIpY\fB, int* \fIpX\fB, bool \fIto_screen\fB);\fR
+.ti +18n \" "bool wmouse_trafo("
+\fBint* \fIpY\fB, int* \fIpX\fB, bool \fIto_screen\fB);
 .PP
 \fBint mouseinterval(int \fIerval\fB);\fR
 .fi
@@ -87,6 +88,15 @@ These functions provide an interface to mouse events from
 \fB\%ncurses\fP(3X).
 Mouse events are represented by \fB\%KEY_MOUSE\fP
 pseudo-key values in the \fB\%wgetch\fP(3X) input stream.
+.SS has_mouse
+The \fB\%has_mouse\fP function returns \fBTRUE\fP if the mouse driver
+has been successfully initialized,
+and \fBFALSE\fP otherwise.
+.PP
+Mouse events are ignored when input is in cooked mode, and
+cause an error beep when cooked mode is being simulated in a window by a
+function such as \fB\%getstr\fP that expects a linefeed for input-loop
+termination.
 .SS mousemask
 To make mouse events visible, use the \fB\%mousemask\fP function.
 This sets the mouse events to be reported.
@@ -103,7 +113,7 @@ If \fIoldmask\fP is non-\fBNULL\fP,
 this function fills the indicated location with the previous value of the
 current screen's mouse event mask.
 .PP
-As a side effect, setting a zero mousemask may turn off the mouse pointer;
+As a side effect, setting a zero mouse mask may turn off the mouse pointer;
 setting a nonzero mask may turn it on.
 Whether this happens is device-dependent.
 .SS "Mouse Events"
@@ -188,8 +198,8 @@ the screen windows enclose the location of a mouse event.
 If the parameter is a pad,
 \fB\%wenclose\fP uses the most recent screen coordinates used for
 this pad in
-\fP\%prefresh\fP(3X) or
-\fP\%pnoutrefresh\fP(3X).
+\fB\%prefresh\fP(3X) or
+\fB\%pnoutrefresh\fP(3X).
 .SS wmouse_trafo
 The \fB\%wmouse_trafo\fP function transforms a given pair of coordinates
 from \fB\%stdscr\fP-relative coordinates
@@ -197,7 +207,7 @@ to coordinates relative to the given window or vice versa.
 The resulting \fB\%stdscr\fP-relative coordinates are not always
 identical to screen coordinates due to the mechanism to reserve
 lines on top or bottom of the screen for other purposes
-(see the \fB\%ripoffline\fP and \fB\%slk_init\fP(3X) calls, for example).
+(see the \fB\%ripoffline\fP(3X) and \fB\%slk_init\fP(3X) calls, for example).
 .bP
 If the parameter \fIto_screen\fP is \fBTRUE\fP, the pointers
 \fIpY, pX\fP must reference the coordinates of a location
@@ -230,10 +240,18 @@ using \fB\%stdscr\fP for \fIwin\fP.
 The \fB\%mouseinterval\fP function sets the maximum time
 (in thousands of a second)
 that can elapse between press and release events for them to
-be resolved as a click.
+be resolved as a
+.IR click .
+An application might interpret button press and release events separated
+by more than the mouse interval as a \*(``long press\*('',
+or,
+with motion,
+as a \*(``drag\*(''.
 .PP
 Calling \fB\%mouseinterval(0)\fP disables click resolution.
-When ncurses detects a mouse event,
+When
+.I \%ncurses
+detects a mouse event,
 it awaits further input activity up to this interval,
 and then checks for a subsequent mouse event which can be combined
 with the first event.
@@ -247,15 +265,6 @@ Use \fB\%mouseinterval(\-1)\fP to obtain the interval without altering it.
 The mouse interval is set to one sixth of a second
 when the corresponding screen is initialized,
 e.g., in \fBinitscr\fP(3X) or \fBsetupterm\fP(3X).
-.SS has_mouse
-The \fB\%has_mouse\fP function returns \fBTRUE\fP if the mouse driver
-has been successfully initialized,
-and \fBFALSE\fP otherwise.
-.PP
-Mouse events are ignored when input is in cooked mode, and
-cause an error beep when cooked mode is being simulated in a window by a
-function such as \fB\%getstr\fP that expects a linefeed for input-loop
-termination.
 .SH RETURN VALUE
 \fB\%has_mouse\fP,
 \fB\%wenclose\fP,
@@ -291,7 +300,7 @@ The order of the \fB\%MEVENT\fP structure members is not guaranteed.
 Additional fields may be added to the structure in the future.
 .PP
 Under
-.I \%ncurses,
+.IR \%ncurses ,
 these calls are implemented using either
 .IR \%xterm 's
 built-in mouse-tracking API or
@@ -344,7 +353,7 @@ include \fB\%REPORT_MOUSE_POSITION\fP.
 They are distinct.
 For example,
 in
-.I \%xterm,
+.IR \%xterm ,
 wheel/scrolling mice send position reports as a sequence of
 presses of buttons 4 or 5 without matching button-releases.
 .SH EXTENSIONS
@@ -448,9 +457,9 @@ where the mouse was using the \fB\%req_mouse_pos\fP capability.
 .IP
 Those features required a terminal program that had been modified
 to work with SVr4
-.I curses.
+.IR curses .
 They were not part of the X Consortium's
-.I \%xterm.
+.IR \%xterm .
 .PP
 When developing the
 .I \%xterm
@@ -462,7 +471,7 @@ lack of documentation.
 Later, in 1998, Mark Hesseling provided support in
 .I \%PDCurses
 2.3 using the SVr4 interface.
-.I \%PDCurses,
+.IR \%PDCurses ,
 however,
 does not use video terminals,
 making it unnecessary to be concerned about compatibility with the