[PATCH libAppleWM] man: make manpage macro substitutions
Jeremy Huddleston
jeremyhu at apple.com
Sat Feb 13 11:27:54 PST 2010
-e 's|__xservername__|Xorg|g' \
should probably be
-e 's|__xservername__|XQuartz|g' \
... but I don't think that's even used in the man page
On Feb 13, 2010, at 08:31, Gaetan Nadon wrote:
> 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
>
> _______________________________________________
> xorg-devel mailing list
> xorg-devel at lists.x.org
> http://lists.x.org/mailman/listinfo/xorg-devel
More information about the xorg-devel
mailing list