bionic (3) Tk_UnmaintainGeometry.3tk.gz

Provided by: tk8.6-doc_8.6.8-4_all bug

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 easier for geometry managers to deal with slaves
       whose masters 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 translated 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 the slave's parent, is moved, then the slave
              must be repositioned within its parent in order to maintain 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 master 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 are not their parents, as well as
       handling the simpler case of slaves whose masters are their parents.   Tk_MaintainGeometry  is  typically
       called by a window manager once it has decided where a slave should be positioned relative to its master.
       Tk_MaintainGeometry translates 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 ancestors 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_MaintainGeometry for the
       master-slave pair, so that the slave's geometry and mapped state are no longer maintained  automatically.
       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 automatically.

       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_UnmaintainGeometry is called for a master-slave pair
       that is is not currently managed, the call has no effect.

KEYWORDS

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