Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
tixForm(n)		     Tix Built-In Commands		    tixForm(n)

NAME
       tixForm - Geometry manager based	on attachment rules

SYNOPSIS
       tixForm option arg ?arg ...?

DESCRIPTION
       The  tixForm  command  is used to communicate with the tixForm Geometry
       Manager,	a geometry manager that	arranges the geometry of the  children
       in  a parent window according to	attachment rules. The tixForm 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(n), place(n)).	 The tixForm command can have any  of  several
       forms, depending	on the option argument:

       tixForm slave ?options?
	      If  the  first  argument	to tixForm is a	window name (any value
	      starting with ``.''), then the command is	processed in the  same
	      way as tixForm configure.

       tixForm check master
	      This  command checks whether there is circular dependency	in the
	      attachments of the master's slaves (see the section CIRCULAR DE-
	      PENDENCY	below).	 It  returns the Boolean value TRUE if it dis-
	      cover circular dependency	and FALSE otherwise.

       tixForm configure slave ?-option	value ...?
	      Sets or adjusts the attachment values of the  slave  window  ac-
	      cording 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 specied according to the sec-
		     tion SPECIFYING ATTACHMENTS below.

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

	      -bp value
		     Abbreviation for the -padbottom option.

	      -bs weight
		     Abbreviation for the -bottomspring	option.

	      -fill master
		     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  ap-
		     pear  as the first	flag after the name of the slave. Oth-
		     erwise 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 specied according to the sec-
		     tion SPECIFYING ATTACHMENTS below.

	      -leftspring weight
		     Specifies the weight of the spring	at the	left  edge  of
		     the slave window. See the section 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(3).

	      -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 specied according to the sec-
		     tion SPECIFYING ATTACHMENTS below.

	      -rightspring weight
		     Specifies the weight of the spring	at the right  edge  of
		     the slave window. See the section 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 specied according to the sec-
		     tion SPECIFYING ATTACHMENTS below.

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

	      -tp value
		     Abbreviation for the -padtop option.

	      -ts weight
		     Abbreviation for the -topspring option.

       tixForm forget slave ?slave ...?
	      Removes each of the slaves from its master and unmaps their win-
	      dows.   The slaves will no longer	be managed by tixForm. All at-
	      tachment values with respect to their master  windows  are  dis-
	      carded. If another slave is attached to this slave, then the at-
	      tachment of the other slave will be changed to  grid  attachment
	      based on its geometry.

       tixForm grid master ?x_size y_size?
	      When  x_size and y_size are given, this command returns the num-
	      ber 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 command changes the number of horizontal and	vertical grids
	      on the master window.

       tixForm info slave ?option?
	      Queries  the attachment options of a slave window. option	can be
	      any of the options accepted by the tixForm configure command. If
	      option  is  given,  only	the  value of that option is returned.
	      Otherwise, this command returns a	list whose  elements  are  the
	      current  configuration  state of the slave given in the same op-
	      tion-value form that might be specified  to  tixForm  configure.
	      The  first two elements in this list list	are "-in master" where
	      master is	the slave's master window.

       tixForm slaves master
	      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 tixForm. An attachment is specified in  the  the  form  "-side  {an-
       chor_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  di-
		     vided  into 100x100 grids;	the number of grids can	be ad-
		     justed by the tixForm grid	command. A grid	attachment an-
		     chor  point  is  given by a % sign	followed by an integer
		     value. For	example, %0 spceifies the first	grid line (the
		     top  or  left  edge of the	master window).	%100 spceifies
		     the last grid line	(the bottom or right edge of the  mas-
		     ter window).

	      Opposite Side Attachment
		     Opposite  attachment specifies an anchor point located on
		     the opposite side of another slave	widget,	which must  be
		     managed by	tixForm	in the same master window. An opposite
		     attachment	anchor point is	given by the name  of  another
		     widget.  For  example,  "tixForm .b -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 man-
		     aged  by  tixForm	in the same master window. An parallel
		     attachment	anchor point is	given by the sign & follwed by
		     the  name	of  another  widget.  For example, "tixForm .b
		     -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 offser must be zero.

		     When a side of a slave is attached	to {none 0}, the posi-
		     tion of this side is calculated by	the  position  of  the
		     other  side  and the natural size of the slave. For exam-
		     ple, if a the left	side of	a widget is  attached  to  {%0
		     100},  its	right side attached to {none 0}, and the natu-
		     ral 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:

       tixForm .b -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 fol-
       lowing two lines	are equivalent:

       tixForm	.b  -top  {.a 0} -right	{%100 0} tixForm .b -top {.a}	-right
       {%100}

       Also, because of	the way	TCL handles lists, when	you omit  the  offset,
       you  can	 also  leave  out  the braces. So you can further simplify the
       above to:

       tixForm .b -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, "tixForm .b -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, "tixForm .a -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 command with its equivalent abbreviation.
       tixForm	.b -top	{%0 10}	-bottom	{%100 0} tixForm .b -top 10	 -bot-
       tom -0

USING SPRINGS
       To be written.

ALGORITHM OF TIXFORM
       TixForm starts with any slave in	the list of slaves of the master  win-
       dow. 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 posi-
       tion of the side	is readily determined.

       If the attachment of this side is none, then tixForm 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 tix-
       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 tixForm will fail if a circular dependency exists in
       the attachments of the slaves. For example:

       tixForm .c -left	.b tixForm .b -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
       tixForm algorithm, tixForm will generate	a background error and the ge-
       ometry of the slaves are	undefined (and will be arbitrary). Notice that
       tixForm 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, tixForm de-
       fines circular dependency as "dependency	in the same dimension".	There-
       fore,  the  following  code fragment will does not have circular	depen-
       dency 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):

       tixForm .b -left	.c tixForm .c -top .b

BUGS
       Springs have not	been fully implemented yet.

KEYWORDS
       Tix(n), Form, Geometry Management

Tix				      4.0			    tixForm(n)

NAME | SYNOPSIS | DESCRIPTION | SPECIFYING ATTACHMENTS | USING SPRINGS | ALGORITHM OF TIXFORM | CIRCULAR DEPENDENCY | BUGS | KEYWORDS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=tixForm&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help