Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

Tk::place (3)

Name

Tk::place - sheet placement

Synopsis

$widget->place?(-option=>value?, -option=>value, ...)?

$widget->placeForget

$widget->placeInfo

$master->placeSlaves

Description

User Contributed Perl Documentation                                   place(3)



NAME
       Tk::place - Geometry manager for fixed or rubber-sheet placement

SYNOPSIS
       $widget->place?(-option=>value?, -option=>value, ...)?

       $widget->placeForget

       $widget->placeInfo

       $master->placeSlaves

DESCRIPTION
       The placer is a geometry manager for Tk.  It provides simple fixed
       placement of windows, where you specify the exact size and location of
       one window, called the slave, within another window, called the master.
       The placer also provides rubber-sheet placement, where you specify the
       size and location of the slave in terms of the dimensions of the
       master, so that the slave changes size and location in response to
       changes in the size of the master.  Lastly, the placer allows you to
       mix these styles of placement so that, for example, the slave has a
       fixed width and height but is centered inside the master.

       $slave->place?(-option=>value?, -option=>value, ...?)?
           The place method arranges for the placer to manage the geometry of
           $slave.  The remaining arguments consist of one or more
           -option=>value pairs that specify the way in which $slave's
           geometry is managed. -option may have any of the values accepted by
           the placeConfigure method.

           The place method returns $slave.

       $slave->placeConfigure?(-option=>value?, -option=>value, ...?)?
           Query or modify the geometry options of the $slave. If no option is
           specified, this method returns a list describing the available
           options (see Tk_ConfigureInfo for information on the format of this
           list). If option is specified with no value, then the command
           returns a list describing the one named option (this list will be
           identical to the corresponding sublist of the value returned if no
           option is specified). If one or more option-value pairs are
           specified, then the method modifies the given option(s) to have the
           given value(s); in this case the command returns "undef".

           The following -option=>value pairs are supported:

           -anchor => where
                   Where specifies which point of $slave is to be positioned
                   at the (x,y) location selected by the -x, -y, -relx, and
                   -rely options.  The anchor point is in terms of the outer
                   area of $slave including its border, if any.  Thus if where
                   is se then the lower-right corner of $slave's border will
                   appear at the given (x,y) location in the master.  The
                   anchor position defaults to nw.

           -bordermode => mode
                   Mode determines the degree to which borders within the
                   master are used in determining the placement of the slave.
                   The default and most common value is inside.  In this case
                   the placer considers the area of the master to be the
                   innermost area of the master, inside any border: an option
                   of -x=>0 corresponds to an x-coordinate just inside the
                   border and an option of -relwidth=>1.0 means $slave will
                   fill the area inside the master's border.  If mode is
                   outside then the placer considers the area of the master to
                   include its border; this mode is typically used when
                   placing $slave outside its master, as with the options
                   -x=>0, -y=>0, -anchor=>ne.  Lastly, mode may be specified
                   as ignore, in which case borders are ignored:  the area of
                   the master is considered to be its official X area, which
                   includes any internal border but no external border.  A
                   bordermode of ignore is probably not very useful.

           -height => size
                   Size specifies the height for $slave in screen units (i.e.
                   any of the forms accepted by Tk_GetPixels).  The height
                   will be the outer dimension of $slave including its border,
                   if any.  If size is an empty string, or if no -height or
                   -relheight option is specified, then the height requested
                   internally by the window will be used.

           -in => $master
                   $master is the reference to the window relative to which
                   $slave is to be placed.  $master must either be $slave's
                   parent or a descendant of $slave's parent.  In addition,
                   $master and $slave must both be descendants of the same
                   top-level window.  These restrictions are necessary to
                   guarantee that $slave is visible whenever $master is
                   visible.  If this option isn't specified then the master
                   defaults to $slave's parent.

           -relheight => size
                   Size specifies the height for $slave.  In this case the
                   height is specified as a floating-point number relative to
                   the height of the master: 0.5 means $slave will be half as
                   high as the master, 1.0 means $slave will have the same
                   height as the master, and so on.  If both -height and
                   -relheight are specified for a slave, their values are
                   summed.  For example, -relheight=>1.0, -height=>-2 makes
                   the slave 2 pixels shorter than the master.

           -relwidth => size
                   Size specifies the width for $slave.  In this case the
                   width is specified as a floating-point number relative to
                   the width of the master: 0.5 means $slave will be half as
                   wide as the master, 1.0 means $slave will have the same
                   width as the master, and so on.  If both -width and
                   -relwidth are specified for a slave, their values are
                   summed.  For example, -relwidth=>1.0, -width=>5 makes the
                   slave 5 pixels wider than the master.

           -relx => location
                   Location specifies the x-coordinate within the master
                   window of the anchor point for $slave widget.  In this case
                   the location is specified in a relative fashion as a
                   floating-point number:  0.0 corresponds to the left edge of
                   the master and 1.0 corresponds to the right edge of the
                   master.  Location need not be in the range 0.0-1.0.  If
                   both -x and -relx are specified for a slave then their
                   values are summed.  For example, "-relx=>0.5, -x=-2"
                   positions the left edge of the slave 2 pixels to the left
                   of the center of its master.

           -rely => location
                   Location specifies the y-coordinate within the master
                   window of the anchor point for $slave widget.  In this case
                   the value is specified in a relative fashion as a floating-
                   point number:  0.0 corresponds to the top edge of the
                   master and 1.0 corresponds to the bottom edge of the
                   master.  Location need not be in the range 0.0-1.0.  If
                   both -y and -rely are specified for a slave then their
                   values are summed.  For example, -rely=>0.5, -x=>3
                   positions the top edge of the slave 3 pixels below the
                   center of its master.

           -width => size
                   Size specifies the width for $slave in screen units (i.e.
                   any of the forms accepted by Tk_GetPixels).  The width will
                   be the outer width of $slave including its border, if any.
                   If size is an empty string, or if no -width or -relwidth
                   option is specified, then the width requested internally by
                   the window will be used.

           -x => location
                   Location specifies the x-coordinate within the master
                   window of the anchor point for $slave widget.  The location
                   is specified in screen units (i.e. any of the forms
                   accepted by Tk_GetPixels) and need not lie within the
                   bounds of the master window.

           -y => location
                   Location specifies the y-coordinate within the master
                   window of the anchor point for $slave widget.  The location
                   is specified in screen units (i.e. any of the forms
                   accepted by Tk_GetPixels) and need not lie within the
                   bounds of the master window.

           If the same value is specified separately with two different
           options, such as -x and -relx, then the most recent option is used
           and the older one is ignored.

       $slave->placeForget
           The placeForget method causes the placer to stop managing the
           geometry of $slave.  As a side effect of this method call $slave
           will be unmapped so that it doesn't appear on the screen.  If
           $slave isn't currently managed by the placer then the method call
           has no effect.  placeForget returns an empty string as result.

       $slave->placeInfo
           The placeInfo method returns a list giving the current
           configuration of $slave.  The list consists of -option=>value pairs
           in exactly the same form as might be specified to the place method.

       $slave->placeSlaves
           The placeSlaves method returns a list of all the slave windows for
           which $master is the master.  If there are no slaves for $master
           then an empty list is returned.

       If the configuration of a window has been retrieved with placeInfo,
       that configuration can be restored later by first using placeForget to
       erase any existing information for the window and then invoking place
       with the saved information.

FINE POINTS
       It is not necessary for the master window to be the parent of the slave
       window.  This feature is useful in at least two situations.  First, for
       complex window layouts it means you can create a hierarchy of
       subwindows whose only purpose is to assist in the layout of the parent.
       The ``real children'' of the parent (i.e. the windows that are
       significant for the application's user interface) can be children of
       the parent yet be placed inside the windows of the geometry-management
       hierarchy.  This means that the path names of the ``real children''
       don't reflect the geometry-management hierarchy and users can specify
       options for the real children without being aware of the structure of
       the geometry-management hierarchy.

       A second reason for having a master different than the slave's parent
       is to tie two siblings together.  For example, the placer can be used
       to force a window always to be positioned centered just below one of
       its siblings by specifying the configuration

       -in=>$sibling, -relx=>0.5, -rely=>1.0, -anchor=>'n',
       -bordermode=>'outside'

       Whenever the $sibling widget is repositioned in the future, the slave
       will be repositioned as well.

       Unlike many other geometry managers (such as the packer) the placer
       does not make any attempt to manipulate the geometry of the master
       windows or the parents of slave windows (i.e. it doesn't set their
       requested sizes).  To control the sizes of these windows, make them
       windows like frames and canvases that provide configuration options for
       this purpose.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+----------------------------+
       |ATTRIBUTE TYPE |      ATTRIBUTE VALUE       |
       +---------------+----------------------------+
       |Availability   | library/perl-5/perl-tk-532 |
       +---------------+----------------------------+
       |Stability      | Volatile                   |
       +---------------+----------------------------+

SEE ALSO
       Tk::form, Tk::grid, Tk::pack

KEYWORDS
       geometry manager, height, location, master, place, rubber sheet, slave,
       width



NOTES
       Source code for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at
       https://github.com/oracle/solaris-userland.  The original community
       source was downloaded from
       http://search.cpan.org/CPAN/authors/id/S/SR/SREZIC/Tk-804.036.tar.gz.

       Further information about this software can be found on the open source
       community website at http://search.cpan.org/~srezic/Tk.



perl v5.32.0                      2013-11-15                          place(3)