#!/bin/bash # This example requires bash. GTKDIALOG=gtkdialog TMPDIR=/tmp/gtkdialog/examples/"`basename $0`" mkdir -p "$TMPDIR" funcnbkCreate() { for f in 0 1 2 3 4; do echo '<vbox border-width="20"> <hbox border-width="70"> <text label="This is page '$f'"></text> </hbox>' if [ $1 -lt 2 ]; then echo '<hbox homogeneous="true">'; fi if [ $1 -eq 0 ]; then echo '<button use-stock="true" label="gtk-go-back">' if [ $f -eq 0 ]; then echo '<sensitive>false</sensitive>' else echo '<action>echo '$(($f - 1))' > '"$TMPDIR"'/inputfile</action> <action>refresh:nbk'$1'</action>' fi echo '</button> <button use-stock="true" label="gtk-go-forward">' if [ $f -eq 4 ]; then echo '<sensitive>false</sensitive>' else echo '<action>echo '$(($f + 1))' > '"$TMPDIR"'/inputfile</action> <action>refresh:nbk'$1'</action>' fi elif [ $1 -eq 1 ]; then echo '<button use-stock="true" label="gtk-refresh"> <action>refresh:nbk'$1'</action>' fi if [ $1 -lt 2 ]; then echo '</button> </hbox>' fi echo '</vbox>' done echo '<variable>nbk'$1'</variable>' if [ $1 -eq 0 -o $1 -eq 2 ]; then echo '<input file>'"$TMPDIR"'/inputfile</input>' elif [ $1 -eq 1 ]; then echo '<input>bash -c "echo \$((\$RANDOM % 4))"</input>' elif [ $1 -eq 3 ]; then echo '<input>"f=`cat '"$TMPDIR"'/inputfile` if [ $f -eq 4 ]; then f=0 else f=$((f + 1)) fi echo $f > '"$TMPDIR"'/inputfile echo $f"</input>' fi } funcnbkMainCreate() { for f in 0 1 2 3; do echo '<vbox> <vbox homogeneous="true" height-request="300"> <hbox homogeneous="true" width-request="500">' if [ $f -eq 0 ]; then echo '<notebook> '"`funcnbkCreate $f`"' </notebook>' elif [ $f -eq 1 ]; then echo '<notebook tab-labels="One|Two|Three|Four|Five" page="04" tab-vborder="12" tab-pos="0"> '"`funcnbkCreate $f`"' </notebook>' elif [ $f -eq 2 ]; then echo '<vbox> <hscale range-min="0" range-max="4" value-pos="0"> <variable>hsc0</variable> <action>save:hsc0</action> <action>refresh:nbk'$f'</action> <output file>'"$TMPDIR"'/inputfile</output> </hscale> <notebook show-tabs="false"> '"`funcnbkCreate $f`"' </notebook> </vbox>' elif [ $f -eq 3 ]; then echo '<vbox> <timer visible="false"> <action>refresh:nbk'$f'</action> </timer> <notebook show-tabs="false" show-border="false"> '"`funcnbkCreate $f`"' </notebook> </vbox>' fi echo '</hbox> </vbox> <hseparator></hseparator> <hbox> <button use-stock="true" label="gtk-go-back">' if [ $f -eq 0 ]; then echo '<sensitive>false</sensitive> <action>""</action>' else echo '<action>echo '$(($f - 1))' > '"$TMPDIR"'/inputfile</action> <action>refresh:nbkMain</action>' fi echo '</button> <button use-stock="true" label="gtk-go-forward">' if [ $f -eq 3 ]; then echo '<sensitive>false</sensitive> <action>""</action>' else echo '<action>echo '$(($f + 1))' > '"$TMPDIR"'/inputfile</action> <action>refresh:nbkMain</action>' fi echo '</button> <button ok></button> </hbox> </vbox>' done } echo 0 > "$TMPDIR"/inputfile export MAIN_DIALOG=' <window title="Notebook Advanced" resizable="false"> <vbox> <notebook show-tabs="false" show-border="false"> '"`funcnbkMainCreate`"' <variable>nbkMain</variable> <input file>'"$TMPDIR"'/inputfile</input> </notebook> </vbox> </window> ' case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) $GTKDIALOG --program=MAIN_DIALOG ;; esac