1eaef79e5Smrg/*
2eaef79e5Smrg
3eaef79e5SmrgCopyright 1989, 1998  The Open Group
4eaef79e5Smrg
5eaef79e5SmrgPermission to use, copy, modify, distribute, and sell this software and its
6eaef79e5Smrgdocumentation for any purpose is hereby granted without fee, provided that
7eaef79e5Smrgthe above copyright notice appear in all copies and that both that
8eaef79e5Smrgcopyright notice and this permission notice appear in supporting
9eaef79e5Smrgdocumentation.
10eaef79e5Smrg
11eaef79e5SmrgThe above copyright notice and this permission notice shall be included
12eaef79e5Smrgin all copies or substantial portions of the Software.
13eaef79e5Smrg
14eaef79e5SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15eaef79e5SmrgOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16eaef79e5SmrgMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17eaef79e5SmrgIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
18eaef79e5SmrgOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19eaef79e5SmrgARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20eaef79e5SmrgOTHER DEALINGS IN THE SOFTWARE.
21eaef79e5Smrg
22eaef79e5SmrgExcept as contained in this notice, the name of The Open Group shall
23eaef79e5Smrgnot be used in advertising or otherwise to promote the sale, use or
24eaef79e5Smrgother dealings in this Software without prior written authorization
25eaef79e5Smrgfrom The Open Group.
26eaef79e5Smrg
27eaef79e5Smrg*/
28eaef79e5Smrg
29eaef79e5Smrg/*
30eaef79e5Smrg * Author:  Davor Matic, MIT X Consortium
31eaef79e5Smrg */
32eaef79e5Smrg
33eaef79e5Smrg#ifndef _Requests_h
34eaef79e5Smrg#define _Requests_h
35eaef79e5Smrg
36eaef79e5Smrgtypedef int (*DrawOnePointProc)(Widget, Position, Position, int);
37eaef79e5Smrgtypedef int (*DrawTwoPointProc)(Widget, Position, Position,
38eaef79e5Smrg				Position, Position, int);
39eaef79e5Smrgtypedef int (*InterfaceProc)(Widget);
40eaef79e5Smrg
41eaef79e5Smrgtypedef struct {
42eaef79e5Smrg    Boolean  success;
43eaef79e5Smrg    Position at_x, at_y;
44eaef79e5Smrg    Position from_x, from_y,
45eaef79e5Smrg             to_x, to_y;
46eaef79e5Smrg    XtPointer draw;
47eaef79e5Smrg    int      value;
48eaef79e5Smrg    Time     btime;
49eaef79e5Smrg    int      state;
50eaef79e5Smrg} BWStatus;
51eaef79e5Smrg
52eaef79e5Smrgextern void OnePointEngage ( Widget w, BWStatus *status, XtPointer draw, int *state );
53eaef79e5Smrgextern void OnePointTerminate ( Widget w, BWStatus *status, XtPointer draw );
54eaef79e5Smrgextern void OnePointTerminateTransparent ( Widget w, BWStatus *status, XtPointer draw );
55eaef79e5Smrgextern void DragOnePointEngage ( Widget w, BWStatus *status, XtPointer draw, int *state );
56eaef79e5Smrgextern void DragOnePointTerminate ( Widget w, BWStatus *status, XtPointer client_data );
57eaef79e5Smrgextern void TwoPointsEngage ( Widget w, BWStatus *status, XtPointer draw, int *state );
58eaef79e5Smrgextern void TwoPointsTerminate ( Widget w, BWStatus *status, XtPointer draw );
59eaef79e5Smrgextern void TwoPointsTerminateTransparent ( Widget w, BWStatus *status, XtPointer draw );
60eaef79e5Smrgextern void TwoPointsTerminateTimed ( Widget w, BWStatus *status, XtPointer draw );
61eaef79e5Smrgextern void DragTwoPointsEngage ( Widget w, BWStatus *status, XtPointer draw, int *state );
62eaef79e5Smrgextern void DragTwoPointsTerminate ( Widget w, BWStatus *status, XtPointer draw );
63eaef79e5Smrgextern void Interface ( Widget w, BWStatus *status, XtPointer action );
64eaef79e5Smrgextern void Paste ( Widget w, Position at_x, Position at_y, int value );
65eaef79e5Smrg
66eaef79e5Smrgextern void BWDragMarked(Widget w, Position at_x, Position at_y);
67eaef79e5Smrgextern void BWDragStored(Widget w, Position at_x, Position at_y);
68eaef79e5Smrgextern void BWCopy(Widget w, Position at_x, Position at_y, int value);
69eaef79e5Smrgextern void BWMove(Widget w, Position at_x, Position at_y, int value);
70eaef79e5Smrgextern void BWRestore(Widget w, Position at_x, Position at_y, int value);
71eaef79e5Smrgextern void BWDrawPoint(Widget w, Position x, Position y, bit value);
72cbc4e2beSmrgextern void BWBlindLine(Widget w, Position from_x, Position from_y,
73eaef79e5Smrg			Position to_x, Position to_y, int value);
74eaef79e5Smrgextern void BWDrawHotSpot(Widget w, Position x, Position y, int value);
75cbc4e2beSmrgextern void BWZoomIn(Widget w, Position from_x, Position from_y,
76eaef79e5Smrg		     Position to_x, Position to_y);
77eaef79e5Smrg
78cbc4e2beSmrgextern void OnePointHandler(Widget w, XtPointer client_data,
79eaef79e5Smrg			    XEvent *event, Boolean *cont);
80cbc4e2beSmrgextern void TwoPointsHandler(Widget w, XtPointer client_data,
81eaef79e5Smrg			     XEvent *event, Boolean *cont);
82cbc4e2beSmrgextern void DragTwoPointsHandler(Widget w, XtPointer client_data,
83eaef79e5Smrg				 XEvent *event, Boolean *cont);
84eaef79e5Smrg
85eaef79e5Smrg#endif /* _Requests_h */
86