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

FreeBSD Manual Pages

  
 
  

home | help
Tk_MaintainGeometry(3)	      Tk Library Procedures	  Tk_MaintainGeometry(3)

________________________________________________________________________________

NAME
     Tk_MaintainGeometry,  Tk_UnmaintainGeometry - maintain geometry of one win-
     dow relative to another

SYNOPSIS
     #include <tk.h>

     Tk_MaintainGeometry(window, container, x, y, width, height)

     Tk_UnmaintainGeometry(window, container)

ARGUMENTS
     Tk_Window window (in)	       Window  whose  geometry	is  to	be  con-
				       trolled.

     Tk_Window container (in)	       Window  relative to which window's geome-
				       try will be controlled.

     int x (in) 		       Desired x-coordinate of	window	in  con-
				       tainer,	measured  in pixels from the in-
				       side of container's left  border  to  the
				       outside of window's left border.

     int y (in) 		       Desired	y-coordinate  of  window in con-
				       tainer, measured in pixels from	the  in-
				       side  of  container's  top  border to the
				       outside of window's top border.

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

     int height (in)		       Desired height for window, in pixels.
________________________________________________________________________________

DESCRIPTION
     Tk_MaintainGeometry and Tk_UnmaintainGeometry make it easier  for	geometry
     managers  to  deal  with  windows	whose  containers are not their parents.
     Three problems arise if the container for a window is not its parent:

     [1]    The x- and y-position of the window must be translated from the  co-
	    ordinate  system of the container to that of the parent before posi-
	    tioning the window.

     [2]    If the container window, or any of its ancestors up to the	window's
	    parent,  is  moved,  then the window must be repositioned within its
	    parent in order to maintain the correct  position  relative  to  the
	    container.

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

     None  of  these  problems	is  an issue if the parent and container are the
     same.  For example, if the container or one of its ancestors  is  unmapped,
     the window is automatically removed by the screen by X.

     Tk_MaintainGeometry  deals with these problems for windows whose containers
     are not their parents, as well as handling  the  simpler  case  of  windows
     whose container are their parents.  Tk_MaintainGeometry is typically called
     by a window manager once it has decided where a window should be positioned
     relative  to its container.  Tk_MaintainGeometry translates the coordinates
     to the coordinate system of window's parent and then moves and resizes  the
     window  appropriately.   Furthermore, it remembers the desired position and
     creates event handlers to monitor the container and all of its ancestors up
     to (but not including) the window's parent.  If any  of  these  windows  is
     moved,  mapped,  or  unmapped,  the  window  will be adjusted so that it is
     mapped only when the container is mapped and its geometry relative  to  the
     container 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  condi-
     tions,  it  calls	Tk_UnmaintainGeometry.	Tk_UnmaintainGeometry unmaps the
     window and cancels any previous calls to Tk_MaintainGeometry for  the  con-
     tainer-window  pair,  so that the window's geometry and mapped state are no
     longer maintained automatically.  Tk_UnmaintainGeometry need not be  called
     by  a  geometry  manager  if  the window, the container, or any of the con-
     tainer's ancestors is destroyed:  Tk will call it automatically.

     If Tk_MaintainGeometry is called repeatedly for the  same	container-window
     pair, the information from the most recent call supersedes any older infor-
     mation.   If  Tk_UnmaintainGeometry  is  called for a container-window pair
     that is is not currently managed, the call has no effect.

KEYWORDS
     geometry manager, map, container, parent, position, window, unmap

Tk				       4.0		  Tk_MaintainGeometry(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=Tk_MaintainGeometry.tk86&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help