Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ XASHints(XS) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XAllocClassHint(XS)

XAllocIconSize(XS)

XAllocWMHints(XS)

XFree(XS)

XSetCommand(XS)

XSetTextProperty(XS)

XSetTransientForHint(XS)

XSetWMClientMachine(XS)

XSetWMColormapWindows(XS)

XSetWMIconName(XS)

XSetWMName(XS)

XSetWMProperties(XS)

XSetWMProtocols(XS)

XStringListToTextProperty(XS)


 XAllocSizeHints(XS)      X Version 11 (Release 5)        XAllocSizeHints(XS)
                                6 January 1993


 Name

    XAllocSizeHints - allocate size hints structure and set or read a
    window's WM_NORMAL_HINTS property

 Syntax


    XSizeHints *XAllocSizeHints()

    void XSetWMNormalHints(display, w, hints)
          Display *display;
          Window w;
          XSizeHints *hints;

    Status XGetWMNormalHints(display, w, hints_return, supplied_return)
          Display *display;
          Window w;
          XSizeHints *hints_return;
          long *supplied_return;

    void XSetWMSizeHints(display, w, hints, property)
          Display *display;
          Window w;
          XSizeHints *hints;
          Atom property;

    Status XGetWMSizeHints(display, w, hints_return, supplied_return, property)
          Display *display;
          Window w;
          XSizeHints *hints_return;
          long *supplied_return;
          Atom property;


 Arguments


    display        Specifies the connection to the X server.

    hints          Specifies the size hints for the window in its normal
                   state.

    hints          Specifies the XSizeHints structure to be used.

    hintsreturn   Returns the size hints for the window in its normal state.

    property       Specifies the property name.

    suppliedreturn
                   Returns the hints that were supplied by the user.

    w              Specifies the window.

 Description

    The XAllocSizeHints function allocates and returns a pointer to a
    XSizeHints structure.  Note that all fields in the XSizeHints structure
    are initially set to zero.  If insufficient memory is available, XAlloc-
    SizeHints returns NULL.  To free the memory allocated to this structure,
    use XFree.

    The XSetWMNormalHints function replaces the size hints for the
    WMNORMALHINTS property on the specified window.  If the property does
    not already exist, XSetWMNormalHints sets the size hints for the
    WMNORMALHINTS property on the specified window.  The property is stored
    with a type of WMSIZEHINTS and a format of 32.

    XSetWMNormalHints can generate ``BadAlloc'' and ``BadWindow'' errors.

    The XGetWMNormalHints function returns the size hints stored in the
    WMNORMALHINTS property on the specified window.  If the property is of
    type WMSIZEHINTS, is of format 32, and is long enough to contain either
    an old (pre-ICCCM) or new size hints structure, XGetWMNormalHints sets
    the various fields of the XSizeHints structure, sets the suppliedreturn
    argument to the list of fields that were supplied by the user (whether or
    not they contained defined values), and returns a nonzero status.  Other-
    wise, it returns a zero status.

    If XGetWMNormalHints returns successfully and a pre-ICCCM size hints pro-
    perty is read, the suppliedreturn argument will contain the following
    bits:

       (USPosition|USSize|PPosition|PSize|PMinSize|
        PMaxSize|PResizeInc|PAspect)

    If the property is large enough to contain the base size and window grav-
    ity fields as well, the suppliedreturn argument will also contain the
    following bits:

       PBaseSize|PWinGravity

    XGetWMNormalHints can generate a ``BadWindow'' error.

    The XSetWMSizeHints function replaces the size hints for the specified
    property on the named window.  If the specified property does not already
    exist, XSetWMSizeHints sets the size hints for the specified property on
    the named window.  The property is stored with a type of WMSIZEHINTS
    and a format of 32.  To set a window's normal size hints, you can use the
    XSetWMNormalHints function.

    XSetWMSizeHints can generate ``BadAlloc'', ``BadAtom'', and ``BadWindow''
    errors.

    The XGetWMSizeHints function returns the size hints stored in the speci-
    fied property on the named window.  If the property is of type
    WMSIZEHINTS, is of format 32, and is long enough to contain either an
    old (pre-ICCCM) or new size hints structure, XGetWMSizeHints sets the
    various fields of the XSizeHints structure, sets the suppliedreturn
    argument to the list of fields that were supplied by the user (whether or
    not they contained defined values), and returns a nonzero status.  Other-
    wise, it returns a zero status.  To get a window's normal size hints, you
    can use the XGetWMNormalHints function.

    If XGetWMSizeHints returns successfully and a pre-ICCCM size hints pro-
    perty is read, the suppliedreturn argument will contain the following
    bits:

       (USPosition|USSize|PPosition|PSize|PMinSize|
        PMaxSize|PResizeInc|PAspect)

    If the property is large enough to contain the base size and window grav-
    ity fields as well, the suppliedreturn argument will also contain the
    following bits:

       PBaseSize|PWinGravity

    XGetWMSizeHints can generate ``BadAtom'' and ``BadWindow'' errors.

 Properties


    WMNORMALHINTS       Size hints for a window in its normal state.  The C
                          type of this property is XSizeHints.

 Structures

    The XSizeHints structure contains:

    /* Size hints mask bits */

    #define   USPosition    (1L << 0)   /* user specified x, y */
    #define   USSize        (1L << 1)   /* user specified width, height */
    #define   PPosition     (1L << 2)   /* program specified position */
    #define   PSize         (1L << 3)   /* program specified size */
    #define   PMinSize      (1L << 4)   /* program specified minimum size */
    #define   PMaxSize      (1L << 5)   /* program specified maximum size */
    #define   PResizeInc    (1L << 6)   /* program specified resize incre-
                                        ments */
    #define   PAspect       (1L << 7)   /* program specified min and max
                                        aspect ratios */
    #define   PBaseSize     (1L << 8)
    #define   PWinGravity   (1L << 9)
    #define   PAllHints     (PPosition|PSize|PMinSize|
                            PMaxSize|PResizeInc|PAspect)


    /* Values */

    typedef struct {
        long flags;                 /* marks which fields in this structure are
                                       defined */
        int x, y;                   /* Obsolete */
        int width, height;          /* Obsolete */
        int min_width, min_height;
        int max_width, max_height;
        int width_inc, height_inc;
        struct {
               int x;               /* numerator */
               int y;               /* denominator */
        } min_aspect, max_aspect;
        int base_width, base_height;
        int win_gravity;
    } XSizeHints;

    The x, y, width, and height members are now obsolete and are left solely
    for compatibility reasons.  The minwidth and minheight members specify
    the minimum window size that still allows the application to be useful.
    The maxwidth and maxheight members specify the maximum window size.
    The widthinc and heightinc members define an arithmetic progression of
    sizes (minimum to maximum) into which the window prefers to be resized.
    The minaspect and maxaspect members are expressed as ratios of x and y,
    and they allow an application to specify the range of aspect ratios it
    prefers.  The basewidth and baseheight members define the desired size
    of the window.  The window manager will interpret the position of the
    window and its border width to position the point of the outer rectangle
    of the overall window specified by the wingravity member.  The outer
    rectangle of the window includes any borders or decorations supplied by
    the window manager.  In other words, if the window manager decides to
    place the window where the client asked, the position on the parent
    window's border named by the wingravity will be placed where the client
    window would have been placed in the absence of a window manager.

    Note that use of the PAllHints macro is highly discouraged.

 Diagnostics


    ``BadAlloc''   The server failed to allocate the requested resource or
                   server memory.

    ``BadAtom''    A value for an Atom argument does not name a defined Atom.

    ``BadWindow''  A value for a Window argument does not name a defined Win-
                   dow.

 See also

    XAllocClassHint(XS), XAllocIconSize(XS), XAllocWMHints(XS), XFree(XS),
    XSetCommand(XS), XSetTextProperty(XS), XSetTransientForHint(XS),
    XSetWMClientMachine(XS), XSetWMColormapWindows(XS), XSetWMIconName(XS),
    XSetWMName(XS), XSetWMProperties(XS), XSetWMProtocols(XS),
    XStringListToTextProperty(XS)
    Xlib - C Language X Interface


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026