diff options
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Tk/pack.pod')
-rw-r--r-- | Master/tlpkg/tlperl/lib/Tk/pack.pod | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/Master/tlpkg/tlperl/lib/Tk/pack.pod b/Master/tlpkg/tlperl/lib/Tk/pack.pod deleted file mode 100644 index 0449556265c..00000000000 --- a/Master/tlpkg/tlperl/lib/Tk/pack.pod +++ /dev/null @@ -1,324 +0,0 @@ -# Copyright (c) 1990-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. -# -# - -=head1 NAME - -Tk::pack - Geometry manager that packs around edges of cavity - -=for category Tk Geometry Management - -=head1 SYNOPSIS - -S< >I<$widget>-E<gt>B<pack>?(I<args>)? - -S< >I<$widget>-E<gt>B<pack>I<Option>?(I<args>)? - -=head1 DESCRIPTION - -The B<pack> method is used to communicate with the packer, -a geometry manager that arranges the children of a parent by -packing them in order around the edges of the parent. - -In this B<perl> port of Tk it is normal to pack widgets one-at-a-time -using the widget object to be packed to invoke a method call. -This is a slight distortion of underlying Tk interface (which -can handle lists of windows to one pack method call) but has proven -effective in practice. - -The B<pack> method can have any of several forms, depending -on I<Option>: - -=over 4 - -=item I<$slave>-E<gt>B<pack>?(I<options>)? - -The options consist of pairs of arguments that specify how -to manage the slave. -See L<"THE PACKER ALGORITHM"> below for details on how the options -are used by the packer. -The following options are supported: - -=over 8 - -=item B<-after> =E<gt> I<$other> - -I<$other> must be another window. -Use its master as the master for the slave, and insert -the slave just after I<$other> in the packing order. - -=item B<-anchor> =E<gt> I<anchor> - -I<Anchor> must be a valid anchor position such as B<n> -or B<sw>; it specifies where to position each slave in its -parcel. -Defaults to B<center>. - -=item B<-before> =E<gt> I<$other> - -I<$other> must be another window. -Use its master as the master for the slave, and insert -the slave just before I<$other> in the packing order. - -=item B<-expand> =E<gt> I<boolean> - -Specifies whether the slave should be expanded to consume -extra space in their master. -I<Boolean> may have any proper boolean value, such as B<1> -or B<no>. -Defaults to 0. - -=item B<-fill> =E<gt> I<style> - -If a slave's parcel is larger than its requested dimensions, this -option may be used to stretch the slave. -I<Style> must have one of the following values: - -=over 12 - -=item B<none> - -Give the slave its requested dimensions plus any internal padding -requested with B<-ipadx> or B<-ipady>. This is the default. - -=item B<x> - -Stretch the slave horizontally to fill the entire width of its -parcel (except leave external padding as specified by B<-padx>). - -=item B<y> - -Stretch the slave vertically to fill the entire height of its -parcel (except leave external padding as specified by B<-pady>). - -=item B<both> - -Stretch the slave both horizontally and vertically. - -=back - -=item B<-in> =E<gt> I<$master> - -Insert the slave(s) at the end of the packing order for the master -window given by I<$master>. - -=item B<-ipadx> =E<gt> I<amount> - -I<Amount> specifies how much horizontal internal padding to -leave on each side of the slave(s). -I<Amount> must be a valid screen distance, such as B<2> or B<.5c>. -It defaults to 0. - -=item B<-ipady> =E<gt> I<amount> - -I<Amount> specifies how much vertical internal padding to -leave on each side of the slave(s). -I<Amount> defaults to 0. - -=item B<-padx> =E<gt> I<amount> - -I<Amount> specifies how much horizontal external padding to -leave on each side of the slave(s). -I<Amount> defaults to 0. - -=item B<-pady> =E<gt> I<amount> - -I<Amount> specifies how much vertical external padding to -leave on each side of the slave(s). -I<Amount> defaults to 0. - -=item B<-side> =E<gt> I<side> - -Specifies which side of the master the slave(s) will be packed against. -Must be B<left>, B<right>, B<top>, or B<bottom>. -Defaults to B<top>. - -=back - -=back - -If no B<-in>, B<-after> or B<-before> option is specified -then slave will be inserted at the end of the packing list -for its parent unless it is already managed by the packer (in which -case it will be left where it is). -If one of these options is specified then slave will be -inserted at the specified point. -If the slave are already managed by the geometry manager -then any unspecified options for them retain their previous values rather -than receiving default values. - -=over 4 - -=item I<$slave>-E<gt>B<packConfigure>?(I<options>)? - -Same as B<pack>. - -=item I<$slave>-E<gt>B<packForget> - -Removes I<slave> from the packing order for its -master and unmaps its window. -The slave will no longer be managed by the packer. - -=item I<$slave>-E<gt>B<packInfo> - -Returns a list whose elements are the current configuration state of -the slave given by I<$slave> in the same option-value form that -might be specified to B<packConfigure>. -The first two elements of the list are ``B<-in>=E<gt>I<$master>'' where -I<$master> is the slave's master. - -=item I<$master>-E<gt>B<packPropagate>?(I<boolean>)? - -If I<boolean> has a true boolean value such as B<1> or B<on> -then propagation is enabled for I<$master>, -(see L<"GEOMETRY PROPAGATION"> below). -If I<boolean> has a false boolean value then propagation is -disabled for I<$master>. -In either of these cases an empty string is returned. -If I<boolean> is omitted then the method returns B<0> or -B<1> to indicate whether propagation is currently enabled -for I<$master>. -Propagation is enabled by default. - -=item I<$master>-E<gt>B<packSlaves> - -Returns a list of all of the slaves in the packing order for I<$master>. -The order of the slaves in the list is the same as their order in -the packing order. -If I<$master> has no slaves then an empty list/string is returned in -array/scalar context, respectively - -=back - -=head1 THE PACKER ALGORITHM - -For each master the packer maintains an ordered list of slaves -called the I<packing list>. -The B<-in>, B<-after>, and B<-before> configuration -options are used to specify the master for each slave and the slave's -position in the packing list. -If none of these options is given for a slave then the slave -is added to the end of the packing list for its parent. - -The packer arranges the slaves for a master by scanning the -packing list in order. -At the time it processes each slave, a rectangular area within -the master is still unallocated. -This area is called the I<cavity>; for the first slave it -is the entire area of the master. - -For each slave the packer carries out the following steps: - -=over 4 - -=item [1] - -The packer allocates a rectangular I<parcel> for the slave -along the side of the cavity given by the slave's B<-side> option. -If the side is top or bottom then the width of the parcel is -the width of the cavity and its height is the requested height -of the slave plus the B<-ipady> and B<-pady> options. -For the left or right side the height of the parcel is -the height of the cavity and the width is the requested width -of the slave plus the B<-ipadx> and B<-padx> options. -The parcel may be enlarged further because of the B<-expand> -option (see L<"EXPANSION"> below) - -=item [2] - -The packer chooses the dimensions of the slave. -The width will normally be the slave's requested width plus -twice its B<-ipadx> option and the height will normally be -the slave's requested height plus twice its B<-ipady> -option. -However, if the B<-fill> option is B<x> or B<both> -then the width of the slave is expanded to fill the width of the parcel, -minus twice the B<-padx> option. -If the B<-fill> option is B<y> or B<both> -then the height of the slave is expanded to fill the width of the parcel, -minus twice the B<-pady> option. - -=item [3] - -The packer positions the slave over its parcel. -If the slave is smaller than the parcel then the B<-anchor> -option determines where in the parcel the slave will be placed. -If B<-padx> or B<-pady> is non-zero, then the given -amount of external padding will always be left between the -slave and the edges of the parcel. - -Once a given slave has been packed, the area of its parcel -is subtracted from the cavity, leaving a smaller rectangular -cavity for the next slave. -If a slave doesn't use all of its parcel, the unused space -in the parcel will not be used by subsequent slaves. -If the cavity should become too small to meet the needs of -a slave then the slave will be given whatever space is -left in the cavity. -If the cavity shrinks to zero size, then all remaining slaves -on the packing list will be unmapped from the screen until -the master window becomes large enough to hold them again. - -=back - -=head1 EXPANSION - -If a master window is so large that there will be extra space -left over after all of its slaves have been packed, then the -extra space is distributed uniformly among all of the slaves -for which the B<-expand> option is set. -Extra horizontal space is distributed among the expandable -slaves whose B<-side> is B<left> or B<right>, -and extra vertical space is distributed among the expandable -slaves whose B<-side> is B<top> or B<bottom>. - -=head1 GEOMETRY PROPAGATION - -The packer normally computes how large a master must be to -just exactly meet the needs of its slaves, and it sets the -requested width and height of the master to these dimensions. -This causes geometry information to propagate up through a -window hierarchy to a top-level window so that the entire -sub-tree sizes itself to fit the needs of the leaf windows. -However, the B<packPropagate> method may be used to -turn off propagation for one or more masters. -If propagation is disabled then the packer will not set -the requested width and height of the packer. -This may be useful if, for example, you wish for a master -window to have a fixed size that you specify. - -=head1 RESTRICTIONS ON MASTER WINDOWS - -The master for each slave must either be the slave's parent -(the default) or a descendant of the slave's parent. -This restriction is necessary to guarantee that the -slave can be placed over any part of its master that is -visible without danger of the slave being clipped by its parent. - -=head1 PACKING ORDER - -If the master for a slave is not its parent then you must make sure -that the slave is higher in the stacking order than the master. -Otherwise the master will obscure the slave and it will appear as -if the slave hasn't been packed correctly. -The easiest way to make sure the slave is higher than the master is -to create the master window first: the most recently created window -will be highest in the stacking order. -Or, you can use the B<raise> and B<lower> methods to change -the stacking order of either the master or the slave. - -=head1 SEE ALSO - -L<Tk::form|Tk::form> -L<Tk::grid|Tk::grid> -L<Tk::place|Tk::place> - -=head1 KEYWORDS - -geometry manager, location, packer, parcel, propagation, size - -=cut - |