[PATCH libAppleWM] man: make manpage macro substitutions

Gaetan Nadon memsize at videotron.ca
Sat Feb 13 08:31:23 PST 2010


The man page displays to the user the variables to be substituted
such as __vendorversion__.

The filename in git should be .man.
The process to substitute the variables is the same used by
all other modules.

Signed-off-by: Gaetan Nadon <memsize at videotron.ca>
---
 configure.ac    |    1 +
 man/.gitignore  |    3 -
 man/AppleWM.3   |  340 -------------------------------------------------------
 man/AppleWM.man |  340 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 man/Makefile.am |   32 +++++-
 5 files changed, 370 insertions(+), 346 deletions(-)
 delete mode 100644 man/.gitignore
 delete mode 100644 man/AppleWM.3
 create mode 100644 man/AppleWM.man

diff --git a/configure.ac b/configure.ac
index 0ea3c35..08f3cd1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,7 @@ AM_CONFIG_HEADER(config.h)
 # Check for progs
 AC_PROG_CC
 AC_PROG_LIBTOOL
+AC_PROG_SED
 
 # Check for dependencies
 PKG_CHECK_MODULES(APPLEWM, x11 xext xextproto [applewmproto >= 1.4])
diff --git a/man/.gitignore b/man/.gitignore
deleted file mode 100644
index 58d42ad..0000000
--- a/man/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-#		Add & Override for this directory and it's subdirectories
-# Override default pattern *.[0-9] from toplevel .gitignore
-!AppleWM.3
diff --git a/man/AppleWM.3 b/man/AppleWM.3
deleted file mode 100644
index bb81470..0000000
--- a/man/AppleWM.3
+++ /dev/null
@@ -1,340 +0,0 @@
-.\"
-.\" $XFree86: xc/lib/apple/AppleWM.man,v 1.1 2003/08/12 23:47:10 torrey Exp $
-.\"
-.\" Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved.
-.\" Copyright (c) 2003 Torrey T. Lyons. 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.
-.\"
-.de TQ
-.br
-.ns
-.TP \\$1
-..
-.TH APPLEWM __libmansuffix__ __vendorversion__
-
-.SH NAME
- AppleWM \- Apple rootless window management extension.
-.SH SYNTAX
-\&#include <X11/extensions/applewm.h>
-.nf    
-.sp
-Bool XAppleWMQueryExtension \^(\^Display *\fIdpy\fP, 
-        int *\fIevent_basep\fP, int *\fIerror_basep\fP\^);
-.sp
-Status XAppleWMQueryVersion \^(\^Display *\fIdpy\fP,
-        int *\fImajor_versionp\fP, int *\fIminor_versionp\fP\^);
-.sp
-Bool XAppleWMDisableUpdate \^(\^Display *\fIdpy\fP, int \fIscreen\fP\^);
-.sp
-Bool XAppleWMReenableUpdate \^(\^Display *\fIdpy\fP, int \fIscreen\fP\^);
-.sp
-Bool XAppleWMSelectInput \^(\^Display *\fIdpy\fP, unsigned long \fImask\fP\^);
-.sp
-Bool XAppleWMSetWindowMenu \^(\^Display *\fIdpy\fP, int \fInitems\fP,
-        const char **\fIitems\fP\^);
-.sp
-Bool XAppleWMSetWindowMenuWithShortcuts \^(\^Display *\fIdpy\fP,
-        int \fInitems\fP, const char **\fIitems\fP,
-        const char *\fIshortcuts\fP\^);
-.sp
-Bool XAppleWMSetWindowMenuCheck \^(\^Display *\fIdpy\fP, int \fIindex\fP\^);
-.sp
-Bool XAppleWMSetFrontProcess \^(\^Display *\fIdpy\fP\^);
-.sp
-Bool XAppleWMSetWindowLevel \^(\^Display *\fIdpy\fP, Window \fIwindow\fP,
-        int \fIlevel\fP\^);
-.sp
-Bool XAppleWMSetCanQuit \^(\^Display *\fIdpy\fP, Bool \fIstate\fP\^);
-.sp
-Bool XAppleWMFrameGetRect \^(\^Display *\fIdpy\fP,
-        unsigned int \fIframe_class\fP,
-        unsigned int \fIframe_rect\fP,
-        short \fIinner_x\fP, short \fIinner_y\fP,
-        short \fIinner_w\fP, short \fIinner_h\fP,
-        short \fIouter_x\fP, short \fIouter_y\fP,
-        short \fIouter_w\fP, short \fIouter_h\fP,
-        short *\fIret_x\fP, short *\fIret_y\fP,
-        short *\fIret_w\fP, short *\fIret_h\fP\^);
-.sp
-unsigned int XAppleWMFrameHitTest \^(\^Display *\fIdpy\fP,
-        unsigned int \fIframe_class\fP,
-        short \fIpoint_x\fP, short \fIpoint_y\fP,
-        short \fIinner_x\fP, short \fIinner_y\fP,
-        short \fIinner_w\fP, short \fIinner_h\fP,
-        short \fIouter_x\fP, short \fIouter_y\fP,
-        short \fIouter_w\fP, short \fIouter_h\fP\^);
-.sp
-Bool XAppleWMFrameDraw \^(\^Display *\fIdpy\fP, int \fIscreen\fP,
-        Window \fIwindow\fP,
-        unsigned int \fIframe_class\fP,
-        unsigned int \fIframe_attr\fP,
-        short \fIinner_x\fP, short \fIinner_y\fP,
-        short \fIinner_w\fP, short \fIinner_h\fP,
-        short \fIouter_x\fP, short \fIouter_y\fP,
-        short \fIouter_w\fP, short \fIouter_h\fP,
-        unsigned int \fItitle_length\fP,
-        const unsigned char *\fItitle_bytes\fP);
-.fi
-.SH ARGUMENTS
-.IP \fIdpy\fP 1i
-Specifies the connection to the X server.
-.IP \fIscreen\fP 1i
-Specifies which screen.
-.IP \fImask\fP 1i
-Mask of event types the client is interested in.
-.IP \fIwindow\fP 1i
-Specifies which window.
-.IP \fIlevel\fP 1i
-Specifies the window level.
-.IP \fIframe_class\fP 1i
-Specifies the class of window frame decoration.
-.IP \fIframe_rect\fP 1i
-Specifies which rectangle to return from the window frame decoration.
-.IP \fIframe_attr\fP 1i
-A mask specifying the attributes of the window frame decoration.
-.IP \fIinner_x\fP,\fIinner_y\fP,\fIinner_w\fP,\fIinner_h\fP 1i
-Rectangle of the window content inside the window frame decoration.
-.IP \fIouter_x\fP,\fIouter_y\fP,\fIouter_w\fP,\fIouter_h\fP 1i
-Rectangle of the outer border of the window frame decoration.
-.IP \fIpoint_x\fP,\fIpoint_y\fP 1i
-Specifies the coordinates of the mouse up event.
-
-.SH DATATYPES
-
-.PP
-.B Events
-.nf
-typedef struct {
-    int type;               \/* of event *\/
-    unsigned long serial;   \/* # of last request processed by server *\/
-    Bool send_event;        \/* true if came from 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;
-} XAppleWMNotifyEvent;
-.fi
-.B XAppleWMNotifyEvent
-is sent to a client who has requested notification of AppleWM events with
-\fBXAppleWMSelectInput\fP.
-
-.PP
-Event types:
-.nf
-\&#define AppleWMControllerNotify               0
-\&#define AppleWMActivationNotify               1
-\&#define AppleWMPasteboardNotify               2
-.fi
-.PP
-Event masks:
-.nf
-\&#define AppleWMControllerNotifyMask           (1L << 0)
-\&#define AppleWMActivationNotifyMask           (1L << 1)
-\&#define AppleWMPasteboardNotifyMask           (1L << 2)
-.fi
-.PP
-Kinds of ControllerNotify events:
-.nf
-\&#define AppleWMMinimizeWindow                 0
-\&#define AppleWMZoomWindow                     1
-\&#define AppleWMCloseWindow                    2
-\&#define AppleWMBringAllToFront                3
-\&#define AppleWMHideWindow                     4
-\&#define AppleWMHideAll                        5
-\&#define AppleWMShowAll                        6
-\&#define AppleWMWindowMenuItem                 9
-\&#define AppleWMWindowMenuNotify               10
-\&#define AppleWMNextWindow                     11
-\&#define AppleWMPreviousWindow                 12
-.fi
-.PP
-Kinds of ActivationNotify events:
-.nf
-\&#define AppleWMIsActive                       0
-\&#define AppleWMIsInactive                     1
-.fi
-.PP
-Kinds of PasteboardNotify events:
-.nf
-\&#define AppleWMCopyToPasteboard               0
-.sp
-.fi
-.PP
-.B Window Parameters
-.PP
-Window level ids for \fBXAppleWMSetWindowLevel\fP:
-.nf
-\&#define AppleWMWindowLevelNormal              0
-\&#define AppleWMWindowLevelFloating            1
-\&#define AppleWMWindowLevelTornOff             2
-\&#define AppleWMWindowLevelDock                3
-\&#define AppleWMWindowLevelDesktop             4
-\&#define AppleWMNumWindowLevels                5
-.fi
-.PP
-Values for \fIframe_rect\fP argument to \fBXAppleWMFrameGetRect\fP:
-.nf
-\&#define AppleWMFrameRectTitleBar              1
-\&#define AppleWMFrameRectTracking              2
-\&#define AppleWMFrameRectGrowBox               3
-.fi
-.PP
-Window frame classes:
-.nf
-\&#define AppleWMFrameClassDocument             1 << 0
-\&#define AppleWMFrameClassDialog               1 << 1
-\&#define AppleWMFrameClassModalDialog          1 << 2
-\&#define AppleWMFrameClassSystemModalDialog    1 << 3
-\&#define AppleWMFrameClassUtility              1 << 4
-\&#define AppleWMFrameClassToolbar              1 << 5
-\&#define AppleWMFrameClassMenu                 1 << 6
-\&#define AppleWMFrameClassSplash               1 << 7
-\&#define AppleWMFrameClassBorderless           1 << 8
-.fi
-.PP
-Window frame attributes:
-.nf
-\&#define AppleWMFrameActive                    0x0001
-\&#define AppleWMFrameUrgent                    0x0002
-\&#define AppleWMFrameTitle                     0x0004
-\&#define AppleWMFramePrelight                  0x0008
-\&#define AppleWMFrameShaded                    0x0010
-\&#define AppleWMFrameCloseBox                  0x0100
-\&#define AppleWMFrameCollapseBox               0x0200
-\&#define AppleWMFrameZoomBox                   0x0400
-\&#define AppleWMFrameAnyBox                    0x0700
-\&#define AppleWMFrameCloseBoxClicked           0x0800
-\&#define AppleWMFrameCollapseBoxClicked        0x1000
-\&#define AppleWMFrameZoomBoxClicked            0x2000
-\&#define AppleWMFrameAnyBoxClicked             0x3800
-\&#define AppleWMFrameGrowBox                   0x4000
-.fi
-
-.SH DESCRIPTION
-.B AppleWM
-is a simple library designed to interface with the Apple-WM extension.
-This extension allows X window managers to better interact with
-the Mac OS X Aqua user interface when running X11 in a rootless mode.
-.PP
-A more complete description will be forthcoming eventually.
-
-.SH FUNCTIONS
-.B XAppleWMDisableUpdate
-causes any updates to the windows on the screen to be queued until updates
-are reenabled with \fBXAppleWMReenableUpdate\fP. This is useful to avoid
-intermediate redraws to the screen if a number of changes are going to be
-made at once. Updates should only be disabled temporarily while drawing
-to a window. These calls may be nested and each call to
-\fBXAppleWMDisableUpdate\fP must be paired with a subsequent call to
-\fBXAppleWMReenableUpdate\fP. Updating is not reenabled until the last
-unnested call to \fBXAppleWMReenableUpdate\fP. Disabling updates applies
-to window content; however, it is implementation dependent whether window
-size and position changes are disabled as well.
-.PP
-.B XAppleWMSelectInput
-is used to request that a client receive notification of the
-.B AppleWM
-events listed above. The event mask specifies the event types the client is
-interested in receiving. Passing an event mask of 0 stops notification of
-events.
-.PP
-.B XAppleWMSetWindowMenu
-and
-.B XAppleWMSetWindowMenuWithShortcuts
-set the list of windows displayed in the X server's "Window" menu in the
-Aqua menu bar. Other items may be listed in this menu by the X server, but
-a part of this menu is set aside for use by the Apple-WM extension. This
-is intended to be used to set a list of important top-level X11 windows.
-.PP
-One item of the X server's "Window" menu can have a checkmark beside it to
-indicate it is the active or front most window.
-.B XAppleWMSetWindowMenuCheck
-can be used to set the item number to put a checkmark beside.
-.PP
-.B XAppleWMSetFrontProcess
-directs the X server to make itself the front most application among all
-the other Mac OS X applications. This causes X11 windows to move above
-other applications' windows and for the X server to start receiving
-keyboard and mouse events.
-.PP
-Windows can be placed into different Aqua window levels with
-\fBXAppleWMSetWindowLevel\fP. The stacking of window levels takes precedence
-over the stacking of windows within a level. Thus the bottom window in a level
-will obscure even the top most window of a lower window level. By default all
-windows are placed in the lowest window level, AppleWMWindowLevelNormal. When
-a window is moved to a new level, it is ordered in front of all of its peers
-at the new level. \fINote, X11 does not have the concept of window levels and
-this function does not change the X11 window order. The result of trying to
-reorder an X11 window above another window of higher level is undefined.
-This should probably be changed.\fP
-.PP
-By default, the X server will ask for confirmation whenever the user requests
-that it quit from the Aqua UI.
-.B XAppleWMSetCanQuit
-can be used to change this behavior. If a \fIstate\fP of TRUE is passed, the
-X server will quit without confirmation when requested. If FALSE is passed,
-the default behavior is used.
-.PP
-.B XAppleWMFrameDraw
-can be used to decorate a top-level window with the standard Aqua window
-frame and widgets. The \fIframe_class\fP controls the overall look of the
-window frame and \fIframe_attr\fP specifies the details of how the various
-UI elements should be drawn. The dimensions of the X11 window content are
-passed as the \fIinner_*\fP rectangle and the dimensions of the Aqua window
-frame are passed as the \fIouter_*\fP rectangle.
-.B XAppleWMFrameGetRect
-is used to calculate the size of the outer rectangle from the size of the
-window content, which is being reparented.
-.PP
-.B XAppleWMFrameGetRect
-returns a rectangle that encloses an element of the window frame decoration.
-The \fIframe_rect\fP argument specifies the element of interest. The
-\fIinner_*\fP and \fIouter_*\fP rectangles (as described above) specify the
-window geometry. If AppleWMFrameRectTitleBar is passed for \fIframe_rect\fP,
-the \fIinner_*\fP parameters are ignored. The returned rectangle has the
-dimensions of the \fIouter_*\fP rectangle except that its height is equal
-to the constant title bar height for the specified \fIframe_class\fP. The
-proper outer rectangle for a given window content size is the union of inner
-rectangle and the title bar rectangle. The AppleWMFrameRectTracking and
-AppleWMFrameRectGrowBox rectangles are primarily intended to be used by the
-window manager to determine the correct placement for child windows to
-receive events. The tracking rectangle is the area of the window containing
-the close, collapse and zoom boxes. Typically when the cursor is over this
-area, the window manager will highlight the close, collapse, and zoom
-buttons to conform to the standard Aqua interface.
-.PP
-If a mouse up or down event is received in the tracking rectangle,
-.B XAppleWMFrameHitTest
-is used to determine which button was clicked.
-.B XAppleWMFrameHitTest
-returns AppleWMFrameCloseBox, AppleWMFrameCollapseBox, or AppleWMFrameZoomBox
-to indicate which button was clicked. If no button was clicked, 0 will be
-returned.
-.PP
-Other functions include: \fBXAppleWMQueryExtension\fP, which returns the event
-and error base codes and \fBXAppleWMQueryVersion\fP, which returns the current
-version of the extension. (This information is cached by the library.)
-
-.SH RESTRICTIONS
-.B AppleWM
-is only intended to be used on Mac OS X when running a rootless X server.
diff --git a/man/AppleWM.man b/man/AppleWM.man
new file mode 100644
index 0000000..bb81470
--- /dev/null
+++ b/man/AppleWM.man
@@ -0,0 +1,340 @@
+.\"
+.\" $XFree86: xc/lib/apple/AppleWM.man,v 1.1 2003/08/12 23:47:10 torrey Exp $
+.\"
+.\" Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved.
+.\" Copyright (c) 2003 Torrey T. Lyons. 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.
+.\"
+.de TQ
+.br
+.ns
+.TP \\$1
+..
+.TH APPLEWM __libmansuffix__ __vendorversion__
+
+.SH NAME
+ AppleWM \- Apple rootless window management extension.
+.SH SYNTAX
+\&#include <X11/extensions/applewm.h>
+.nf    
+.sp
+Bool XAppleWMQueryExtension \^(\^Display *\fIdpy\fP, 
+        int *\fIevent_basep\fP, int *\fIerror_basep\fP\^);
+.sp
+Status XAppleWMQueryVersion \^(\^Display *\fIdpy\fP,
+        int *\fImajor_versionp\fP, int *\fIminor_versionp\fP\^);
+.sp
+Bool XAppleWMDisableUpdate \^(\^Display *\fIdpy\fP, int \fIscreen\fP\^);
+.sp
+Bool XAppleWMReenableUpdate \^(\^Display *\fIdpy\fP, int \fIscreen\fP\^);
+.sp
+Bool XAppleWMSelectInput \^(\^Display *\fIdpy\fP, unsigned long \fImask\fP\^);
+.sp
+Bool XAppleWMSetWindowMenu \^(\^Display *\fIdpy\fP, int \fInitems\fP,
+        const char **\fIitems\fP\^);
+.sp
+Bool XAppleWMSetWindowMenuWithShortcuts \^(\^Display *\fIdpy\fP,
+        int \fInitems\fP, const char **\fIitems\fP,
+        const char *\fIshortcuts\fP\^);
+.sp
+Bool XAppleWMSetWindowMenuCheck \^(\^Display *\fIdpy\fP, int \fIindex\fP\^);
+.sp
+Bool XAppleWMSetFrontProcess \^(\^Display *\fIdpy\fP\^);
+.sp
+Bool XAppleWMSetWindowLevel \^(\^Display *\fIdpy\fP, Window \fIwindow\fP,
+        int \fIlevel\fP\^);
+.sp
+Bool XAppleWMSetCanQuit \^(\^Display *\fIdpy\fP, Bool \fIstate\fP\^);
+.sp
+Bool XAppleWMFrameGetRect \^(\^Display *\fIdpy\fP,
+        unsigned int \fIframe_class\fP,
+        unsigned int \fIframe_rect\fP,
+        short \fIinner_x\fP, short \fIinner_y\fP,
+        short \fIinner_w\fP, short \fIinner_h\fP,
+        short \fIouter_x\fP, short \fIouter_y\fP,
+        short \fIouter_w\fP, short \fIouter_h\fP,
+        short *\fIret_x\fP, short *\fIret_y\fP,
+        short *\fIret_w\fP, short *\fIret_h\fP\^);
+.sp
+unsigned int XAppleWMFrameHitTest \^(\^Display *\fIdpy\fP,
+        unsigned int \fIframe_class\fP,
+        short \fIpoint_x\fP, short \fIpoint_y\fP,
+        short \fIinner_x\fP, short \fIinner_y\fP,
+        short \fIinner_w\fP, short \fIinner_h\fP,
+        short \fIouter_x\fP, short \fIouter_y\fP,
+        short \fIouter_w\fP, short \fIouter_h\fP\^);
+.sp
+Bool XAppleWMFrameDraw \^(\^Display *\fIdpy\fP, int \fIscreen\fP,
+        Window \fIwindow\fP,
+        unsigned int \fIframe_class\fP,
+        unsigned int \fIframe_attr\fP,
+        short \fIinner_x\fP, short \fIinner_y\fP,
+        short \fIinner_w\fP, short \fIinner_h\fP,
+        short \fIouter_x\fP, short \fIouter_y\fP,
+        short \fIouter_w\fP, short \fIouter_h\fP,
+        unsigned int \fItitle_length\fP,
+        const unsigned char *\fItitle_bytes\fP);
+.fi
+.SH ARGUMENTS
+.IP \fIdpy\fP 1i
+Specifies the connection to the X server.
+.IP \fIscreen\fP 1i
+Specifies which screen.
+.IP \fImask\fP 1i
+Mask of event types the client is interested in.
+.IP \fIwindow\fP 1i
+Specifies which window.
+.IP \fIlevel\fP 1i
+Specifies the window level.
+.IP \fIframe_class\fP 1i
+Specifies the class of window frame decoration.
+.IP \fIframe_rect\fP 1i
+Specifies which rectangle to return from the window frame decoration.
+.IP \fIframe_attr\fP 1i
+A mask specifying the attributes of the window frame decoration.
+.IP \fIinner_x\fP,\fIinner_y\fP,\fIinner_w\fP,\fIinner_h\fP 1i
+Rectangle of the window content inside the window frame decoration.
+.IP \fIouter_x\fP,\fIouter_y\fP,\fIouter_w\fP,\fIouter_h\fP 1i
+Rectangle of the outer border of the window frame decoration.
+.IP \fIpoint_x\fP,\fIpoint_y\fP 1i
+Specifies the coordinates of the mouse up event.
+
+.SH DATATYPES
+
+.PP
+.B Events
+.nf
+typedef struct {
+    int type;               \/* of event *\/
+    unsigned long serial;   \/* # of last request processed by server *\/
+    Bool send_event;        \/* true if came from 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;
+} XAppleWMNotifyEvent;
+.fi
+.B XAppleWMNotifyEvent
+is sent to a client who has requested notification of AppleWM events with
+\fBXAppleWMSelectInput\fP.
+
+.PP
+Event types:
+.nf
+\&#define AppleWMControllerNotify               0
+\&#define AppleWMActivationNotify               1
+\&#define AppleWMPasteboardNotify               2
+.fi
+.PP
+Event masks:
+.nf
+\&#define AppleWMControllerNotifyMask           (1L << 0)
+\&#define AppleWMActivationNotifyMask           (1L << 1)
+\&#define AppleWMPasteboardNotifyMask           (1L << 2)
+.fi
+.PP
+Kinds of ControllerNotify events:
+.nf
+\&#define AppleWMMinimizeWindow                 0
+\&#define AppleWMZoomWindow                     1
+\&#define AppleWMCloseWindow                    2
+\&#define AppleWMBringAllToFront                3
+\&#define AppleWMHideWindow                     4
+\&#define AppleWMHideAll                        5
+\&#define AppleWMShowAll                        6
+\&#define AppleWMWindowMenuItem                 9
+\&#define AppleWMWindowMenuNotify               10
+\&#define AppleWMNextWindow                     11
+\&#define AppleWMPreviousWindow                 12
+.fi
+.PP
+Kinds of ActivationNotify events:
+.nf
+\&#define AppleWMIsActive                       0
+\&#define AppleWMIsInactive                     1
+.fi
+.PP
+Kinds of PasteboardNotify events:
+.nf
+\&#define AppleWMCopyToPasteboard               0
+.sp
+.fi
+.PP
+.B Window Parameters
+.PP
+Window level ids for \fBXAppleWMSetWindowLevel\fP:
+.nf
+\&#define AppleWMWindowLevelNormal              0
+\&#define AppleWMWindowLevelFloating            1
+\&#define AppleWMWindowLevelTornOff             2
+\&#define AppleWMWindowLevelDock                3
+\&#define AppleWMWindowLevelDesktop             4
+\&#define AppleWMNumWindowLevels                5
+.fi
+.PP
+Values for \fIframe_rect\fP argument to \fBXAppleWMFrameGetRect\fP:
+.nf
+\&#define AppleWMFrameRectTitleBar              1
+\&#define AppleWMFrameRectTracking              2
+\&#define AppleWMFrameRectGrowBox               3
+.fi
+.PP
+Window frame classes:
+.nf
+\&#define AppleWMFrameClassDocument             1 << 0
+\&#define AppleWMFrameClassDialog               1 << 1
+\&#define AppleWMFrameClassModalDialog          1 << 2
+\&#define AppleWMFrameClassSystemModalDialog    1 << 3
+\&#define AppleWMFrameClassUtility              1 << 4
+\&#define AppleWMFrameClassToolbar              1 << 5
+\&#define AppleWMFrameClassMenu                 1 << 6
+\&#define AppleWMFrameClassSplash               1 << 7
+\&#define AppleWMFrameClassBorderless           1 << 8
+.fi
+.PP
+Window frame attributes:
+.nf
+\&#define AppleWMFrameActive                    0x0001
+\&#define AppleWMFrameUrgent                    0x0002
+\&#define AppleWMFrameTitle                     0x0004
+\&#define AppleWMFramePrelight                  0x0008
+\&#define AppleWMFrameShaded                    0x0010
+\&#define AppleWMFrameCloseBox                  0x0100
+\&#define AppleWMFrameCollapseBox               0x0200
+\&#define AppleWMFrameZoomBox                   0x0400
+\&#define AppleWMFrameAnyBox                    0x0700
+\&#define AppleWMFrameCloseBoxClicked           0x0800
+\&#define AppleWMFrameCollapseBoxClicked        0x1000
+\&#define AppleWMFrameZoomBoxClicked            0x2000
+\&#define AppleWMFrameAnyBoxClicked             0x3800
+\&#define AppleWMFrameGrowBox                   0x4000
+.fi
+
+.SH DESCRIPTION
+.B AppleWM
+is a simple library designed to interface with the Apple-WM extension.
+This extension allows X window managers to better interact with
+the Mac OS X Aqua user interface when running X11 in a rootless mode.
+.PP
+A more complete description will be forthcoming eventually.
+
+.SH FUNCTIONS
+.B XAppleWMDisableUpdate
+causes any updates to the windows on the screen to be queued until updates
+are reenabled with \fBXAppleWMReenableUpdate\fP. This is useful to avoid
+intermediate redraws to the screen if a number of changes are going to be
+made at once. Updates should only be disabled temporarily while drawing
+to a window. These calls may be nested and each call to
+\fBXAppleWMDisableUpdate\fP must be paired with a subsequent call to
+\fBXAppleWMReenableUpdate\fP. Updating is not reenabled until the last
+unnested call to \fBXAppleWMReenableUpdate\fP. Disabling updates applies
+to window content; however, it is implementation dependent whether window
+size and position changes are disabled as well.
+.PP
+.B XAppleWMSelectInput
+is used to request that a client receive notification of the
+.B AppleWM
+events listed above. The event mask specifies the event types the client is
+interested in receiving. Passing an event mask of 0 stops notification of
+events.
+.PP
+.B XAppleWMSetWindowMenu
+and
+.B XAppleWMSetWindowMenuWithShortcuts
+set the list of windows displayed in the X server's "Window" menu in the
+Aqua menu bar. Other items may be listed in this menu by the X server, but
+a part of this menu is set aside for use by the Apple-WM extension. This
+is intended to be used to set a list of important top-level X11 windows.
+.PP
+One item of the X server's "Window" menu can have a checkmark beside it to
+indicate it is the active or front most window.
+.B XAppleWMSetWindowMenuCheck
+can be used to set the item number to put a checkmark beside.
+.PP
+.B XAppleWMSetFrontProcess
+directs the X server to make itself the front most application among all
+the other Mac OS X applications. This causes X11 windows to move above
+other applications' windows and for the X server to start receiving
+keyboard and mouse events.
+.PP
+Windows can be placed into different Aqua window levels with
+\fBXAppleWMSetWindowLevel\fP. The stacking of window levels takes precedence
+over the stacking of windows within a level. Thus the bottom window in a level
+will obscure even the top most window of a lower window level. By default all
+windows are placed in the lowest window level, AppleWMWindowLevelNormal. When
+a window is moved to a new level, it is ordered in front of all of its peers
+at the new level. \fINote, X11 does not have the concept of window levels and
+this function does not change the X11 window order. The result of trying to
+reorder an X11 window above another window of higher level is undefined.
+This should probably be changed.\fP
+.PP
+By default, the X server will ask for confirmation whenever the user requests
+that it quit from the Aqua UI.
+.B XAppleWMSetCanQuit
+can be used to change this behavior. If a \fIstate\fP of TRUE is passed, the
+X server will quit without confirmation when requested. If FALSE is passed,
+the default behavior is used.
+.PP
+.B XAppleWMFrameDraw
+can be used to decorate a top-level window with the standard Aqua window
+frame and widgets. The \fIframe_class\fP controls the overall look of the
+window frame and \fIframe_attr\fP specifies the details of how the various
+UI elements should be drawn. The dimensions of the X11 window content are
+passed as the \fIinner_*\fP rectangle and the dimensions of the Aqua window
+frame are passed as the \fIouter_*\fP rectangle.
+.B XAppleWMFrameGetRect
+is used to calculate the size of the outer rectangle from the size of the
+window content, which is being reparented.
+.PP
+.B XAppleWMFrameGetRect
+returns a rectangle that encloses an element of the window frame decoration.
+The \fIframe_rect\fP argument specifies the element of interest. The
+\fIinner_*\fP and \fIouter_*\fP rectangles (as described above) specify the
+window geometry. If AppleWMFrameRectTitleBar is passed for \fIframe_rect\fP,
+the \fIinner_*\fP parameters are ignored. The returned rectangle has the
+dimensions of the \fIouter_*\fP rectangle except that its height is equal
+to the constant title bar height for the specified \fIframe_class\fP. The
+proper outer rectangle for a given window content size is the union of inner
+rectangle and the title bar rectangle. The AppleWMFrameRectTracking and
+AppleWMFrameRectGrowBox rectangles are primarily intended to be used by the
+window manager to determine the correct placement for child windows to
+receive events. The tracking rectangle is the area of the window containing
+the close, collapse and zoom boxes. Typically when the cursor is over this
+area, the window manager will highlight the close, collapse, and zoom
+buttons to conform to the standard Aqua interface.
+.PP
+If a mouse up or down event is received in the tracking rectangle,
+.B XAppleWMFrameHitTest
+is used to determine which button was clicked.
+.B XAppleWMFrameHitTest
+returns AppleWMFrameCloseBox, AppleWMFrameCollapseBox, or AppleWMFrameZoomBox
+to indicate which button was clicked. If no button was clicked, 0 will be
+returned.
+.PP
+Other functions include: \fBXAppleWMQueryExtension\fP, which returns the event
+and error base codes and \fBXAppleWMQueryVersion\fP, which returns the current
+version of the extension. (This information is cached by the library.)
+
+.SH RESTRICTIONS
+.B AppleWM
+is only intended to be used on Mac OS X when running a rootless X server.
diff --git a/man/Makefile.am b/man/Makefile.am
index a749878..31160c6 100644
--- a/man/Makefile.am
+++ b/man/Makefile.am
@@ -19,6 +19,32 @@
 #  PERFORMANCE OF THIS SOFTWARE.
 #
 
-man3_MANS = \
-         AppleWM.3
-EXTRA_DIST = $(man3_MANS)
+libman_PRE = AppleWM.man
+libmandir = $(LIB_MAN_DIR)
+libman_DATA = $(libman_PRE:man=$(LIB_MAN_SUFFIX))
+
+EXTRA_DIST = $(libman_PRE)
+CLEANFILES = $(libman_DATA)
+
+# Strings to replace in man pages
+XORGRELSTRING = @PACKAGE_STRING@
+  XORGMANNAME = X Version 11
+
+MAN_SUBSTS = \
+	-e 's|__vendorversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+	-e 's|__xorgversion__|"$(XORGRELSTRING)" "$(XORGMANNAME)"|' \
+	-e 's|__xservername__|Xorg|g' \
+	-e 's|__xconfigfile__|xorg.conf|g' \
+	-e 's|__projectroot__|$(prefix)|g' \
+	-e 's|__apploaddir__|$(appdefaultdir)|' \
+	-e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
+	-e 's|__libmansuffix__|$(LIB_MAN_SUFFIX)|g' \
+	-e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
+	-e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
+	-e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
+
+SUFFIXES = .$(LIB_MAN_SUFFIX) .man
+
+.man.$(LIB_MAN_SUFFIX):
+	$(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
-- 
1.6.0.4



More information about the xorg-devel mailing list