Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / lib / site_perl / 5.8.0 / sun4-solaris / Tk / Wm.pod
CommitLineData
86530b38
AT
1# Copyright (c) 1991-1994 The Regents of the University of California.
2# Copyright (c) 1994-1996 Sun Microsystems, Inc.
3# See the file "license.terms" for information on usage and redistribution
4# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
5#
6#
7
8=head1 NAME
9
10Tk::Wm - Communicate with window manager
11
12=for category Tk Geometry Management
13
14=head1 SYNOPSIS
15
16S< >I<$toplevel>-E<gt>I<method>(?I<args>?)
17
18=head1 DESCRIPTION
19
20The B<wm> methods are used to interact with window managers in
21order to control such things as the title for a window, its geometry,
22or the increments in terms of which it may be resized.
23The B<wm> methods can take any of a number of different forms, depending on
24the particular I<method> argument.
25All of the forms expect I<$toplevel>, which must be a
26top-level window object.
27
28The legal forms for the B<wm> methods are:
29
30=over 4
31
32=item I<$toplevel>-E<gt>B<aspect>(?I<minNumer minDenom maxNumer maxDenom>?)
33
34If I<minNumer>, I<minDenom>, I<maxNumer>, and I<maxDenom>
35are all specified, then they will be passed to the window manager
36and the window manager should use them to enforce a range of
37acceptable aspect ratios for I<$toplevel>. The aspect ratio of
38I<$toplevel> (width/length) will be constrained to lie
39between I<minNumer>/I<minDenom> and I<maxNumer>/I<maxDenom>.
40If I<minNumer> etc. are all specified as empty strings, then
41any existing aspect ratio restrictions are removed.
42If I<minNumer> etc. are specified, then the method returns an
43empty string. Otherwise, it returns
44a array containing four elements, which are the current values
45of I<minNumer>, I<minDenom>, I<maxNumer>, and I<maxDenom>
46(if no aspect restrictions are in effect, then an empty string is
47returned).
48
49=item I<$toplevel>-E<gt>B<client>(?I<name>?)
50
51If I<name> is specified, this method stores I<name> (which
52should be the name of
53the host on which the application is executing) in I<$toplevel>'s
54B<WM_CLIENT_MACHINE> property for use by the window manager or
55session manager.
56The method returns an empty string in this case.
57If I<name> isn't specified, the method returns the last name
58set in a B<client> method for I<$toplevel>.
59If I<name> is specified as an empty string, the method deletes the
60B<WM_CLIENT_MACHINE> property from I<$toplevel>.
61
62=item I<$toplevel>-E<gt>B<colormapwindows>(?I<windowList>?)
63
64This method is used to manipulate the B<WM_COLORMAP_WINDOWS>
65property, which provides information to the window managers about
66windows that have private colormaps.
67If I<windowList> isn't specified, the method returns a list
68whose elements are the names of the windows in the B<WM_COLORMAP_WINDOWS>
69property.
70If I<windowList> is specified, it consists of a list of widgets;
71the method overwrites the B<WM_COLORMAP_WINDOWS>
72property with the given windows and returns an empty string.
73The B<WM_COLORMAP_WINDOWS> property should normally contain a
74list of the internal windows within I<$toplevel> whose colormaps differ
75from their parents.
76The order of the windows in the property indicates a priority order:
77the window manager will attempt to install as many colormaps as possible
78from the head of this list when I<$widget> gets the colormap focus.
79If I<$widget> is not included among the windows in I<windowList>,
80Tk implicitly adds it at the end of the B<WM_COLORMAP_WINDOWS>
81property, so that its colormap is lowest in priority.
82If I<$widget>-E<gt>colormapwindows is not invoked, Tk will automatically set
83the property for each top-level window to all the internal windows
84whose colormaps differ from their parents, followed by the top-level
85itself; the order of the internal windows is undefined.
86See the ICCCM documentation for more information on the
87B<WM_COLORMAP_WINDOWS> property.
88
89=item I<$toplevel>-E<gt>B<command>(?I<value>?)
90
91If I<value> is specified, this method stores I<value> in I<$toplevel>'s
92B<WM_COMMAND> property for use by the window manager or
93session manager and returns an empty string.
94I<Value> must have proper list structure; the elements should
95contain the words of the command used to invoke the application.
96If I<value> isn't specified then the method returns the last value
97set in a B<command> method for I<$toplevel>.
98If I<value> is specified as an empty string, the method
99deletes the B<WM_COMMAND> property from I<$toplevel>.
100
101=item I<$toplevel>-E<gt>B<deiconify>
102
103Arrange for I<$toplevel> to be displayed in normal (non-iconified) form.
104This is done by mapping the window. If the window has never been
105mapped then this method will not map the window, but it will ensure
106that when the window is first mapped it will be displayed
107in de-iconified form. Returns an empty string.
108
109=item I<$toplevel>-E<gt>B<focusmodel>(?B<active>|B<passive>?)
110
111If B<active> or B<passive> is supplied as an optional argument
112to the method, then it specifies the focus model for I<$toplevel>.
113In this case the method returns an empty string. If no additional
114argument is supplied, then the method returns the current focus
115model for I<$toplevel>.
116An B<active> focus model means that I<$toplevel> will claim the
117input focus for itself or its descendants, even at times when
118the focus is currently in some other application. B<Passive> means that
119I<$toplevel> will never claim the focus for itself: the window manager
120should give the focus to I<$toplevel> at appropriate times. However,
121once the focus has been given to I<$toplevel> or one of its descendants,
122the application may re-assign the focus among I<$toplevel>'s descendants.
123The focus model defaults to B<passive>, and Tk's B<focus> method
124assumes a passive model of focusing.
125
126=item I<$toplevel>-E<gt>B<frame>
127
128If I<$widget> has been reparented by the window manager into a
129decorative frame, the method returns the platform specific window
130identifier for the outermost frame that contains I<$toplevel> (the
131window whose parent is the root or virtual root). If I<$toplevel>
132hasn't been reparented by the window manager then the method returns
133the platform specific window identifier for I<$toplevel>.
134
135=item I<$toplevel>-E<gt>B<geometry>(?I<newGeometry>?)
136
137If I<newGeometry> is specified, then the geometry of I<$toplevel>
138is changed and an empty string is returned. Otherwise the current
139geometry for I<$toplevel> is returned (this is the most recent
140geometry specified either by manual resizing or
141in a B<geometry> method). I<NewGeometry> has
142the form B<=>I<width>B<x>I<height>B<+->I<x>B<+->I<y>, where
143any of B<=>, I<width>B<x>I<height>, or B<+->I<x>B<+->I<y>
144may be omitted. I<Width> and I<height> are positive integers
145specifying the desired dimensions of I<$toplevel>. If I<$toplevel>
146is gridded (see L<"GRIDDED GEOMETRY MANAGEMENT"> below) then the dimensions
147are specified in grid units; otherwise they are specified in pixel
148units. I<X> and I<y> specify the desired location of
149I<$toplevel> on the screen, in pixels.
150If I<x> is preceded by B<+>, it specifies
151the number of pixels between the left edge of the screen and the left
152edge of I<$toplevel>'s border; if preceded by B<-> then
153I<x> specifies the number of pixels
154between the right edge of the screen and the right edge of I<$toplevel>'s
155border. If I<y> is preceded by B<+> then it specifies the
156number of pixels between the top of the screen and the top
157of I<$toplevel>'s border; if I<y> is preceded by B<-> then
158it specifies the number of pixels between the bottom of I<$toplevel>'s
159border and the bottom of the screen.
160If I<newGeometry> is specified as an empty string then any
161existing user-specified geometry for I<$toplevel> is cancelled, and
162the window will revert to the size requested internally by its
163widgets.
164
165=item I<$toplevel>-E<gt>B<wmGrid>(?I<baseWidth,baseHeight,widthInc,heightInc>?)
166
167This method indicates that I<$toplevel> is to be managed as a
168gridded window.
169It also specifies the relationship between grid units and pixel units.
170I<BaseWidth> and I<baseHeight> specify the number of grid
171units corresponding to the pixel dimensions requested internally
172by I<$toplevel> using B<Tk_GeometryRequest>. I<WidthInc>
173and I<heightInc> specify the number of pixels in each horizontal
174and vertical grid unit.
175These four values determine a range of acceptable sizes for
176I<$toplevel>, corresponding to grid-based widths and heights
177that are non-negative integers.
178Tk will pass this information to the window manager; during
179manual resizing, the window manager will restrict the window's size
180to one of these acceptable sizes.
181Furthermore, during manual resizing the window manager will display
182the window's current size in terms of grid units rather than pixels.
183If I<baseWidth> etc. are all specified as empty strings, then
184I<$toplevel> will no longer be managed as a gridded window. If
185I<baseWidth> etc. are specified then the return value is an
186empty string.
187Otherwise the return value is a array containing
188four elements corresponding to the current I<baseWidth>,
189I<baseHeight>, I<widthInc>, and I<heightInc>; if
190I<$toplevel> is not currently gridded, then an empty string
191is returned.
192Note: this command should not be needed very often, since the
193B<Tk_SetGrid> library procedure and the B<-setgrid> option
194provide easier access to the same functionality.
195
196=item I<$toplevel>-E<gt>B<group>(?I<$widget>?)
197
198If I<$widget> is specified, it is the the leader of
199a group of related windows. The window manager may use this information,
200for example, to unmap all of the windows in a group when the group's
201leader is iconified. I<$widget> may be specified as an empty string to
202remove I<$toplevel> from any group association. If I<$widget> is
203specified then the method returns an empty string; otherwise it
204returns the I<$toplevel>'s current group leader, or an empty
205string if I<$toplevel> isn't part of any group.
206
207=item I<$toplevel>-E<gt>B<iconbitmap>(?I<bitmap>?)
208
209If I<bitmap> is specified, then it names a bitmap in the standard
210forms accepted by Tk (see the B<Tk_GetBitmap> documentation for details).
211This I<black and white> bitmap is passed to the window manager to be displayed
212in I<$toplevel>'s icon, and the method returns an empty string. If
213an empty string is specified for I<bitmap>, then any current icon
214bitmap or image is cancelled for I<$toplevel>.
215If I<bitmap> is specified then the method returns an empty string.
216Otherwise it returns the name of
217the current icon bitmap associated with I<$toplevel>, or an empty
218string if I<$toplevel> has no icon bitmap.
219
220=item I<$toplevel>-E<gt>B<iconify>
221
222Arrange for I<$toplevel> to be iconified. It I<$toplevel> hasn't
223yet been mapped for the first time, this method will arrange for
224it to appear in the iconified state when it is eventually mapped.
225
226=item I<$toplevel>-E<gt>B<iconimage>(?I<image>?)
227
228If I<image> is specified, then it names a normal Tk image.
229This image is rendered into a private I<coloured> bitmap which is passed to
230the window manager to be displayed in I<$toplevel>'s icon, and the method returns
231an empty string. If an empty string is specified for I<image>, then any current
232icon bitmap or image is cancelled for I<$toplevel>.
233If I<image> is specified then the method returns an empty string.
234Otherwise it returns the name of
235the current icon image associated with I<$toplevel>, or an empty
236string if I<$toplevel> has no icon image.
237The private pixmap is not pre-cleared so images which are partly "transparent"
238display rubbish in their transparent parts.
239
240The sizes of images that can be used as icons in this manner are platform
241dependant. On Win32 this sets the "large" icon, which should be 32x32, it
242will automatically be scaled down to 16x16 for use as a small icon.
243
244=item I<$toplevel>-E<gt>B<iconmask>(?I<bitmap>?)
245
246If I<bitmap> is specified, then it names a bitmap in the standard
247forms accepted by Tk (see the B<Tk_GetBitmap> documentation for details).
248This bitmap is passed to the window manager to be used as a mask
249in conjunction with the B<iconbitmap> option: where the mask
250has zeroes no icon will be displayed; where it has ones, the bits
251from the icon bitmap will be displayed. If
252an empty string is specified for I<bitmap> then any current icon
253mask is cancelled for I<$toplevel> (this is equivalent to specifying
254a bitmap of all ones). If I<bitmap> is specified
255then the method returns an empty string. Otherwise it
256returns the name of the current icon mask associated with
257I<$toplevel>, or an empty string if no mask is in effect.
258
259=item I<$toplevel>-E<gt>B<iconname>(?I<newName>?)
260
261If I<newName> is specified, then it is passed to the window
262manager; the window manager should display I<newName> inside
263the icon associated with I<$toplevel>. In this case an empty
264string is returned as result. If I<newName> isn't specified
265then the method returns the current icon name for I<$toplevel>,
266or an empty string if no icon name has been specified (in this
267case the window manager will normally display the window's title,
268as specified with the B<title> method).
269
270=item I<$toplevel>-E<gt>B<iconposition>(?I<x y>?)
271
272If I<x> and I<y> are specified, they are passed to the window
273manager as a hint about where to position the icon for I<$toplevel>.
274In this case an empty string is returned. If I<x> and I<y> are
275specified as empty strings then any existing icon position hint is cancelled.
276If neither I<x> nor I<y> is specified, then the method returns
277a array containing two values, which are the current icon position
278hints (if no hints are in effect then an empty string is returned).
279
280=item I<$toplevel>-E<gt>B<iconwindow>(?I<$widget>?)
281
282If I<$widget> is specified, it is a window to
283use as icon for I<$toplevel>: when I<$toplevel> is iconified then
284I<$widget> will be mapped to serve as icon, and when I<$toplevel>
285is de-iconified then I<$widget> will be unmapped again. If
286I<$widget> is specified as an empty string then any existing
287icon window association for I<$toplevel> will be cancelled. If
288the I<$widget> argument is specified then an empty string is
289returned. Otherwise the method returns the
290current icon window for I<$toplevel>, or an empty string if there
291is no icon window currently specified for I<$toplevel>.
292Button press events are disabled for I<$toplevel> as long as it is
293an icon window; this is needed in order to allow window managers
294to ``own'' those events.
295Note: not all window managers support the notion of an icon window.
296
297=item I<$toplevel>-E<gt>B<maxsize>(?I<width,height>?)
298
299If I<width> and I<height> are specified, they give
300the maximum permissible dimensions for I<$toplevel>.
301For gridded windows the dimensions are specified in
302grid units; otherwise they are specified in pixel units.
303The window manager will restrict the window's dimensions to be
304less than or equal to I<width> and I<height>.
305If I<width> and I<height> are
306specified, then the method returns an empty string. Otherwise
307it returns a array with two elements, which are the
308maximum width and height currently in effect.
309The maximum size defaults to the size of the screen.
310If resizing has been disabled with the B<resizable> method,
311then this method has no effect.
312See the sections on geometry management below for more information.
313
314=item I<$toplevel>-E<gt>B<minsize>(?I<width,height>?)
315
316If I<width> and I<height> are specified, they give the
317minimum permissible dimensions for I<$toplevel>.
318For gridded windows the dimensions are specified in
319grid units; otherwise they are specified in pixel units.
320The window manager will restrict the window's dimensions to be
321greater than or equal to I<width> and I<height>.
322If I<width> and I<height> are
323specified, then the method returns an empty string. Otherwise
324it returns a array with two elements, which are the
325minimum width and height currently in effect.
326The minimum size defaults to one pixel in each dimension.
327If resizing has been disabled with the B<resizable> method,
328then this method has no effect.
329See the sections on geometry management below for more information.
330
331=item I<$toplevel>-E<gt>B<overrideredirect(?>I<boolean>?)
332
333If I<boolean> is specified, it must have a proper boolean form and
334the override-redirect flag for I<$toplevel> is set to that value.
335If I<boolean> is not specified then B<1> or B<0> is
336returned to indicate whether or not the override-redirect flag
337is currently set for I<$toplevel>.
338Setting the override-redirect flag for a window causes
339it to be ignored by the window manager; among other things, this means
340that the window will not be reparented from the root window into a
341decorative frame and the user will not be able to manipulate the
342window using the normal window manager mechanisms.
343
344=item I<$toplevel>-E<gt>B<positionfrom>(?I<who>?)
345
346If I<who> is specified, it must be either B<program> or
347B<user>, or an abbreviation of one of these two. It indicates
348whether I<$toplevel>'s current position was requested by the
349program or by the user. Many window managers ignore program-requested
350initial positions and ask the user to manually position the window; if
351B<user> is specified then the window manager should position the
352window at the given place without asking the user for assistance.
353If I<who> is specified as an empty string, then the current position
354source is cancelled.
355If I<who> is specified, then the method returns an empty string.
356Otherwise it returns B<user> or $widget to indicate the
357source of the window's current position, or an empty string if
358no source has been specified yet. Most window managers interpret
359``no source'' as equivalent to B<program>.
360Tk will automatically set the position source to B<user>
361when a B<geometry> method is invoked, unless the source has
362been set explicitly to B<program>.
363
364=item I<$toplevel>-E<gt>B<protocol>(?I<name>?,?I<callback>?)
365
366This method is used to manage window manager protocols such as
367B<WM_DELETE_WINDOW>.
368I<Name> is the name of an atom corresponding to a window manager
369protocol, such as B<WM_DELETE_WINDOW> or B<WM_SAVE_YOURSELF>
370or B<WM_TAKE_FOCUS>.
371If both I<name> and I<callback> are specified, then I<callback>
372is associated with the protocol specified by I<name>.
373I<Name> will be added to I<$toplevel>'s B<WM_PROTOCOLS>
374property to tell the window manager that the application has a
375protocol handler for I<name>, and I<callback> will
376be invoked in the future whenever the window manager sends a
377message to the client for that protocol.
378In this case the method returns an empty string.
379If I<name> is specified but I<callback> isn't, then the current
380callback for I<name> is returned, or an empty string if there
381is no handler defined for I<name>.
382If I<callback> is specified as an empty string then the current
383handler for I<name> is deleted and it is removed from the
384B<WM_PROTOCOLS> property on I<$toplevel>; an empty string is
385returned.
386Lastly, if neither I<name> nor I<callback> is specified, the
387method returns a list of all the protocols for which handlers
388are currently defined for I<$toplevel>.
389
390=over 8
391
392Tk always defines a protocol handler for B<WM_DELETE_WINDOW>, even if
393you haven't asked for one with B<protocol>.
394If a B<WM_DELETE_WINDOW> message arrives when you haven't defined
395a handler, then Tk handles the message by destroying the window for
396which it was received.
397
398=back
399
400=item I<$toplevel>-E<gt>B<resizable>(?I<width,height>?)
401
402This method controls whether or not the user may interactively
403resize a top-level window. If I<width> and I<height> are
404specified, they are boolean values that determine whether the
405width and height of I<$toplevel> may be modified by the user.
406In this case the method returns an empty string.
407If I<width> and I<height> are omitted then the method
408returns a list with two 0/1 elements that indicate whether the
409width and height of I<$toplevel> are currently resizable.
410By default, windows are resizable in both dimensions.
411If resizing is disabled, then the window's size will be the size
412from the most recent interactive resize or B<geometry>
413method. If there has been no such operation then
414the window's natural size will be used.
415
416=item I<$toplevel>-E<gt>B<sizefrom>(?I<who>?)
417
418If I<who> is specified, it must be either B<program> or
419B<user>, or an abbreviation of one of these two. It indicates
420whether I<$toplevel>'s current size was requested by the
421program or by the user. Some window managers ignore program-requested
422sizes and ask the user to manually size the window; if
423B<user> is specified then the window manager should give the
424window its specified size without asking the user for assistance.
425If I<who> is specified as an empty string, then the current size
426source is cancelled.
427If I<who> is specified, then the method returns an empty string.
428Otherwise it returns B<user> or $widget to indicate the
429source of the window's current size, or an empty string if
430no source has been specified yet. Most window managers interpret
431``no source'' as equivalent to B<program>.
432
433=item I<$toplevel>-E<gt>B<state>
434
435Returns the current state of $widget: either B<normal>,
436B<iconic>, B<withdrawn>, or B<icon>. The difference
437between B<iconic> and B<icon> is that B<iconic> refers
438to a window that has been iconified (e.g., with the B<iconify>
439method) while B<icon> refers to a window whose only purpose is
440to serve as the icon for some other window (via the B<iconwindow>
441method).
442
443=item I<$toplevel>-E<gt>B<title>(?I<string>?)
444
445If I<string> is specified, then it will be passed to the window
446manager for use as the title for I<$toplevel> (the window manager
447should display this string in I<$toplevel>'s title bar). In this
448case the method returns an empty string. If I<string> isn't
449specified then the method returns the current title for the
450I<$toplevel>. The title for a window defaults to its name.
451
452=item I<$toplevel>-E<gt>B<transient>(?I<master>?)
453
454If I<master> is specified, then the window manager is informed
455that I<$toplevel> is a transient window (e.g. pull-down menu) working
456on behalf of I<master> (where I<master> is
457a top-level window). Some window managers will use
458this information to manage I<$toplevel> specially. If I<master>
459is specified as an empty string then I<$toplevel> is marked as not
460being a transient window any more. If I<master> is specified,
461then the method returns an empty string. Otherwise the method
462returns the path name of I<$toplevel>'s current master, or an
463empty string if I<$toplevel> isn't currently a transient window.
464
465=item I<$toplevel>-E<gt>B<withdraw>
466
467Arranges for I<$toplevel> to be withdrawn from the screen. This
468causes the window to be unmapped and forgotten about by the window
469manager. If the window
470has never been mapped, then this method
471causes the window to be mapped in the withdrawn state. Not all
472window managers appear to know how to handle windows that are
473mapped in the withdrawn state.
474Note: it sometimes seems to be necessary to withdraw a
475window and then re-map it (e.g. with B<deiconify>) to get some
476window managers to pay attention to changes in window attributes
477such as group.
478
479=item I<$toplevel>-E<gt>B<wrapper>
480
481Returns the window id of the wrapper window in which Tk has placed
482I<$toplevel>. This is the id by which window manager will know
483I<$toplevel>, and so is appropriate place to add X properties.
484
485=back
486
487=head1 ICON SIZES
488
489The sizes of bitmaps/images that can be used as icons in this manner are platform
490and window manager dependant. Unix window managers are typically more tolerant
491than Win32. It is possible that coloured C<iconimage> icons may cause problems
492on some X window managers.
493
494=over 4
495
496=item * Win32
497
498C<iconimage> and C<iconbitmap> set the "large" icon, which should be
49932x32, it will automatically be scaled down to 16x16 for use as a small icon.
500Win32 ignores C<iconwin> requests.
501
502=item * KDE's "kwm"
503
504Accepts coloured C<iconimage> and black and white C<iconbitmap> but
505will scale either to a small (14x14?) icon. Kwm ignores C<iconwin>.
506
507=item * Sun's "olwm" or "olvwm"
508
509Honours C<iconwin> which will override C<iconimage> or C<iconbitmap>.
510Coloured images work.
511
512=item * Sun's CDE window manager
513
514Coloured images work. ...
515
516=back
517
518=head1 GEOMETRY MANAGEMENT
519
520By default a top-level window appears on the screen in its
521I<natural size>, which is the one determined internally by its
522widgets and geometry managers.
523If the natural size of a top-level window changes, then the window's size
524changes to match.
525A top-level window can be given a size other than its natural size in two ways.
526First, the user can resize the window manually using the facilities
527of the window manager, such as resize handles.
528Second, the application can request a particular size for a
529top-level window using the B<geometry> method.
530These two cases are handled identically by Tk; in either case,
531the requested size overrides the natural size.
532You can return the window to its natural by invoking B<geometry>
533with an empty I<geometry> string.
534
535Normally a top-level window can have any size from one pixel in each
536dimension up to the size of its screen.
537However, you can use the B<minsize> and B<maxsize> methods
538to limit the range of allowable sizes.
539The range set by B<minsize> and B<maxsize> applies to
540all forms of resizing, including the window's natural size as
541well as manual resizes and the B<geometry> method.
542You can also use the method B<resizable> to completely
543disable interactive resizing in one or both dimensions.
544
545=head1 GRIDDED GEOMETRY MANAGEMENT
546
547Gridded geometry management occurs when one of the widgets of an
548application supports a range of useful sizes.
549This occurs, for example, in a text editor where the scrollbars,
550menus, and other adornments are fixed in size but the edit widget
551can support any number of lines of text or characters per line.
552In this case, it is usually desirable to let the user specify the
553number of lines or characters-per-line, either with the
554B<geometry> method or by interactively resizing the window.
555In the case of text, and in other interesting cases also, only
556discrete sizes of the window make sense, such as integral numbers
557of lines and characters-per-line; arbitrary pixel sizes are not useful.
558
559Gridded geometry management provides support for this kind of
560application.
561Tk (and the window manager) assume that there is a grid of some
562sort within the application and that the application should be
563resized in terms of I<grid units> rather than pixels.
564Gridded geometry management is typically invoked by turning on
565the B<setGrid> option for a widget; it can also be invoked
566with the B<wmGrid> method or by calling B<Tk_SetGrid>.
567In each of these approaches the particular widget (or sometimes
568code in the application as a whole) specifies the relationship between
569integral grid sizes for the window and pixel sizes.
570To return to non-gridded geometry management, invoke
571B<grid> with empty argument strings.
572
573When gridded geometry management is enabled then all the dimensions specified
574in B<minsize>, B<maxsize>, and B<geometry> methods
575are treated as grid units rather than pixel units.
576Interactive resizing is also carried out in even numbers of grid units
577rather than pixels.
578
579=head1 BUGS
580
581Most existing window managers appear to have bugs that affect the
582operation of the B<wm> methods. For example, some changes won't
583take effect if the window is already active: the window will have
584to be withdrawn and de-iconified in order to make the change happen.
585
586=head1 SEE ALSO
587
588L<Tk::Widget|Tk::Widget>
589L<Tk::tixWm|Tk::tixWm>
590L<Tk::Mwm|Tk::Mwm>
591
592=head1 KEYWORDS
593
594aspect ratio, deiconify, focus model, geometry, grid, group, icon, iconify, increments, position, size, title, top-level window, units, window manager
595
596=cut
597