Blame man/XAllocWMHints.man

Packit 5bd3a9
'\" t
Packit 5bd3a9
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1994, 1996 X Consortium
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" Permission is hereby granted, free of charge, to any person obtaining
Packit 5bd3a9
.\" a copy of this software and associated documentation files (the
Packit 5bd3a9
.\" "Software"), to deal in the Software without restriction, including
Packit 5bd3a9
.\" without limitation the rights to use, copy, modify, merge, publish,
Packit 5bd3a9
.\" distribute, sublicense, and/or sell copies of the Software, and to
Packit 5bd3a9
.\" permit persons to whom the Software is furnished to do so, subject to
Packit 5bd3a9
.\" the following conditions:
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" The above copyright notice and this permission notice shall be included
Packit 5bd3a9
.\" in all copies or substantial portions of the Software.
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
Packit 5bd3a9
.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Packit 5bd3a9
.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Packit 5bd3a9
.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
Packit 5bd3a9
.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
Packit 5bd3a9
.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
Packit 5bd3a9
.\" OTHER DEALINGS IN THE SOFTWARE.
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" Except as contained in this notice, the name of the X Consortium shall
Packit 5bd3a9
.\" not be used in advertising or otherwise to promote the sale, use or
Packit 5bd3a9
.\" other dealings in this Software without prior written authorization
Packit 5bd3a9
.\" from the X Consortium.
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" Copyright \(co 1985, 1986, 1987, 1988, 1989, 1990, 1991 by
Packit 5bd3a9
.\" Digital Equipment Corporation
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" Portions Copyright \(co 1990, 1991 by
Packit 5bd3a9
.\" Tektronix, Inc.
Packit 5bd3a9
.\"
Packit 5bd3a9
.\" Permission to use, copy, modify and distribute this documentation for
Packit 5bd3a9
.\" any purpose and without fee is hereby granted, provided that the above
Packit 5bd3a9
.\" copyright notice appears in all copies and that both that copyright notice
Packit 5bd3a9
.\" and this permission notice appear in all copies, and that the names of
Packit 5bd3a9
.\" Digital and Tektronix not be used in in advertising or publicity pertaining
Packit 5bd3a9
.\" to this documentation without specific, written prior permission.
Packit 5bd3a9
.\" Digital and Tektronix makes no representations about the suitability
Packit 5bd3a9
.\" of this documentation for any purpose.
Packit 5bd3a9
.\" It is provided ``as is'' without express or implied warranty.
Packit 5bd3a9
.\" 
Packit 5bd3a9
.\"
Packit 5bd3a9
.ds xT X Toolkit Intrinsics \- C Language Interface
Packit 5bd3a9
.ds xW Athena X Widgets \- C Language X Toolkit Interface
Packit 5bd3a9
.ds xL Xlib \- C Language X Interface, \fRO'Reilly and Associates, Sebastopol, 1991. 
Packit 5bd3a9
.ds xC Inter-Client Communication Conventions Manual
Packit 5bd3a9
.na
Packit 5bd3a9
.de Ds
Packit 5bd3a9
.nf
Packit 5bd3a9
.\\$1D \\$2 \\$1
Packit 5bd3a9
.ft CW
Packit 5bd3a9
.\".ps \\n(PS
Packit 5bd3a9
.\".if \\n(VS>=40 .vs \\n(VSu
Packit 5bd3a9
.\".if \\n(VS<=39 .vs \\n(VSp
Packit 5bd3a9
..
Packit 5bd3a9
.de De
Packit 5bd3a9
.ce 0
Packit 5bd3a9
.if \\n(BD .DF
Packit 5bd3a9
.nr BD 0
Packit 5bd3a9
.in \\n(OIu
Packit 5bd3a9
.if \\n(TM .ls 2
Packit 5bd3a9
.sp \\n(DDu
Packit 5bd3a9
.fi
Packit 5bd3a9
..
Packit 5bd3a9
.de IN		\" send an index entry to the stderr
Packit 5bd3a9
..
Packit 5bd3a9
.de Pn
Packit 5bd3a9
.ie t \\$1\fB\^\\$2\^\fR\\$3
Packit 5bd3a9
.el \\$1\fI\^\\$2\^\fP\\$3
Packit 5bd3a9
..
Packit 5bd3a9
.de ZN
Packit 5bd3a9
.ie t \fB\^\\$1\^\fR\\$2
Packit 5bd3a9
.el \fI\^\\$1\^\fP\\$2
Packit 5bd3a9
..
Packit 5bd3a9
.de hN
Packit 5bd3a9
.ie t <\fB\\$1\fR>\\$2
Packit 5bd3a9
.el <\fI\\$1\fP>\\$2
Packit 5bd3a9
..
Packit 5bd3a9
.ny0
Packit 5bd3a9
'\" t
Packit 5bd3a9
.TH XAllocWMHints __libmansuffix__ __xorgversion__ "XLIB FUNCTIONS"
Packit 5bd3a9
.SH NAME
Packit 5bd3a9
XAllocWMHints, XSetWMHints, XGetWMHints, XWMHints \- allocate window manager hints structure and set or read a window's WM_HINTS property
Packit 5bd3a9
.SH SYNTAX
Packit 5bd3a9
.HP
Packit 5bd3a9
XWMHints *XAllocWMHints\^(void\^); 
Packit 5bd3a9
.HP
Packit 5bd3a9
int XSetWMHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP, XWMHints *\fIwmhints\fP\^);
Packit 5bd3a9
.HP
Packit 5bd3a9
XWMHints *XGetWMHints\^(\^Display *\fIdisplay\fP, Window \fIw\fP\^);
Packit 5bd3a9
.SH ARGUMENTS
Packit 5bd3a9
.IP \fIdisplay\fP 1i
Packit 5bd3a9
Specifies the connection to the X server.
Packit 5bd3a9
.IP \fIw\fP 1i
Packit 5bd3a9
Specifies the window.
Packit 5bd3a9
.IP \fIwmhints\fP 1i
Packit 5bd3a9
Specifies the 
Packit 5bd3a9
.ZN XWMHints
Packit 5bd3a9
structure to be used.
Packit 5bd3a9
.SH DESCRIPTION
Packit 5bd3a9
The
Packit 5bd3a9
.ZN XAllocWMHints
Packit 5bd3a9
function allocates and returns a pointer to a
Packit 5bd3a9
.ZN XWMHints
Packit 5bd3a9
structure.
Packit 5bd3a9
Note that all fields in the
Packit 5bd3a9
.ZN XWMHints
Packit 5bd3a9
structure are initially set to zero.
Packit 5bd3a9
If insufficient memory is available, 
Packit 5bd3a9
.ZN XAllocWMHints
Packit 5bd3a9
returns NULL.
Packit 5bd3a9
To free the memory allocated to this structure,
Packit 5bd3a9
use
Packit 5bd3a9
.ZN XFree .
Packit 5bd3a9
.LP
Packit 5bd3a9
The
Packit 5bd3a9
.ZN XSetWMHints
Packit 5bd3a9
function sets the window manager hints that include icon information and location,
Packit 5bd3a9
the initial state of the window, and whether the application relies on the
Packit 5bd3a9
window manager to get keyboard input.
Packit 5bd3a9
.LP
Packit 5bd3a9
.ZN XSetWMHints
Packit 5bd3a9
can generate
Packit 5bd3a9
.ZN BadAlloc
Packit 5bd3a9
and
Packit 5bd3a9
.ZN BadWindow
Packit 5bd3a9
errors.
Packit 5bd3a9
.LP
Packit 5bd3a9
The
Packit 5bd3a9
.ZN XGetWMHints
Packit 5bd3a9
function reads the window manager hints and 
Packit 5bd3a9
returns NULL if no WM_HINTS property was set on the window 
Packit 5bd3a9
or returns a pointer to a 
Packit 5bd3a9
.ZN XWMHints 
Packit 5bd3a9
structure if it succeeds.
Packit 5bd3a9
When finished with the data,
Packit 5bd3a9
free the space used for it by calling
Packit 5bd3a9
.ZN XFree .
Packit 5bd3a9
.LP
Packit 5bd3a9
.ZN XGetWMHints
Packit 5bd3a9
can generate a
Packit 5bd3a9
.ZN BadWindow
Packit 5bd3a9
error.
Packit 5bd3a9
.SH PROPERTIES
Packit 5bd3a9
.TP 1i
Packit 5bd3a9
\s-1WM_HINTS\s+1
Packit 5bd3a9
Additional hints set by the client for use by the window manager.
Packit 5bd3a9
The C type of this property is 
Packit 5bd3a9
.ZN XWMHints .
Packit 5bd3a9
.SH STRUCTURES
Packit 5bd3a9
The
Packit 5bd3a9
.ZN XWMHints
Packit 5bd3a9
structure contains:
Packit 5bd3a9
.LP
Packit 5bd3a9
/\&* Window manager hints mask bits */
Packit 5bd3a9
.TS
Packit 5bd3a9
lw(.5i) lw(2.5i) lw(2.5i).
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN InputHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 0)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN StateHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 1)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN IconPixmapHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 2)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN IconWindowHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 3)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN IconPositionHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 4)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN IconMaskHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 5)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN WindowGroupHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 6)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN XUrgencyHint
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(1L << 8)
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN AllHints
Packit 5bd3a9
T}	T{
Packit 5bd3a9
(InputHint|StateHint|IconPixmapHint|
Packit 5bd3a9
.br
Packit 5bd3a9
IconWindowHint|IconPositionHint|
Packit 5bd3a9
.br
Packit 5bd3a9
IconMaskHint|WindowGroupHint)
Packit 5bd3a9
T}
Packit 5bd3a9
.TE
Packit 5bd3a9
.IN "XWMHints" "" "@DEF@"
Packit 5bd3a9
.Ds 0
Packit 5bd3a9
/\&* Values */
Packit 5bd3a9
Packit 5bd3a9
typedef struct {
Packit 5bd3a9
        long flags;     /\&* marks which fields in this structure are defined */
Packit 5bd3a9
        Bool input;     /\&* does this application rely on the window manager to
Packit 5bd3a9
                        get keyboard input? */
Packit 5bd3a9
        int initial_state;      /\&* see below */
Packit 5bd3a9
        Pixmap icon_pixmap;     /\&* pixmap to be used as icon */
Packit 5bd3a9
        Window icon_window;     /\&* window to be used as icon */
Packit 5bd3a9
        int icon_x, icon_y;     /\&* initial position of icon */
Packit 5bd3a9
        Pixmap icon_mask;       /\&* pixmap to be used as mask for icon_pixmap */
Packit 5bd3a9
        XID window_group;       /\&* id of related window group */
Packit 5bd3a9
        /\&* this structure may be extended in the future */
Packit 5bd3a9
} XWMHints;
Packit 5bd3a9
.De
Packit 5bd3a9
.LP
Packit 5bd3a9
The input member is used to communicate to the window manager the input focus
Packit 5bd3a9
model used by the application.
Packit 5bd3a9
Applications that expect input but never explicitly set focus to any 
Packit 5bd3a9
of their subwindows (that is, use the push model of focus management), 
Packit 5bd3a9
such as X Version 10 style applications that use real-estate
Packit 5bd3a9
driven focus, should set this member to 
Packit 5bd3a9
.ZN True .  
Packit 5bd3a9
Similarly, applications
Packit 5bd3a9
that set input focus to their subwindows only when it is given to their
Packit 5bd3a9
top-level window by a window manager should also set this member to 
Packit 5bd3a9
.ZN True .
Packit 5bd3a9
Applications that manage their own input focus by explicitly setting
Packit 5bd3a9
focus to one of their subwindows whenever they want keyboard input 
Packit 5bd3a9
(that is, use the pull model of focus management) should set this member to 
Packit 5bd3a9
.ZN False .
Packit 5bd3a9
Applications that never expect any keyboard input also should set this member
Packit 5bd3a9
to 
Packit 5bd3a9
.ZN False .
Packit 5bd3a9
.LP
Packit 5bd3a9
Pull model window managers should make it possible for push model
Packit 5bd3a9
applications to get input by setting input focus to the top-level windows of
Packit 5bd3a9
applications whose input member is 
Packit 5bd3a9
.ZN True .  
Packit 5bd3a9
Push model window managers should
Packit 5bd3a9
make sure that pull model applications do not break them 
Packit 5bd3a9
by resetting input focus to 
Packit 5bd3a9
.ZN PointerRoot 
Packit 5bd3a9
when it is appropriate (for example, whenever an application whose
Packit 5bd3a9
input member is 
Packit 5bd3a9
.ZN False 
Packit 5bd3a9
sets input focus to one of its subwindows).
Packit 5bd3a9
.LP
Packit 5bd3a9
The definitions for the initial_state flag are:
Packit 5bd3a9
.TS
Packit 5bd3a9
lw(.5i) lw(2i) lw(.2i) lw(2.8i).
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN WithdrawnState
Packit 5bd3a9
T}	T{
Packit 5bd3a9
0
Packit 5bd3a9
T}	T{
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN NormalState
Packit 5bd3a9
T}	T{
Packit 5bd3a9
1
Packit 5bd3a9
T}	T{
Packit 5bd3a9
/\&* most applications start this way */
Packit 5bd3a9
T}
Packit 5bd3a9
T{
Packit 5bd3a9
\&#define
Packit 5bd3a9
T}	T{
Packit 5bd3a9
.ZN IconicState
Packit 5bd3a9
T}	T{
Packit 5bd3a9
3
Packit 5bd3a9
T}	T{
Packit 5bd3a9
/\&* application wants to start as an icon */
Packit 5bd3a9
T}
Packit 5bd3a9
.TE
Packit 5bd3a9
The icon_mask specifies which pixels of the icon_pixmap should be used as the
Packit 5bd3a9
icon.  
Packit 5bd3a9
This allows for nonrectangular icons.
Packit 5bd3a9
Both icon_pixmap and icon_mask must be bitmaps.
Packit 5bd3a9
The icon_window lets an application provide a window for use as an icon
Packit 5bd3a9
for window managers that support such use.
Packit 5bd3a9
The window_group lets you specify that this window belongs to a group
Packit 5bd3a9
of other windows.
Packit 5bd3a9
For example, if a single application manipulates multiple 
Packit 5bd3a9
top-level windows, this allows you to provide enough
Packit 5bd3a9
information that a window manager can iconify all of the windows
Packit 5bd3a9
rather than just the one window.
Packit 5bd3a9
.LP
Packit 5bd3a9
The
Packit 5bd3a9
.ZN UrgencyHint
Packit 5bd3a9
flag, if set in the flags field, indicates that the client deems the window
Packit 5bd3a9
contents to be urgent, requiring the timely response of the user.  The
Packit 5bd3a9
window manager will make some effort to draw the user's attention to this
Packit 5bd3a9
window while this flag is set.  The client must provide some means by which the
Packit 5bd3a9
user can cause the urgency flag to be cleared (either mitigating
Packit 5bd3a9
the condition that made the window urgent or merely shutting off the alarm)
Packit 5bd3a9
or the window to be withdrawn.
Packit 5bd3a9
.SH DIAGNOSTICS
Packit 5bd3a9
.TP 1i
Packit 5bd3a9
.ZN BadAlloc
Packit 5bd3a9
The server failed to allocate the requested resource or server memory.
Packit 5bd3a9
.TP 1i
Packit 5bd3a9
.ZN BadWindow
Packit 5bd3a9
A value for a Window argument does not name a defined Window.
Packit 5bd3a9
.SH "SEE ALSO"
Packit 5bd3a9
XAllocClassHint(__libmansuffix__),
Packit 5bd3a9
XAllocIconSize(__libmansuffix__),
Packit 5bd3a9
XAllocSizeHints(__libmansuffix__),
Packit 5bd3a9
XFree(__libmansuffix__),
Packit 5bd3a9
XSetCommand(__libmansuffix__),
Packit 5bd3a9
XSetTransientForHint(__libmansuffix__),
Packit 5bd3a9
XSetTextProperty(__libmansuffix__),
Packit 5bd3a9
XSetWMClientMachine(__libmansuffix__),
Packit 5bd3a9
XSetWMColormapWindows(__libmansuffix__),
Packit 5bd3a9
XSetWMIconName(__libmansuffix__),
Packit 5bd3a9
XSetWMName(__libmansuffix__),
Packit 5bd3a9
XSetWMProperties(__libmansuffix__),
Packit 5bd3a9
XSetWMProtocols(__libmansuffix__),
Packit 5bd3a9
XStringListToTextProperty(__libmansuffix__)
Packit 5bd3a9
.br
Packit 5bd3a9
\fI\*(xL\fP