# cantonnier4.pl
# Une version avec un simple interface graphique

# Utilise un interface graphique :
use File::Basename;
use utf8;
use Gtk3 -init;

# Définie deux variables pour que l'interface fonctionne :
my $directoire = dirname(__FILE__);
my $interface  = Gtk3::Builder->new;

# Initialise l'interface graphique :
$interface->add_from_file("$directoire/cantonnier4.ui");
$interface->connect_signals;
$interface->get_object('fenetre_principal')->show_all;
Gtk3->main;

# Fonction qui calcule les mètres creusés hier, aujourd'hui et ceux encore à creuser :
sub calculer {
    
    # Lis les chiffres entrés dans les champs :
    my $avant_hier   = $interface->get_object('avant_hier')->get_text;
    my $hier_en_plus = $interface->get_object('hier_en_plus')->get_text;
    my $aujourdhui_en_plus
        = $interface->get_object('aujourdhui_en_plus')->get_text;
    my $total_a_creuser = $interface->get_object('total_a_creuser')->get_text;

    # Fais le différents calculs et change le texte du résultat :
    my $hier             = $avant_hier + $hier_en_plus;
    my $aujourdhui       = $hier + $aujourdhui_en_plus;
    my $a_present        = $avant_hier + $hier + $aujourdhui;
    my $encore_a_creuser = $total_a_creuser - $a_present;
    $interface->get_object('resultat')
        ->set_text(
        "Hier le cantonnier a creusé $hier mètres.\nAujourd'hui il a creusé $aujourdhui mètres.\nJusqu'à présent il a creusé $a_present mètres.\nIl lui reste encore $encore_a_creuser mètres à creuser."
        );
}

# Fonction qui quitte l'interface graphique :
sub quitter { Gtk3->main_quit }
