# NAME

Win32::GUI::GridLayout - Grid layout support for Win32::GUI

# SYNOPSIS

        use Win32::GUI::
        use Win32::GUI::GridLayout;

        # 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);

        $win->AddLabel(
            -name => "label1",
            -text => "Label 1",
        );
        $grid->add($win->label1, 1, 1, "left top");

        $grid->recalc();

# DESCRIPTION

## Constructors

new Win32::GUI::GridLayout(WIDTH, HEIGHT, COLS, ROWS, XPAD, YPAD)
apply Win32::GUI::GridLayout(WINDOW, COLS, ROWS, XPAD, YPAD)

## 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");

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` or `right` (can be shortened to `l`, `c`, `r`); default is `left`.

  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` or `bottom` (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.03, 13 April 1999.

# AUTHOR

Mike Kangas ( `kangas@anlon.com` ); additional coding by Aldo Calpini ( `dada@perl.it` ).