diff --git a/zenity_generator.sh b/zenity_generator.sh
new file mode 100755
index 0000000..d7418ad
--- /dev/null
+++ b/zenity_generator.sh
@@ -0,0 +1,1159 @@
+#!/bin/bash
+
+##############################################
+##############################################
+############## ZENITY GENERATOR ##############
+##############################################
+#####################################by Hizoka
+# Script de génération de fenêtres graphiques réalisé uniquement avec Zenity et du bash
+# Pour des questions ou des infos : http://forum.ubuntu-fr.org/viewtopic.php?id=280649
+
+### Fonctions courantes ###
+
+# Fonction cherchant l'emplacement du script (pour le .log)
+function emplacement_script()
+{
+if [ "${0:0:1}" == "/" ];
+then
+ emplacement_script=$(dirname "$0")
+else
+ emplacement_script=$(pwd)
+fi
+}
+
+# Fonction affichant le code final de la nouvelle fenêtre créée avec copie dans le log si besoin
+function affichage_code()
+{
+ zenity --text-info --title="Code de votre fenêtre :" --width="500" --height="400" --filename=".fenetre_zenity"
+
+ if [[ -n $(egrep "^choix_log=OUI$" "${emplacement_script}/zenity_generator.sh") ]]
+ then
+ (cat .fenetre_zenity && echo -e "\n") >> "${emplacement_script}/log_zenity_generator.log"
+ fi
+
+ rm .fenetre_zenity
+}
+
+# Fonction donnant la hauteur de la fenêtre
+function hauteur_fenetre()
+{
+ hauteur_fenetre="--height=\"$(zenity --width=300 --height=80 --title 'Choix de la hauteur' --text 'Indiquez la taille (en pixel) maximale de la hauteur de la fenêtre' --entry --width=400 --height=100)\""
+}
+
+# Fonction donnant l'Icône de la fenêtre
+function icone_fenetre()
+{
+ icone_fenetre="--window-icon=\"$(zenity --title 'Choix de l`icône' --filename=/home/$USER/ --file-selection --width=400)\""
+}
+
+# Fonction donnant la largeur de la fenêtre
+function largeur_fenetre()
+{
+ largeur_fenetre="--width=\"$(zenity --width=300 --height=80 --title 'Choix de la largeur' --text 'Indiquez la taille (en pixel) maximale de la largeur de la fenêtre' --entry --width=400 --height=100)\""
+}
+
+# Fonction donnant le texte avec couleur et gras
+function texte()
+{
+echo -e "Vous pouvez maintenant taper le texte que vous souhaitez voir apparaître dans votre fenêtre.
+Il est possible de faire des effets sur les polices, pour plus d'infos, regardez le menu 'exemples'.
+
+Evitez les !!, cela provoque des erreurs.
+
+Exemples de balises pour mettre en forme le texte interne de vos fenêtres (exceptées celles de saisie de texte) :
+ - Mise en gras : texte
+ - Mise en italique : Texte
+ - Mise en couleur : texte (avec les anti-slashs)
+
+##### MERCI DE SUPPRIMER CES INFOS AVANT DE CLIQUER SUR FERMER #####" > .texte
+
+texte="--text=\"$(zenity --text-info --title='Tapez le texte de la fenêtre' --editable --filename='.texte' --width='550' --height='500')\""
+
+rm .texte
+}
+
+# Fonction donnant le titre
+function titre()
+{
+ titre="--title=\"$(zenity --title 'Choix du titre' --text 'Tapez le nom de la fenêtre' --entry --width=400 --height=100)\""
+}
+
+# Fonction pour utilisation ou non d'un fichier log
+function utilisation_log()
+{
+emplacement_script
+
+if [[ -n $(egrep "^choix_log=OUI$" "${emplacement_script}/zenity_generator.sh") ]]
+then
+ echo "Vous enregistrez vos fenêtres dans un fichier log disponible dans le même dossier que ce script.
+
+Pour arrêter d'utiliser le fichier log :
+sed -i 's/^choix_log=OUI$/choix_log=NON/' \"${emplacement_script}/zenity_generator.sh\""
+
+elif [[ -n $(egrep "^choix_log=NON$" "${emplacement_script}/zenity_generator.sh") ]]
+then
+ echo "Vous ne souhaitez pas enregistrer vos codes de fenêtres dans un fichier log.
+
+Pour utiliser un fichier log de sauvegarde :
+sed -i \"s/^choix_log=NON$/choix_log=OUI/\" \"${emplacement_script}/zenity_generator.sh\""
+
+else
+ log=$(zenity --list --radiolist --title="Utilisation d'un .log ?" --text="Voulez-vous que vos créations soient sauvegardées dans un fichier log ?
+
+Cette question ne vous sera posée qu'une seule fois.
+
+Il vous sera possible de modifier ce choix en tapant la commande
+qui s'affiche dans la console au démarrage du script." --column="Choix" --column="Réponse" \
+FALSE "OUI" \
+FALSE "NON")
+
+ if [[ -n ${log} ]]
+ then
+ sed -i "/^#### Choix log ####$/a choix_log=${log}" "${emplacement_script}/zenity_generator.sh"
+ fi
+fi
+
+#### Choix log ####
+choix_log=OUI
+
+}
+
+
+###############################################################
+## Système pour la fenêtre Zenity affichant un fichier texte ##
+###############################################################
+
+# Permet également sauvegarder après.
+function zenity_fichier_texte()
+{
+# Ouvre une fenêtre zenity demandant les differentes variables utilent à la creation de la fenêtre
+MENU=$(zenity --title 'Que voulez vous modifier ?' --list --text 'Merci de choisir les différentes options à modifier ou à appliquer.' --checklist --column 'Choix' --column 'Action' --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du fichier texte à afficher" \
+FALSE "Permettre l'édition du texte de la fenêtre" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre" )
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du fichier texte à afficher") ]]
+then
+ fichier_texte="--filename=\"$(zenity --title 'Emplacement du fichier texte à afficher dans la fenêtre.' --filename=/home/$USER/ --file-selection)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Permettre l'édition du texte de la fenêtre") ]]
+then
+ edition="--editable"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --text-info ${titre} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${fichier_texte} ${edition}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+
+###############################################
+## Système pour la fenêtre Zenity calendrier ##
+###############################################
+
+# Fonction du format de la date
+function date()
+{
+ date="--date-format=\"$(zenity --title 'Choix du format de la date' --text 'Choisissez le format de date voulu en vous aidant des explications.
+
+Jours --
+%d : Jour du mois [ex : 12]
+%a : 3 premières lettres du jour [ex : ven]
+%A : Affiche le nom du jour [ex : vendredi]
+%j : Numéro du jour depuis le debut d`année [ex : 286]
+
+Semaines --
+%V : Numéro de lasemaine [ex : 52]
+
+Mois --
+%m : Mois de l`année [ex: 10]
+%b : 3 premières lettres du mois [ex : oct]
+%B : Affiche le nom du mois [ex : octobre]
+
+Années --
+%y : Année, sur 2 chiffres [ex : 84]
+%Y : Année, sur 4 chiffres [ex : 1984]
+
+Formats --
+%D : mois/jour/année [ex : 07/23/08]
+%F : année-mois-jour [ex : 2008-07-21]
+%x : jour.mois.année [ex : 21.07.2008]
+%c : %a %d %b %Y heure [ex : lun 21 jui 2008 00:00:00]
+
+Exemple : Nous sommes le %A %d %m %Y' --entry --width=400 --height=100)\""
+}
+
+function zenity_calendrier()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+FALSE "Choix du jour de base" \
+FALSE "Choix du mois de base" \
+FALSE "Choix de l'année de base" \
+FALSE "Choix du format de sorti de date" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du jour de base") ]]
+then
+ jour="--day=\"$(zenity --title 'Choix du jour' --text 'Choisissez le jour de base.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du mois de base") ]]
+then
+ mois="--month=\"$(zenity --title 'Choix du mois' --text 'Choisissez le mois de base.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix de l'année de base") ]]
+then
+ annee="--year=\"$(zenity --title 'Choix de l`année' --text 'Choisissez l`année.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du format de sorti de date") ]]
+then
+ date
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --calendar ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${jour} ${mois} ${annee} ${date}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+#############################################
+## Système pour la fenêtre Zenity messages ##
+#############################################
+
+# Fonction du type de fenêtre message
+function type_fenetre()
+{
+type_fenetre=$(zenity --title="Quel type de fenêtre de message voulez-vous ?" --text="Veuillez choisir dans la liste suivante le type de fenêtre voulu." "Fenetre d'erreur" "Fenetre de confirmation" "Fenetre d'avertissement" --entry --entry-text="Fenetre d'information")
+
+if [ "$type_fenetre" = "Fenetre d'information" ]
+then
+ type_fenetre="--info"
+
+elif [ "$type_fenetre" = "Fenetre d'erreur" ]
+then
+ type_fenetre="--error"
+
+elif [ "$type_fenetre" = "Fenetre de confirmation" ]
+then
+ type_fenetre="--question"
+
+elif [ "$type_fenetre" = "Fenetre d'avertissement" ]
+then
+ type_fenetre="--warning"
+fi
+}
+
+function zenity_messages()
+{
+MENU=$(zenity --title "Que voulez-vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+TRUE "Choix du type de message" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du type de message") ]]
+then
+ type_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity ${type_fenetre} ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+####################################################################
+## Système pour la fenêtre Zenity de sélection de fichier/dossier ##
+####################################################################
+
+function zenity_selection_fichier()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+FALSE "Désigner le dossier de base" \
+FALSE "Sélectionner plusieurs fichiers" \
+FALSE "Choix du séparateur -- si utilisation du mode multi fichier" \
+FALSE "Mode enregistrement de fichier" \
+FALSE "Obligation de sélection de dossiers et non de fichiers" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Designer le dossier de base") ]]
+then
+ emplacement_defaut="--filename=\"$(zenity --title 'Choix du dossier' --filename=/home/$USER/ --file-selection --directory --width=400)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Selectionner plusieurs fichiers") ]]
+then
+ multi_fichier="--multiple"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du séparateur") ]]
+then
+ separateur_fichier="--separator=\"$(zenity --title 'Choix du separateur' --text 'Choisissez le type de séparateur à utiliser pour delimiter les différentes adresses.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Mode enregistrement de fichier") ]]
+then
+ sauvegarde="--save"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Obligation de selection de dossiers et non de fichiers") ]]
+then
+ dossier="--directory"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --file-selection ${titre} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${dossier} ${sauvegarde} ${separateur_fichier} ${multi_fichier} ${emplacement_defaut}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+########################################################
+## Système pour la fenêtre Zenity de boite de réponse ##
+########################################################
+
+function zenity_saisie()
+{
+MENU=$(zenity --title "Que voulez-vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+FALSE "Pré-écrire une réponse dans la zone de texte" \
+FALSE "Proposer une liste de réponses" \
+FALSE "Remplacer les caracteres par des *" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Pré-écrire une réponse dans la zone de texte") ]]
+then
+ pre_texte="--entry-text=\"$(zenity --title 'Texte pré écrit' --text 'Indiquez le texte qui doit être pré écrit dans la barre de texte.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Remplacer les caracteres par des *") ]]
+then
+ motdepasse="--hide-text"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Proposer une liste de réponses") ]]
+then
+ liste_reponse=$(zenity --title 'Liste de choix' --text 'Ecrivez les différents choix que vous souhaitez proposer.
+
+Il suffit d`éspacer les différentes réponses.
+
+Si votre réponse contient plusieurs mots, il suffit de mettre des " à l`expression.
+
+Si vous avez mis une réponse pré-écrite, il est inutil de la remettre ici.' --entry --width=400 --height=100)
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --entry ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${pre_texte} ${motdepasse} ${liste_reponse}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+###########################################################
+## Système pour la fenêtre Zenity de barre de chargement ##
+###########################################################
+
+function texte_et_pourcentage()
+{
+nb_etape=$(zenity --title "Nombre d'étape" --text "Indiquez le nombre d'étape à realiser pour remplir la barre." --entry --width=400 --height=100)
+
+etapes_pourcentages=$[100 / $nb_etape]
+
+zenity --question --title="Choisir les pourcentages ?" --text="Souhaitez vous choisir les différents pourcentages des ${nb_etape} étapes ?
+
+Si vous ne souhaitez pas choisir, les étapes iront de ${etapes_pourcentages}% en ${etapes_pourcentages}%."
+
+question=$(echo $?)
+
+for ((i=1; i<=$nb_etape; i++));
+do
+ if [[ "${question}" == "1" ]]
+ then
+ pourcentage=$(zenity --title "Pourcentage de l'étape $i" --text "Indiquez le pourcentage n°$i" --entry)
+
+ elif [[ "${question}" == "0" ]]
+ then
+ pourcentage=$(($etapes_pourcentages * $i))
+ fi
+
+ texte_pourcentage=$(zenity --title "Texte associé à ${pourcentage}%" --text "Indiquer le texte à afficher quand la barre arrive à ${pourcentage}%" --entry)
+
+ if [[ -z ${texte_et_pourcentage} ]]
+ then
+ texte_et_pourcentage="echo \"# ${texte_pourcentage}\" ; sleep 1
+echo \"${pourcentage}\" ; sleep 1"
+
+ else
+ texte_et_pourcentage="${texte_et_pourcentage}
+echo \"# ${texte_pourcentage}\" ; sleep 1
+echo \"${pourcentage}\" ; sleep 1"
+ fi
+
+ echo "${pourcentage}% a pour texte : ${texte_pourcentage}"
+done
+}
+
+function zenity_barre_chargement()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+FALSE "Fermer automatiquement la fenêtre" \
+FALSE "Créer une barre allant et venant sans pourcentage" \
+FALSE "Nombres d'étapes avant d'atteindre 100%" \
+FALSE "Pourcentage de départ" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+ texte_et_pourcentage="sleep $(zenity --entry --title='Combien de secondes avant le lancement ?' --text='Veuillez choisir le temps pendant lequel le texte de la fenêtre
+doit être lisible avant que les textes de la barre n`apparraissent.') ${texte_et_pourcentage}"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Fermer automatiquement la fenêtre") ]]
+then
+ autoclose="--auto-close"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Créer une barre allant et venant sans pourcentage") ]]
+then
+ pulsate="--pulsate"
+fi
+
+if [[ -n $(echo ${MENU} | grep "Nombres d'étapes avant d'atteindre 100%") ]]
+then
+ texte_et_pourcentage
+fi
+
+if [[ -n $(echo ${MENU} | grep "Pourcentage de départ") ]]
+then
+ pourcentage_depart="--percentage=\"$(zenity --title 'Pourcentage de départ' --text 'Choisissez à combien de % la barre doit démarrer.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo "(${texte_et_pourcentage}) | zenity --progress ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${pourcentage_depart} ${pulsate} ${autoclose}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+#############################################
+## Système pour la fenêtre Zenity de liste ##
+#############################################
+
+function nb_colonne()
+{
+nb_colonne=$(zenity --title "Nombre de colonne" --text "Indiquez le nombre de colonne à mettre.
+
+Dans le cas ou il y a des boutons/cases,
+ajoutez une colonne pour leur emplacement." --entry --width=400 --height=100)
+
+for ((i=1; i<=$nb_colonne; i++));
+do
+ colonne=$(zenity --title "Nom de la colonne n°$i" --text "Indiquez le nom que vous souhaitez attribuer à la colonne n°$i." --entry --width=400 --height=100)
+
+ if [[ -z ${noms_colonnes} ]]
+ then
+ noms_colonnes="--column=\"${colonne}\""
+
+ else
+ noms_colonnes="${noms_colonnes} --column=\"${colonne}\""
+ fi
+done
+}
+
+function nb_reponses()
+{
+nb_reponses=$(zenity --title "Nombre de reponses" --text "Indiquez le nombre de reponses à proposer.
+
+Cela équivaut au nombre de ligne que vous voulez proposer." --entry --width=400 --height=100)
+
+for ((i=1; i<=$nb_reponses; i++));
+do
+ if [[ "${type_fenetre}" == "--radiolist" ]]
+ then
+ reponse=$(zenity --title "Réponse n°$i" --text "Tapez le texte que doit prendre la ligne n°$i.
+Votre ligne se sépare en ${nb_colonne} parties (le nombre de colonne).
+
+Dans le cas d'une liste de bouton de choix,
+vous pouvez indiquer la réponse de base par un TRUE,
+pour les autres il faut mettre FALSE.
+
+Dans le cas de 3 colonnes, il faudrait une réponse du genre :
+FALSE \"Carottes\" \"Legumes\"." --entry --width=400 --height=100)
+
+ elif [[ "${type_fenetre}" == "--checklist" ]]
+ then
+ reponse=$(zenity --title "Réponse n°$i" --text "Tapez le texte que doit prendre la ligne n°$i.
+Votre ligne se sépare en ${nb_colonne} parties (le nombre de colonne).
+
+Dans le cas d'une liste avec cases à cocher,
+vous pouvez indiquer les réponses de base par un TRUE,
+pour les autres il faut mettre FALSE.
+
+Dans le cas de 3 colonnes, il faudrait une réponse du genre :
+FALSE \"Carottes\" \"Legumes\"." --entry --width=400 --height=100)
+
+ elif [[ "${type_fenetre}" == "--multiple" ]]
+ then
+ reponse=$(zenity --title "Réponse n°$i" --text "Tapez le texte que doit prendre la ligne n°$i.
+Votre ligne se sépare en ${nb_colonne} partie (le nombre de colonne).
+
+Dans le cas de 3 colonnes, il faudrait une réponse du genre :
+\"Carottes\" \"Legumes\" \"En soupe\"." --entry --width=400 --height=100)
+ fi
+
+ if [[ -z ${choix_reponses} ]]
+ then
+ choix_reponses="\\
+${reponse}"
+
+ else
+ choix_reponses="${choix_reponses} \\
+${reponse}"
+ fi
+done
+}
+
+function zenity_listes()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+TRUE "Choix du type de liste à utiliser" \
+TRUE "Nombres de colonnes" \
+TRUE "Réponses à proposer" \
+FALSE "Cacher des colonnes" \
+FALSE "Choisir la colonne a retourner par la fenêtre" \
+FALSE "Choix du séparateur de réponse -- liste avec cases à cocher" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du type de liste à utiliser") ]]
+then
+ type_fenetre=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --column "" --column "Type de liste" --hide-column="1" --width=400 --height=325 \
+"radiolist" "Liste avec bouton de selection" \
+"checklist" "Liste avec cases à cocher" \
+"" "Liste simple" \
+"multiple" "Liste simple avec selection multiple")
+
+ if [[ -n ${type_fenetre} ]]
+ then
+ type_fenetre="--${type_fenetre}"
+ fi
+fi
+
+if [[ -n $(echo ${MENU} | grep "Nombres de colonnes") ]]
+then
+ nb_colonne
+fi
+
+if [[ -n $(echo ${MENU} | grep "Réponses à proposer") ]]
+then
+ nb_reponses
+fi
+
+if [[ -n $(echo ${MENU} | grep "Cacher des colonnes") ]]
+then
+ colonne_fantome="--hide-column=\"$(zenity --title 'Colonne fantome' --text 'Indiquez le numéro de la colonne à cacher.
+
+Si vous en cachez plusieurs, séparez les chiffres d`une virgule.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choisir la colonne a retourner par la fenêtre") ]]
+then
+ colonne_retour="--print-column=\"$(zenity --title 'Colonne à retourner' --text 'L`interet de ce Système est de choisir quelle colonne
+sera renvoyée par la fenêtre zenity apres la réponse,
+c`est à dire ce que retourne : echo "$varible-de-la-fenetre".
+
+Indiquez le numéro de la colonne à retourner.
+
+Vous pouvez en retourner plusieurs en séparant les chiffres par des virgules.
+
+Vous pouvez également choisir ALL afin de retourner toutes les colonnes.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du séparateur de réponse -- liste avec cases à cocher") ]]
+then
+ separateur_fichier="--separator=\"$(zenity --title 'Choix du separateur' --text 'Choisissez le type de séparateur à utiliser pour delimiter les différentes adresses.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --list ${type_fenetre} ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${noms_colonnes} ${colonne_fantome} ${colonne_retour} ${separateur_fichier} ${choix_reponses}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+####################################################
+## Système pour la fenêtre Zenity de notification ##
+####################################################
+
+function zenity_notification()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+TRUE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --notification ${texte} ${icone_fenetre}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+else
+ menu
+fi
+}
+
+
+#################################################
+## Système pour la fenêtre Zenity avec curseur ##
+#################################################
+
+function zenity_curseur()
+{
+MENU=$(zenity --title "Que voulez vous modifier ?" --list --text "Merci de choisir les différentes options à modifier ou à appliquer." --checklist --column "Choix" --column "Action" --width=500 --height=400 \
+TRUE "Choix du titre de la fenêtre" \
+TRUE "Choix du texte à afficher dans la fenêtre" \
+FALSE "Valeur d'incrémentation" \
+FALSE "Valeur de base" \
+FALSE "Valeur minimale" \
+FALSE "Valeur maximale" \
+FALSE "Largeur maximale de la fenêtre" \
+FALSE "Hauteur maximale de la fenêtre" \
+FALSE "Icône de la fenêtre")
+
+if [[ -n $(echo ${MENU} | grep "Choix du titre de la fenêtre") ]]
+then
+ titre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Choix du texte à afficher dans la fenêtre") ]]
+then
+ texte
+fi
+
+if [[ -n $(echo ${MENU} | grep "Valeur d'incrémentation") ]]
+then
+ valeur_evolution="--step=\"$(zenity --title 'Choix de l`incrémentation' --text 'Choisissez de combien en combien doit avancer le curseur.
+
+Ex : 2 = 2, 4, 6, 8...
+3 = 3, 6, 9...' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Valeur de base") ]]
+then
+ valeur_base="--value=\"$(zenity --title 'Choix du chiffre de base' --text 'Choisissez le chiffre sur lequel le curseur doit être de base.' --entry --width=400 --height=100)\""
+fi
+
+if [[ -n $(echo ${MENU} | grep "Valeur minimale") ]]
+then
+valeur_minimale="--min-value=\"$(zenity --title 'Choix de la valeur minimale' --text 'Choisissez la valeur minimale pouvant être proposé par le curseur.' --entry --width=400 --height=100)\""
+
+ if [[ -z "${valeur_base}" ]]
+ then
+ valeur_base="--value=\"$(zenity --title 'Choix du chiffre de base' --text 'Vous avez détérminer une valeur minimale,
+il faut obligatoirement choisir le chiffre sur lequel le curseur doit être placé de base.
+Celui-ci doit impérativement être supérieur à votre valeur minimale.' --entry --width=400 --height=100)\""
+ fi
+
+ verif_valeur_base=$(echo "${valeur_base}" | sed 's/--value=// ; s/"//g')
+ verif_valeur_minimale=$(echo "${valeur_minimale}" | sed 's/--min-value=// ; s/"//g')
+ if [[ ${verif_valeur_base} -lt ${verif_valeur_minimale} ]]
+ then
+ zenity --info --width=400 --height=100 --title "Erreur dans les chiffres" --text "Vous avez choisi une valeur minimale plus petite que la valeur de départ. Le code ne fonctionnera pas."
+ fi
+fi
+
+if [[ -n $(echo ${MENU} | grep "Valeur maximale") ]]
+then
+ valeur_maximale="--max-value=\"$(zenity --title 'Choix de la valeur maximale' --text 'Choisissez la valeur maximale pouvant être proposé par le curseur.' --entry --width=400 --height=100)\""
+
+ verif_valeur_evolution=$(echo "${valeur_evolution}" | sed 's/--step=// ; s/"//g')
+ verif_valeur_maximale=$(echo "${valeur_maximale}" | sed 's/--max-value=// ; s/"//g')
+ if [[ -n "${valeur_evolution}" && -n "${valeur_maximale}" && ${verif_valeur_maximale} -lt ${verif_valeur_evolution} ]]
+ then
+ zenity --info --width=400 --height=100 --title "Erreur dans les chiffres" --text "Vous avez selectionné une incrémentation supérieur à la limite haute, cela aura pour effet de passer directement à votre valeur maximale et non à votre valeur d'incrémentation."
+ fi
+fi
+
+if [[ -n $(echo ${MENU} | grep "Largeur maximale de la fenêtre") ]]
+then
+ largeur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Hauteur maximale de la fenêtre") ]]
+then
+ hauteur_fenetre
+fi
+
+if [[ -n $(echo ${MENU} | grep "Icône de la fenêtre") ]]
+then
+ icone_fenetre
+fi
+
+if [[ -n ${MENU} ]]
+then
+ # Création du fichier texte qui servira à afficher le code final
+ echo -e "zenity --scale ${titre} ${texte} ${largeur_fenetre} ${hauteur_fenetre} ${icone_fenetre} ${valeur_evolution} ${valeur_base} ${valeur_minimale} ${valeur_maximale}" | sed "s/ */ /g" > .fenetre_zenity
+
+ affichage_code
+
+else
+ menu
+fi
+}
+
+
+##############
+## Exemples ##
+##############
+
+function exemples()
+{
+echo -e "Voici des codes d'exemples de fenêtres zenity.
+Pour tester ces codes, il vous suffit de les coller dans votre console.
+
+Voici d'abord des exemples sur comment mettre un peu de style à vos textes (balise \"text=\"),
+il est bien entendu possible de combiner les différents effets entre eux...
+
+###### Le texte à copier débute juste après cette ligne ######
+zenity --info --text \"
+essai de polices
+essai de polices
+essai de polices
+essai de polices
+essai de polices
+essai de polices
+
+red
+green
+blue
+yellow
+magenta
+white
+black
+gray
+lightblue
+lightgray
+
+style
+style
+style
+style
+style
+style
+style
+style
+style\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre avec une barre de chargement :
+###### Le texte à copier débute juste après cette ligne ######
+(sleep 2
+echo \"# Nous attaquons les 20%\" ; sleep 1
+echo \"20\" ; sleep 1
+echo \"# Aller on continue jusqu'a 40%\" ; sleep 1
+echo \"40\" ; sleep 1
+echo \"# on est parti pour depasser la moitié\" ; sleep 1
+echo \"60\" ; sleep 1
+echo \"# Bientot fini...\" ; sleep 1
+echo \"80\" ; sleep 1
+echo \"# J'en vois le bout.\" ; sleep 1
+echo \"100\" ; sleep 1) | zenity --progress --pulsate --title=\"Chargement\" --percentage \"5\" --text=\"On commence à 5%\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre avec un calendrier intégré :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --calendar --title=\"Exemple avec calendrier\" --text=\"Veuillez indiquer votre date de naissance. Merci.\" --day=\"12\" --month=\"10\" --year=\"1984\" --date-format=\"%x\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre avec un curseur de séléction :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --scale --title=\"Température actuelle\" --text=\"Veuillez indiquer la température actuelle de votre piece.\" --step=\"2\" --value=\"15\" --min-value=\"-10\" --max-value=\"40\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre de lecture de fichier texte :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --text-info --title=\"Voici le code de ce script\" --filename=\"${emplacement_script}/zenity_generator.sh\" --width=\"500\" --height=\"400\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre de QCM :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --list --checklist --title=\"Perso préféré\" --text=\"Veuillez indiquer le personnage que vous préférez parmis cette liste.
+Vous pouvez choisir plusieurs reponses.\" --column=\"Oui\" --column=\"Nom\" --column=\"Age\" --separator=\"@\" --height=\"300\" \\\
+
+FALSE \"Bender\" \"3ans\" \\\
+
+TRUE \"Zoidberg\" \"Mort\" \\\
+
+FALSE \"Fry\" \"32ans\" \\\
+
+TRUE \"Leela\" \"Inconnu\" \\\
+
+False \"Hermes\" \"On s'en fiche\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre demandant une confirmation :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --question --title=\"Etes vous sûr de vous ?\" --text=\"etes vous totalement certain d'etre sur de ce que vous voulez faire ?
+
+Merci de confirmer.
+
+M.Windows Vista.\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre de notification :
+Pour lancer une commande au clic sur la notification, il faut ajouter && suivi de votre commande.
+###### Le texte à copier débute juste après cette ligne ######
+zenity --notification --text=\"Veuillez mettre a jour le script.\" && /usr/bin/adept_updater
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre de saisie de texte :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --entry --title=\"Ville préférée\" --text=\"Merci d'indiquer la ville qui vous tient à coeur afin de faire un sondage mondial.\" --entry-text=\"Caen\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+
+
+Code d'une fenetre de séléction de fichier :
+###### Le texte à copier débute juste après cette ligne ######
+zenity --file-selection --title=\"Indiquer votre dossier personnel\" --directory --filename=\"~/\"
+###### Le texte à copier ce termine juste avant cette ligne ######
+" > .exemples
+
+zenity --text-info --title="Exemples de codes :" --width="760" --height="550" --filename=".exemples"
+
+rm .exemples
+}
+
+
+########################
+## MENU PRINCIPAL !!! ##
+########################
+
+function menu()
+{
+MENU=$(zenity --title "Quel type de fenêtre voulez-vous créer ?" --list --text "Séléctionnez le type de fenêtre zenity que vous souhaitez créer parmis la liste suivante." --column="reponse n°" --hide-column="1" --column "Type de boite" --column "Aide" --width=700 --height=570 \
+"01" "Barre de chargement" "
+Barre de progression avec textes et pourcentages." \
+"02" "Calendrier" "
+Choix d'une date sur un calendrier." \
+"03" "Curseur de placement" "
+Choix d'un chiffre en utilisant un curseur amovible." \
+"04" "Messages et confirmations" "
+Boite de texte indiquant une erreur, une information,
+une alerte ou une confirmation." \
+"05" "Notification" "
+Affiche une Icône et du texte dans la zone de notification." \
+"06" "Séléction de fichier/dossier " "
+Choix d'un fichier ou d'un emplacement." \
+"07" "Saisie de texte" "
+Permet la saisie de caractères." \
+"08" "Affichage de fichier texte" "
+Affiche le contenu d'un fichier texte." \
+"09" "Listes" "
+Boite du genre question à choix unique ou multiple." \
+"10" "Exemples de codes" "
+Exemples de fenêtres et explications
+sur les styles applicable aux textes." \
+"11" "Réinitialiser l'utilisation du fichier log" "
+Repose la question de l'utilisation d'un fichier log de save")
+
+
+if [[ "$?" == "0" && -z ${MENU} ]]
+then
+ menu
+
+elif [[ -n $(echo ${MENU} | grep "01") ]]
+then
+ zenity_barre_chargement
+
+elif [[ -n $(echo ${MENU} | grep "02") ]]
+then
+ zenity_calendrier
+
+elif [[ -n $(echo ${MENU} | grep "03") ]]
+then
+ zenity_curseur
+
+elif [[ -n $(echo ${MENU} | grep "04") ]]
+then
+ zenity_messages
+
+elif [[ -n $(echo ${MENU} | grep "05") ]]
+then
+ zenity_notification
+
+elif [[ -n $(echo ${MENU} | grep "06") ]]
+then
+ zenity_selection_fichier
+
+elif [[ -n $(echo ${MENU} | grep "07") ]]
+then
+ zenity_saisie
+
+elif [[ -n $(echo ${MENU} | grep "08") ]]
+then
+ zenity_fichier_texte
+
+elif [[ -n $(echo ${MENU} | grep "09") ]]
+then
+ zenity_listes
+
+elif [[ -n $(echo ${MENU} | grep "10") ]]
+then
+ exemples
+ menu
+
+elif [[ -n $(echo ${MENU} | grep "11") ]]
+then
+ emplacement_script
+ sed -i "/^choix_log=.*/d" "${emplacement_script}/zenity_generator.sh"
+ menu
+fi
+}
+
+utilisation_log
+
+menu