+</PRE><H2><a name="h2-EXTENSIONS">EXTENSIONS</a></H2><PRE>
+ These functions were designed for <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, and are not found in
+ SVr4 <EM>curses</EM>, 4.4BSD <EM>curses</EM>, or any other previous curses
+ implementation. (SVr4 <EM>curses</EM> did have a <EM>getmouse</EM> function, which took
+ no argument and returned a different type.)
+
+
+</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
+ Applications employing the <EM>ncurses</EM> mouse extension should condition its
+ use on the visibility of the <STRONG>NCURSES_MOUSE_VERSION</STRONG> preprocessor macro.
+ When the interface changes, the macro's value increments. Multiple
+ versions are available when <EM>ncurses</EM> is configured; see section
+ "ALTERNATE CONFIGURATIONS" of <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>. The following values may be
+ specified.
+
+ 1 has definitions for reserved events. The mask uses 28 bits.
+
+ 2 adds definitions for button 5, removes the definitions for
+ reserved events. The mask uses 29 bits.
+
+ SVr4 <EM>curses</EM> had support for the mouse in a variant of <STRONG>xterm(1)</STRONG>. It is
+ mentioned in a few places, with little supporting documentation.
+
+ <STRONG>o</STRONG> Its "libcurses" manual page lists functions for this feature
+ prototyped in <EM>curses.h</EM>.
+
+ extern int mouse_set(long int);
+ extern int mouse_on(long int);
+ extern int mouse_off(long int);
+ extern int request_mouse_pos(void);
+ extern int map_button(unsigned long);
+ extern void wmouse_position(WINDOW *, int *, int *);
+ extern unsigned long getmouse(void), getbmap(void);
+
+ <STRONG>o</STRONG> Its "terminfo" manual page lists capabilities for the feature.
+
+ <STRONG>buttons</STRONG> <STRONG>btns</STRONG> <STRONG>BT</STRONG> Number of buttons on the mouse
+ <STRONG>get_mouse</STRONG> <STRONG>getm</STRONG> <STRONG>Gm</STRONG> Curses should get button events
+ <STRONG>key_mouse</STRONG> <STRONG>kmous</STRONG> <STRONG>Km</STRONG> 0631, Mouse event has occurred
+ <STRONG>mouse_info</STRONG> <STRONG>minfo</STRONG> <STRONG>Mi</STRONG> Mouse status information
+ <STRONG>req_mouse_pos</STRONG> <STRONG>reqmp</STRONG> <STRONG>RQ</STRONG> Request mouse position report
+
+ <STRONG>o</STRONG> The interface made assumptions (as does <EM>ncurses</EM>) about the escape
+ sequences sent to and received from the terminal.
+
+ For instance, the SVr4 <EM>curses</EM> library used the <STRONG>get_mouse</STRONG> capability
+ to tell the terminal which mouse button events it should send,
+ passing the mouse-button bit mask to the terminal. Also, it could
+ ask the terminal where the mouse was using the <STRONG>req_mouse_pos</STRONG>
+ capability.
+
+ Those features required a terminal program that had been modified
+ to work with SVr4 <EM>curses</EM>. They were not part of the X Consortium's
+ <EM>xterm</EM>.
+
+ When developing the <EM>xterm</EM> mouse support for <EM>ncurses</EM> in September 1995,
+ Eric Raymond was uninterested in using the same interface due to its
+ lack of documentation. Later, in 1998, Mark Hesseling provided support
+ in <EM>PDCurses</EM> 2.3 using the SVr4 interface. <EM>PDCurses</EM>, however, does not
+ use video terminals, making it unnecessary to be concerned about
+ compatibility with the escape sequences.
+
+