dwww Home | Manual pages | Find package

place(3pm)            User Contributed Perl Documentation            place(3pm)

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.

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

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

perl v5.40.1                       2025-04-13                        place(3pm)

Generated by dwww version 1.16 on Sat Oct 3 07:36:58 CEST 2026.