NAME
Win32::GUI::GridLayout - Grid layout support for Win32::GUI
SYNOPSIS
use
Win32::GUI::
# 1. make a "static" grid
$grid
= new Win32::GUI::GridLayout(400, 300, 3, 3, 0, 0);
$win
= new Win32::GUI::Window(
$win
->AddLabel(
-name
=>
"label1"
,
-text
=>
"Label 1"
,
-width
=>
$grid
->width(35),
-height
=>
$grid
->height(11),
-left
=>
$grid
->col(1,
"left"
),
-top
=>
$grid
->row(1,
"top"
),
);
# 2. make a "dynamic" grid
$grid
= apply Win32::GUI::GridLayout(
$win
, 3, 3, 0, 0);
or
$grid
= apply Win32::GUI::GridLayout(
$win
,
[
qw(10 * * 10)
],
[
qw(10 * 40)
],
0, 0);
$win
->AddLabel(
-name
=>
"label1"
,
-text
=>
"Label 1"
,
);
$grid
->add(
$win
->label1, 1, 1,
"left top"
);
or
$grid
->add(
$win
->label1, [2..3], 1,
"justify justify"
);
$grid
->recalc();
DESCRIPTION
Constructors
- new Win32::GUI::GridLayout(WIDTH, HEIGHT, COLS, ROWS, XPAD, YPAD)
- apply Win32::GUI::GridLayout(WINDOW, COLS, ROWS, XPAD, YPAD)
-
COLS - quantity of columns or arrayref of width colomns (number - absolute width, * - relative width)
ROWS - quantity of rows or arrayref of height rows (number - absolute height, * - relative height)
Methods
- add(CONTROL, COL, ROW, ALIGN)
-
Adds CONTROL to the grid at (COL, ROW). ALIGN can specify both horizontal and vertical alignment (see the col() and row() methods), separated by at least one blank and/or a comma.
Example:
$grid
->add(
$win
->label1, 1, 1,
"left top"
);
or
$grid
->add(
$win
->label1, [2..3], 1,
"justify top"
);
COL and ROW may be arrayref for adds CONTROL into more than one cell. If ALIGN is justify (j) than CONTROL expands up to cell.
- col(N, ALIGN)
-
Positions the control at the Nth column in the grid, optionally with an ALIGN; this can be feed to a
-left
option when creating a control.ALIGN can be
left
,center
orright
(can be shortened tol
,c
,r
); default isleft
.Note that for alignment to work properly, the width() and height() methods must have been previously called.
Example:
$win
->AddLabel(
-name
=>
"label1"
,
-text
=>
"Label 1"
,
-width
=>
$grid
->width(35),
-height
=>
$grid
->height(11),
-left
=>
$grid
->col(1,
"left"
),
-top
=>
$grid
->row(1,
"top"
),
);
- draw()
-
Draws the GridLayout in the associated window (may be useful for debugging); is only meaningful if the GridLayout was created with the apply() constructor.
- height(N)
-
Sets the height of the control for subsequent alignment; this can be feed to a
-height
option when creating a control.Example: see col().
- recalc()
-
Recalculates the grid and repositions all the add()ed controls, taking into account the actual window and controls sizes; is only meaningful if the GridLayout was created with the apply() constructor.
Example:
sub
Window_Resize {
$grid
->recalc();
}
- row(N, ALIGN)
-
Positions the control at the Nth row in the grid, optionally with an ALIGN; this can be feed to a
-top
option when creating a control.ALIGN can be
top
,center
orbottom
(can be shortened to t, c, b); default is top.Note that for alignment to work properly, the width() and height() methods must have been previously called.
Example: see col().
- width(N)
-
Sets the width of the control for subsequent alignment; this can be feed to a
-width
option when creating a control.Example: see col().
VERSION
Win32::GUI::GridLayout version 0.04, 24 June 2005. Win32::GUI::GridLayout version 0.04, 06 April 2005. Win32::GUI::GridLayout version 0.03, 13 April 1999.
AUTHOR
Mike Kangas ( kangas@anlon.com
); additional coding by Aldo Calpini ( dada@perl.it
). additional coding Alexander Romanenko ( alex@parom.biz
).