Annotation of researchv10dc/630/man/src/p_man/man3/buttons.3r3l, revision 1.1.1.1

1.1       root        1: .ds ZZ DEVELOPMENT PACKAGE
                      2: .TH BUTTONS 3R/3L "630 MTG"
                      3: .XE "bttn()"
                      4: .XE "bttn1()"
                      5: .XE "bttn2()"
                      6: .XE "bttn3()"
                      7: .XE "bttn12()"
                      8: .XE "bttn13()"
                      9: .XE "bttn23()"
                     10: .XE "bttn123()"
                     11: .XE "button()"
                     12: .XE "button1()"
                     13: .XE "button2()"
                     14: .XE "button3()"
                     15: .XE "button12()"
                     16: .XE "button13()"
                     17: .XE "button23()"
                     18: .XE "button123()"
                     19: .XE "bttns()"
                     20: .SH NAME
                     21: button[123], bttn[123], bttns \- button state
                     22: .SH SYNOPSIS
                     23: .sp
                     24: .B #include <dmd.h>
                     25: .sp
                     26: \f3int button1 ( ), button2 ( ), button3 ( )\f1 
                     27: .br
                     28: \f3int button12 ( ), button13 ( ), button23 ( ), button123 ( )\f1 
                     29: .sp
                     30: .B int button (b)
                     31: .sp
                     32: \f3int bttn1 ( ), bttn2 ( ), bttn3 ( )\f1
                     33: .br
                     34: \f3int bttn12 ( ), bttn13 ( ), bttn23 ( ), bttn123 ( )\f1 
                     35: .sp
                     36: .B int bttn (b)
                     37: .sp
                     38: .B void bttns (updown)
                     39: .sp
                     40: .B int b;
                     41: .br
                     42: .B int updown;
                     43: .SH DESCRIPTION
                     44: The functions
                     45: .IR button1 ,
                     46: .IR button2 ,
                     47: and
                     48: .I button3
                     49: return the state of the associated mouse button.
                     50: They return a
                     51: non-zero if the button is depressed, 0 if not.
                     52: .PP
                     53: The
                     54: .I button12
                     55: function
                     56: and the other multi-button functions return
                     57: a Boolean OR
                     58: of their states,
                     59: e.g.,
                     60: true if either button 1
                     61: or
                     62: button 2 is depressed
                     63: (as opposed to button 1
                     64: and
                     65: button 2).
                     66: .PP
                     67: The
                     68: .I button
                     69: function
                     70: takes as an argument the button number
                     71: 1, 2, or 3
                     72: and returns the state of the button.
                     73: The process must be current and have possession of the mouse.
                     74: Furthermore, the mouse must be within the bounds of the window.
                     75: .PP
                     76: The bttn routines operate in the same manner as the corresponding
                     77: button routines except that they do not clip to the process's window.
                     78: This means that the calling processs must be current and have
                     79: possession of the mouse. It is not necessary, however, for the
                     80: mouse cursor to be inside the process's window.
                     81: .P
                     82: The ability to detect button transitions outside the window is
                     83: necessary in applications which have menus that may go outside the
                     84: window.
                     85: The button routines should be used in preference to the bttn routines
                     86: unless there is a specific need to be able to detect button state
                     87: changes outside of the process's window.
                     88: .P
                     89: Usage of the bttn routines is restricted to routines which do not
                     90: release the CPU, because the 630 MTG control process also watches
                     91: for button transitions outside of the current process's window.
                     92: The control process is the system process which normally handles
                     93: button operations when the mouse is not in the selected window.
                     94: Race conditions would otherwise arise as to whether the
                     95: application process or the control process should interpret the
                     96: button's state change.
                     97: .PP
                     98: The
                     99: .I bttn
                    100: function
                    101: takes as an argument the button number
                    102: 1, 2, or 3
                    103: and returns the state of the button.
                    104: It does not clip to the window.
                    105: .PP
                    106: The
                    107: .I bttns
                    108: function
                    109: is used to determine when the mouse state changes.
                    110: When \fIbttns\fR is called, it ``busy loops''; not returning and not releasing
                    111: the CPU until the mouse state changes.
                    112: If
                    113: .I updown
                    114: is 0,
                    115: .I bttns
                    116: ``busy loops'' until all buttons are released.
                    117: If
                    118: .I updown
                    119: is 1,
                    120: .I bttns
                    121: ``busy loops'' until any button is depressed.
                    122: If
                    123: .I updown
                    124: is not 0 or 1,
                    125: .I bttns
                    126: returns immediately.
                    127: .PP
                    128: Note that these functions are only valid when \fBown()&MOUSE\fR is
                    129: true.
                    130: .SH EXAMPLE
                    131: The following code segment could be written to ``doodle'' in
                    132: a window.
                    133: .PP
                    134: .RS 3
                    135: .ft CM
                    136: .nf
                    137: #include <dmd.h>
                    138: 
                    139: main()
                    140: {
                    141:        request (MOUSE);
                    142:        for (;;){
                    143:                wait (MOUSE);
                    144:                if (button3())
                    145:                        break;
                    146:                if (button1())
                    147:                        point (&display, mouse.xy,
                    148:                            F_STORE);
                    149:        }
                    150: }
                    151: .fi
                    152: .ft R
                    153: .RE
                    154: .SH SEE ALSO
                    155: resources(3R), transform(3R/3L).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.