Continuación de :
Vimos los botones, sencillos entonces nos damos una idea de como funciona esto, lo que se puede hacer con los atributos, hay más widgets todavía, como los Checkbox, esto es sencillo:
<checkbox>
<label>Esto es un CheckBox</label>
<variable>CAJITA1</variable>
<action>echo checkbox esta en $CHECKBOX marcado</action>>
</checkbox>
Sencillo como crear checkbox, tiene muchos atributos como marcar, habilitar, deshabilitar, hacer combinaciones:
[code: check.sh]
No solo cajitas podemos hacer también podemos usar un radio button, de la misma forma que checkbox :

[code: checkb.sh]
Teniendo en cuenta esto, también salen los combos, las cajitas de combox, aquí tiene un nombre chistoso combobox:

[code: combobox.sh]
Todo esto me hace recordar a mi querido zenity, en el bash, a lo que mis recuerdos me llevan a que aquí también tenemos una barra de progreso, un poco más divertida:
<progressbar>
<label>algo de texto</label>
<input>for i in $(seq 0 10 100); do echo $i; sleep 0.3; done</input>
<action type="exit">Listo</action>
</progressbar>
Podemos ver que no tiene nada diferente a lo demás, en el input podemos ejecutar el tiempo y con un simple ciclo for, Son determinados espacios en un tiempo..

[code: progresobar.sh]
En zenity, es un poco más facil y solo consta de :
zenity --progress --auto-close
La barra de Progreso, también puede dividirse por partes e imprimir algunas frases dentro de la barra, como el ejemplo del for simple que estaba arriba, solo que aquí creamos una Función, sip una función para agrupar trozos de código de una manera más lógica:
PHP:
-
function progress() {
-
for i in $(seq 0 10 100); do
-
-
[ "$i" -le
30 ] &&
echo "Empieza... tun tun"
-
[ "$i" -le
60 -a
"$i" -gt
30 ] &&
echo "Uhh ala mitad..."
-
[ "$i" -gt
60 ] &&
echo "Termina u,u"
-
-
-
done;
-
-
-
}
[code: progresobarter.sh]
Hagamos lago más rapido y que se sobreponga, en esté caso al comando date, que muestra la fecha..o el comando que quieras.. como dicen los españoles, "os dejo a vuestra imaginación":
PHP:
-
#! /usr/bin/gtkdialog -e
-
-
function progress() {
-
for i in $(seq 0 10 100); do
-
-
[ "$i" -le
30 ] &&
echo "Empieza"
-
[ "$i" -le
60 -a
"$i" -gt
30 ] &&
echo "ya casi"
-
[ "$i" -gt
60 ] &&
echo "Fin"
-
-
-
done;
-
-
-
}
-
-
function progress_fast() {
-
for i in $(seq 0 1 10000); do
-
-
[ "$i" -le
3000 ] &&
echo "1....."
-
[ "$i" -le
6000 -a
"$i" -gt
3000 ] &&
echo "2...doshhh"
-
[ "$i" -gt
6000 ] &&
echo "fin ..
rapisimo"
-
#sleep 0.1
-
done;
-
-
-
}

[code: progresobartest.sh ]