X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fcurs_mouse.3x.html;h=194e4d0f1a6ecedf986338c302639456682ea014;hp=6e1ca87acec5824e17e34f06a9358aa921204de3;hb=58552e8c761a70f8f0bd591fecdf576fa8216e3e;hpb=b1f61d9f3aa244512045a6b02e759825d7049d34 diff --git a/doc/html/man/curs_mouse.3x.html b/doc/html/man/curs_mouse.3x.html index 6e1ca87a..194e4d0f 100644 --- a/doc/html/man/curs_mouse.3x.html +++ b/doc/html/man/curs_mouse.3x.html @@ -1,47 +1,89 @@ + + +
+ + +- +curs_mouse(3x) curs_mouse(3x) --
- getmouse, ungetmouse, mousemask, wenclose, mouse_trafo, - wmouse_trafo, mouseinterval - mouse interface through - curses --
- #include <curses.h> - - typedef unsigned long mmask_t; - - typedef struct - { - short id; /* ID to distinguish multiple devices */ - int x, y, z; /* event coordinates */ - mmask_t bstate; /* button state bits */ - } - MEVENT; - int getmouse(MEVENT *event); - int ungetmouse(MEVENT *event); - mmask_t mousemask(mmask_t newmask, mmask_t *oldmask); - bool wenclose(WINDOW *win, int y, int x); - bool mouse_trafo(int* pY, int* pX, bool to_screen); - bool wmouse_trafo(const WINDOW* win, int* pY, int* pX, - bool to_screen); - int mouseinterval(int erval); +
+ has_mouse, getmouse, ungetmouse, mousemask, wenclose, + mouse_trafo, wmouse_trafo, mouseinterval - mouse interface + through curses --
+ +
+ #include <curses.h> + + typedef unsigned long mmask_t; + + typedef struct { + short id; /* ID to distinguish multiple devices */ + int x, y, z; /* event coordinates */ + mmask_t bstate; /* button state bits */ + } MEVENT; + + bool has_mouse(void); + int getmouse(MEVENT *event); + int ungetmouse(MEVENT *event); + mmask_t mousemask(mmask_t newmask, mmask_t *oldmask); + bool wenclose(const WINDOW *win, int y, int x); + bool mouse_trafo(int* pY, int* pX, bool to_screen); + bool wmouse_trafo(const WINDOW* win, int* pY, int* pX, + bool to_screen); + int mouseinterval(int erval); + + +
These functions provide an interface to mouse events from - ncurses(3x). Mouse events are represented by KEY_MOUSE - pseudo-key values in the wgetch input stream. + ncurses(3x). Mouse events are represented by KEY_MOUSE + pseudo-key values in the wgetch(3x) input stream. + - To make mouse events visible, use the mousemask function. - This will set the mouse events to be reported. By - default, no mouse events are reported. The function will +
+ To make mouse events visible, use the mousemask function. + This will set the mouse events to be reported. By de- + fault, no mouse events are reported. The function will return a mask to indicate which of the specified mouse events can be reported; on complete failure it returns 0. If oldmask is non-NULL, this function fills the indicated @@ -52,191 +94,272 @@ the mouse pointer; setting a nonzero mask may turn it on. Whether this happens is device-dependent. - Here are the mouse event type masks: - Name Description +
+ Here are the mouse event type masks which may be defined: + + Name Description --------------------------------------------------------------------- BUTTON1_PRESSED mouse button 1 down BUTTON1_RELEASED mouse button 1 up BUTTON1_CLICKED mouse button 1 clicked BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked - + --------------------------------------------------------------------- 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 + --------------------------------------------------------------------- BUTTON4_PRESSED mouse button 4 down BUTTON4_RELEASED mouse button 4 up BUTTON4_CLICKED mouse button 4 clicked BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked + --------------------------------------------------------------------- + BUTTON5_PRESSED mouse button 5 down + BUTTON5_RELEASED mouse button 5 up + BUTTON5_CLICKED mouse button 5 clicked + BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked + BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked + --------------------------------------------------------------------- BUTTON_SHIFT shift was down during button state change BUTTON_CTRL control was down during button state change BUTTON_ALT alt was down during button state change ALL_MOUSE_EVENTS report all button state changes REPORT_MOUSE_POSITION report mouse movement + --------------------------------------------------------------------- + - Once a class of mouse events have been made visible in a - window, calling the wgetch function on that window may - return KEY_MOUSE as an indicator that a mouse event has - been queued. To read the event data and pop the event off - the queue, call getmouse. This function will return OK if - a mouse event is actually visible in the given window, ERR - otherwise. When getmouse returns OK, the data deposited +
+ Once a class of mouse events has been made visible in a + window, calling the wgetch function on that window may re- + turn KEY_MOUSE as an indicator that a mouse event has been + queued. To read the event data and pop the event off the + queue, call getmouse. This function will return OK if a + mouse event is actually visible in the given window, ERR + otherwise. When getmouse returns OK, the data deposited as y and x in the event structure coordinates will be screen-relative character-cell coordinates. The returned state mask will have exactly one bit set to indicate the - event type. + event type. The corresponding data in the queue is marked + invalid. A subsequent call to getmouse will retrieve the + next older item from the queue. + + +
+ The ungetmouse function behaves analogously to ungetch. + It pushes a KEY_MOUSE event onto the input queue, and as- + sociates with that event the given state data and screen- + relative character-cell coordinates. - The ungetmouse function behaves analogously to ungetch. - It pushes a KEY_MOUSE event onto the input queue, and - associates with that event the given state data and - screen-relative character-cell coordinates. - The wenclose function tests whether a given pair of +
+ The wenclose 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- + 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 wmouse_trafo function transforms a given pair of coor- - dinates from stdscr-relative coordinates to screen-rela- - tive coordinates or vice versa. Please remember, that + +
+ The wmouse_trafo function transforms a given pair of coor- + dinates from stdscr-relative coordinates to coordinates + relative to the given window or vice versa. The resulting stdscr-relative coordinates are not always identical to - screen-relative coordinates due to the mechanism to - reserve lines on top or bottom of the screen for other - purposes (ripoff() call, see also slk_... functions). If - the parameter to_screen is TRUE, the pointers pY, pX must - reference the coordinates of a location inside the window - win. They are converted to screen-relative coordinates and - returned through the pointers. If the conversion was suc- - cessful, the function returns TRUE. If one of the parame- - ters was NULL or the location is not inside the window, - FALSE is returned. If to_screen is FALSE, the pointers pY, - pX must reference screen-relative coordinates. They are - converted to stdscr-relative coordinates if the window win - encloses this point. In this case the function returns - TRUE. If one of the parameters is NULL or the point is not - inside the window, FALSE is returned. Please notice, that - the referenced coordinates are only replaced by the con- - verted coordinates if the transformation was successful. - - The mouseinterval function sets the maximum time (in thou- - sands of a second) that can elapse between press and - release events in order for them to be recognized as a - click. This function returns the previous interval value. - The default is one fifth 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 get- - str that expects a linefeed for input-loop termination. + window-relative coordinates due to the mechanism to re- + serve lines on top or bottom of the screen for other pur- + poses (see the ripoffline and slk_init(3x) calls, for ex- + ample). + o If the parameter to_screen is TRUE, the pointers pY, + pX must reference the coordinates of a location inside + the window win. They are converted to window-relative + coordinates and returned through the pointers. If the + conversion was successful, the function returns TRUE. + o If one of the parameters was NULL or the location is + not inside the window, FALSE is returned. --
- getmouse, ungetmouse and mouseinterval return the integer - ERR upon failure or OK upon successful completion. mouse- - mask returns the mask of reportable events. wenclose and - wmouse_trafo are boolean functions returning TRUE or FALSE - depending on their test result. + o If to_screen is FALSE, the pointers pY, pX must refer- + ence window-relative coordinates. They are converted + to stdscr-relative coordinates if the window win en- + closes this point. In this case the function returns + TRUE. + o If one of the parameters is NULL or the point is not + inside the window, FALSE is returned. The referenced + coordinates are only replaced by the converted coordi- + nates if the transformation was successful. --
- These calls were designed for ncurses(3x), and are not - found in SVr4 curses, 4.4BSD curses, or any other previous - version of curses. - The feature macro NCURSES_MOUSE_VERSION is provided so the - preprocessor can be used to test whether these features - are present (its value is 1). If the interface is - changed, the value of NCURSES_MOUSE_VERSION will be incre- - mented. +
+ The mouse_trafo function performs the same translation as + wmouse_trafo, using stdscr for win. - The order of the MEVENT structure members is not guaran- - teed. Additional fields may be added to the structure in - the future. - Under ncurses(3x), these calls are implemented using - either xterm's built-in mouse-tracking API or Alessandro - Rubini's gpm server. If you are using something other - than xterm and there is no gpm daemon running on your - machine, mouse events will not be visible to ncurses(3x) - (and the wmousemask function will always return 0). +
+ The mouseinterval 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 + mouseinterval(0) to disable click resolution. This func- + tion returns the previous interval value. Use mouseinter- + val(-1) to obtain the interval without altering it. The + default is one sixth of a second. - 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. +
+ The has_mouse function returns TRUE if the mouse driver + has been successfully initialized. --
- Mouse events under xterm will not in fact be ignored dur- - ing cooked mode, if they have been enabled by wmousemask. - Instead, the xterm mouse report sequence will appear in - the string read. + 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 get- + str that expects a linefeed for input-loop termination. - 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 - description must have kmous 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, ncurses assumes that if your $DISPLAY - environment variable is set, and kmous is defined in the - terminal description, then the terminal may send mouse - events. +
+ getmouse and ungetmouse return the integer ERR upon fail- + ure or OK upon successful completion: + getmouse + returns an error. --
- curses(3x). + o If no mouse driver was initialized, or if the mask + parameter is zero, + o It also returns an error if no more events remain + in the queue. + ungetmouse + returns an error if the FIFO is full. + mousemask returns the mask of reportable events. + mouseinterval returns the previous interval value, unless + the terminal was not initialized. In that case, it re- + turns the maximum interval value (166). + wenclose and wmouse_trafo are boolean functions returning + TRUE or FALSE depending on their test result. +
+ These calls were designed for ncurses(3x), and are not + found in SVr4 curses, 4.4BSD curses, or any other previous + version of curses. + The feature macro NCURSES_MOUSE_VERSION is provided so the + preprocessor can be used to test whether these features + are present. If the interface is changed, the value of + NCURSES_MOUSE_VERSION will be incremented. These values + for NCURSES_MOUSE_VERSION 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 defini- + tions for reserved events. The mask uses 29 bits. + The order of the MEVENT structure members is not guaran- + teed. Additional fields may be added to the structure in + the future. + Under ncurses(3x), these calls are implemented using ei- + ther xterm's built-in mouse-tracking API or platform-spe- + cific drivers including + o Alessandro Rubini's gpm server + o FreeBSD sysmouse + o OS/2 EMX + If you are using an unsupported configuration, mouse + events will not be visible to ncurses(3x) (and the mouse- + mask function will always return 0). + If the terminfo entry contains a XM string, this is used + in the xterm mouse driver to control the way the terminal + is initialized for mouse operation. The default, if XM 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. + The ALL_MOUSE_EVENTS class does not include RE- + PORT_MOUSE_POSITION. They are distinct. For example, in + xterm, wheel/scrolling mice send position reports as a se- + quence of presses of buttons 4 or 5 without matching but- + ton-releases. +
+ Mouse events under xterm will not in fact be ignored dur- + ing cooked mode, if they have been enabled by mousemask. + 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 should have kmous set to "\E[M" (the beginning + of the response from xterm for mouse clicks). Other val- + ues for kmous are permitted, but under the same assump- + tion, i.e., it is the beginning of the response. + Because there are no standard terminal responses that + would serve to identify terminals which support the xterm + mouse protocol, ncurses assumes that if your $TERM envi- + ronment variable contains "xterm", or kmous is defined in + the terminal description, then the terminal may send mouse + events. +
+ curses(3x), curs_kernel(3x), curs_slk(3x), curs_vari- + ables(3x). + curs_mouse(3x)-