A2osX/EXAMPLES/FMENU.txt

186 lines
4.0 KiB
Plaintext
Raw Normal View History

NEW
PREFIX
AUTO 4,1
2020-08-20 10:53:24 +00:00
#!/bin/sh
echo -N "."
function menu {
switch $#
case 1;set menufile = $1;set menu = "A";break
case 2;set menufile = $1;set menu = $2;break
default;echo "\nError: Invalid use of this function";exit
end
if [ -f $menufile ];set menufile = $1
else;echo "\nError: [${menufile}] File Not Found";exit;fi
set sep = ":"
set select = 1
while [ $select -lt 10 ]
call loadmenu
call getselect
call processchoice
loop
echo "\f\n\nuser chose from menu [${menu}] choice [${choice}] select [${select}]"
}
echo -N "."
function processchoice {
switch $select
case 11
case 12
case 13
case 14
case 15
case 16
case 17
case 18
set select = $select - 10
set choice = `sh -C "grep ${menu}-${select}: $menufile | cut -s ${sep} -f 3"`
2020-08-20 10:53:24 +00:00
break
case 20
set choice = "Quit"
break
case 25
set choice = "Last Menu"
break
case 30
set choice = "Root/Master Menu"
break
default
echo "\fWow No idea how i got here\n\n"
set select = 99
end
if [ $select -lt 9 ]
if [ $choice = "menu" ]
set lm = $menu
set menu = `sh -C "grep ${menu}-${select}: $menufile | cut -s ${sep} -f 4"`
2020-08-20 10:53:24 +00:00
set select = 1
fi
fi
}
echo -N "."
function loadmenu {
set mc = 0
set lc = 0
# echo \n\n\n\n\n\n
grep ${menu}- $menufile | cut -s ${sep} -f 2
pause
for i in `sh -C "grep ${menu}- $menufile | cut -s ${sep} -f 2"`
if [ $i = "-" ];set lc = $mc - 1;fi
set m${mc} = $i
set mc = $mc + 1
2020-08-20 10:53:24 +00:00
next
if [ $lc -eq 0 ];set lc = 8;fi
set mc =
2020-08-20 10:53:24 +00:00
}
echo -N "."
function getselect {
call dispmenu
while [ $select -lt 10 ]
call dselect
read -n 0 K
switch $K
case 3
if [ -n $lm ]
set select = 25
else
call uselect
set select = 1
fi
break
case 13
set select = $select + 10
break
case 8
case 10
call uselect
set select = $select - 1
if [ $select -eq 0 ];set select = $lc;fi
break
case 11
case 21
call uselect
set select = $select + 1
if [ $select -gt $lc ];set select = 1;fi
break
case 17
case 81
case 113
set select = 20
break
case 18
case 77
case 82
case 109
case 114
set select = 30
break
end
loop
}
2020-08-20 10:53:24 +00:00
echo -N "."
function dselect {
switch $select
case 1 ; call ixy 10 25 $m1 ; break
case 2 ; call ixy 11 25 $m2 ; break
case 3 ; call ixy 12 25 $m3 ; break
case 4 ; call ixy 13 25 $m4 ; break
case 5 ; call ixy 14 25 $m5 ; break
case 6 ; call ixy 15 25 $m6 ; break
case 7 ; call ixy 16 25 $m7 ; break
case 8 ; call ixy 17 25 $m8 ; break
end
}
echo -N "."
function uselect {
switch $select
case 1 ; call pxy 10 25 $m1 ; break
case 2 ; call pxy 11 25 $m2 ; break
case 3 ; call pxy 12 25 $m3 ; break
case 4 ; call pxy 13 25 $m4 ; break
case 5 ; call pxy 14 25 $m5 ; break
case 6 ; call pxy 15 25 $m6 ; break
case 7 ; call pxy 16 25 $m7 ; break
case 8 ; call pxy 17 25 $m8 ; break
end;}
echo -N "."
function dispmenu {
call cs ; call tbox $m0
switch $lc
case 8 ; call pxy 17 25 $m8
case 7 ; call pxy 16 25 $m7
case 6 ; call pxy 15 25 $m6
case 5 ; call pxy 14 25 $m5
case 4 ; call pxy 13 25 $m4
case 3 ; call pxy 12 25 $m3
case 2 ; call pxy 11 25 $m2
default ; call pxy 10 25 $m1
end;}
echo -N "."
function cs {;echo \f;}
function tbox {
set tS = $1
set tL = `sh -c "echo ${tS}|wc -m"`
set tL = 34 - ${tL} / 2
while [ $tL -ne 0 ]
set tS = " ${tS}";set tL = $tL - 1
loop
echo -n "\e[1;20H"
echo "\e[7m \e[0m"
set tL = 2
while [ $tL -ne 5 ]
echo -n "\e[${tL};20H"
echo "\e[7m \e[0m \e[7m \e[0m"
set tL = $tL + 1
loop
echo -n "\e[5;20H"
echo "\e[7m \e[0m"
echo -n "\e[3;22H ${tS}"
set tS =;set tL =
}
echo -N "."
function piv { ; echo -n "\e[7m$1\e[0m" ; }
function pxy { ; echo -n "\e[$1;$2H$3" ; }
function ixy { ; echo -n "\e[$1;$2H\e[7m$3\e[0m" ; }
echo -N ".\e[0m"
# End of FMENU
2020-08-20 10:53:24 +00:00
MAN
TEXT /MAKE/USR/SHARE/ADMIN/fmenu