]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - Ada95/html/man/curs_mouse.3x.html
ncurses 5.0
[ncurses.git] / Ada95 / html / man / curs_mouse.3x.html
diff --git a/Ada95/html/man/curs_mouse.3x.html b/Ada95/html/man/curs_mouse.3x.html
new file mode 100644 (file)
index 0000000..57b93a5
--- /dev/null
@@ -0,0 +1,224 @@
+<HTML>
+<BODY>
+<PRE>
+       <STRONG>getmouse</STRONG>,  <STRONG>ungetmouse</STRONG>,  <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>wmouse_trafo</STRONG>,
+       <STRONG>mouseinterval</STRONG> - mouse interface through curses
+
+
+</PRE>
+<H2>SYNOPSIS</H2><PRE>
+       <STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+
+       <STRONG>typedef</STRONG> <STRONG>unsigned</STRONG> <STRONG>long</STRONG> <STRONG>mmask_t;</STRONG>
+
+       <STRONG>typedef</STRONG> <STRONG>struct</STRONG>
+       <STRONG>{</STRONG>
+           <STRONG>short</STRONG> <STRONG>id;</STRONG>         <EM>/*</EM> <EM>ID</EM> <EM>to</EM> <EM>distinguish</EM> <EM>multiple</EM> <EM>devices</EM> <EM>*/</EM>
+           <STRONG>int</STRONG> <STRONG>x,</STRONG> <STRONG>y,</STRONG> <STRONG>z;</STRONG>      <EM>/*</EM> <EM>event</EM> <EM>coordinates</EM> <EM>*/</EM>
+           <STRONG>mmask_t</STRONG> <STRONG>bstate;</STRONG>   <EM>/*</EM> <EM>button</EM> <EM>state</EM> <EM>bits</EM> <EM>*/</EM>
+       <STRONG>}</STRONG>
+       <STRONG>MEVENT;</STRONG>
+       <STRONG>int</STRONG> <STRONG>getmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+       <STRONG>int</STRONG> <STRONG>ungetmouse(MEVENT</STRONG> <STRONG>*event);</STRONG>
+       <STRONG>mmask_t</STRONG> <STRONG>mousemask(mmask_t</STRONG> <STRONG>newmask,</STRONG> <STRONG>mmask_t</STRONG> <STRONG>*oldmask);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>wenclose(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
+       <STRONG>bool</STRONG> <STRONG>wmouse_trafo(const</STRONG> <STRONG>WINDOW*</STRONG> <STRONG>win,</STRONG>  <STRONG>int*</STRONG>  <STRONG>pY,</STRONG>  <STRONG>int*</STRONG>  <STRONG>pX,</STRONG>
+       <STRONG>bool</STRONG> <STRONG>to_screen);</STRONG>
+       <STRONG>int</STRONG> <STRONG>mouseinterval(int</STRONG> <STRONG>erval);</STRONG>
+
+
+</PRE>
+<H2>DESCRIPTION</H2><PRE>
+       These  functions provide an interface to mouse events from
+       <STRONG><A HREF="ncurses.3x.html">ncurses(3X)</A></STRONG>.  Mouse events are  represented  by  <STRONG>KEY_MOUSE</STRONG>
+       pseudo-key values in the <STRONG>wgetch</STRONG> input stream.
+
+       To  make mouse events visible, use the <STRONG>mousemask</STRONG> function.
+       This will  set  the  mouse  events  to  be  reported.   By
+       default,  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
+       location  with  the  previous  value of the given window's
+       mouse event mask.
+
+       As a side effect, setting a zero mousemask  may  turn  off
+       the  mouse pointer; setting a nonzero mask may turn it on.
+       Whether this happens is device-dependent.
+
+       Here are the mouse event type masks:
+
+       l l _ _ l l.   <EM>Name</EM> <EM>Description</EM>  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
+       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
+       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  <STRONG>wgetch</STRONG>  function on that window may
+       return <STRONG>KEY_MOUSE</STRONG> as an indicator that a  mouse  event  has
+       been queued.  To read the event data and pop the event off
+       the queue, call <STRONG>getmouse</STRONG>.  This function will return <STRONG>OK</STRONG> if
+       a mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
+       otherwise.  When <STRONG>getmouse</STRONG> returns <STRONG>OK</STRONG>, 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.
+
+       The <STRONG>ungetmouse</STRONG> function behaves  analogously  to  <STRONG>ungetch</STRONG>.
+       It  pushes  a  <STRONG>KEY_MOUSE</STRONG>  event  onto the input queue, and
+       associates 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
+       reserve lines on top or bottom of  the  screen  for  other
+       purposes  (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 suc-
+       cessful, the function returns <STRONG>TRUE</STRONG>. If one of the  parame-
+       ters  was  NULL  or the location is not inside the window,
+       <STRONG>FALSE</STRONG> is returned. If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the pointers <STRONG>pY,</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  con-
+       verted 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
+       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 <STRONG>get-</STRONG>
+       <STRONG>str</STRONG> that expects a linefeed for input-loop termination.
+
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+       <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG> and <STRONG>mouseinterval</STRONG> return the  integer
+       <STRONG>ERR</STRONG>  upon failure or <STRONG>OK</STRONG> upon successful completion. <STRONG>mouse-</STRONG>
+       <STRONG>mask</STRONG> returns the mask of reportable events.  <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 (its value is 1).   NOTE:  THIS  INTERFACE  IS
+       EXPERIMENTAL  AND IS SUBJECT TO CHANGE WITHOUT NOTICE!  If
+       the interface is changed, the value of  <STRONG>NCURSES_MOUSE_VER-</STRONG>
+       <STRONG>SION</STRONG> will be incremented.
+
+       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
+       either xterm's built-in mouse-tracking API  or  Alessandro
+       Rubini's  gpm  server.   If  you are using something other
+       than xterm there is no gpm daemon running on your machine,
+       mouse  events  will not be visible to <STRONG><A HREF="ncurses.3x.html">ncurses(3X)</A></STRONG> (and the
+       <STRONG>wmousemask</STRONG> function will always return <STRONG>0</STRONG>).
+
+       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.
+       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.
+
+
+</PRE>
+<H2>SEE ALSO</H2><PRE>
+       <STRONG><A HREF="ncurses.3x.html">curses(3X)</A></STRONG>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</PRE>
+</BODY>
+</HTML>