The following sets of routines are available:
Determining XDL_VIEW Layout Parameters
The following routines are available:
Initialise lists - xdl_layout_init
Define a single object - xdl_layout_set_single
Give details for a table - xdl_layout_set_table
Give details of layout pair - xdl_layout_set_pair
Determine the layout - xdl_layout
Get object position and size - xdl_layout_get_position
Reset objects in table - xdl_layout_reset_table
Reset single object position - xdl_layout_reset_single
Fortran call:
CALL XDLF_LAYOUT_INIT (IERR)
Parameters: IERR (W) Returns status from xdl_layout_init call
'C' call: int xdl_layout_init ()
Parameters:
{
ns = 0;
nt = 0;
np = 0;
return 0;
}
/* Fortran binding: xdlf_layout_init */
void xdlf_layout_init (ierr)
int *ierr;
Return: Status = 0 OK
Fortran call:
CALL XDLF_LAYOUT_SET_SINGLE (XDLSTR(NAME), LEN, IW, IH,
+ IHJUST, IVJUST, IERR)
Parameters:
NAME (R) Name by which to identify the single object
(max 20 chars)
** Pass address using the XDLSTR function **
LEN (R) Length of the name (>0)
IW (R) Minimum width needed (e.g. from a ..getsize routine)
IH (R) Minimum height needed
IHJUST (R) Horizontal justification required if width is
expanded.
0=expand allowed,
1=left justify,
2=right justify,
3=centre
IVJUST (R) Vertical justification required if height is
expanded.
0=expand allowed,
1=top justify,
2=bottom justify,
3=centre
IERR (W) Returns status from xdl_layout_set_single call
'C' call: int xdl_layout_set_single(name, len, w, h, hjust, vjust)
Parameters:
char *name; /* Name used to identify the object (max 20 chars) (R)*/
int len; /* Length of the name string (may be 0 if a null terminated
string is passed) (R)*/
int w; /* Minimum width needed for the object (R)*/
int h; /* Minimum height needed for the object (R)*/
int hjust; /* Horizontal justification required if width is
expanded.
0=expand allowed,
1=left justify,
2=right justify,
3=centre (R)*/
int vjust; /* Vertical justification required if height is
expanded.
0=expand allowed,
1=top justify,
2=bottom justify,
3=centre (R)*/
Return: Status = 0 OK, >0 error
=1 name already used
=2 list of single objects full
Fortran call:
CALL XDLF_LAYOUT_SET_TABLE (XDLSTR(NAME), LEN, NROWS, NCOLS,
+ XDLSTR(NAMES), NAMLEN, IORDER,
+ IWIDTH, IHEIGHT,
+ IERR)
Parameters:
NAME (R) Name used to identify the table (max 20
chars)
LEN (R) Length of the naem string (>0)
NROWS (R) Number of rows of items
NCOLS (R) Number of columns of items
NAMES (R) Fortran array of character strings containing
the single object names.
[CHARACTER*NAMLEN NAMES(NITEMS)].
** Pass address using XDLSTR function **
Can pass a blank string for an absent item.
(see names)
NAMLEN (R) Length of the single object names character strings
(Must be >0 cf name_len)
IORDER (R) Order of items in the names list =1 column fastest,
=2 row fastest
IWIDTH (R) Mimimum width required for the table (may be 0)
IHEIGHT (R) Minimum height required for the table (may be 0)
IERR (W) Returns status from xdl_layout_set_table call
'C' call:
int xdl_layout_set_table (name, len, nrows, ncols, names, name_len,
order, w, h)
Parameters:
char *name; /* Name used to identify the table (max 20 chars) (R)*/
int len; /* Length of the name (may be 0 if a null terminated
string is passed to the routine (R)*/
int nrows; /* Number of rows of objects in the table (R)*/
int ncols; /* Number of columns of objects in the table (R)*/
char * names; /* Single object names - this may either an array of
pointers to num_items null terminated character strings
(len_name=0) or a character string num_items*len_name
in length with each name occupying len_name characters
(left justified and padded to the right with blanks
if needed) Can pass blank name string or null string
for an absent item (R)*/
int name_len; /* Item name length (0 = array of pointers to
null-terminated character strings (e.g. for 'C'
programs) or the length of each name string
(e.g. for Fortran programs). See also the previous
item (R) */
int order; /* Order of items in the names list =1 column fastest,
=2 row fastest (R) */
int w; /* Mimimum width required for the table (may be 0) (R)*/
int h; /* Minimum height required for the table (may be 0) (R)*/
Return: Status = 0 OK, >0 error
=1 name already used
=2 list of tables full
=3 single not defined
=4 single already used
Fortran call:
CALL XDLF_LAYOUT_SET_PAIR (IHORV, JUST, XDLSTR(NAME), LEN,
+ XDLSTR(NAME_CH1), LEN1,
+ XDLSTR(NAME_CH2), LEN2,
+ IWIDTH, IHEIGHT, ISEP, IPCNT, IERR)
Parameters:
IHORV (R) =0 horizontal pair, =1 vertical pair
JUST (R) Layout/justification code for the two children
= 1 Expand both children
= 2 Fix left (top), expand right (bottom)
= 3 Expand left (top), fix right (bottom)
= 4 Left/left (top/top) justify
= 5 Left/right (top/bottom) justify
= 6 Right/right) (bottom/bottom) justify
NAME (R) Name string used to identify the pair (max 20 chars)
** Pass address using XDLSTR function **
LEN (R) Length of the name string (>0)
NAME_CH1 (R) Name string of the first child (previously set
single, table or another pair)
** Pass address using XDLSTR function **
LEN1 (R) Length of name for child 1 (>0)
NAME_CH2 (R) Name string of the second child (previously set
single, table or another pair)
** Pass address using XDLSTR function **
LEN2 (R) Length of name for child 2 (>0)
IWIDTH (R) Minumum width required (may be 0)
IHEIGHT (R) Minimum height required (may be 0)
ISEP (R) Separation required between the halves of the pair
IPCNT (R) Suggested allocation of width/height between the
two halves of the pair if both expanded.
IERR (W) Returns status from xdl_layout_set_pair call
'C' call:
int xdl_layout_set_pair (h_or_v, just, name, len, name_child1, len1,
name_child2, len2, w, h, sep, percent)
Parameters:
int h_or_v; /* =0 horizontal pair, =1 vertical pair (R) */
int just; /* Layout/justification code for the two children
= 1 Expand both children
= 2 Fix left (top), expand right (bottom)
= 3 Expand left (top), fix right (bottom)
= 4 Left/left (top/top) justify
= 5 Left/right (top/bottom) justify
= 6 Right/right) (bottom/bottom) justify
(R) */
char *name; /* Name used to identify the pair (max 20 chars)
(R)*/
int len; /* Length of name; may be 0 if 'name' is a null
terminated string (R) */
char *name_child1; /* Name of first (previously defined) child (R)*/
int len1; /* Length of this name; may be 0 if name_child1
is a null terminated string (R)*/
char *name_child2; /* Name of second (previously defined) child (R)*/
int len2; /* Length of this name; may be 0 if name_child2
is a null terminated string (R)*/
int w; /* Minimum width required (may be 0) (R)*/
int h; /* Minimum height required (may be 0) (R)*/
int sep; /* Separation required between the halves of the
pair (R)*/
int percent; /* Suggested allocation of width/height between the
two halves of the pair if both expanded (R)*/
Return: Status = 0 OK, >0 error
=1 name already used
=2 list of pairs full
=3 child 1 not yet defined
=4 child 1 already used
=5 child 2 not yet defined
=6 child 2 already used
Fortran call:
CALL XDLF_LAYOUT (XDLSTR(NAME), LEN, IX, IY, IWIDTH, IHEIGHT,
+ IERR)
Parameters:
NAME (R) Name string used to identify the top level
pair for the layout (max 20 chars)
** Pass address using XDLSTR function **
LEN (R) Length of the name string (>0)
IX (R) Required x coordinate for the top left of the layout
IY (R) Required y coordinate for the top left of the layout
IWIDTH (W) Returns the calculated width of the layout
IHEIGHT (W) Returns the calculated height of the layout
IERR (W) Returns status from xdl_layout call
'C' call: int xdl_layout (name, len, x, y, w, h)
Parameters:
char *name; /* Name of the top level pair for the layout (R)*/
int len; /* Length of the name (may be 0 if the name string is
null terminated) (R)*/
int x; /* Required x coordinate for the top left of the layout
(R)*/
int y; /* Required y coordinate for the top left of the layout
(R)*/
int *w; /* Returns the calculated width of the layout (W)*/
int *h; /* Returns the calculated height of the layout (W)*/
Return: Status = 0 OK, >0 error
=1 top level pair not found
Fortran call:
CALL XDLF_LAYOUT_GET_POSITION (XDLSTR(NAME), LEN, IX, IY,
IWIDTH, IHEIGHT, IERR)
Parameters:
NAME (R) Name of the single object
** Pass address using XDLSTR function **
LEN (R) Length of the name string (>0)
IX (W) Returns the x coordinate for the top left of the
single object
IY (W) Returns the y coordinate for the top left of the
single object
IWIDTH (W) Returns the calculated width of the single object
IHEIGHT (W) Returns the calculated height of the single object
IERR (W) Returns status from xdl_layout_get_position call
'C' call: int xdl_layout_get_position (name, len, x, y, w, h)
Parameters:
char *name; /* The name of the single object (R)*/
int len; /* The length of the string (may be 0 if a null terminated
string was given) (R)*/
int *x; /* Returns the x coordinate for the top left of the
single object (W) */
int *y; /* Returns the y coordinate for the top left of the
single object (W) */
int *w; /* Returns the calculated width of the single object (W)*/
int *h; /* Returns the calculated height of the single object (W)*/
Return: Status = 0 OK, >0 error
=1 object not found (or not a single object)
Fortran call:
CALL XDLF_LAYOUT_RESET_TABLE (XDLSTR(NAME), LEN, IX, IY,
IWIDTH, IHEIGHT, IERR)
Parameters:
NAME (R) Name of the table
** Pass address using XDLSTR function **
LEN (R) Length of the name string (>0)
IX (R) Required x coordinate for the top left of the table
IY (R) Required y coordinate for the top left of the table
IWIDTH (R) Required width of the table
(>= min width required)
IHEIGHT (R) Required height of the table
(>= min height required)
IERR (W) Returns status from xdl_layout_reset_table call
'C' call: int xdl_layout_reset_table (name, len, x, y, w, h)
Parameters:
char *name; /* Name of the table (R)*/
int len; /* Length of the name (may be 0 if the name string is
null terminated (R)*/
int x; /* Required x position for the top left of the table (R)*/
int y; /* Required y position for the top left of the table (R)*/
int w; /* Required width of the table (must be >= minimum width
needed) (R) */
int h; /* Required height of the table (must be >= minimum
height needed) (R) */
Return: Status = 0 OK, >0 error
=1 name not found or not a table
Fortran call:
CALL XDLF_LAYOUT_RESET_SINGLE (XDLSTR(NAME), LEN, IX, IY,
IWIDTH, IHEIGHT, IERR)
Parameters:
NAME (R) Name of the single object
** Pass address using XDLSTR function **
LEN (R) Length of the name string (>0)
IX (R) Required x coordinate for the top left of the object
IY (R) Required y coordinate for the top left of the object
IWIDTH (R) Required width of the object
(>= min width required)
IHEIGHT (R) Required height of the object
(>= min height required)
IERR (W) Returns status from xdl_layout_reset_single call
'C' call: int xdl_layout_reset_single (name, len, x, y, w, h)
Parameters:
char *name; /* Name of the single object (R)*/
int len; /* Length of the name (may be 0 if the name string is
null terminated (R)*/
int x; /* Required x position for the top left of the object (R)*/
int y; /* Required y position for the top left of the object (R)*/
int w; /* Required width of the object (must be >= minimum width
needed) (R) */
int h; /* Required height of the object (must be >= minimum
height needed) (R) */
Return: Status = 0 OK, >0 error
=1 name not found or not a single object