117ca54c3Smrg/************************************************************
217ca54c3Smrg
3ea1d6981SmrgCopyright (c) 2004, Sun Microsystems, Inc.
417ca54c3Smrg
517ca54c3SmrgPermission to use, copy, modify, distribute, and sell this software and its
617ca54c3Smrgdocumentation for any purpose is hereby granted without fee, provided that
717ca54c3Smrgthe above copyright notice appear in all copies and that both that
817ca54c3Smrgcopyright notice and this permission notice appear in supporting
917ca54c3Smrgdocumentation.
1017ca54c3Smrg
1117ca54c3SmrgThe above copyright notice and this permission notice shall be included in
1217ca54c3Smrgall copies or substantial portions of the Software.
1317ca54c3Smrg
1417ca54c3SmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1517ca54c3SmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1617ca54c3SmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
1717ca54c3SmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
1817ca54c3SmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
1917ca54c3SmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2017ca54c3Smrg
2117ca54c3SmrgExcept as contained in this notice, the name of The Open Group shall not be
2217ca54c3Smrgused in advertising or otherwise to promote the sale, use or other dealings
2317ca54c3Smrgin this Software without prior written authorization from The Open Group.
2417ca54c3Smrg
2517ca54c3Smrg********************************************************/
2617ca54c3Smrg
2717ca54c3Smrg/*
2817ca54c3Smrg * lge.h - Looking Glass Extension Definitions
2917ca54c3Smrg */
30ea1d6981Smrg
3117ca54c3Smrg#ifndef _LGEWIRE_H
3217ca54c3Smrg#define _LGEWIRE_H
3317ca54c3Smrg
3417ca54c3Smrg#include "X11/Xfuncproto.h"
3517ca54c3Smrg
3617ca54c3Smrg#define LGE_NAME "LGE"
3717ca54c3Smrg
3817ca54c3Smrg/* Current interface version numbers */
39ea1d6981Smrg#define LGE_MAJOR_VERSION   5
4017ca54c3Smrg#define LGE_MINOR_VERSION   0
4117ca54c3Smrg
4217ca54c3Smrg/* Display Server is alive */
4317ca54c3Smrg#define  X_LgeQueryVersion	     0
4417ca54c3Smrg#define  X_LgeRegisterClient         1
4517ca54c3Smrg#define  X_LgeRegisterScreen         2
4617ca54c3Smrg#define  X_LgeControlLgMode          3
4717ca54c3Smrg#define  X_LgeSendEvent              4
4817ca54c3Smrg
4917ca54c3Smrg/* Arguments to XLgeRegisterClient */
5017ca54c3Smrg#define LGE_CLIENT_GENERIC	     0
5117ca54c3Smrg#define LGE_CLIENT_PICKER            1
5217ca54c3Smrg#define LGE_CLIENT_EVENT_DELIVERER   2
5317ca54c3Smrg
5417ca54c3Smrgtypedef struct {
55ea1d6981Smrg    CARD8       reqType;
5617ca54c3Smrg    CARD8       lgeReqType;
57ea1d6981Smrg    CARD16	length;
5817ca54c3Smrg} xLgeQueryVersionReq;
5917ca54c3Smrg
6017ca54c3Smrg#define sz_xLgeQueryVersionReq	sizeof(xLgeQueryVersionReq)
6117ca54c3Smrg
6217ca54c3Smrgtypedef struct {
6317ca54c3Smrg    /* Always X_Reply */
64ea1d6981Smrg    BYTE        type;
6517ca54c3Smrg    CARD8       unused;
66ea1d6981Smrg    CARD16	sequenceNumber;
67ea1d6981Smrg    CARD32	length;
68ea1d6981Smrg    CARD32	majorVersion;
69ea1d6981Smrg    CARD32	minorVersion;
70ea1d6981Smrg    CARD32	implementation;
71ea1d6981Smrg    CARD32	pad3;
72ea1d6981Smrg    CARD32	pad4;
73ea1d6981Smrg    CARD32	pad5;
7417ca54c3Smrg} xLgeQueryVersionReply;
7517ca54c3Smrg
7617ca54c3Smrg#define sz_xLgeQueryVersionReply sizeof(xLgeQueryVersionReply)
7717ca54c3Smrg
7817ca54c3Smrgtypedef struct {
7917ca54c3Smrg    CARD8  reqType;
8017ca54c3Smrg    CARD8  lgeReqType;
81ea1d6981Smrg    CARD16 length;
8217ca54c3Smrg    CARD8  clientType;
8317ca54c3Smrg    BOOL   sendEventDirect;
84ea1d6981Smrg    CARD16 pad2;
8517ca54c3Smrg} xLgeRegisterClientReq;
8617ca54c3Smrg
8717ca54c3Smrg#define sz_xLgeRegisterClientReq sizeof(xLgeRegisterClientReq)
8817ca54c3Smrg
8917ca54c3Smrgtypedef struct {
9017ca54c3Smrg    CARD8  reqType;
9117ca54c3Smrg    CARD8  lgeReqType;
92ea1d6981Smrg    CARD16 length;
9317ca54c3Smrg    /* The pseudo-root window of the screen */
94ea1d6981Smrg    Window prw;
9517ca54c3Smrg} xLgeRegisterScreenReq;
9617ca54c3Smrg
9717ca54c3Smrg#define sz_xLgeRegisterScreenReq sizeof(xLgeRegisterScreenReq)
9817ca54c3Smrg
99ea1d6981Smrgtypedef struct {
100ea1d6981Smrg    CARD8     reqType;
101ea1d6981Smrg    CARD8     lgeReqType;
102ea1d6981Smrg    CARD16    length;
10317ca54c3Smrg    BOOL      enable;
10417ca54c3Smrg    CARD8     pad1;
105ea1d6981Smrg    CARD16    pad2;
106ea1d6981Smrg} xLgeControlLgModeReq;
10717ca54c3Smrg
10817ca54c3Smrg#define sz_xLgeControlLgModeReq sizeof(xLgeControlLgModeReq)
10917ca54c3Smrg
110ea1d6981Smrgtypedef struct {
111ea1d6981Smrg    CARD8     reqType;
112ea1d6981Smrg    CARD8     lgeReqType;
113ea1d6981Smrg    CARD16    length;
114ea1d6981Smrg    xEvent    event;
115ea1d6981Smrg} xLgeSendEventReq;
11617ca54c3Smrg
11717ca54c3Smrg#define sz_xLgeSendEventReq sizeof(xLgeSendEventReq)
11817ca54c3Smrg
11917ca54c3Smrg#endif /* LGEWIRE_H */
12017ca54c3Smrg
121