REF XWindowManipulation                          A. Schoter, August 1991

        COPYRIGHT University of Sussex 1991. All Rights Reserved.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<                             >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<    X WINDOW MANIPULATION    >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<                             >>>>>>>>>>>>>>>>>>>>>>
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

The data structures and procedures described in this REF file  implement
the equivalent  C  structures and  functions for window manipulation.



---------------------
1  List of procedures
---------------------

The procedures below are made available by doing:

         uses xlib;
         uses XWindowManipulation;

For details see:

                     Xlib - C Language X Interface,
                       MIT X Consortium Standard,
                         X Version 11, Release 4

        Copyright (C) 1985, 1986, 1987, 1988, 1989 Massachusetts
        Institute of Technology,  Cambridge, Massachusetts,  and
        Digital Equipment Corporation, Maynard, Massachusetts.


XWindowChanges                                                 [typedef]
        This data structure is used by the procedure XReconfigureWindow.

            typedef struct {
                int x, y;
                int width, height;
                int border_width;
                Window sibling;
                int stack_mode;
            } XWindowChanges;


XMoveWindow(DspPtr,xid,int1,int2)                            [procedure]
        Moves and raises the window  specified by xid, without  changing
        its size. It does  not change the mapping  state of the  window.
        The X and  Y coordinates  of the new  location of  the top  left
        pixel of the window's border (or the window itself, if it has no
        border) are int1 and  int2. Moving an mapped  window may or  may
        not lose  its  contents  depending  on  whether  the  window  is
        obscured by  non-children. If  the contents  are lost,  exposure
        events  will  be  generated  for  the  window  and  any   mapped
        subwindows. Moving a mapped window will generate exposure events
        on any formerly obscured windows.


XMoveResizeWindow(DspPtr,xid,int1,int2,uint1,uint2)          [procedure]
        Changes the size and  location of the  window specified by  xid.
        Configuring a mapped window loses its contents and generates  an
        ExposeWindow event. int1 and int2  are the new X, Y  coordinates
        of the upper left corner of the window, uint1 and uint2 are  the
        new width and  height. CHnaging a  window may generate  exposure
        events on windows that  the window formerly obscured,  depending
        on the new size and location parameters. To change the  location
        only,  call   XMoveWindow.  To   change  the   size  only   call
        XResizeWindow


XRaiseWindow(DspPtr,xid)                                     [procedure]
        XRaiseWindow `raises' the  window specified  by xid  so that  no
        sibling window  obscures  it. If  the  windows are  regarded  as
        overlapping sheets of  paper stacked on  a desk, then  raising a
        window is analogous to moving the sheet to the top of the stack,
        while leaving its x and y location on the desk constant. Raising
        a mapped window may generate exposure events for the window  and
        any mapped subwindows that were formerly obscured.


XLowerWindow(DspPtr,xid)                                     [procedure]
        XLowerWindow `lowers' the  window specified  by xid  so that  it
        does not  obscure  any  sibling  windows.  If  the  windows  are
        regarded as overlapping sheets of paper stacked on a desk,  then
        lowering a window is analogous to moving the sheet to the bottom
        of the stack,  while leaving its  x and y  location on the  desk
        constant. Lowering a mapped window will generate exposure events
        on any windows it formerly obscured.


XCirculateSubwindowsDown(DspPtr,xid)                         [procedure]
        Lower the highest mapped  child of the  window specified by  xid
        that partially or completely obscures another child.  Completely
        unobscured children are not affected. Generates exposure  events
        on any  window formerly  obscured. Repeated  executions lead  to
        round robin lowering.


XCirculateSubwindowsUp(DspPtr,xid)                           [procedure]
        Raises the lowest mapped  child of the  window specified by  xid
        that is  partially  or  completely obscured  by  another  child.
        Completely unobscured  children  are  not  affected.  This  will
        generate exposure events on that child (and its descendents)  if
        any part of it was  formerly obscured. Repeated executions  lead
        to round robin raising.


XResizeWindow(DspPtr,xid,uint1,uint2)                        [procedure]
        Changes the size of the window specified by xid without changing
        its upper left coordinate. The new width and height specified by
        uint1 and uint2 are inside  dimensions; they do not include  the
        window's borders. Changing the size of a mapped window loses its
        contents and generates an ExposeWindow event. If a mapped window
        is made smaller,  exposure events will  be generated on  windows
        that it  formerly obscured.  The  origin of  the window  is  not
        changed.


XQueryTree(DspPtr,xid,ulongptr1,ulongptr2,ulongptrptr,       [procedure]
            uintptr) -> int
        Returns  data  concerning  the  heirarchy  tree  of  the  window
        specified by xid. ulongptr1 is  the root window for the  window,
        ulongptr2 is the parent window for the window. ulongptrptr  is a
        pointer to a vector of pointers  to the children of the  window,
        and uintptr  is  the  number  of children  in  the  vector.  The
        children are listed in current stacking order, from  bottom-most
        (first) to top-most (last). The procedure returns 0 if it  fails
        and 1 if it succeeds.


XCirculateSubwindows(DspPtr,xid,int)                         [procedure]
XConfigureWindow(DspPtr,xid,uint,xwinchangeptr)              [procedure]
XReparentWindow(DspPtr,xid1,xid2,int1,int2)                  [procedure]
XSetWindowBorder((DspPtr,xid,uint)                           [procedure]
XRestackWindows(DspPtr,ulongptr,int)                         [procedure]
        These procedures implement the equivalent C functions.




--- C.x/x/pop/ref/XWindowManipulation
--- Copyright University of Sussex 1991. All rights reserved.
