Unix/Linux Go Back    


CentOS 7.0 - man page for tk::form (centos section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


form(3) 		       User Contributed Perl Documentation			  form(3)

NAME
       Tk::form - Geometry manager based on attachment rules

SYNOPSIS
	   $widget->form?(args)?

	   $widget->formOption?(args)?

DESCRIPTION
       The form method is used to communicate with the form Geometry Manager, a geometry manager
       that arranges the geometry of the children in a parent window according to attachment
       rules. The form geometry manager is very flexible and powerful; it can be used to emulate
       all the existing features of the Tk packer and placer geometry managers (see pack, place).
       The form method can have any of several forms, depending on Option:

       $slave->form?(options)?
	   Sets or adjusts the attachment values of the slave window according to the
	   -option=>value argument pairs.

	   -b => attachment
		   Abbreviation for the -bottom option.

	   -bottom => attachment
		   Specifies an attachment for the bottom edge of the slave window. The
		   attachment must specified according to "SPECIFYING ATTACHMENTS" below.

	   -bottomspring => weight
		   Specifies the weight of the spring at the bottom edge of the slave window. See
		   "USING SPRINGS" below.

	   -bp => value
		   Abbreviation for the -padbottom option.

	   -bs => weight
		   Abbreviation for the -bottomspring option.

	   -fill => style
		   Specifies the fillings when springs are used for this widget. The value must
		   be x, y, both or none.

	   -in => $master
		   Places the slave window into the specified $master window. If the slave was
		   originally in another master window, all attachment values with respect to the
		   original master window are discarded. Even if the attachment values are the
		   same as in the original master window, they need to be specified again.  The
		   -in flag, when needed, must appear as the first flag of options. Otherwise an
		   error is generated.

	   -l => attachment
		   Abbreviation for the -left option.

	   -left => attachment
		   Specifies an attachment for the left edge of the slave window. The attachment
		   must specified according to "SPECIFYING ATTACHMENTS" below.

	   -leftspring => weight
		   Specifies the weight of the spring at the left edge of the slave window. See
		   "USING SPRINGS" below.

	   -lp => value
		   Abbreviation for the -padleft option.

	   -ls => weight
		   Abbreviation for the -leftspring option.

	   -padbottom => value
		   Specifies the amount of external padding to leave on the bottom side of the
		   slave. The value may have any of the forms acceptable to Tk_GetPixels.

	   -padleft => value
		   Specifies the amount of external padding to leave on the left side of the
		   slave.

	   -padright => value
		   Specifies the amount of external padding to leave on the right side of the
		   slave.

	   -padtop => value
		   Specifies the amount of external padding to leave on the top side of the
		   slave.

	   -padx => value
		   Specifies the amount of external padding to leave on both the left and the
		   right sides of the slave.

	   -pady => value
		   Specifies the amount of external padding to leave on both the top and the
		   bottom sides of the slave.

	   -r => attachment
		   Abbreviation for the -right option.

	   -right => attachment
		   Specifies an attachment for the right edge of the slave window. The attachment
		   must specified according to "SPECIFYING ATTACHMENTS" below.

	   -rightspring => weight
		   Specifies the weight of the spring at the right edge of the slave window. See
		   "USING SPRINGS" below.

	   -rp	=> value
		   Abbreviation for the -padright option.

	   -rs => weight
		   Abbreviation for the -rightspring option.

	   -t => attachment
		   Abbreviation for the -top option.

	   -top => attachment
		   Specifies an attachment for the top edge of the slave window. The attachment
		   must specified according to "SPECIFYING ATTACHMENTS" below.

	   -topspring => weight
		   Specifies the weight of the spring at the top edge of the slave window. See
		   "USING SPRINGS" below.

	   -tp => value
		   Abbreviation for the -padtop option.

	   -ts => weight
		   Abbreviation for the -topspring option.

       $master->formCheck
	   This method checks whether there is circular dependency in the attachments of the
	   master's slaves (see "CIRCULAR DEPENDENCY" below).  It returns the Boolean value TRUE
	   if it discover circular dependency and FALSE otherwise.

       $slave->formForget
	   Removes the slave from its master and unmaps its window.  The slave will no longer be
	   managed by form. All attachment values with respect to its master window are
	   discarded. If another slave is attached to this slave, then the attachment of the
	   other slave will be changed to grid attachment based on its geometry.

       $master->formGrid?(x_size, y_size)?
	   When x_size and y_size are given, this method returns the number of grids of the
	   $master window in a pair of integers of the form (x_size, y_size). When both x_size
	   and y_size are given, this method changes the number of horizontal and vertical grids
	   on the master window.

       $slave->formInfo?(-option)?
	   Queries the attachment options of a slave window. -option can be any of the options
	   accepted by the form method. If -option is given, only the value of that option is
	   returned.  Otherwise, this method returns a list whose elements are the current
	   configuration state of the slave given in the same option-value form that might be
	   specified to form. The first two elements in this list list are "-in=>$master" where
	   $master is the slave's master window.

       $master->formSlaves
	   Returns a list of all of the slaves for the master window. The order of the slaves in
	   the list is the same as their order in the packing order. If master has no slaves then
	   an empty string is returned.

SPECIFYING ATTACHMENTS
       One can specify an attachment for each side of a slave window managed by form. An
       attachment is specified in the the form "-side => [anchor_point, offset]". -side can be
       one of -top, -bottom, -left or -right.

       Offset is given in screen units (i.e. any of the forms acceptable to Tk_GetPixels).  A
       positive offset indicates shifting to a position to the right or bottom of an anchor
       point. A negative offset indicates shifting to a position to the left or top of an anchor
       point.

       Anchor_point can be given in one of the following forms:

       Grid Attachment
	   The master window is divided into a number of horizontal and vertical grids. By
	   default the master window is divided into 100x100 grids; the number of grids can be
	   adjusted by the formGrid method. A grid attachment anchor point is given by a % sign
	   followed by an integer value. For example, '%0' specifies the first grid line (the top
	   or left edge of the master window). '%100' specifies the last grid line (the bottom or
	   right edge of the master window).

       Opposite Side Attachment
	   Opposite attachment specifies an anchor point located on the opposite side of another
	   slave widget, which must be managed by form in the same master window. An opposite
	   attachment anchor point is given by the name of another widget. For example,
	   "$b->form(-top=>[$a,0])" attaches the top side of the widget $b to the bottom of the
	   widget $a.

       Parallel Side Attachment
	   Opposite attachment specifies an anchor point located on the same side of another
	   slave widget, which must be managed by form in the same master window. An parallel
	   attachment anchor point is given by the sign & follwed by the name of another widget.
	   For example, "$b->form(-top=>['&',$a,0])" attaches the top side of the widget $b to
	   the top of the widget $a, making the top sides of these two widgets at the same
	   vertical position in their parent window.

       No Attachment
	   Specifies a side of the slave to be attached to nothing, indicated by the keyword
	   none. When the none anchor point is given, the offset must be zero (or not present).
	   When a side of a slave is attached to ['none', 0], the position of this side is
	   calculated by the position of the other side and the natural size of the slave. For
	   example, if a the left side of a widget is attached to ['%0', 100], its right side
	   attached to ['none', 0], and the natural size of the widget is 50 pixels, the right
	   side of the widget will be positioned at pixel ['%0', 149].	When both -top and
	   -bottom are attached to none, then by default -top will be attached to ['%0', 0]. When
	   both -left and -right are attached to none, then by default -left will be attached to
	   ['%0', 0].

       Shifting effects can be achieved by specifying a non-zero offset with an anchor point. In
       the following example, the top side of widget \$b is attached to the bottom of \$a; hence
       \$b always appears below \$a.  Also, the left edge of \$b is attached to the left side of
       \$a with a 10 pixel offest.  Therefore, the left edge of \$b is always shifted 10 pixels
       to the right of \$a's left edge:

	   $b->form(-left=>[$a,10], -top=>[$a,0]);

   ABBREVIATIONS:
       Certain abbreviations can be made on the attachment specifications: First an offset of
       zero can be omitted.  Thus, the following two lines are equivalent:

	   $b->form(-top=>[$a,0], -right=>['%100',0]);

	   $b->form(-top=>[$a], -right=>'%100');

       In the second case, when the anchor point is omitted, the offset must be given. A default
       anchor point is chosen according to the value of the offset. If the anchor point is 0 or
       positive, the default anchor point %0 is used; thus, "$b->form(-top=>15)" attaches the top
       edge of $b to a position 15 pixels below the top edge of the master window. If the anchor
       point is "-0" or negative, the default anchor point %100 is used; thus,
       "$a->form(-right=>-2)" attaches the right edge of \$a to a position 2 pixels to the left
       of the master window's right edge.  An further example below shows a method with its
       equivalent abbreviation.

	   $b->form(-top=>['%0',10], -bottom=>['%100',0]);

	   $b->form(-top=>10, -bottom=>-0);

USING SPRINGS
       To be written.

ALGORITHM OF FORM
       form starts with any slave in the list of slaves of the master window. Then it tries to
       determine the position of each side of the slave.

       If the attachment of a side of the slave is grid attachment, the position of the side is
       readily determined.

       If the attachment of this side is none, then form tries to determine the position of the
       opposite side first, and then use the position of the opposite side and the natural size
       of the slave to determine the position of this side.

       If the attachment is opposite or parallel widget attachments, then form tries to determine
       the positions of the other widget first, and then use the positions of the other widget
       and the natural size of the slave determine the position of this side. This recursive
       algorithmis carried on until the positions of all slaves are determined.

CIRCULAR DEPENDENCY
       The algorithm of form will fail if a circular dependency exists in the attachments of the
       slaves. For example:

	   $c->form(-left=>$b);

	   $b->form(-right=>$c);

       In this example, the position of the left side of $b depends on the right side of $c,
       which in turn depends on the left side of $b.

       When a circular dependency is discovered during the execution of the form algorithm, form
       will generate a background error and the geometry of the slaves are undefined (and will be
       arbitrary). Notice that form only executes the algorithm when the specification of the
       slaves' attachments is complete.  Therefore, it allows intermediate states of circular
       dependency during the specification of the slaves' attachments.	Also, unlike the Motif
       Form manager widget, form defines circular dependency as ``dependency in the same
       dimension''.  Therefore, the following code fragment will does not have circular
       dependency because the two widgets do not depend on each other in the same dimension ($b
       depends $c in the horizontal dimension and $c depends on $b in the vertical dimension):

	   $b->form(-left=>$c);

	   $c->form(-top=>$b);

BUGS
       Springs have not been fully implemented yet.

SEE ALSO
       Tk::grid Tk::pack Tk::place

KEYWORDS
       geometry manager, form, attachment, spring, propagation, size, pack, tix, master, slave

perl v5.16.3				    2014-06-10					  form(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 06:16 AM.