summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2017-12-13 15:12:27 -0800
committerKeith Packard <keithp@keithp.com>2017-12-13 15:12:27 -0800
commitdd36cfb57bb00bd8dce4cf3b5051bb97cc80b406 (patch)
tree4c5cc09a736a1d52b0e7cb815cef5110c75d1fc2
parente3e5ae4b35b59b73a712b3849853528c0c05b677 (diff)
parentd260141e0362484c84943c6113248d40e50dd66d (diff)
Merge windowswmproto
-rw-r--r--.gitignore78
-rw-r--r--COPYING23
-rw-r--r--Makefile.am20
-rw-r--r--README34
-rwxr-xr-xautogen.sh14
-rw-r--r--configure.ac13
-rw-r--r--windowswm.h195
-rw-r--r--windowswmproto.pc.in9
-rw-r--r--windowswmstr.h169
9 files changed, 555 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d51685f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,78 @@
+#
+# X.Org module default exclusion patterns
+# The next section if for module specific patterns
+#
+# Do not edit the following section
+# GNU Build System (Autotools)
+aclocal.m4
+autom4te.cache/
+autoscan.log
+ChangeLog
+compile
+config.guess
+config.h
+config.h.in
+config.log
+config-ml.in
+config.py
+config.status
+config.status.lineno
+config.sub
+configure
+configure.scan
+depcomp
+.deps/
+INSTALL
+install-sh
+.libs/
+libtool
+libtool.m4
+ltmain.sh
+lt~obsolete.m4
+ltoptions.m4
+ltsugar.m4
+ltversion.m4
+Makefile
+Makefile.in
+mdate-sh
+missing
+mkinstalldirs
+*.pc
+py-compile
+stamp-h?
+symlink-tree
+texinfo.tex
+ylwrap
+
+# Do not edit the following section
+# Edit Compile Debug Document Distribute
+*~
+*.[0-9]
+*.[0-9]x
+*.bak
+*.bin
+core
+*.dll
+*.exe
+*-ISO*.bdf
+*-JIS*.bdf
+*-KOI8*.bdf
+*.kld
+*.ko
+*.ko.cmd
+*.lai
+*.l[oa]
+*.[oa]
+*.obj
+*.patch
+*.so
+*.pcf.gz
+*.pdb
+*.tar.bz2
+*.tar.gz
+#
+# Add & Override patterns for windowswmproto
+#
+# Edit the following section as needed
+# For example, !report.pc overrides *.pc. See 'man gitignore'
+#
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..55a98f7
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,23 @@
+Copyright (c) 2002 Apple Computer, Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..7143e0b
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,20 @@
+windowswmdir = $(includedir)/X11/extensions
+windowswm_HEADERS = \
+ windowswm.h \
+ windowswmstr.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = windowswmproto.pc
+
+
+MAINTAINERCLEANFILES = ChangeLog INSTALL
+
+.PHONY: ChangeLog INSTALL
+
+INSTALL:
+ $(INSTALL_CMD)
+
+ChangeLog:
+ $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog INSTALL
diff --git a/README b/README
new file mode 100644
index 0000000..cd4ce14
--- /dev/null
+++ b/README
@@ -0,0 +1,34 @@
+This module provides the definition of the WindowsWM extension to the
+X11 protocol, used for coordination between an X11 server and the
+Microsoft Windows native window manager.
+
+WindowsWM is only intended to be used on Cygwin when running a
+rootless XWin server.
+
+All questions regarding this software should be directed at the
+Xorg mailing list:
+
+ http://lists.freedesktop.org/mailman/listinfo/xorg
+
+or to the Cygwin/X project:
+
+ http://x.cygwin.com/
+
+Please submit bug reports to the Xorg bugzilla:
+
+ https://bugs.freedesktop.org/enter_bug.cgi?product=xorg
+
+The master development code repository can be found at:
+
+ git://anongit.freedesktop.org/git/xorg/proto/windowswmproto
+
+ http://cgit.freedesktop.org/xorg/proto/windowswmproto
+
+For patch submission instructions, see:
+
+ http://www.x.org/wiki/Development/Documentation/SubmittingPatches
+
+For more information on the git code manager, see:
+
+ http://wiki.x.org/wiki/GitPage
+
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..fc34bd5
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,14 @@
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+if test -z "$NOCONFIGURE"; then
+ $srcdir/configure "$@"
+fi
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..94ff6b4
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,13 @@
+AC_PREREQ([2.60])
+AC_INIT([WindowsWMProto], [1.0.4], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg])
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+
+# Require xorg-macros: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+ [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+XORG_DEFAULT_OPTIONS
+
+AC_CONFIG_FILES([Makefile
+ windowswmproto.pc])
+AC_OUTPUT
diff --git a/windowswm.h b/windowswm.h
new file mode 100644
index 0000000..2c3379f
--- /dev/null
+++ b/windowswm.h
@@ -0,0 +1,195 @@
+/*
+ * WindowsWM extension is based on AppleWM extension
+ * Authors: Kensuke Matsuzaki
+ */
+/**************************************************************************
+
+Copyright (c) 2002 Apple Computer, Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+#ifndef _WINDOWSWM_H_
+#define _WINDOWSWM_H_
+
+#include <X11/Xfuncproto.h>
+
+#define X_WindowsWMQueryVersion 0
+#define X_WindowsWMFrameGetRect 1
+#define X_WindowsWMFrameDraw 2
+#define X_WindowsWMFrameSetTitle 3
+#define X_WindowsWMDisableUpdate 4
+#define X_WindowsWMReenableUpdate 5
+#define X_WindowsWMSelectInput 6
+#define X_WindowsWMSetFrontProcess 7
+
+/* Events */
+#define WindowsWMControllerNotify 0
+#define WindowsWMActivationNotify 1
+#define WindowsWMNumberEvents 2
+
+#define WindowsWMControllerNotifyMask (1L << 0)
+#define WindowsWMActivationNotifyMask (1L << 1)
+
+/* "Kinds" of ControllerNotify events */
+#define WindowsWMMinimizeWindow 0
+#define WindowsWMMaximizeWindow 1
+#define WindowsWMRestoreWindow 2
+#define WindowsWMCloseWindow 3
+#define WindowsWMBringAllToFront 4
+#define WindowsWMHideWindow 5
+#define WindowsWMMoveWindow 6
+#define WindowsWMResizeWindow 7
+#define WindowsWMActivateWindow 8
+
+/* "Kinds" of ActivationNotify events */
+#define WindowsWMIsActive 0
+#define WindowsWMIsInactive 1
+
+/* Errors */
+#define WindowsWMClientNotLocal 0
+#define WindowsWMOperationNotSupported 1
+#define WindowsWMNumberErrors (WindowsWMOperationNotSupported + 1)
+
+/* Possible value for frame_rect argument to XWindowsWMFrameGetRect() */
+#define WindowsWMFrameRectTitleBar 1
+#define WindowsWMFrameRectTracking 2
+#define WindowsWMFrameRectGrowBox 3
+
+/* Window frame styles */
+#define WindowsWMFrameStyleBorder 0x800000
+#define WindowsWMFrameStyleCaption 0xc00000
+#define WindowsWMFrameStyleChild 0x40000000
+#define WindowsWMFrameStyleChildWindow 0x40000000
+#define WindowsWMFrameStyleClipChildren 0x2000000
+#define WindowsWMFrameStyleClipSiblings 0x4000000
+#define WindowsWMFrameStyleDisabled 0x8000000
+#define WindowsWMFrameStyleDlgFrame 0x400000
+#define WindowsWMFrameStyleGroup 0x20000
+#define WindowsWMFrameStyleHScroll 0x100000
+#define WindowsWMFrameStyleIconic 0x20000000
+#define WindowsWMFrameStyleMaximize 0x1000000
+#define WindowsWMFrameStyleMaximizeBox 0x10000
+#define WindowsWMFrameStyleMinimize 0x20000000
+#define WindowsWMFrameStyleMinimizeBox 0x20000
+#define WindowsWMFrameStyleOverlapped 0
+#define WindowsWMFrameStyleOverlappedWindow 0xcf0000
+#define WindowsWMFrameStylePopup 0x80000000
+#define WindowsWMFrameStylePopupWindow 0x80880000
+#define WindowsWMFrameStyleSizeBox 0x40000
+#define WindowsWMFrameStyleSysMenu 0x80000
+#define WindowsWMFrameStyleTabStop 0x10000
+#define WindowsWMFrameStyleThickFrame 0x40000
+#define WindowsWMFrameStyleTiled 0
+#define WindowsWMFrameStyleTiledWindow 0xcf0000
+#define WindowsWMFrameStyleVisible 0x10000000
+#define WindowsWMFrameStyleVScroll 0x200000
+
+/* Window frame Ex-styles */
+#define WindowsWMFrameStyleExAcceptFiles 16
+#define WindowsWMFrameStyleExAppWindow 0x40000
+#define WindowsWMFrameStyleExClientEdge 512
+#define WindowsWMFrameStyleExComposited 0x2000000
+#define WindowsWMFrameStyleExContextHelp 0x400
+#define WindowsWMFrameStyleExControlParent 0x10000
+#define WindowsWMFrameStyleExDlgModalFrame 1
+#define WindowsWMFrameStyleExLayered 0x80000
+#define WindowsWMFrameStyleExLayoutRtl 0x400000
+#define WindowsWMFrameStyleExLeft 0
+#define WindowsWMFrameStyleExLeftScrollBar 0x4000
+#define WindowsWMFrameStyleExLtrReading 0
+#define WindowsWMFrameStyleExMDIChild 64
+#define WindowsWMFrameStyleExNoActivate 0x8000000
+#define WindowsWMFrameStyleExNoInheritLayout 0x100000
+#define WindowsWMFrameStyleExNoParentNotify 4
+#define WindowsWMFrameStyleExOverlappedWindow 0x300
+#define WindowsWMFrameStyleExPaletteWindow 0x188
+#define WindowsWMFrameStyleExRight 0x1000
+#define WindowsWMFrameStyleExRightScrollBar 0
+#define WindowsWMFrameStyleExRtlReading 0x2000
+#define WindowsWMFrameStyleExStaticEdge 0x20000
+#define WindowsWMFrameStyleExToolWindow 128
+#define WindowsWMFrameStyleExTopMost 8
+#define WindowsWMFrameStyleExTransparent 32
+#define WindowsWMFrameStyleExWindowEdge 256
+
+#define WINDOWSWM_RAISE_ON_CLICK "_WINDOWSWM_RAISE_ON_CLICK"
+#define WINDOWSWM_MOUSE_ACTIVATE "_WINDOWSWM_MOUSE_ACTIVATE"
+#define WINDOWSWM_CLIENT_WINDOW "_WINDOWSWM_CLIENT_WINDOW"
+#define WINDOWSWM_NATIVE_HWND "_WINDOWSWM_NATIVE_HWND"
+
+#ifndef _WINDOWSWM_SERVER_
+
+typedef struct {
+ int type; /* of event */
+ unsigned long serial; /* # of last request processed by server */
+ Bool send_event; /* true if this came frome a SendEvent request */
+ Display *display; /* Display the event was read from */
+ Window window; /* window of event */
+ Time time; /* server timestamp when event happened */
+ int kind; /* subtype of event */
+ int arg;
+ int x;
+ int y;
+ int w;
+ int h;
+} XWindowsWMNotifyEvent;
+
+_XFUNCPROTOBEGIN
+
+Bool XWindowsWMQueryExtension (Display *dpy, int *event_base, int *error_base);
+
+Bool XWindowsWMQueryVersion (Display *dpy, int *majorVersion,
+ int *minorVersion, int *patchVersion);
+
+Bool XWindowsWMDisableUpdate (Display *dpy, int screen);
+
+Bool XWindowsWMReenableUpdate (Display *dpy, int screen);
+
+Bool XWindowsWMSelectInput (Display *dpy, unsigned long mask);
+
+Bool XWindowsWMSetFrontProcess (Display *dpy);
+
+Bool XWindowsWMFrameGetRect (Display *dpy,
+ unsigned int frame_style,
+ unsigned int frame_style_ex,
+ unsigned int frame_rect,
+ short inner_x, short inner_y,
+ short inner_w, short inner_h,
+ short *ret_x, short *ret_y,
+ short *ret_w, short *ret_h);
+
+Bool XWindowsWMFrameDraw (Display *dpy, int screen, Window window,
+ unsigned int frame_style,
+ unsigned int frame_style_ex,
+ short inner_x, short inner_y,
+ short inner_w, short inner_h);
+
+Bool XWindowsWMFrameSetTitle (Display *dpy, int screen, Window window,
+ unsigned int title_length,
+ const char * title_bytes);
+
+_XFUNCPROTOEND
+
+#endif /* _WINDOWSWM_SERVER_ */
+#endif /* _WINDOWSWM_H_ */
diff --git a/windowswmproto.pc.in b/windowswmproto.pc.in
new file mode 100644
index 0000000..09f8a3a
--- /dev/null
+++ b/windowswmproto.pc.in
@@ -0,0 +1,9 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: WindowsWMProto
+Description: WindowsWM extension headers
+Version: @PACKAGE_VERSION@
+Cflags: -I${includedir}
diff --git a/windowswmstr.h b/windowswmstr.h
new file mode 100644
index 0000000..37ceb53
--- /dev/null
+++ b/windowswmstr.h
@@ -0,0 +1,169 @@
+/*
+ * WindowsWM extension is based on AppleWM extension
+ * Authors: Kensuke Matsuzaki
+ */
+/**************************************************************************
+
+Copyright (c) 2002 Apple Computer, Inc.
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sub license, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice (including the
+next paragraph) shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
+IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
+ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+**************************************************************************/
+
+#ifndef _WINDOWSWMSTR_H_
+#define _WINDOWSWMSTR_H_
+
+#include <X11/extensions/windowswm.h>
+#include <X11/X.h>
+#include <X11/Xmd.h>
+
+#define WINDOWSWMNAME "Windows-WM"
+
+#define WINDOWS_WM_MAJOR_VERSION 1 /* current version numbers */
+#define WINDOWS_WM_MINOR_VERSION 0
+#define WINDOWS_WM_PATCH_VERSION 0
+
+typedef struct _WindowsWMQueryVersion {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMQueryVersion */
+ CARD16 length B16;
+} xWindowsWMQueryVersionReq;
+#define sz_xWindowsWMQueryVersionReq 4
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BOOL pad1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ CARD16 majorVersion B16; /* major version of WM protocol */
+ CARD16 minorVersion B16; /* minor version of WM protocol */
+ CARD32 patchVersion B32; /* patch version of WM protocol */
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xWindowsWMQueryVersionReply;
+#define sz_xWindowsWMQueryVersionReply 32
+
+typedef struct _WindowsWMDisableUpdate {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMDisableUpdate */
+ CARD16 length B16;
+ CARD32 screen B32;
+} xWindowsWMDisableUpdateReq;
+#define sz_xWindowsWMDisableUpdateReq 8
+
+typedef struct _WindowsWMReenableUpdate {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMReenableUpdate */
+ CARD16 length B16;
+ CARD32 screen B32;
+} xWindowsWMReenableUpdateReq;
+#define sz_xWindowsWMReenableUpdateReq 8
+
+typedef struct _WindowsWMSelectInput {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMSelectInput */
+ CARD16 length B16;
+ CARD32 mask B32;
+} xWindowsWMSelectInputReq;
+#define sz_xWindowsWMSelectInputReq 8
+
+typedef struct _WindowsWMNotify {
+ BYTE type; /* always eventBase + event type */
+ BYTE kind;
+ CARD16 sequenceNumber B16;
+ Window window B32;
+ Time time B32; /* time of change */
+ CARD16 pad1 B16;
+ CARD32 arg B32;
+ INT16 x B16;
+ INT16 y B16;
+ CARD16 w B16;
+ CARD16 h B16;
+} xWindowsWMNotifyEvent;
+#define sz_xWindowsWMNotifyEvent 28
+
+typedef struct _WindowsWMSetFrontProcess {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMSetFrontProcess */
+ CARD16 length B16;
+} xWindowsWMSetFrontProcessReq;
+#define sz_xWindowsWMSetFrontProcessReq 4
+
+typedef struct _WindowsWMFrameGetRect {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMFrameGetRect */
+ CARD16 length B16;
+ CARD32 frame_style B32;
+ CARD32 frame_style_ex B32;
+ CARD16 frame_rect B16;
+ INT16 ix B16;
+ INT16 iy B16;
+ CARD16 iw B16;
+ CARD16 ih B16;
+ CARD16 pad1 B16;
+} xWindowsWMFrameGetRectReq;
+#define sz_xWindowsWMFrameGetRectReq 24
+
+typedef struct {
+ BYTE type; /* X_Reply */
+ BOOL pad1;
+ CARD16 sequenceNumber B16;
+ CARD32 length B32;
+ INT16 x B16;
+ INT16 y B16;
+ CARD16 w B16;
+ CARD16 h B16;
+ CARD32 pad3 B32;
+ CARD32 pad4 B32;
+ CARD32 pad5 B32;
+ CARD32 pad6 B32;
+} xWindowsWMFrameGetRectReply;
+#define sz_xWindowsWMFrameGetRectReply 32
+
+typedef struct _WindowsWMFrameDraw {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMFrameDraw */
+ CARD16 length B16;
+ CARD32 screen B32;
+ CARD32 window B32;
+ CARD32 frame_style B32;
+ CARD32 frame_style_ex B32;
+ INT16 ix B16;
+ INT16 iy B16;
+ CARD16 iw B16;
+ CARD16 ih B16;
+} xWindowsWMFrameDrawReq;
+#define sz_xWindowsWMFrameDrawReq 28
+
+typedef struct _WindowsWMFrameSetTitle {
+ CARD8 reqType; /* always WMReqCode */
+ CARD8 wmReqType; /* always X_WMFrameSetTitle */
+ CARD16 length B16;
+ CARD32 screen B32;
+ CARD32 window B32;
+ CARD32 title_length B32;
+} xWindowsWMFrameSetTitleReq;
+#define sz_xWindowsWMFrameSetTitleReq 16
+
+#endif /* _WINDOWSWMSTR_H_ */