package MainWindow;

use strict;
use warnings;
use QtCore4;
use QtGui4;
use QtCore4::isa qw( Qt::MainWindow );
use QtCore4::slots
    about => [];
use PrintPanel;

sub printPanel() {
    return this->{printPanel};
}

sub fileMenu() {
    return this->{fileMenu};
}

sub helpMenu() {
    return this->{helpMenu};
}

sub exitAct() {
    return this->{exitAct};
}

sub aboutAct() {
    return this->{aboutAct};
}

sub aboutQtAct() {
    return this->{aboutQtAct};
}

sub NEW
{
    my ($class) = @_;
    $class->SUPER::NEW();

    this->{printPanel} = PrintPanel();
    this->setCentralWidget(this->printPanel);

    this->createActions();
    this->createMenus();

# [0]
    this->setWindowTitle(MainWindow::tr("Troll Print 1.0"));
# [0]
}

sub about
{
    Qt::MessageBox::information(this, MainWindow::tr("About Troll Print 1.0"),
                      MainWindow::tr("Troll Print 1.0.\n\n" .
                      "Copyright 1999 Software, Inc."));
}

# [1]
sub createActions
{
# [2]
    this->{exitAct} = Qt::Action(MainWindow::tr("E&xit"), this);
    this->exitAct->setShortcut(MainWindow::tr("Ctrl+Q", "Quit"));
# [2]
    this->connect(this->exitAct, SIGNAL 'triggered()', this, SLOT 'close()');

    this->{aboutAct} = Qt::Action(MainWindow::tr("&About"), this);
    this->aboutAct->setShortcut(Qt::KeySequence(${Qt::Key_F1()}));
    this->connect(this->aboutAct, SIGNAL 'triggered()', this, SLOT 'about()');

    this->{aboutQtAct} = Qt::Action(MainWindow::tr("About &Qt"), this);
    this->connect(this->aboutQtAct, SIGNAL 'triggered()', qApp, SLOT 'aboutQt()');
}

sub createMenus
# [1] //! [3]
{
    my $fileMenu = this->menuBar()->addMenu(MainWindow::tr("&File"));
    $fileMenu->addAction(this->exitAct);

    this->menuBar()->addSeparator();

    my $helpMenu = this->menuBar()->addMenu(MainWindow::tr("&Help"));
    $helpMenu->addAction(this->aboutAct);
    $helpMenu->addAction(this->aboutQtAct);
}
# [3]

1;