]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/curs_mouse.3x
ncurses 6.4 - patch 20240420
[ncurses.git] / man / curs_mouse.3x
index 677f708aed390a0763c8ce2a012ee4a016a3cc5b..8e5c7018134525ea2d8401adc66fe8cae9883625 100644 (file)
@@ -28,8 +28,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.86 2024/01/13 22:05:39 tom Exp $
-.TH curs_mouse 3X 2024-01-13 "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"
@@ -184,34 +194,41 @@ character-cell coordinates is enclosed by a given window, returning \fBTRUE\fP
 if it is and \fBFALSE\fP otherwise.
 It is useful for determining what subset of
 the screen windows enclose the location of a mouse event.
+.PP
+If the parameter is a pad,
+\fB\%wenclose\fP uses the most recent screen coordinates used for
+this pad in
+\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
 to coordinates relative to the given window or vice versa.
 The resulting \fB\%stdscr\fP-relative coordinates are not always
-identical to window-relative coordinates due to the mechanism to reserve
+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
 inside the window \fIwin\fP.
-They are converted to window-relative coordinates and returned
+They are converted to \fB\%stdscr\fP-relative coordinates and returned
 through the pointers.
 If the conversion was successful, the function returns \fBTRUE\fP.
-.bP
+.IP
 If one of the parameters was \fBNULL\fP or the location is
 not inside the window, \fBFALSE\fP is returned.
 .bP
 If \fIto_screen\fP is
-\fBFALSE\fP, the pointers \fIpY, pX\fP must reference window-relative
-coordinates.
-They are converted to \fB\%stdscr\fP-relative coordinates if the
+\fBFALSE\fP, the pointers \fIpY, pX\fP must reference
+\fB\%stdscr\fP-relative coordinates.
+They are converted to window-relative coordinates if the
 window \fIwin\fP encloses this point.
 In this case the function returns \fBTRUE\fP.
-.bP
+.IP
 If one of the parameters is \fBNULL\fP or the point is not inside the
 window, \fBFALSE\fP is returned.
+.PP
 The referenced coordinates
 are only replaced by the converted coordinates if the transformation was
 successful.
@@ -220,22 +237,34 @@ The \fB\%mouse_trafo\fP function performs the same translation
 as \fB\%wmouse_trafo\fP,
 using \fB\%stdscr\fP for \fIwin\fP.
 .SS mouseinterval
-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 recognized as a click.
-Use \fB\%mouseinterval(0)\fP to disable click resolution.
+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
+.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
+.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.
+If the timeout expires without input activity
+(which would happen with a zero interval),
+then no click resolution will occur.
+.PP
 This function returns the previous interval value.
 Use \fB\%mouseinterval(\-1)\fP to obtain the interval without altering it.
-The default is one sixth of a second.
-.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
-Note that mouse events will be ignored when input is in cooked mode, and will
-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.
+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).
 .SH RETURN VALUE
 \fB\%has_mouse\fP,
 \fB\%wenclose\fP,
@@ -271,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
@@ -324,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
@@ -428,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
@@ -442,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
@@ -491,5 +520,6 @@ such as its private mode 1006.
 \fB\%curses\fP(3X),
 \fB\%curs_inopts\fP(3X),
 \fB\%curs_kernel\fP(3X),
+\fB\%curs_pad\fP(3X),
 \fB\%curs_slk\fP(3X),
 \fB\%curs_variables\fP(3X)