bionic (3) tixForm.3.gz

Provided by: tix-dev_8.4.3-10_amd64 bug

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  DEPENDENCY  below). It returns the Boolean value TRUE if it discover
              circular dependency and FALSE otherwise.

       tixForm configure slave ?-option value ...?
              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
                     specied according to the section 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 appear as the first flag
                     after the name of the slave. 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  specied
                     according to the section 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 section 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 section 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 windows.  The slaves will no longer be
              managed by tixForm. All attachment values with respect to their master windows 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.

       tixForm grid master ?x_size y_size?
              When x_size and y_size are given, this command 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
              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 option-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 {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
                     tixForm grid command. A grid attachment anchor 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  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 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 managed 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 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:

       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 following 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      -bottom -0

USING SPRINGS

       To be written.

ALGORITHM OF TIXFORM

       TixForm  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 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 tixForm 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 geometry 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  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):

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

BUGS

       Springs have not been fully implemented yet.

KEYWORDS

       Tix(n), Form, Geometry Management