*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> f90/pack (3)              
Title
Content
Arch
Section
 

Contents


pack(3Tk)							     pack(3Tk)


NAME    [Toc]    [Back]

     pack - Geometry manager that packs	around edges of	cavity

SYNOPSIS    [Toc]    [Back]

     pack option arg ?arg ...?

DESCRIPTION    [Toc]    [Back]

     The pack command is used to communicate with the packer, a	geometry
     manager that arranges the children	of a parent by packing them in order
     around the	edges of the parent.  The pack command can have	any of several
     forms, depending on the option argument:

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

     pack configure slave ?slave ...? ?options?
	  The arguments	consist	of the names of	one or more slave windows
	  followed by pairs of arguments that specify how to manage the
	  slaves.  See ``THE PACKER ALGORITHM''	below for details on how the
	  options are used by the packer.  The following options are
	  supported:

	  -after other
	       Other must the name of another window.  Use its master as the
	       master for the slaves, and insert the slaves just after other
	       in the packing order.

	  -anchor anchor
	       Anchor must be a	valid anchor position such as n	or sw; it
	       specifies where to position each	slave in its parcel.  Defaults
	       to center.

	  -before other
	       Other must the name of another window.  Use its master as the
	       master for the slaves, and insert the slaves just before	other
	       in the packing order.

	  -expand boolean
	       Specifies whether the slaves should be expanded to consume
	       extra space in their master.  Boolean may have any proper
	       boolean value, such as 1	or no.	Defaults to 0.

	  -fill	style
	       If a slave's parcel is larger than its requested	dimensions,
	       this option may be used to stretch the slave.  Style must have
	       one of the following values:






									Page 1






pack(3Tk)							     pack(3Tk)



	       none Give the slave its requested dimensions plus any internal
		    padding requested with -ipadx or -ipady.  This is the
		    default.

	       x    Stretch the	slave horizontally to fill the entire width of
		    its	parcel (except leave external padding as specified by
		    -padx).

	       y    Stretch the	slave vertically to fill the entire height of
		    its	parcel (except leave external padding as specified by
		    -pady).

	       both Stretch the	slave both horizontally	and vertically.

	  -in other
	       Insert the slave(s) at the end of the packing order for the
	       master window given by other.

	  -ipadx amount
	       Amount specifies	how much horizontal internal padding to	leave
	       on each side of the slave(s).  Amount must be a valid screen
	       distance, such as 2 or .5c.  It defaults	to 0.

	  -ipady amount
	       Amount specifies	how much vertical internal padding to leave on
	       each side of the	slave(s).  Amount  defaults to 0.

	  -padx	amount
	       Amount specifies	how much horizontal external padding to	leave
	       on each side of the slave(s).  Amount defaults to 0.

	  -pady	amount
	       Amount specifies	how much vertical external padding to leave on
	       each side of the	slave(s).  Amount defaults to 0.

	  -side	side
	       Specifies which side of the master the slave(s) will be packed
	       against.	 Must be left, right, top, or bottom.  Defaults	to
	       top.

	  If no	-in, -after or -before option is specified then	each of	the
	  slaves will be inserted at the end of	the packing list for its
	  parent unless	it is already managed by the packer (in	which case it
	  will be left where it	is).  If one of	these options is specified
	  then all the slaves will be inserted at the specified	point.	If any
	  of the slaves	are already managed by the geometry manager then any
	  unspecified options for them retain their previous values rather
	  than receiving default values.

     pack forget slave ?slave ...?
	  Removes each of the slaves from the packing order for	its master and
	  unmaps their windows.	 The slaves will no longer be managed by the



									Page 2






pack(3Tk)							     pack(3Tk)



	  packer.

     pack info slave
	  Returns a list whose elements	are the	current	configuration state of|
	  the slave given by slave in the same option-value form that might be|
	  specified to pack configure.	The first two elements of the list are|
	  ``-in	master'' where master is the slave's master.

     pack propagate master ?boolean?
	  If boolean has a true	boolean	value such as 1	or on then propagation
	  is enabled for master, which must be a window	name (see ``GEOMETRY
	  PROPAGATION''	below).	 If boolean has	a false	boolean	value then
	  propagation is disabled for master.  In either of these cases	an
	  empty	string is returned.  If	boolean	is omitted then	the command
	  returns 0 or 1 to indicate whether propagation is currently enabled
	  for master.  Propagation is enabled by default.

     pack slaves master
	  Returns a list of all	of the slaves in the packing order for master.
	  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.

THE PACKER ALGORITHM    [Toc]    [Back]

     For each master the packer	maintains an ordered list of slaves called the
     packing list.  The	-in, -after, and -before configuration options are
     used to specify the master	for each slave and the slave's position	in the
     packing list.  If none of these options is	given for a slave then the
     slave is added to the end of the packing list for its parent.

     The packer	arranges the slaves for	a master by scanning the packing list
     in	order.	At the time it processes each slave, a rectangular area	within
     the master	is still unallocated.  This area is called the cavity;	for
     the first slave it	is the entire area of the master.

     For each slave the	packer carries out the following steps:

     [1]  The packer allocates a rectangular parcel for	the slave along	the
	  side of the cavity given by the slave's -side	option.	 If the	side
	  is top or bottom then	the width of the parcel	is the width of	the
	  cavity and its height	is the requested height	of the slave plus the
	  -ipady and -pady options.  For the left or right side	the height of
	  the parcel is	the height of the cavity and the width is the
	  requested width of the slave plus the	-ipadx and -padx options.  The
	  parcel may be	enlarged further because of the	-expand	option (see
	  ``EXPANSION''	below)

     [2]  The packer chooses the dimensions of the slave.  The width will
	  normally be the slave's requested width plus twice its -ipadx	option
	  and the height will normally be the slave's requested	height plus
	  twice	its -ipady option.  However, if	the -fill option is x or both



									Page 3






pack(3Tk)							     pack(3Tk)



	  then the width of the	slave is expanded to fill the width of the
	  parcel, minus	twice the -padx	option.	 If the	-fill option is	y or
	  both then the	height of the slave is expanded	to fill	the width of
	  the parcel, minus twice the -pady option.

     [3]  The packer positions the slave over its parcel.  If the slave	is
	  smaller than the parcel then the -anchor option determines where in
	  the parcel the slave will be placed.	If -padx or -pady is non-zero,
	  then the given amount	of external padding will always	be left
	  between the slave and	the edges of the parcel.

     Once a given slave	has been packed, the area of its parcel	is subtracted
     from the cavity, leaving a	smaller	rectangular cavity for the next	slave.
     If	a slave	doesn't	use all	of its parcel, the unused space	in the parcel
     will not be used by subsequent slaves.  If	the cavity should become too
     small to meet the needs of	a slave	then the slave will be given whatever
     space is left in the cavity.  If the cavity shrinks to zero size, then
     all remaining slaves on the packing list will be unmapped from the	screen
     until the master window becomes large enough to hold them again.

EXPANSION    [Toc]    [Back]

     If	a master window	is so large that there will be extra space left	over
     after all of its slaves have been packed, then the	extra space is
     distributed uniformly among all of	the slaves for which the -expand
     option is set.  Extra horizontal space is distributed among the
     expandable	slaves whose -side is left or right, and extra vertical	space
     is	distributed among the expandable slaves	whose -side is top or bottom.

GEOMETRY PROPAGATION    [Toc]    [Back]

     The packer	normally computes how large a master must be to	just exactly
     meet the needs of its slaves, and it sets the requested width and height
     of	the master to these dimensions.	 This causes geometry information to
     propagate up through a window hierarchy to	a top-level window so that the
     entire sub-tree sizes itself to fit the needs of the leaf windows.
     However, the pack propagate command may be	used to	turn off propagation
     for one or	more masters.  If propagation is disabled then the packer will
     not set the requested width and height of the packer.  This may be	useful
     if, for example, you wish for a master window to have a fixed size	that
     you specify.


RESTRICTIONS ON	MASTER WINDOWS
     The master	for each slave must either be the slave's parent (the default)
     or	a descendant of	the slave's parent.  This restriction is necessary to
     guarantee that the	slave can be placed over any part of its master	that
     is	visible	without	danger of the slave being clipped by its parent.







									Page 4






pack(3Tk)							     pack(3Tk)



PACKING	ORDER
     If	the master for a slave is not its parent then you must make sure that
     the slave is higher in the	stacking order than the	master.	 Otherwise the
     master will obscure the slave and it will appear as if the	slave hasn't
     been packed correctly.  The easiest way to	make sure the slave is higher
     than the master is	to create the master window first:  the	most recently
     created window will be highest in the stacking order.  Or,	you can	use
     the raise and lower commands to change the	stacking order of either the
     master or the slave.

KEYWORDS    [Toc]    [Back]

     geometry manager, location, packer, parcel, propagation, size










































									Page 5



PACK(3I)					       Last changed: 1-6-98

NAME    [Toc]    [Back]

     PACK - Packs an array into	an array of rank one under control of a
     mask

SYNOPSIS    [Toc]    [Back]

     PACK ([ARRAY=]array, [MASK=]mask [,[VECTOR=]vector])

IMPLEMENTATION    [Toc]    [Back]

     UNICOS, UNICOS/mk,	and IRIX systems

STANDARDS    [Toc]    [Back]

     Fortran 90

DESCRIPTION    [Toc]    [Back]

     The PACK intrinsic	function packs an array	into an	array of rank one
     under control of a	mask.  It can be used for array	construction.  It
     accepts the following arguments:

     array     Can be of any type.  It must not	be scalar.

     mask      Must be of type logical and must	be conformable with array.

     vector    Must be of the same type	as array and must have rank one.
	       vector must have	at least as many elements as there are true
	       elements	in mask.  If mask is scalar with the value true,
	       vector must have	at least as many elements as there are in
	       array.

     PACK is a transformational	function.  The name of this intrinsic
     cannot be passed as an argument.

RETURN VALUES    [Toc]    [Back]

     The result	is an array of rank one	of the same type as array.  If
     vector is present,	the result size	is that	of vector; otherwise, the
     result size is the	number t of true elements in mask unless mask is
     scalar with the value true	in which case the result size is the size
     of	array.

     Element i of the result is	the element of array that corresponds to
     the ith true element of mask, taking elements in array element order,
     for i=1, 2, ..., t.  If vector is present and has size n>t, element i
     of	the result has the value vector(i), for	i=t+1, ..., n.

EXAMPLES    [Toc]    [Back]

     Example 1:	 If N =	(/ 1, -1, 3 /),	the following are true:

	  PACK(	N, MASK=N.LT.0)	is [-1].

	  PACK(	N, MASK=.TRUE.)	is [1, -1, 3].

     Example 2:	 Array M is as follows:

	| 0 0 0	|

	| 9 0 0	|

	| 0 0 7	|

     The nonzero elements of array M can be gathered by	the PACK function.
     The following are the results:

	  PACK(M, MASK=M.NE.0) is [9, 7].

	  PACK(M, MASK=M.NE.0, VECTOR=(/2, 4, 6, 8, 10,	12/)) is [9, 7,	6,
	  8, 10	12].

SEE ALSO    [Toc]    [Back]

      
      
     Intrinsic Procedures Reference Manual, publication	SR-2138, for the
     printed version of	this man page.

PACK(3I)					       Last changed: 1-6-98

NAME    [Toc]    [Back]

     PACK - Packs an array into	an array of rank one under control of a
     mask

SYNOPSIS    [Toc]    [Back]

     PACK ([ARRAY=]array, [MASK=]mask [,[VECTOR=]vector])

IMPLEMENTATION    [Toc]    [Back]

     UNICOS, UNICOS/mk,	and IRIX systems

STANDARDS    [Toc]    [Back]

     Fortran 90

DESCRIPTION    [Toc]    [Back]

     The PACK intrinsic	function packs an array	into an	array of rank one
     under control of a	mask.  It can be used for array	construction.  It
     accepts the following arguments:

     array     Can be of any type.  It must not	be scalar.

     mask      Must be of type logical and must	be conformable with array.

     vector    Must be of the same type	as array and must have rank one.
	       vector must have	at least as many elements as there are true
	       elements	in mask.  If mask is scalar with the value true,
	       vector must have	at least as many elements as there are in
	       array.

     PACK is a transformational	function.  The name of this intrinsic
     cannot be passed as an argument.

RETURN VALUES    [Toc]    [Back]

     The result	is an array of rank one	of the same type as array.  If
     vector is present,	the result size	is that	of vector; otherwise, the
     result size is the	number t of true elements in mask unless mask is
     scalar with the value true	in which case the result size is the size
     of	array.

     Element i of the result is	the element of array that corresponds to
     the ith true element of mask, taking elements in array element order,
     for i=1, 2, ..., t.  If vector is present and has size n>t, element i
     of	the result has the value vector(i), for	i=t+1, ..., n.

EXAMPLES    [Toc]    [Back]

     Example 1:	 If N =	(/ 1, -1, 3 /),	the following are true:

	  PACK(	N, MASK=N.LT.0)	is [-1].

	  PACK(	N, MASK=.TRUE.)	is [1, -1, 3].

     Example 2:	 Array M is as follows:

	| 0 0 0	|

	| 9 0 0	|

	| 0 0 7	|

     The nonzero elements of array M can be gathered by	the PACK function.
     The following are the results:

	  PACK(M, MASK=M.NE.0) is [9, 7].

	  PACK(M, MASK=M.NE.0, VECTOR=(/2, 4, 6, 8, 10,	12/)) is [9, 7,	6,
	  8, 10	12].

SEE ALSO    [Toc]    [Back]

      
      
     Intrinsic Procedures Reference Manual, publication	SR-2138, for the
     printed version of	this man page.

[ Back ]
 Similar pages
Name OS Title
pack-old IRIX Obsolete syntax for packer geometry manager
place IRIX Geometry manager for fixed or rubber-sheet placement
format OpenBSD how to format disk packs
glEdgeFlag Tru64 option edges as either boundary or nonboundary
glEdgeFlagv Tru64 option edges as either boundary or nonboundary
gledgeflag IRIX flag edges as either boundary or nonboundary
glClipPlane Tru64 specify a plane against which all geometry is clipped
glclipplane IRIX specify a plane against which all geometry is clipped
clipplane IRIX specify a plane against which all geometry is clipped
finish IRIX blocks until the Geometry Pipeline is empty
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service