MaintGeom.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
- '"
- '" Copyright (c) 1994 The Regents of the University of California.
- '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
- '"
- '" See the file "license.terms" for information on usage and redistribution
- '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- '"
- '" RCS: @(#) $Id: MaintGeom.3,v 1.3 2000/10/05 00:50:00 ericm Exp $
- '"
- .so man.macros
- .TH Tk_MaintainGeometry 3 4.0 Tk "Tk Library Procedures"
- .BS
- .SH NAME
- Tk_MaintainGeometry, Tk_UnmaintainGeometry - maintain geometry of one window relative to another
- .SH SYNOPSIS
- .nf
- fB#include <tk.h>fR
- .sp
- fBTk_MaintainGeometryfR(fIslave, master, x, y, width, heightfR)
- .sp
- fBTk_UnmaintainGeometryfR(fIslave, masterfR)
- .SH ARGUMENTS
- .AS Tk_Window master
- .AP Tk_Window slave in
- Window whose geometry is to be controlled.
- .AP Tk_Window master in
- Window relative to which fIslavefR's geometry will be controlled.
- .AP int x in
- Desired x-coordinate of fIslavefR in fImasterfR, measured in pixels
- from the inside of fImasterfR's left border to the outside of
- fIslavefR's left border.
- .AP int y in
- Desired y-coordinate of fIslavefR in fImasterfR, measured in pixels
- from the inside of fImasterfR's top border to the outside of
- fIslavefR's top border.
- .AP int width in
- Desired width for fIslavefR, in pixels.
- .AP int height in
- Desired height for fIslavefR, in pixels.
- .BE
- .SH DESCRIPTION
- .PP
- fBTk_MaintainGeometryfR and fBTk_UnmaintainGeometryfR 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:
- .IP [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.
- .IP [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.
- .IP [3]
- If the master or one of its ancestors is mapped or unmapped, then
- the slave must be mapped or unmapped to correspond.
- .LP
- 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.
- .PP
- fBTk_MaintainGeometryfR 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 parents.
- fBTk_MaintainGeometryfR is typically called by a window manager
- once it has decided where a slave should be positioned relative
- to its master.
- fBTk_MaintainGeometryfR translates the coordinates to the
- coordinate system of fIslavefR'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 fIxfR, fIyfR, fIwidthfR, and
- fIheightfR.
- .PP
- 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 fBTk_UnmaintainGeometryfR.
- fBTk_UnmaintainGeometryfR unmaps the window and cancels any
- previous calls to fBTk_MaintainGeometryfR for the
- fImasterfR-fIslavefR pair, so that the slave's
- geometry and mapped state are no longer maintained
- automatically.
- fBTk_UnmaintainGeometryfR 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.
- .PP
- If fBTk_MaintainGeometryfR is called repeatedly for the same
- fImasterfR-fIslavefR pair, the information from the most
- recent call supersedes any older information.
- If fBTk_UnmaintainGeometryfR is called for a fImasterfR-fIslavefR
- pair that is isn't currently managed, the call has no effect.
- .SH KEYWORDS
- geometry manager, map, master, parent, position, slave, unmap