#!perl

##################
#
# This file was automatically generated by ZooZ.pl v1.2
# on Thu May 21 00:56:40 2009.
#
##################

#
# Headers
#
use strict;
use warnings;

use Tk 804;

#
# Global variables
#
my (
     # MainWindow
     $MW,

     # Hash of all widgets
     %ZWIDGETS,
    );

#
# User-defined variables (if any)
#
my $phrase = '';
my $resultat = '';
my $p = '';
my $gauche = '';
my $droite = '';
my $symbole = '';
my $conversion = '';
my $conv = '';

######################
#
# Create the MainWindow
#
######################

$MW = MainWindow->new;

######################
#
# Load any images and fonts
#
######################
ZloadImages();
ZloadFonts ();



# Widget Frame1 isa Frame
$ZWIDGETS{'Frame1'} = $MW->Frame()->grid(
   -row        => 0,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 4,
  );

# Widget Label1 isa Label
$ZWIDGETS{'Label1'} = $ZWIDGETS{Frame1}->Label(
   -font => 'Arial_10_bold_roman_',
   -text => 'Phrase contenant la somme en francs à convertir :',
  )->grid(
   -row        => 0,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 2,
   -sticky     => 'w',
  );

# Widget Label2 isa Label
$ZWIDGETS{'Label2'} = $ZWIDGETS{Frame1}->Label(
   -font => 'Arial_10_bold_roman_',
   -text => '(Sous le format 12 F ou 12.99 F)',
  )->grid(
   -row        => 2,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 2,
   -sticky     => 'w',
  );

# Widget Entry1 isa Entry
$ZWIDGETS{'Entry1'} = $ZWIDGETS{Frame1}->Entry(
   -font         => 'Arial_10_normal_roman_',
   -textvariable => \$phrase,
   -width        => 50,
  )->grid(
   -row        => 0,
   -column     => 2,
   -rowspan    => 2,
   -columnspan => 2,
  );

# Widget Frame2 isa Frame
$ZWIDGETS{'Frame2'} = $MW->Frame()->grid(
   -row        => 2,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 4,
  );

# Widget Button1 isa Button
$ZWIDGETS{'Button1'} = $ZWIDGETS{Frame2}->Button(
   -command => 'main::reinitialiser',
   -font    => 'Arial_10_bold_roman_',
   -text    => 'Réinitialiser',
  )->grid(
   -row    => 0,
   -column => 0,
   -padx   => 10,
   -pady   => 10,
  );

# Widget Labelframe1 isa Labelframe
$ZWIDGETS{'Labelframe1'} = $ZWIDGETS{Frame2}->Labelframe(
   -font => 'Arial_10_bold_roman_',
   -text => 'Résultat',
  )->grid(
   -row        => 1,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 3,
   -padx       => 10,
   -pady       => 10,
  );

# Widget Label3 isa Label
$ZWIDGETS{'Label3'} = $ZWIDGETS{Labelframe1}->Label(
   -font         => 'Arial_10_normal_roman_',
   -textvariable => \$resultat,
   -width        => 50,
  )->grid(
   -row        => 0,
   -column     => 0,
   -rowspan    => 2,
   -columnspan => 4,
   -ipadx      => 150,
   -ipady      => 10,
   -padx       => 10,
   -pady       => 10,
  );

# Widget Button2 isa Button
$ZWIDGETS{'Button2'} = $ZWIDGETS{Frame2}->Button(
   -command => 'main::conversion',
   -font    => 'Arial_10_bold_roman_',
   -text    => 'Conversion',
  )->grid(
   -row    => 0,
   -column => 1,
   -padx   => 10,
   -pady   => 10,
  );

# Widget Button3 isa Button
$ZWIDGETS{'Button3'} = $ZWIDGETS{Frame2}->Button(
   -command => 'main::quitter',
   -font    => 'Arial_10_bold_roman_',
   -text    => 'Quitter',
  )->grid(
   -row    => 0,
   -column => 2,
   -padx   => 10,
   -pady   => 10,
  );

###############
#
# MainLoop
#
###############

MainLoop;

#######################
#
# Subroutines
#
#######################

sub ZloadImages {
}

sub ZloadFonts {
  $MW->fontCreate('Arial_10_normal_roman_',
   -weight     => 'normal',
   -underline  => 0,
   -family     => 'Arial',
   -slant      => 'roman',
   -size       => 10,
   -overstrike => 0,
  );
  $MW->fontCreate('Arial_10_bold_roman_',
   -weight     => 'bold',
   -underline  => 0,
   -family     => 'Arial',
   -slant      => 'roman',
   -size       => 10,
   -overstrike => 0,
  );
}

sub quitter {
	exit;
}

sub reinitialiser {
	#On vide le contenu de la variable $phrase
	$phrase="";
	#On vide le contenu de la variable $resultat
	$resultat="";
}

sub conversion {
	#Si le contenu de la variable $phrase contient n'importe quel chiffre de 0 à 9 répété 1 à plusieurs fois, suivi ou non d'un point, suivi de n'importe quel chiffre de 0 à 9 répété 0, 1 ou plusieurs fois, suivi d'un espace et suivi d'un F ou d'un f, on exécute le bloc d'instructions
	if ($phrase=~/([0-9]+\.?[0-9]*)( (F|f))/) {
		#On affecte à la variable $p le motif recherché qui se trouve dans la première paranthèse (Contenu dans la variable $1)
		my $p=$1;
		#On affecte à la variable $gauche la chaîne de caractères qui se trouve à gauche du motif cherché (Contenu dans la variable $`)
		my $gauche=$`;
		#On affecte à la variable $droite la chaîne de caractères qui se trouve à droite du motif cherché (Contenu dans la variable $`)
		my $droite=$';
		#On affecte à la variable $symbole le motif qui se trouve dans la deuxième paranthèse (Contenu dans la variable $2)
		my $symbole=$2;
		#Dans le contenu de la variable $symbole on remplace le F par un E
		$symbole=~s/F/E/;
		#Dans le contenu de la variable $symbole on remplace le f par un e
		$symbole=~s/f/e/;
		#On divise le contenu de la variable $p par 6.56 et on affecte le résultat à la variable $conversion
		$conversion=$p/6.56;
		#Si le contenu de la variable $conversion contient n'importe quel chiffre de 0 à 9 répété 1 ou plusieurs fois, suivi d'un point et suivi de deux chiffres de 0 à 9, on exécute le bloc d'instructions
		if ($conversion=~/([0-9]+\.[0-9][0-9])/) {
		    #On affecte à la variable $conv le motif recherché qui se trouve dans la première paranthèse (Contenu dans la variable $1)
		    $conv=$1;
		}
		#Si le contenu de la variable $gauche est égal à rien et si le contenu de la variable $droite est égal à rien, on exécute le bloc d'instructions
		if ($gauche eq "" && $droite eq "") {
		    #On affecte à la variable $resultat "Résultat de la conversion en euros de la somme en francs : ", suivi du contenu de la variable $conv et suivi du contenu de la variable $symbole
		    $resultat="Résultat de la conversion en euros de la somme en francs : ".$conv.$symbole;
		}
		#Sinon si la condition n'est pas remplie, on exécute le bloc d'instructions
		else {
		    #On affecte à la variable $resultat les uns à la suite des autres le contenu de la variable $gauche, le contenu de la variable $conv, le contenu de la variable $symbole et le contenu de la variable $droite
		    $resultat=$gauche.$conv.$symbole.$droite;
		}
	}
	#Sinon si la condition n'est pas remplie, on exécute le bloc d'instructions
	else {
	    #On affecte à la variable $resultat "La phrase ne contient aucune somme exprimée en francs."
	    $resultat="La phrase ne contient aucune somme exprimée en francs.";
	}
}

