#!/bin/bash
#**********************************#
# NOM :
# FONCTION :
VERSION="alpha"
# NOTES DE VERSIONS
#
#**********************************#
function msgbox {
zenity --info --text="$@"
}
#**********************************#
# function XXXXXXX {}
# echo "$(XXXXXXX)"
# exit
#**********************************#
function PROGRESSAVANCEMENT {
# ZENITY PROGRESS POURCENTAGE
read -p "Question 1"
echo "25"
read -p "Question 2"
echo "50"
read -p "Question 3"
echo "75"
read -p "Question 4"
echo "100"
}
PROGRESSAVANCEMENT | zenity --progress --auto-close
# exit
#**********************************#
function ListColonnesEtCaseACocher {
# 2 colonnes et case à cocher
# zenity --list --checklist --separator="\n" \
# --text "Choisir une couleur et un véhicule" \
# --column="" \
# --column="Couleur" \
# --column="Véhicule" \
# --print-column="2,3" FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion > >(
# while read ; do
# [ "${REPLY}" == "Vélo" ] && zenity --info --text "Vous avez choisi vélo."
# [ "${REPLY}" == "Noir" ] && zenity --info --text "Vous avez choisi noir."
# done )
zenity --list \
--checklist --separator="\n" \
--text "Choisir une couleur et un véhicule" \
--column="" --column="fichier" \
--print-column="2,3" FALSE Noir FALSE Blanc FALSE Gris > >(
while read ; do
echo "${REPLY}"
done )
exit
}
echo "$(ListColonnesEtCaseACocher)"
# exit 0
#**********************************#
function PoliceDeCaractere {
zenity --info --text "
<b>gras</b>
<big>grand</big>
<i>italique</i>
<s>barré</s>
<sub>indice</sub>
<sup>exposant</sup>
<small>petit</small>
<tt>espace entre les lettres</tt>
<u>souligné</u>"
}
echo "$(PoliceDeCaractere)"
#**********************************#
function Entry {
zenity --entry --title="Nom du logiciel à utiliser" \
--width=350 --height=80 \
--text="Merci d'indiquer le nom du logiciel à utiliser pour editer le fichier de config" \
--entry-text="geany" kate gedit ;
}
echo "$(Entry)"
#**********************************#
function EntryTextArray {
# A VOIR
# https://help.gnome.org/users/zenity/stable/usage.html.en
# -------------------------------------
#~ http://askubuntu.com/questions/50988/wheres-documented-combo-box-usage-with-zenity
array=(a b c d e)
zenity --entry --title "Window title" --text "Insert your choice." --entry-text "${array[@]}"
}
echo "$(EntryTextArray)"
#**********************************#
function ListCheckList {
zenity --list \
--checklist \
--text="What is you favorite pet?" \
--column=Favorite --column=Pet \
TRUE cat FALSE dog TRUE fish TRUE bird FALSE mouse
}
echo "$(ListCheckList)"
#**********************************#
function ListRadioList {
zenity --list \
--radiolist \
--title="Choisir la recherche" \
--text="Comment voulez vous cette recherche ?" \
--column=Favorite --column=Pet \
TRUE exacte FALSE commence_par FALSE fini_par FALSE contient
}
echo "$(ListRadioList)"
#**********************************#
function ListCheckListArray {
array=(FALSE unchamp FALSE unautre FALSE encore)
zenity --list --checklist --separator="," \
--title="Choisir la recherche" \
--text "Choisir des champs" \
--column="" \
--column="valeur" \
--print-column="2" "${array[@]}"
}
echo "$(ListCheckListArray)"
#**********************************#
function ListCheckListREPLY {
zenity --list --checklist --separator="\n" \
--text "Choisir une couleur et un véhicule" \
--column="" \
--column="Couleur" \
--column="Véhicule" \
--print-column="2,3" FALSE Noir Vélo FALSE Blanc Voiture FALSE Gris Avion > >(
while read ; do
[ "${REPLY}" == "Vélo" ] && zenity --info --text "Vous avez choisi vélo."
[ "${REPLY}" == "Voiture" ] && zenity --info --text "Vous avez choisi Voiture."
[ "${REPLY}" == "Avion" ] && zenity --info --text "Vous avez choisi Avion."
[ "${REPLY}" == "Noir" ] && zenity --info --text "Vous avez choisi noir."
[ "${REPLY}" == "Blanc" ] && zenity --info --text "Vous avez choisi Blanc."
[ "${REPLY}" == "Gris" ] && zenity --info --text "Vous avez choisi Gris."
done )
}
echo "$(ListCheckListREPLY)"
#**********************************#
function listVoir {
zenity --list \
--title="Choose the Bugs You Wish to View" \
--column="Bug Number" --column="Severity" --column="Description" \
992383 Normal "GtkTreeView crashes on multiple selections" \
293823 High "GNOME Dictionary does not handle proxy" \
393823 Critical "Menu editing does not work in GNOME 2.0"
}
echo "$(listVoir)"
#**********************************#
function ListEditable {
zenity --list \
--title="Choisir les lignes à sortir" \
--text "Ctrl +a pour sélectionner toutes les lignes à sortir avant de valider" \
--print-column=2 --multiple --editable \
--column "title" --column "value" \
"name" "(double clic ici)" \
"host" "" \
"ip" "" ;
}
echo "$(ListEditable)"
#**********************************#
function FormsAdressFriends {
zenity --forms --title="Add Friend" \
--text="Enter information about your friend." \
--separator="," \
--add-entry="First Name" \
--add-entry="Family Name" \
--add-entry="Email" \
--add-calendar="Birthday" >> addr.csv
case $? in
0)
echo "Friend added.";;
1)
echo "No friend added."
;;
-1)
echo "An unexpected error has occurred."
;;
esac
}
echo "$(FormsAdressFriends)"
#**********************************#
function FormsIP2OUTs {
zenity --forms --title="remplir les champs" \
--text="Enter Multicast address" \
--separator="," \
--add-entry="IP address" \
--add-entry="PORT"
}
OUTPUT="$(FormsIP2OUTs)"
if (($? != 0)); then
echo "something went wrong"
exit 1
fi
echo "ip=$(awk -F, '{print $1}' <<<$OUTPUT)"
echo "port=$(awk -F, '{print $2}' <<<$OUTPUT)"
#**********************************#
function formulaire_motdepasse {
#On crée le formulaire en stockant les valeurs de sortie dans $cfgpass :/
cfgpass=`zenity --forms \
--title="Exemple qui tue la mort" \
--text="Définir un nouveau mot de passe" \
--add-entry="Nom de l'utilisateur" \
--add-password="Ancien mot de passe" \
--add-password="Nouveau mot de passe" \
--add-password="Confirmer le nouveau mot de passe" \
--separator="|"`
#Si on clique sur le bouton Annuler
if [ "$?" -eq 1 ]; then
#On quitte le script
exit
fi
#Sinon on continue
#On peut récupérer les valeurs des différents champs de cette façon :
echo "$cfgpass" | cut -d "|" -f1 #Nom de l'utilisateur
echo "$cfgpass" | cut -d "|" -f2 | md5sum #Ancien Mot de passe
echo "$cfgpass" | cut -d "|" -f3 | md5sum #Nouveau Mot de passe
echo "$cfgpass" | cut -d "|" -f4 | md5sum #Confirmation du nouveau mot de passe
echo "Franchement la classe cette nouvelle fonction Zenity :P"
}
echo "$(formulaire_motdepasse)"
# ****************************************
function BoiteDeDialogue() {
# array=(a b c d e)
# echo ${array[@]}
zenity --forms --title "Select Flash Drives" --text "Select Flash Drives" \
--add-entry="IP address (leave empty to use 8.8.8.8)" \
--add-list "Insert your choice (leave empty to use C)" --list-values 'a|b|c' ;
# --add-list "Insert your choice " --list-values '${array[@]}' \
# --add-entry="${array[@]}"
}
RETURNVALUE="$(BoiteDeDialogue)"
# extract the IP and DRIVE values
une_ip=$(awk -F'|' '{print $1}' <<<$RETURNVALUE);
un_lecteur=$(awk -F'|' '{print $2}' <<<$RETURNVALUE);
# [[ -z $var ]] is true if the length of $var is zero
# the second element in && is evaluated only if the first one is true
[[ -z $une_ip ]] && une_ip="8.8.8.8";
[[ -z $un_lecteur ]] && un_lecteur="C";
# on sort le résultat par écho
# pour le récupèrer hors de la fonction
echo "
une_ip $une_ip
un_lecteur $un_lecteur"
#**********************************#
function DoubleClicDansZenity {
# gérer le double clic dans zenity
zenity --list --column Pet Chien Chat
}
menuchoice=$(DoubleClicDansZenity);
echo "avant traitement le résultat est : $menuchoice"
menuchoicecleaned=${menuchoice%|*}
echo "après traitement le résultat est $menuchoicecleaned"
exit 0