Tk_MaintainGeometry(3)Tk Library ProceduresTk_MaintainGeometry(3)



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


     #include <tk.h>

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

     Tk_UnmaintainGeometry(slave, master)


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

     Tk_Window master (in)          Window  relative   to   which
                                    slave's geometry will be con-

     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

     int height (in)                Desired height for slave,  in


     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

Tk                      Last change: 4.0                        1

Tk_MaintainGeometry(3)Tk Library ProceduresTk_MaintainGeometry(3)

          slave's  parent, is moved, then the slave must be repo-
          sitioned 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

     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 rela-
     tive  to  its  master.   Tk_MaintainGeometry  translates the
     coordinates to the coordinate system of slave's  parent  and
     then  moves  and  resizes the slave appropriately.  Further-
     more, 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.


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

Tk                      Last change: 4.0                        2

Man(1) output converted with man2html