📄 curs_mouse.3x.html
字号:
The <STRONG>ungetmouse</STRONG> function behaves analogously to <STRONG>ungetch</STRONG>. It pushes a <STRONG>KEY_MOUSE</STRONG> event onto the input queue, and as- sociates with that event the given state data and screen- relative character-cell coordinates. The <STRONG>wenclose</STRONG> function tests whether a given pair of screen-relative character-cell coordinates is enclosed by a given window, returning TRUE if it is and FALSE other- wise. It is useful for determining what subset of the screen windows enclose the location of a mouse event. The <STRONG>wmouse_trafo</STRONG> function transforms a given pair of coor- dinates from stdscr-relative coordinates to screen-rela- tive coordinates or vice versa. Please remember, that stdscr-relative coordinates are not always identical to screen-relative coordinates due to the mechanism to re- serve lines on top or bottom of the screen for other pur- poses (ripoff() call, see also slk_... functions). If the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference the coordinates of a location inside the window <STRONG>win</STRONG>. They are converted to screen-relative coordinates and returned through the pointers. If the conversion was successful, the function returns <STRONG>TRUE</STRONG>. If one of the pa- rameters was NULL or the location is not inside the win- dow, <STRONG>FALSE</STRONG> is returned. If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the point- ers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference screen-relative coordinates. They are converted to stdscr-relative coordinates if the window <STRONG>win</STRONG> encloses this point. In this case the function returns <STRONG>TRUE</STRONG>. If one of the parameters is NULL or the point is not inside the window, <STRONG>FALSE</STRONG> is returned. Please notice, that the referenced coordinates are only replaced by the converted coordinates if the transformation was successful. The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou- sands of a second) that can elapse between press and re- lease events for them to be recognized as a click. Use <STRONG>mouseinterval(0)</STRONG> to disable click resolution. This func- tion returns the previous interval value. Use <STRONG>mouseinter-</STRONG> <STRONG>val(-1)</STRONG> to obtain the interval without altering it. The default is one sixth of a second. 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 <STRONG>get-</STRONG> <STRONG>str</STRONG> that expects a linefeed for input-loop termination.</PRE><H2>RETURN VALUE</H2><PRE> <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail- ure or <STRONG>OK</STRONG> upon successful completion. <STRONG>getmouse</STRONG> returns an error. If no mouse driver was ini- tialized, or if the mask parameter is zero, <STRONG>ungetmouse</STRONG> returns an error if the FIFO is full. <STRONG>mousemask</STRONG> returns the mask of reportable events. <STRONG>mouseinterval</STRONG> returns the previous interval value, unless the terminal was not initialized. In that case, it re- turns the maximum interval value (166). <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions returning <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.</PRE><H2>PORTABILITY</H2><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. The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the preprocessor can be used to test whether these features are present. If the interface is changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incremented. These values for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when configur- ing ncurses: 1 has definitions for reserved events. The mask uses 28 bits. 2 adds definitions for button 5, removes the defi- nitions for reserved events. The mask uses 29 bits. The order of the <STRONG>MEVENT</STRONG> structure members is not guaran- teed. Additional fields may be added to the structure in the future. Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using ei- ther xterm's built-in mouse-tracking API or platform-spe- cific drivers including Alessandro Rubini's gpm server. FreeBSD sysmouse OS/2 EMX If you are using an unsupported configuration, mouse events will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> (and the <STRONG>wmouse-</STRONG> <STRONG>mask</STRONG> function will always return <STRONG>0</STRONG>). If the terminfo entry contains a <STRONG>XM</STRONG> string, this is used in the xterm mouse driver to control the way the terminal is initialized for mouse operation. The default, if <STRONG>XM</STRONG> is not found, corresponds to private mode 1000 of xterm: \E[?1000%?%p1%{1}%=%th%el%; The z member in the event structure is not presently used. It is intended for use with touch screens (which may be pressure-sensitive) or with 3D-mice/trackballs/power gloves.</PRE><H2>BUGS</H2><PRE> Mouse events under xterm will not in fact be ignored dur- ing cooked mode, if they have been enabled by <STRONG>wmousemask</STRONG>. Instead, the xterm mouse report sequence will appear in the string read. Mouse events under xterm will not be detected correctly in a window with its keypad bit off, since they are inter- preted as a variety of function key. Your terminfo de- scription must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning of the response from xterm for mouse clicks). Because there are no standard terminal responses that would serve to identify terminals which support the xterm mouse protocol, <STRONG>ncurses</STRONG> assumes that if your $TERM envi- ronment variable contains "xterm", or <STRONG>kmous</STRONG> is defined in the terminal description, then the terminal may send mouse events.</PRE><H2>SEE ALSO</H2><PRE> <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>. <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG></PRE><HR><ADDRESS>Man(1) output converted with<a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a></ADDRESS></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -