NAME

       Tk_MaintainGeometry,   Tk_UnmaintainGeometry   -  maintain
       geometry of one window relative to another


SYNOPSIS

       #include <tk.h>

       Tk_MaintainGeometry(slave, master, x, y, width, height)

       Tk_UnmaintainGeometry(slave, master)


ARGUMENTS

       Tk_Window   slave    (in)      Window whose geometry is to
                                      be controlled.

       Tk_Window   master   (in)      Window  relative  to  which
                                      slave's  geometry  will  be
                                      controlled.

       int         x        (in)      Desired   x-coordinate   of
                                      slave in  master,  measured
                                      in  pixels  from the inside
                                      of master's left border  to
                                      the outside of slave's left
                                      border.

       int         y        (in)      Desired   y-coordinate   of
                                      slave  in  master, measured
                                      in pixels from  the  inside
                                      of  master's  top border to
                                      the outside of slave's  top
                                      border.

       int         width    (in)      Desired width for slave, in
                                      pixels.

       int         height   (in)      Desired height  for  slave,
                                      in pixels.
_________________________________________________________________


DESCRIPTION

       Tk_MaintainGeometry and Tk_UnmaintainGeometry make it eas­
       ier for geometry managers to deal with slaves  whose  mas­
       ters  are  not their parents.  Three problems arise if the
       master for a slave is not its parent:

       [1]    The x- and y-position of the slave must  be  trans­
              lated  from  the coordinate system of the master to
              that of the parent before positioning the slave.

       [2]    If the master window, or any of its ancestors up to

              be repositioned within its parent in order to main­
              tain the correct position relative to the master.

       [3]    If  the master or one of its ancestors is mapped or
              unmapped, then the slave must be mapped or unmapped
              to correspond.

       None  of these problems is an issue if the parent and mas­
       ter are the same.  For example, if the master  or  one  of
       its  ancestors  is  unmapped,  the  slave is automatically
       removed by the screen by X.

       Tk_MaintainGeometry deals with these problems  for  slaves
       whose  masters  aren't  their parents, as well as handling
       the simpler case of slaves whose masters  are  their  par­
       ents.  Tk_MaintainGeometry is typically called by a window
       manager once it has decided where a slave should be  posi­
       tioned relative to its master.  Tk_MaintainGeometry trans­
       lates the coordinates to the coordinate system of  slave's
       parent and then moves and resizes the slave appropriately.
       Furthermore, it remembers the desired position and creates
       event handlers to monitor the master and all of its ances­
       tors up to (but not including) the slave's parent.  If any
       of  these windows is moved, mapped, or unmapped, the slave
       will be adjusted so that it is mapped only when the master
       is  mapped and its geometry relative to the master remains
       as specified by x, y, width, and height.

       When a window manager relinquishes control over a  window,
       or  if  it  decides  that  it  does not want the window to
       appear on  the  screen  under  any  conditions,  it  calls
       Tk_UnmaintainGeometry.   Tk_UnmaintainGeometry  unmaps the
       window and cancels any previous calls to Tk_MaintainGeome­
       try  for the master-slave pair, so that the slave's geome­
       try and mapped state are no  longer  maintained  automati­
       cally.   Tk_UnmaintainGeometry  need  not  be  called by a
       geometry manager if the slave, the master, or any  of  the
       master's ancestors is destroyed:  Tk will call it automat­
       ically.

       If Tk_MaintainGeometry is called repeatedly for  the  same
       master-slave  pair,  the  information from the most recent
       call supersedes any older information.  If  Tk_Unmaintain­
       Geometry  is  called for a master-slave pair that is isn't
       currently managed, the call has no effect.


KEYWORDS

       geometry manager, map, master,  parent,  position,  slave,
       unmap


Man(1) output converted with man2html