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

通讯编程

开发平台:

Visual C++

  1. '"
  2. '" Copyright (c) 1991-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: wm.n,v 1.11.2.6 2007/04/29 02:25:54 das Exp $
  9. '" 
  10. .so man.macros
  11. .TH wm n 8.4 Tk "Tk Built-In Commands"
  12. .BS
  13. '" Note:  do not modify the .SH NAME line immediately below!
  14. .SH NAME
  15. wm - Communicate with window manager
  16. .SH SYNOPSIS
  17. fBwmfR fIoption window fR?fIargsfR?
  18. .BE
  19. .SH DESCRIPTION
  20. .PP
  21. The fBwmfR command is used to interact with window managers in
  22. order to control such things as the title for a window, its geometry,
  23. or the increments in terms of which it may be resized.  The fBwmfR
  24. command can take any of a number of different forms, depending on
  25. the fIoptionfR argument.  All of the forms expect at least one
  26. additional argument, fIwindowfR, which must be the path name of a
  27. top-level window.
  28. .PP
  29. The legal forms for the fBwmfR command are:
  30. .TP
  31. fBwm aspect fIwindowfR ?fIminNumer minDenom maxNumer maxDenomfR?
  32. If fIminNumerfR, fIminDenomfR, fImaxNumerfR, and fImaxDenomfR
  33. are all specified, then they will be passed to the window manager
  34. and the window manager should use them to enforce a range of
  35. acceptable aspect ratios for fIwindowfR.  The aspect ratio of
  36. fIwindowfR (width/length) will be constrained to lie
  37. between fIminNumerfR/fIminDenomfR and fImaxNumerfR/fImaxDenomfR.
  38. If fIminNumerfR etc. are all specified as empty strings, then
  39. any existing aspect ratio restrictions are removed.
  40. If fIminNumerfR etc. are specified, then the command returns an
  41. empty string.  Otherwise, it returns
  42. a Tcl list containing four elements, which are the current values
  43. of fIminNumerfR, fIminDenomfR, fImaxNumerfR, and fImaxDenomfR
  44. (if no aspect restrictions are in effect, then an empty string is
  45. returned).
  46. .VS 8.4
  47. .TP
  48. fBwm attributes fIwindowfR
  49. .TP
  50. fBwm attributes fIwindowfR ?fBoptionfR?
  51. .TP
  52. fBwm attributes fIwindowfR ?fBoption value option value...fR?
  53. This subcommand returns or sets platform specific attributes associated
  54. with a window. The first form returns a list of the platform specific
  55. flags and their values. The second form returns the value for the
  56. specific option. The third form sets one or more of the values. The
  57. values are as follows:
  58. .PP
  59. On Windows, the following attributes may be set.
  60. .RS
  61. .TP
  62. fB-disabledfR
  63. Specifies whether the window is in a disabled state.
  64. .TP
  65. fB-toolwindowfR
  66. Specifies a toolwindow style window (as defined in the MSDN).
  67. .TP
  68. fB-topmostfR
  69. Specifies whether this is a topmost window (displays above all other windows).
  70. .TP
  71. fB-alphafR
  72. Specifies the alpha transparency level of the toplevel.
  73. It accepts a value from fB0.0fR (fully transparent) to fB1.0fR
  74. (opaque).  Values outside that range will be constrained.  This is
  75. supported on Windows 2000/XP+.  Where not supported, the fB-alphafR
  76. value remains at fB1.0fR.
  77. .TP
  78. fB-transparentcolorfR
  79. Specifies the transparent color index of the toplevel.  It takes any color
  80. value accepted by fBTk_GetColorfR.  If the empty string is specified
  81. (default), no transparent color is used.  This is supported on Windows
  82. 2000/XP+.  Where not supported, the fB-transparentcolorfR value remains
  83. at fB{}fR.
  84. .RE
  85. .PP
  86. On Mac OS X, the following attributes may be set.
  87. .RS
  88. .TP
  89. fB-modifiedfR
  90. Specifies the modification state of the window (determines whether the
  91. window close widget contains the modification indicator and whether the
  92. proxy icon is draggable).
  93. .TP
  94. fB-titlepathfR
  95. Specifies the path of the file referenced as the window proxy icon (which
  96. can be dragged and dropped in lieu of the file's finder icon).
  97. .TP
  98. fB-alphafR
  99. Specifies the alpha transparency level of the window.
  100. It accepts a value from fB0.0fR (fully transparent) to fB1.0fR (opaque),
  101. values outside that range will be constrained.
  102. .TP
  103. fB-topmostfR
  104. Specifies whether this is a topmost window (displays above all other windows).
  105. .TP
  106. fB-transparentfR
  107. Makes the window content area transparent and turns off the window shadow. For
  108. the transparency to be effecive, the toplevel background needs to be set to a
  109. color with some alpha, e.g. "systemTransparent".
  110. .TP
  111. fB-fullscreenfR
  112. Places the window in a mode that takes up the entire main screen and hides
  113. the dock and menu bar.
  114. .RE
  115. .PP
  116. On X11, there are currently no special attribute values.
  117. .VE 8.4
  118. .TP
  119. fBwm client fIwindowfR ?fInamefR?
  120. If fInamefR is specified, this command stores fInamefR (which
  121. should be the name of
  122. the host on which the application is executing) in fIwindowfR's
  123. fBWM_CLIENT_MACHINEfR property for use by the window manager or
  124. session manager.
  125. The command returns an empty string in this case.
  126. If fInamefR isn't specified, the command returns the last name
  127. set in a fBwm clientfR command for fIwindowfR.
  128. If fInamefR is specified as an empty string, the command deletes the
  129. fBWM_CLIENT_MACHINEfR property from fIwindowfR.
  130. .TP
  131. fBwm colormapwindows fIwindowfR ?fIwindowListfR?
  132. This command is used to manipulate the fBWM_COLORMAP_WINDOWSfR
  133. property, which provides information to the window managers about
  134. windows that have private colormaps.
  135. If fIwindowListfR isn't specified, the command returns a list
  136. whose elements are the names of the windows in the fBWM_COLORMAP_WINDOWSfR
  137. property.
  138. If fIwindowListfR is specified, it consists of a list of window
  139. path names;  the command overwrites the fBWM_COLORMAP_WINDOWSfR
  140. property with the given windows and returns an empty string.
  141. The fBWM_COLORMAP_WINDOWSfR property should normally contain a
  142. list of the internal windows within fIwindowfR whose colormaps differ
  143. from their parents.
  144. The order of the windows in the property indicates a priority order:
  145. the window manager will attempt to install as many colormaps as possible
  146. from the head of this list when fIwindowfR gets the colormap focus.
  147. If fIwindowfR is not included among the windows in fIwindowListfR,
  148. Tk implicitly adds it at the end of the fBWM_COLORMAP_WINDOWSfR
  149. property, so that its colormap is lowest in priority.
  150. If fBwm colormapwindowsfR is not invoked, Tk will automatically set
  151. the property for each top-level window to all the internal windows
  152. whose colormaps differ from their parents, followed by the top-level
  153. itself;  the order of the internal windows is undefined.
  154. See the ICCCM documentation for more information on the
  155. fBWM_COLORMAP_WINDOWSfR property.
  156. .TP
  157. fBwm command fIwindowfR ?fIvaluefR?
  158. If fIvaluefR is specified, this command stores fIvaluefR in fIwindowfR's
  159. fBWM_COMMANDfR property for use by the window manager or
  160. session manager and returns an empty string.
  161. fIValuefR must have proper list structure;  the elements should
  162. contain the words of the command used to invoke the application.
  163. If fIvaluefR isn't specified then the command returns the last value
  164. set in a fBwm commandfR command for fIwindowfR.
  165. If fIvaluefR is specified as an empty string, the command
  166. deletes the fBWM_COMMANDfR property from fIwindowfR.
  167. .TP
  168. fBwm deiconify fIwindowfR
  169. Arrange for fIwindowfR to be displayed in normal (non-iconified) form.
  170. This is done by mapping the window.  If the window has never been
  171. mapped then this command will not map the window, but it will ensure
  172. that when the window is first mapped it will be displayed
  173. in de-iconified form.  On Windows, a deiconified window will also be
  174. raised and be given the focus (made the active window).
  175. Returns an empty string.
  176. .TP
  177. fBwm focusmodel fIwindowfR ?fBactivefR|fBpassivefR?
  178. If fBactivefR or fBpassivefR is supplied as an optional argument
  179. to the command, then it specifies the focus model for fIwindowfR.
  180. In this case the command returns an empty string.  If no additional
  181. argument is supplied, then the command returns the current focus
  182. model for fIwindowfR.
  183. An fBactivefR focus model means that fIwindowfR will claim the
  184. input focus for itself or its descendants, even at times when
  185. the focus is currently in some other application.  fBPassivefR means that
  186. fIwindowfR will never claim the focus for itself:  the window manager
  187. should give the focus to fIwindowfR at appropriate times.  However,
  188. once the focus has been given to fIwindowfR or one of its descendants,
  189. the application may re-assign the focus among fIwindowfR's descendants.
  190. The focus model defaults to fBpassivefR, and Tk's fBfocusfR command
  191. assumes a passive model of focusing.
  192. .TP
  193. fBwm frame fIwindowfR
  194. .VS
  195. If fIwindowfR has been reparented by the window manager into a
  196. decorative frame, the command returns the platform specific window
  197. identifier for the outermost frame that contains fIwindowfR (the
  198. window whose parent is the root or virtual root).  If fIwindowfR
  199. hasn't been reparented by the window manager then the command returns
  200. the platform specific window identifier for fIwindowfR.
  201. .VE
  202. .TP
  203. fBwm geometry fIwindowfR ?fInewGeometryfR?
  204. If fInewGeometryfR is specified, then the geometry of fIwindowfR
  205. is changed and an empty string is returned.  Otherwise the current
  206. geometry for fIwindowfR is returned (this is the most recent
  207. geometry specified either by manual resizing or
  208. in a fBwm geometryfR command).  fINewGeometryfR has
  209. the form fB=fIwidthfBxfIheightfB(+-fIxfB(+-fIyfR, where
  210. any of fB=fR, fIwidthfBxfIheightfR, or fB(+-fIxfB(+-fIyfR
  211. may be omitted.  fIWidthfR and fIheightfR are positive integers
  212. specifying the desired dimensions of fIwindowfR.  If fIwindowfR
  213. is gridded (see GRIDDED GEOMETRY MANAGEMENT below) then the dimensions
  214. are specified in grid units;  otherwise they are specified in pixel
  215. units.  fIXfR and fIyfR specify the desired location of
  216. fIwindowfR on the screen, in pixels.
  217. If fIxfR is preceded by fB+fR, it specifies
  218. the number of pixels between the left edge of the screen and the left
  219. edge of fIwindowfR's border;  if preceded by fB-fR then
  220. fIxfR specifies the number of pixels
  221. between the right edge of the screen and the right edge of fIwindowfR's
  222. border.  If fIyfR is preceded by fB+fR then it specifies the
  223. number of pixels between the top of the screen and the top
  224. of fIwindowfR's border;  if fIyfR is preceded by fB-fR then
  225. it specifies the number of pixels between the bottom of fIwindowfR's
  226. border and the bottom of the screen.
  227. If fInewGeometryfR is specified as an empty string then any
  228. existing user-specified geometry for fIwindowfR is cancelled, and
  229. the window will revert to the size requested internally by its
  230. widgets.
  231. .TP
  232. fBwm grid fIwindowfR ?fIbaseWidth baseHeight widthInc heightIncfR?
  233. This command indicates that fIwindowfR is to be managed as a
  234. gridded window.
  235. It also specifies the relationship between grid units and pixel units.
  236. fIBaseWidthfR and fIbaseHeightfR specify the number of grid
  237. units corresponding to the pixel dimensions requested internally
  238. by fIwindowfR using fBTk_GeometryRequestfR.  fIWidthIncfR
  239. and fIheightIncfR specify the number of pixels in each horizontal
  240. and vertical grid unit.
  241. These four values determine a range of acceptable sizes for
  242. fIwindowfR, corresponding to grid-based widths and heights
  243. that are non-negative integers.
  244. Tk will pass this information to the window manager;  during
  245. manual resizing, the window manager will restrict the window's size
  246. to one of these acceptable sizes.
  247. Furthermore, during manual resizing the window manager will display
  248. the window's current size in terms of grid units rather than pixels.
  249. If fIbaseWidthfR etc. are all specified as empty strings, then
  250. fIwindowfR will no longer be managed as a gridded window.  If
  251. fIbaseWidthfR etc. are specified then the return value is an
  252. empty string.
  253. Otherwise the return value is a Tcl list containing
  254. four elements corresponding to the current fIbaseWidthfR,
  255. fIbaseHeightfR, fIwidthIncfR, and fIheightIncfR;  if
  256. fIwindowfR is not currently gridded, then an empty string
  257. is returned.
  258. Note: this command should not be needed very often, since the
  259. fBTk_SetGridfR library procedure and the fBsetGridfR option
  260. provide easier access to the same functionality.
  261. .TP
  262. fBwm group fIwindowfR ?fIpathNamefR?
  263. If fIpathNamefR is specified, it gives the path name for the leader of
  264. a group of related windows.  The window manager may use this information,
  265. for example, to unmap all of the windows in a group when the group's
  266. leader is iconified.  fIPathNamefR may be specified as an empty string to
  267. remove fIwindowfR from any group association.  If fIpathNamefR is
  268. specified then the command returns an empty string;  otherwise it
  269. returns the path name of fIwindowfR's current group leader, or an empty
  270. string if fIwindowfR isn't part of any group.
  271. .TP
  272. fBwm iconbitmap fIwindowfR ?fIbitmapfR?
  273. If fIbitmapfR is specified, then it names a bitmap in the standard
  274. forms accepted by Tk (see the fBTk_GetBitmapfR manual entry for details).
  275. This bitmap is passed to the window manager to be displayed in
  276. fIwindowfR's icon, and the command returns an empty string.  If
  277. an empty string is specified for fIbitmapfR, then any current icon
  278. bitmap is cancelled for fIwindowfR.
  279. If fIbitmapfR is specified then the command returns an empty string.
  280. Otherwise it returns the name of
  281. the current icon bitmap associated with fIwindowfR, or an empty
  282. string if fIwindowfR has no icon bitmap.  On the Windows operating
  283. system, an additional flag is supported: 
  284. fBwm iconbitmap fIwindowfR ?fB-defaultfR? ?fIimagefR?.  
  285. If the fB-defaultfR
  286. flag is given, the icon is applied to all toplevel windows (existing
  287. and future) to which no other specific icon has yet been applied.
  288. In addition to bitmap image types, a full path specification to
  289. any file which contains a valid
  290. Windows icon is also accepted (usually .ico or .icr files), or any
  291. file for which the shell has assigned an icon.  Tcl will
  292. first test if the file contains an icon, then if it has an assigned
  293. icon, and finally, if that fails, test for
  294. a bitmap.
  295. .TP
  296. fBwm iconify fIwindowfR
  297. Arrange for fIwindowfR to be iconified.  It fIwindowfR hasn't
  298. yet been mapped for the first time, this command will arrange for
  299. it to appear in the iconified state when it is eventually mapped.
  300. .TP
  301. fBwm iconmask fIwindowfR ?fIbitmapfR?
  302. If fIbitmapfR is specified, then it names a bitmap in the standard
  303. forms accepted by Tk (see the fBTk_GetBitmapfR manual entry for details).
  304. This bitmap is passed to the window manager to be used as a mask
  305. in conjunction with the fBiconbitmapfR option:  where the mask
  306. has zeroes no icon will be displayed;  where it has ones, the bits
  307. from the icon bitmap will be displayed.  If
  308. an empty string is specified for fIbitmapfR then any current icon
  309. mask is cancelled for fIwindowfR (this is equivalent to specifying
  310. a bitmap of all ones).  If fIbitmapfR is specified
  311. then the command returns an empty string.  Otherwise it
  312. returns the name of the current icon mask associated with
  313. fIwindowfR, or an empty string if no mask is in effect.
  314. .TP
  315. fBwm iconname fIwindowfR ?fInewNamefR?
  316. If fInewNamefR is specified, then it is passed to the window
  317. manager;  the window manager should display fInewNamefR inside
  318. the icon associated with fIwindowfR.  In this case an empty
  319. string is returned as result.  If fInewNamefR isn't specified
  320. then the command returns the current icon name for fIwindowfR,
  321. or an empty string if no icon name has been specified (in this
  322. case the window manager will normally display the window's title,
  323. as specified with the fBwm titlefR command).
  324. .TP
  325. fBwm iconposition fIwindowfR ?fIx yfR?
  326. If fIxfR and fIyfR are specified, they are passed to the window
  327. manager as a hint about where to position the icon for fIwindowfR.
  328. In this case an empty string is returned.  If fIxfR and fIyfR are
  329. specified as empty strings then any existing icon position hint is cancelled.
  330. If neither fIxfR nor fIyfR is specified, then the command returns
  331. a Tcl list containing two values, which are the current icon position
  332. hints (if no hints are in effect then an empty string is returned).
  333. .TP
  334. fBwm iconwindow fIwindowfR ?fIpathNamefR?
  335. If fIpathNamefR is specified, it is the path name for a window to
  336. use as icon for fIwindowfR: when fIwindowfR is iconified then
  337. fIpathNamefR will be mapped to serve as icon, and when fIwindowfR
  338. is de-iconified then fIpathNamefR will be unmapped again.  If
  339. fIpathNamefR is specified as an empty string then any existing
  340. icon window association for fIwindowfR will be cancelled.  If
  341. the fIpathNamefR argument is specified then an empty string is
  342. returned.  Otherwise the command returns the path name of the
  343. current icon window for fIwindowfR, or an empty string if there
  344. is no icon window currently specified for fIwindowfR.
  345. Button press events are disabled for fIwindowfR as long as it is
  346. an icon window;  this is needed in order to allow window managers
  347. to ``own'' those events.
  348. Note: not all window managers support the notion of an icon window.
  349. .TP
  350. fBwm maxsize fIwindowfR ?fIwidth heightfR?
  351. If fIwidthfR and fIheightfR are specified, they give
  352. the maximum permissible dimensions for fIwindowfR.
  353. For gridded windows the dimensions are specified in
  354. grid units;  otherwise they are specified in pixel units.
  355. The window manager will restrict the window's dimensions to be
  356. less than or equal to fIwidthfR and fIheightfR.
  357. If fIwidthfR and fIheightfR are
  358. specified, then the command returns an empty string.  Otherwise
  359. it returns a Tcl list with two elements, which are the
  360. maximum width and height currently in effect.
  361. The maximum size defaults to the size of the screen.
  362. See the sections on geometry management below for more information.
  363. .TP
  364. fBwm minsize fIwindowfR ?fIwidth heightfR?
  365. If fIwidthfR and fIheightfR are specified, they give the
  366. minimum permissible dimensions for fIwindowfR.
  367. For gridded windows the dimensions are specified in
  368. grid units;  otherwise they are specified in pixel units.
  369. The window manager will restrict the window's dimensions to be
  370. greater than or equal to fIwidthfR and fIheightfR.
  371. If fIwidthfR and fIheightfR are
  372. specified, then the command returns an empty string.  Otherwise
  373. it returns a Tcl list with two elements, which are the
  374. minimum width and height currently in effect.
  375. The minimum size defaults to one pixel in each dimension.
  376. See the sections on geometry management below for more information.
  377. .TP
  378. fBwm overrideredirect fIwindowfR ?fIbooleanfR?
  379. If fIbooleanfR is specified, it must have a proper boolean form and
  380. the override-redirect flag for fIwindowfR is set to that value.
  381. If fIbooleanfR is not specified then fB1fR or fB0fR is
  382. returned to indicate whether or not the override-redirect flag
  383. is currently set for fIwindowfR.
  384. Setting the override-redirect flag for a window causes
  385. it to be ignored by the window manager;  among other things, this means
  386. that the window will not be reparented from the root window into a
  387. decorative frame and the user will not be able to manipulate the
  388. window using the normal window manager mechanisms.
  389. .TP
  390. fBwm positionfrom fIwindowfR ?fIwhofR?
  391. If fIwhofR is specified, it must be either fBprogramfR or
  392. fBuserfR, or an abbreviation of one of these two.  It indicates
  393. whether fIwindowfR's current position was requested by the
  394. program or by the user.  Many window managers ignore program-requested
  395. initial positions and ask the user to manually position the window;  if
  396. fBuserfR is specified then the window manager should position the
  397. window at the given place without asking the user for assistance.
  398. If fIwhofR is specified as an empty string, then the current position
  399. source is cancelled.
  400. If fIwhofR is specified, then the command returns an empty string.
  401. Otherwise it returns fBuserfR or fBprogramfR to indicate the
  402. source of the window's current position, or an empty string if
  403. no source has been specified yet.  Most window managers interpret
  404. ``no source'' as equivalent to fBprogramfR.
  405. Tk will automatically set the position source to fBuserfR
  406. when a fBwm geometryfR command is invoked, unless the source has
  407. been set explicitly to fBprogramfR.
  408. .TP
  409. fBwm protocol fIwindowfR ?fInamefR? ?fIcommandfR?
  410. This command is used to manage window manager protocols such as
  411. fBWM_DELETE_WINDOWfR.
  412. fINamefR is the name of an atom corresponding to a window manager
  413. protocol, such as fBWM_DELETE_WINDOWfR or fBWM_SAVE_YOURSELFfR
  414. or fBWM_TAKE_FOCUSfR.
  415. If both fInamefR and fIcommandfR are specified, then fIcommandfR
  416. is associated with the protocol specified by fInamefR.
  417. fINamefR will be added to fIwindowfR's fBWM_PROTOCOLSfR
  418. property to tell the window manager that the application has a
  419. protocol handler for fInamefR, and fIcommandfR will
  420. be invoked in the future whenever the window manager sends a
  421. message to the client for that protocol.
  422. In this case the command returns an empty string.
  423. If fInamefR is specified but fIcommandfR isn't, then the current
  424. command for fInamefR is returned, or an empty string if there
  425. is no handler defined for fInamefR.
  426. If fIcommandfR is specified as an empty string then the current
  427. handler for fInamefR is deleted and it is removed from the
  428. fBWM_PROTOCOLSfR property on fIwindowfR;  an empty string is
  429. returned.
  430. Lastly, if neither fInamefR nor fIcommandfR is specified, the
  431. command returns a list of all the protocols for which handlers
  432. are currently defined for fIwindowfR.
  433. .RS
  434. .PP
  435. Tk always defines a protocol handler for fBWM_DELETE_WINDOWfR, even if
  436. you haven't asked for one with fBwm protocolfR.
  437. If a fBWM_DELETE_WINDOWfR message arrives when you haven't defined
  438. a handler, then Tk handles the message by destroying the window for
  439. which it was received.
  440. .RE
  441. .TP
  442. fBwm resizable fIwindowfR ?fIwidth heightfR?
  443. This command controls whether or not the user may interactively
  444. resize a top-level window.  If fIwidthfR and fIheightfR are
  445. specified, they are boolean values that determine whether the
  446. width and height of fIwindowfR may be modified by the user.
  447. In this case the command returns an empty string.
  448. If fIwidthfR and fIheightfR are omitted then the command
  449. returns a list with two 0/1 elements that indicate whether the
  450. width and height of fIwindowfR are currently resizable.
  451. By default, windows are resizable in both dimensions.
  452. If resizing is disabled, then the window's size will be the size
  453. from the most recent interactive resize or fBwm geometryfR
  454. command.  If there has been no such operation then
  455. the window's natural size will be used.
  456. .TP
  457. fBwm sizefrom fIwindowfR ?fIwhofR?
  458. If fIwhofR is specified, it must be either fBprogramfR or
  459. fBuserfR, or an abbreviation of one of these two.  It indicates
  460. whether fIwindowfR's current size was requested by the
  461. program or by the user.  Some window managers ignore program-requested
  462. sizes and ask the user to manually size the window;  if
  463. fBuserfR is specified then the window manager should give the
  464. window its specified size without asking the user for assistance.
  465. If fIwhofR is specified as an empty string, then the current size
  466. source is cancelled.
  467. If fIwhofR is specified, then the command returns an empty string.
  468. Otherwise it returns fBuserfR or fBwindowfR to indicate the
  469. source of the window's current size, or an empty string if
  470. no source has been specified yet.  Most window managers interpret
  471. ``no source'' as equivalent to fBprogramfR.
  472. .TP
  473. fBwm stackorder fIwindowfR ?fIisabove|isbelow windowfR?
  474. The stackorder command returns a list of toplevel windows
  475. in stacking order, from lowest to highest. When a single toplevel
  476. window is passed, the returned list recursively includes all of the
  477. window's children that are toplevels. Only those toplevels
  478. that are currently mapped to the screen are returned.
  479. The stackorder command can also be used to determine if one
  480. toplevel is positioned above or below a second toplevel.
  481. When two window arguments separated by either fIisabovefR or
  482. fIisbelowfR are passed, a boolean result indicates whether
  483. or not the first window is currently above or below the second
  484. window in the stacking order.
  485. .TP
  486. fBwm state fIwindowfR ?newstate?
  487. If fInewstatefR is specified, the window will be set to the new state,
  488. otherwise it returns the current state of fIwindowfR: either
  489. fBnormalfR, fBiconicfR, fBwithdrawnfR, fBiconfR, or (Windows and Mac
  490. OS X only) fBzoomedfR.
  491. The difference between fBiconicfR and fBiconfR is that
  492. fBiconicfR refers to a window that has been iconified (e.g., with the
  493. fBwm iconifyfR command) while fBiconfR refers to a window whose only
  494. purpose is to serve as the icon for some other window (via the fBwm
  495. iconwindowfR command).  The fBiconfR state cannot be set.
  496. .TP
  497. fBwm title fIwindowfR ?fIstringfR?
  498. If fIstringfR is specified, then it will be passed to the window
  499. manager for use as the title for fIwindowfR (the window manager
  500. should display this string in fIwindowfR's title bar).  In this
  501. case the command returns an empty string.  If fIstringfR isn't
  502. specified then the command returns the current title for the
  503. fIwindowfR.  The title for a window defaults to its name.
  504. .TP
  505. fBwm transient fIwindowfR ?fImasterfR?
  506. If fImasterfR is specified, then the window manager is informed
  507. that fIwindowfR is a transient window (e.g. pull-down menu) working
  508. on behalf of fImasterfR (where fImasterfR is the
  509. path name for a top-level window).  If fImasterfR
  510. is specified as an empty string then fIwindowfR is marked as not
  511. being a transient window any more.  Otherwise the command
  512. returns the path name of fIwindowfR's current master, or an
  513. empty string if fIwindowfR isn't currently a transient window.
  514. A transient window will mirror state changes in the master and
  515. inherit the state of the master when initially mapped. It is an
  516. error to attempt to make a window a transient of itself.
  517. .TP
  518. fBwm withdraw fIwindowfR
  519. Arranges for fIwindowfR to be withdrawn from the screen.  This
  520. causes the window to be unmapped and forgotten about by the window
  521. manager.  If the window
  522. has never been mapped, then this command
  523. causes the window to be mapped in the withdrawn state.  Not all
  524. window managers appear to know how to handle windows that are
  525. mapped in the withdrawn state.
  526. Note: it sometimes seems to be necessary to withdraw a
  527. window and then re-map it (e.g. with fBwm deiconifyfR) to get some
  528. window managers to pay attention to changes in window attributes
  529. such as group.
  530. .SH "GEOMETRY MANAGEMENT"
  531. .PP
  532. By default a top-level window appears on the screen in its
  533. fInatural sizefR, which is the one determined internally by its
  534. widgets and geometry managers.
  535. If the natural size of a top-level window changes, then the window's size
  536. changes to match.
  537. A top-level window can be given a size other than its natural size in two ways.
  538. First, the user can resize the window manually using the facilities
  539. of the window manager, such as resize handles.
  540. Second, the application can request a particular size for a
  541. top-level window using the fBwm geometryfR command.
  542. These two cases are handled identically by Tk;  in either case,
  543. the requested size overrides the natural size.
  544. You can return the window to its natural by invoking fBwm geometryfR
  545. with an empty fIgeometryfR string.
  546. .PP
  547. Normally a top-level window can have any size from one pixel in each
  548. dimension up to the size of its screen.
  549. However, you can use the fBwm minsizefR and fBwm maxsizefR commands
  550. to limit the range of allowable sizes.
  551. The range set by fBwm minsizefR and fBwm maxsizefR applies to
  552. all forms of resizing, including the window's natural size as
  553. well as manual resizes and the fBwm geometryfR command.
  554. You can also use the command fBwm resizablefR to completely
  555. disable interactive resizing in one or both dimensions.
  556. .SH "GRIDDED GEOMETRY MANAGEMENT"
  557. .PP
  558. Gridded geometry management occurs when one of the widgets of an
  559. application supports a range of useful sizes.
  560. This occurs, for example, in a text editor where the scrollbars,
  561. menus, and other adornments are fixed in size but the edit widget
  562. can support any number of lines of text or characters per line.
  563. In this case, it is usually desirable to let the user specify the
  564. number of lines or characters-per-line, either with the
  565. fBwm geometryfR command or by interactively resizing the window.
  566. In the case of text, and in other interesting cases also, only
  567. discrete sizes of the window make sense, such as integral numbers
  568. of lines and characters-per-line;  arbitrary pixel sizes are not useful.
  569. .PP
  570. Gridded geometry management provides support for this kind of
  571. application.
  572. Tk (and the window manager) assume that there is a grid of some
  573. sort within the application and that the application should be
  574. resized in terms of fIgrid unitsfR rather than pixels.
  575. Gridded geometry management is typically invoked by turning on
  576. the fBsetGridfR option for a widget;  it can also be invoked
  577. with the fBwm gridfR command or by calling fBTk_SetGridfR.
  578. In each of these approaches the particular widget (or sometimes
  579. code in the application as a whole) specifies the relationship between 
  580. integral grid sizes for the window and pixel sizes.
  581. To return to non-gridded geometry management, invoke
  582. fBwm gridfR with empty argument strings.
  583. .PP
  584. When gridded geometry management is enabled then all the dimensions specified
  585. in fBwm minsizefR, fBwm maxsizefR, and fBwm geometryfR commands
  586. are treated as grid units rather than pixel units.
  587. Interactive resizing is also carried out in even numbers of grid units
  588. rather than pixels.
  589. .SH BUGS
  590. .PP
  591. Most existing window managers appear to have bugs that affect the
  592. operation of the fBwmfR command.  For example, some changes won't
  593. take effect if the window is already active:  the window will have
  594. to be withdrawn and de-iconified in order to make the change happen.
  595. .SH EXAMPLES
  596. A fixed-size window that says that it is fixed-size too:
  597. .CS
  598. toplevel .fixed
  599. fBwm titlefR     .fixed "Fixed-size Window"
  600. fBwm resizablefR .fixed 0 0
  601. .CE
  602. .PP
  603. A simple dialog-like window, centred on the screen:
  604. .CS
  605. # Create and arrange the dialog contents.
  606. toplevel .msg
  607. label  .msg.l  -text "This is a very simple dialog demo."
  608. button .msg.ok -text OK -default active -command {destroy .msg}
  609. pack .msg.ok -side bottom -fill x
  610. pack .msg.l  -expand 1    -fill both
  611. # Now set the widget up as a centred dialog.
  612. # But first, we need the geometry managers to finish setting
  613. # up the interior of the dialog, for which we need to run the
  614. # event loop with the widget hidden completely...
  615. fBwm withdrawfR .msg
  616. update
  617. set x [expr {([winfo screenwidth .]-[winfo width .msg])/2}]
  618. set y [expr {([winfo screenheight .]-[winfo height .msg])/2}]
  619. fBwm geometryfR  .msg +$x+$y
  620. fBwm transientfR .msg .
  621. fBwm titlefR     .msg "Dialog demo"
  622. fBwm deiconifyfR .msg
  623. .CE
  624. .SH "SEE ALSO"
  625. toplevel(n), winfo(n)
  626. .SH KEYWORDS
  627. aspect ratio, deiconify, focus model, geometry, grid, group, icon, iconify, increments, position, size, title, top-level window, units, window manager