#!/usr/bin/env bash # source easybashgui LIB_CHECK="$(type "easybashgui" 2> /dev/null )" [ ${#LIB_CHECK} -eq 0 ] && echo -e "\n\n\n\nYou need to copy \"easybashgui\" in your path ( e.g.: \"cp easybashgui_X.X.X /usr/local/bin/\" )...\n:(\n\n\n\n" 1>&2 && exit 1 # This is only used for remove STDERR output... # exec 6>&2 ; exec 2> /dev/null ################## show() { message "You chose/wrote: \n\n \"$(cat "${dir_tmp}/${file_tmp}" )\" \n\n ;-)" } # ... "x" is the function name... # x=message,ok_message,alert_message { x=message ${x} "This is a test \"<${x}>\" function...\n;-)" # x="ok_message --width 700 --height 300" [ "${mode}" = "kdialog" ] && message "Now let's try to change \n window size... \n\n Next function: \"<${x}>\" ... \n\n ( Note: for kdialog messages, \n - due to a known kdialog bug - \n setting a different geometry \n makes it ONLY fit to box text !! )" || \ message "Now let's try to change \n window size... \n\n Next function: \"<${x}>\" ..." ${x} "This is a test \"<${x}>\" function, \n with custom size... \n ;-)" # x="alert_message --height 700 --width 300" [ "${mode}" = "kdialog" ] && message "Now let's try to change \n window size... \n\n Next function: \"<${x}>\" ... \n\n ( Note: for kdialog messages, \n - due to a known kdialog bug - \n setting a different geometry \n makes it ONLY fit to box text !! )" || \ message "Now let's try to change \n window size... \n\n Next function: \"<${x}>\" ..." ${x} "This is a test \"<${x}>\" function, \n with custom size... \n ;-)" } x=text { file="/etc/aliases" message "Next function: \"head -n 10 ${file} | ${x} -w 600 -h 600\" ..." head -n 10 ${file} | ${x} -w 600 -h 600 ; show } x=question { while : do ${x} "This is a test \"<${x}>\" function (1)... \n Please click \"Cancel\", now ..." answer="${?}" if [ ${answer} -eq 0 ] then continue elif [ ${answer} -eq 1 ] then break else exit fi done while : do ${x} "This is a test \"<${x}>\" function (2)... \n Please click \"Ok\", this time ..." answer="${?}" if [ ${answer} -eq 0 ] then break elif [ ${answer} -eq 1 ] then continue else exit fi done } x=wait_seconds { message "Next function: \"<${x} 5>\" ..." ${x} 5 } x=wait_for { message "Next function: \"<${x}>\" ..." ${x} "This is a test ${x} function (command: sleep 5) \n + \n terminate_wait_for \n\n ;-)" sleep 5 terminate_wait_for } x=fselect,dselect { for x in fselect dselect do message "Next function: \"<${x}>\" ..." ${x} ; show done } x=input { message "Next function: \"<${x} 1>\" ..." ${x} 1 "(please write here)" ; show # message "Next function: \"<${x} 2>\" ..." ${x} 2 "First name" "Jimi" "Surname" "Hendrix" ; show # message "Next function: \"<${x} 3>\" ..." ${x} 3 "Artist" "Albert King" "Genre" "Blues" "Album" "The Big Blues" ; show } x=menu { x="menu -w 650 -h 550" message "Next function: \"<${x}>\" ..." ${x} "Country Music" "Blues" "Rock And Roll" "Pop" ; show } x=tagged_menu { x="tagged_menu -w 650 -h 550" message "Next function: \"<${x}>\" ..." ${x} "Country Music" "Blues" "Rock And Roll" "Rocks" ; show } x=list { message "Next function: \"<${x}>\" ... \n ( it differs from \"menu\" for multi-choice possibility )" list -"Country Music" +"Blues" +"Rock And Roll" -"Pop" ; show } x=progress { x="progress -w 600" message "Next function: \"${x}\" with \"custom\" width ( \"-w\" ) \n (old style with \n percent integer -with or without '%'- \n in STDIN)..." for i in 10 20.30 32 40.50 50 60.50 70.45 80.90 85 93 100; do echo "${i}"; sleep 1 ; done | ${x} "This is a test \"<${x}>\" function \n (old style with percent in STDIN)... \n\n ;-)" # x="progress --width 400 --height 200" message "Next function: \"${x}\" with \"custom\" width and height \n ( \"--width\" \"--height\" ) \n (new style with \n \"PROGRESS\" string \n in STDIN)..." for i in 10 20.30 32 40.50 50 60.50 70.45 80.90 85 93 100; do echo "PROGRESS" ; sleep 1 ; done | ${x} "This is a test \"<${x}>\" function \n (new style with \"PROGRESS\" string in STDIN)... \n\n ;-)" 11 } x=adjust { message "Next function: \"<${x} 'Please adjust level...' 100 200 300>\" ..." ${x} 'Please adjust level...' 100 200 300 ; show } ok_message "Tour is finished. :-) \n Click now to see with your eyes \n how easy is programming with ${LIB_NAME}..." # This restores STDERR output on your terminal... exec 2>&6 6>&- # This is *short* and *nice* : cat "${0}" | text -w 800 -h 600 # sleep 3 && clean_temp