package misc;

use strict;

use constant TRUE => 1;
use constant FALSE => 0;

use Gtk2;
use Data::Dumper;

sub show {
  my ($title, @labels) = (@_);

  # dialog
  my $dialog = Gtk2::Dialog->new ($title, $::root,
                                  [qw/destroy-with-parent/],
                                  'gtk-close', 'none');
  $dialog->signal_connect (response => sub { $_[0]->destroy });

  # text zone
  foreach my $label (@labels) {
    $dialog->vbox->pack_start ($label, TRUE, TRUE, 0);
  }

  # show window
  $dialog->show_all ();
}

# help
sub help {
  my @labels;
  my $k = -1;

  $labels[++$k] = Gtk2::Label->new;
  $labels[$k]->set_markup ('<b>Mouse and key bindings</b>');
  $labels[$k]->set_justify ('center');
  $labels[++$k] = Gtk2::Label->new;
  $labels[$k]->set_markup ('
Mouse left button:
- hold it to move box in the canvas.

Mouse center button (Alt + Mouse):
- hold it from a box to create a box connection,
- each box has only one connection in and one connection out.

Mouse right button (Apple + Mouse):
- click on box or link to get context menu.
');
  $labels[$k]->set_line_wrap (TRUE);
  $labels[$k]->set_justify ('fill');

  show ('Help message', @labels);
}

# about
sub about {
  my @labels;
  my $k = -1;

  $labels[++$k] = Gtk2::Label->new;
  $labels[$k]->set_markup ('<b>About DB-Process v'.::version.'</b>');
  $labels[$k]->set_justify ('center');
  $labels[++$k] = Gtk2::Label->new;
  $labels[$k]->set_markup ('
A graphic database tool for processing statistical data. This program will give you some insights of our ongoing software.
');
  $labels[$k]->set_justify ('fill');
  $labels[$k]->set_line_wrap (TRUE);
  $labels[++$k] = Gtk2::Label->new;
  $labels[$k]->set_markup ('Copyright 2008 Eichos
Laurent Mazet <u><span color="blue">mazet@eichos.com</span></u>');
  $labels[$k]->set_justify ('center');

  show ('About...', @labels);
}

1;
