HomePage > Software Index > Development > gtkdialog > Tips and Tricks

9.12 Let <entry> accept (some) numbers only


The following example shows how to limit the user input to a <entry>. Useful for 'all' kinds of settings.

export MAIN_DIALOG='
<vbox>
	<text>
	  <label>"Enter a number (text will default to 0)"</label>
	</text>
	<entry editable="true" allow-empty="false">
	  <input>case $ENTRY in ""|*[^0-9]*) echo 0;; *) echo $ENTRY ;; esac</input>
	  <variable>ENTRY</variable>
	  <action signal="focus-out-event">refresh:ENTRY</action>
	</entry>
	<text>
	  <label>"Enter a number within [5,15], otherwise:
		input will be capped at 15,
		floored at 5,
		or set to 10 in case of text input"</label>
	</text>
	<entry editable="true" allow-empty="false">
	  <input>A=$ENTRY2; case $A in [0-9]*) [[ $A -gt 15 ]] && echo 15 || [[ $A -lt 5 ]] && echo 5 || echo $A ;; *) echo 10;; esac</input>
	  <variable>ENTRY2</variable>
	  <action signal="focus-out-event">refresh:ENTRY2</action>
	</entry>
  <button ok></button>
</vbox>' 

gtkdialog -p MAIN_DIALOG
unset MAIN_DIALOG



Categories
CategoryGtkdialog
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki