Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Tk_MaintainGeometry(3)	     Tk	Library	Procedures	Tk_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  con-

       Tk_Window master	(in)	      Window  relative to which	slave's	geome-
				      try 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.

       Tk_MaintainGeometry and Tk_UnmaintainGeometry make it easier for	geome-
       try  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 po-
	      sitioning	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

       [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 de-
       sired 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 ad-
       justed so that it is mapped only	when the master	is mapped and its  ge-
       ometry  relative	to the master remains as specified by x, y, width, and

       When a window manager relinquishes control over a window, or if it  de-
       cides  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 automati-

       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, unmap

Tk				      4.0		Tk_MaintainGeometry(3)


Want to link to this manual page? Use this URL:

home | help