-<!--
+<!--
* t
****************************************************************************
- * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. *
+ * Copyright 2018-2020,2021 Thomas E. Dickey *
+ * Copyright 1998-2015,2017 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.49 2018/07/28 22:19:56 tom Exp @
+ * @Id: curs_mouse.3x,v 1.57 2021/12/25 21:49:32 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
<TITLE>curs_mouse 3x</TITLE>
-<link rev=made href="mailto:bug-ncurses@gnu.org">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+<link rel="author" href="mailto:bug-ncurses@gnu.org">
+
</HEAD>
<BODY>
<H1 class="no-header">curs_mouse 3x</H1>
<STRONG>}</STRONG> <STRONG>MEVENT;</STRONG>
<STRONG>bool</STRONG> <STRONG>has_mouse(void);</STRONG>
+
<STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
<STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*</STRONG><EM>event</EM><STRONG>);</STRONG>
+
<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>
+
<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>
+
<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>
- <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>
- <STRONG>bool</STRONG> <EM>to</EM><STRONG>_</STRONG><EM>screen</EM><STRONG>);</STRONG>
+ <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> <STRONG>bool</STRONG> <EM>to</EM><STRONG>_</STRONG><EM>screen</EM><STRONG>);</STRONG>
+
<STRONG>int</STRONG> <STRONG>mouseinterval(int</STRONG> <EM>erval</EM><STRONG>);</STRONG>
</PRE><H3><a name="h3-Mouse-events">Mouse events</a></H3><PRE>
Here are the mouse event type masks which may be defined:
- <EM>Name</EM> <EM>Description</EM>
+ <STRONG>Name</STRONG> <STRONG>Description</STRONG>
---------------------------------------------------------------------
BUTTON1_PRESSED mouse button 1 down
BUTTON1_RELEASED mouse button 1 up
BUTTON2_PRESSED mouse button 2 down
BUTTON2_RELEASED mouse button 2 up
BUTTON2_CLICKED mouse button 2 clicked
+
BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
---------------------------------------------------------------------
BUTTON3_PRESSED mouse button 3 down
BUTTON3_RELEASED mouse button 3 up
-
BUTTON3_CLICKED mouse button 3 clicked
BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
reserve lines on top or bottom of the screen for other purposes (see
the <STRONG>ripoffline</STRONG> and <STRONG><A HREF="curs_slk.3x.html">slk_init(3x)</A></STRONG> calls, for example).
- <STRONG>o</STRONG> If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must refer-
- ence the coordinates of a location inside the window <STRONG>win</STRONG>. They are
+ <STRONG>o</STRONG> If the parameter <EM>to</EM><STRONG>_</STRONG><EM>screen</EM> is <STRONG>TRUE</STRONG>, the pointers <EM>pY,</EM> <EM>pX</EM> must refer-
+ ence the coordinates of a location inside the window <EM>win</EM>. They are
converted to window-relative coordinates and returned through the
pointers. If the conversion was successful, the function returns
<STRONG>TRUE</STRONG>.
<STRONG>o</STRONG> If one of the parameters was NULL or the location is not inside the
window, <STRONG>FALSE</STRONG> is returned.
- <STRONG>o</STRONG> If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference window-
+ <STRONG>o</STRONG> If <EM>to</EM><STRONG>_</STRONG><EM>screen</EM> is <STRONG>FALSE</STRONG>, the pointers <EM>pY,</EM> <EM>pX</EM> must reference window-
relative coordinates. They are converted to stdscr-relative coor-
- dinates if the window <STRONG>win</STRONG> encloses this point. In this case the
+ dinates if the window <EM>win</EM> encloses this point. In this case the
function returns <STRONG>TRUE</STRONG>.
<STRONG>o</STRONG> If one of the parameters is NULL or the point is not inside the
</PRE><H3><a name="h3-mouse_trafo">mouse_trafo</a></H3><PRE>
The <STRONG>mouse_trafo</STRONG> function performs the same translation as <STRONG>wmouse_trafo</STRONG>,
- using stdscr for <STRONG>win</STRONG>.
+ using stdscr for <EM>win</EM>.
</PRE><H3><a name="h3-mouseinterval">mouseinterval</a></H3><PRE>
These calls were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in SVr4
curses, 4.4BSD curses, or any other previous version of curses.
- SVr4 curses had support for the mouse in a variant of <STRONG>xterm</STRONG>. It is
+ SVr4 curses had support for the mouse in a variant of <STRONG>xterm(1)</STRONG>. It is
mentioned in a few places, but with no supporting documentation:
<STRONG>o</STRONG> the "libcurses" manual page lists functions for this feature which
\E[?1000%?%p1%{1}%=%th%el%;
+ The mouse driver also recognizes a newer xterm private mode 1006, e.g.,
+
+ \E[?1006;1000%?%p1%{1}%=%th%el%;
+
The <EM>z</EM> member in the event structure is not presently used. It is in-
tended for use with touch screens (which may be pressure-sensitive) or
with 3D-mice/trackballs/power gloves.
Because there are no standard terminal responses that would serve to
identify terminals which support the xterm mouse protocol, <STRONG>ncurses</STRONG> as-
- sumes that if your $TERM environment variable contains "xterm", or
- <STRONG>kmous</STRONG> is defined in the terminal description, then the terminal may
- send mouse events.
+ sumes that if <STRONG>kmous</STRONG> is defined in the terminal description, or if the
+ terminal description's primary name or aliases contain the string
+ "xterm", then the terminal may send mouse events. The <STRONG>kmous</STRONG> capability
+ is checked first, allowing the use of newer xterm mouse protocols such
+ as xterm's private mode 1006.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>