#!/usr/bin/perl -w

use Qt;
use QColor;
use QFrame;
use QGroupBox;
use QLabel;
use QLayout;
use QMultiLineEdit;
use QPushButton;

$f = new QGroupBox;
$f->setFrameStyle($Frame{Panel} | $Frame{Sunken});

$gm = new QGridLayout($f, 3, 3, 5);

$gm->setColStretch(0, 1);
$gm->setColStretch(1, 3);
$gm->setColStretch(2, 0);

$gm->setRowStretch(0, 2);
$gm->setRowStretch(1, 6);
$gm->setRowStretch(2, 1);

$box = new QBoxLayout($Direction{TopToBottom}, 2);
$gm->addLayout($box, 0, 0);

$above = new QBoxLayout($Direction{LeftToRight});
$box->addLayout($above, 7);
for my $i (0..3) {
    my $lab = new QLabel($f)->immortal;
    $lab->setBackgroundColor($darkGreen);
    $above->addWidget($lab);
}
$below = new QBoxLayout($Direction{LeftToRight});
$box->addLayout($below, 4);
for my $i (0..2) {
    my $lab = new QLabel($f)->immortal;
    $lab->setBackgroundColor($darkBlue);
    $below->addWidget($lab);
}

$qb = new QPushButton('Quit', $f);
$qApp->connect($qb, 'clicked()', 'quit()');
$qb->setFixedSize($qb->size());
$gm->addWidget($qb, 0, 2, $Align{Center});

$ed = new QMultiLineEdit($f);
$ed->setText("This is supposed to be a large window\n you know.");
$ed->setMinimumSize(150, 150);
$gm->addMultiCellWidget($ed, 1, 1, 1, 2);

$l1 = new QLabel($f);
$l1->setText('This is label 1.');
$l1->setBackgroundColor($yellow);
$l1->setMinimumSize($l1->sizeHint());
$gm->addWidget($l1, 0, 1);

$l2 = new QLabel($f);
$l2->setText("This\nis\nlabel\ntoo.");
$l2->setBackgroundColor($red);
$l2->setMinimumSize($l2->sizeHint());
$gm->addWidget($l2, 1, 0);

$l3 = new QLabel($f);
$l3->setText('This is label III.');
$l3->setBackgroundColor($red);
$l3->setMinimumSize($l3->sizeHint());
$gm->addWidget($l3, 2, 2);

$l4 = new QLabel($f);
$l4->setText('More Label.');
$l4->setBackgroundColor($cyan);
$l4->setMinimumSize($l4->sizeHint());
$gm->addMultiCellWidget($l4, 2, 2, 0, 1);

$gm->activate();
$f->show();

$qApp->setMainWidget($f);
$qApp->exec();
