#!/bin/sh GTKDIALOG=gtkdialog TMPDIR=/tmp/gtkdialog/examples/"`basename $0`" mkdir -p "$TMPDIR" echo "Middle is sensitive" > "$TMPDIR"/ent0 echo "Middle is visible" > "$TMPDIR"/ent1 MAIN_DIALOG=' <window title="Conditional Actions" window-position="1" default-width="300"> <vbox> <hscale update-policy="2" range-value="50"> <variable>hsc0</variable> <action>disable:txtLeft0</action> <action>disable:txtMiddle0</action> <action>disable:txtRight0</action> <action condition="command_is_true([ $hsc0 -lt 33 ] && echo true)">enable:txtLeft0</action> <action condition="command_is_true([ $hsc0 -ge 33 ] && [ $hsc0 -le 66 ] && echo true)">enable:txtMiddle0</action> <action condition="command_is_true([ $hsc0 -gt 66 ] && echo true)">enable:txtRight0</action> <action condition="sensitive_is_true(txtLeft0)">echo "Left is sensitive" > '"$TMPDIR"'/ent0</action> <action condition="sensitive_is_true(txtMiddle0)">echo "Middle is sensitive" > '"$TMPDIR"'/ent0</action> <action condition="sensitive_is_true(txtRight0)">echo "Right is sensitive" > '"$TMPDIR"'/ent0</action> <action>refresh:ent0</action> </hscale> <hbox> <text sensitive="false"> <variable>txtLeft0</variable> <label>Left</label> </text> <text> <variable>txtMiddle0</variable> <label>Middle</label> </text> <text sensitive="false"> <variable>txtRight0</variable> <label>Right</label> </text> </hbox> <entry editable="false" can-focus="false"> <variable>ent0</variable> <input file>'"$TMPDIR"'/ent0</input> </entry> <hseparator></hseparator> <hscale update-policy="2" range-value="50"> <variable>hsc1</variable> <action>hide:txtLeft1</action> <action>hide:txtMiddle1</action> <action>hide:txtRight1</action> <action condition="command_is_true([ $hsc1 -lt 33 ] && echo true)">show:txtLeft1</action> <action condition="command_is_true([ $hsc1 -ge 33 ] && [ $hsc1 -le 66 ] && echo true)">show:txtMiddle1</action> <action condition="command_is_true([ $hsc1 -gt 66 ] && echo true)">show:txtRight1</action> <action condition="visible_is_true(txtLeft1)">echo "Left is visible" > '"$TMPDIR"'/ent1</action> <action condition="visible_is_true(txtMiddle1)">echo "Middle is visible" > '"$TMPDIR"'/ent1</action> <action condition="visible_is_true(txtRight1)">echo "Right is visible" > '"$TMPDIR"'/ent1</action> <action>refresh:ent1</action> </hscale> <hbox> <text visible="false"> <variable>txtLeft1</variable> <label>Left</label> </text> <text> <variable>txtMiddle1</variable> <label>Middle</label> </text> <text visible="false"> <variable>txtRight1</variable> <label>Right</label> </text> </hbox> <entry editable="false" can-focus="false"> <variable>ent1</variable> <input file>'"$TMPDIR"'/ent1</input> </entry> <hseparator></hseparator> <hbox homogeneous="true" space-expand="false" space-fill="false"> <button ok></button> </hbox> </vbox> </window> ' export MAIN_DIALOG case $1 in -d | --dump) echo "$MAIN_DIALOG" ;; *) $GTKDIALOG --space-expand=true --space-fill=true --program=MAIN_DIALOG ;; esac