MaintGeom.3
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:4k
源码类别:

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1994 The Regents of the University of California.
  3. '" Copyright (c) 1994-1996 Sun Microsystems, Inc.
  4. '"
  5. '" See the file "license.terms" for information on usage and redistribution
  6. '" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  7. '" 
  8. '" RCS: @(#) $Id: MaintGeom.3,v 1.3 2000/10/05 00:50:00 ericm Exp $
  9. '" 
  10. .so man.macros
  11. .TH Tk_MaintainGeometry 3 4.0 Tk "Tk Library Procedures"
  12. .BS
  13. .SH NAME
  14. Tk_MaintainGeometry, Tk_UnmaintainGeometry - maintain geometry of one window relative to another
  15. .SH SYNOPSIS
  16. .nf
  17. fB#include <tk.h>fR
  18. .sp
  19. fBTk_MaintainGeometryfR(fIslave, master, x, y, width, heightfR)
  20. .sp
  21. fBTk_UnmaintainGeometryfR(fIslave, masterfR)
  22. .SH ARGUMENTS
  23. .AS Tk_Window master
  24. .AP Tk_Window slave in
  25. Window whose geometry is to be controlled.
  26. .AP Tk_Window master in
  27. Window relative to which fIslavefR's geometry will be controlled.
  28. .AP int x in
  29. Desired x-coordinate of fIslavefR in fImasterfR, measured in pixels
  30. from the inside of fImasterfR's left border to the outside of
  31. fIslavefR's left border.
  32. .AP int y in
  33. Desired y-coordinate of fIslavefR in fImasterfR, measured in pixels
  34. from the inside of fImasterfR's top border to the outside of
  35. fIslavefR's top border.
  36. .AP int width in
  37. Desired width for fIslavefR, in pixels.
  38. .AP int height in
  39. Desired height for fIslavefR, in pixels.
  40. .BE
  41. .SH DESCRIPTION
  42. .PP
  43. fBTk_MaintainGeometryfR and fBTk_UnmaintainGeometryfR make it
  44. easier for geometry managers to deal with slaves whose masters are not
  45. their parents.
  46. Three problems arise if the master for a slave is not its parent:
  47. .IP [1]
  48. The x- and y-position of the slave must be translated from the
  49. coordinate system of the master to that of the parent before
  50. positioning the slave.
  51. .IP [2]
  52. If the master window, or any of its ancestors up to the slave's
  53. parent, is moved, then the slave must be repositioned within its
  54. parent in order to maintain the correct position relative to the
  55. master.
  56. .IP [3]
  57. If the master or one of its ancestors is mapped or unmapped, then
  58. the slave must be mapped or unmapped to correspond.
  59. .LP
  60. None of these problems is an issue if the parent and master are
  61. the same.  For example, if the master or one of its ancestors
  62. is unmapped, the slave is automatically removed by the screen
  63. by X.
  64. .PP
  65. fBTk_MaintainGeometryfR deals with these problems for slaves
  66. whose masters aren't their parents, as well as handling the simpler
  67. case of slaves whose masters are their parents.
  68. fBTk_MaintainGeometryfR is typically called by a window manager
  69. once it has decided where a slave should be positioned relative
  70. to its master.
  71. fBTk_MaintainGeometryfR translates the coordinates to the
  72. coordinate system of fIslavefR's parent and then moves and
  73. resizes the slave appropriately.
  74. Furthermore, it remembers the desired position and creates event
  75. handlers to monitor the master and all of its ancestors up
  76. to (but not including) the slave's parent.
  77. If any of these windows is moved, mapped, or unmapped,
  78. the slave will be adjusted so that it is mapped only when the
  79. master is mapped and its geometry relative to the master
  80. remains as specified by fIxfR, fIyfR, fIwidthfR, and
  81. fIheightfR.
  82. .PP
  83. When a window manager relinquishes control over a window, or
  84. if it decides that it does not want the window to appear on the
  85. screen under any conditions, it calls fBTk_UnmaintainGeometryfR.
  86. fBTk_UnmaintainGeometryfR unmaps the window and cancels any
  87. previous calls to fBTk_MaintainGeometryfR for the
  88. fImasterfR-fIslavefR pair, so that the slave's
  89. geometry and mapped state are no longer maintained
  90. automatically.
  91. fBTk_UnmaintainGeometryfR need not be called by a geometry
  92. manager if the slave, the master, or any of the master's ancestors
  93. is destroyed:  Tk will call it automatically.
  94. .PP
  95. If fBTk_MaintainGeometryfR is called repeatedly for the same
  96. fImasterfR-fIslavefR pair, the information from the most
  97. recent call supersedes any older information.
  98. If fBTk_UnmaintainGeometryfR is called for a fImasterfR-fIslavefR
  99. pair that is isn't currently managed, the call has no effect.
  100. .SH KEYWORDS
  101. geometry manager, map, master, parent, position, slave, unmap