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 <[email protected]> --- 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 [email protected] http://lists.x.org/mailman/listinfo/xorg-devel
