diff --git a/Archive/SPUI-0.4.0.zip b/Archive/SPUI-0.4.0.zip new file mode 100644 index 0000000..5de1205 Binary files /dev/null and b/Archive/SPUI-0.4.0.zip differ diff --git a/SPUI/README.md b/SPUI/README.md index 89124dc..0ab9c36 100644 --- a/SPUI/README.md +++ b/SPUI/README.md @@ -12,7 +12,7 @@ to make the creation of User Interaction flows from NextBASIC \ Quick Start == -.SPUI -h will get you the built-in help. +.SPUI -h will get you the built-in help. When building GUIs the parameter is compulsory. @@ -24,4 +24,4 @@ More Information == See the /docs/ folder ---Xalior, 20200626 +--Xalior, 20240112 diff --git a/SPUI/demos/spui-demo.bas b/SPUI/demos/spui-demo.bas index 4dd2c2e..8e674bd 100755 Binary files a/SPUI/demos/spui-demo.bas and b/SPUI/demos/spui-demo.bas differ diff --git a/SPUI/demos/spui-demo.txt b/SPUI/demos/spui-demo.txt index ae93282..1ac71df 100755 --- a/SPUI/demos/spui-demo.txt +++ b/SPUI/demos/spui-demo.txt @@ -1 +1 @@ -#program spui-demo #autostart 1 REG 127,2 4 ;*************************; 5 ;StalePixels UserInterface; 6 ;*************************; 10 .SPUI menu -d 4 "Showcase" "Tests" "Help" 20 LET %m =% REG 127 30 IF %m = 0 THEN GO TO 9990 40 GO TO %m * 1000 1000 ;******************************* 1010 CLS : REG 127,0 : .SPUI menu -t "Showcase" -r 5 -y 5 "Default" "Narrow" "Long" "Short" "Custom" 1020 LET %m =% REG 127 1030 IF %m = 0 THEN CLS: GOTO 10 1040 GO TO %m*100+1000 1099 ;******************************* 1100 CLS : PRINT "Default Menu": PRINT 1105 PRINT "16x6" : PRINT 1109 PRINT ".SPUI menu One Two Three Four Five" 1110 REG 127,0 : .SPUI menu One Two Three Four Five 1190 GOTO 1000 1199 ;******************************* 1200 CLS : PRINT "Narrow Menu": PRINT 1205 PRINT "6x6" : PRINT 1209 PRINT ".SPUI menu -c 6 One Two Three Four" 1210 REG 127,0 : .SPUI menu -c 6 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve 1290 GOTO 1000 1299 ;******************************* 1300 CLS : PRINT "Long Menu": PRINT 1305 PRINT "16x12" : PRINT 1309 PRINT ".SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve" 1310 REG 127,0 : .SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve 1390 GOTO 1000 1399 ;******************************* 1400 CLS : PRINT "Short Menu": PRINT 1405 PRINT "6x1" : PRINT 1409 PRINT ".SPUI menu -r 2 ""One and Done""" 1410 REG 127,0 : .SPUI menu -r 2 "One and Done" 1490 GOTO 1000 1499 ;******************************* 1500 CLS : PRINT "Custom Menu": PRINT 1505 PRINT "6x6@1x1" : PRINT 1509 PRINT ".SPUI menu -x 1 -y 1 -t ""Fully Custom"" -c 20 -r 2 ""First option"" ""Two choices"" ""Three thingy"" ""Four is where it normally ends"" ""Five is here"" ""Six & done!""" 1510 REG 127,0 : .SPUI menu -x 1 -y 1 -t "Fully Custom" -c 20 -r 2 "First option" "Two choices" "Three thingy" "Four is where it normally ends" "Five is here" "Six & done!" 1590 GOTO 1000 1599 ;******************************* 2000 ;******************************* 2010 CLS : REG 127,0 : .SPUI menu -t "Errors" -r 5 -y 5 "Too Wide" "Too Narrow" "Too Tall" "Too Short" "Overflow Tests" 2020 LET %m =% REG 127 2030 IF %m = 0 THEN CLS: GOTO 10 2040 GO TO %m*100+2000 2099 ;******************************* 2100 CLS : PRINT "MENU TOO WIDE": PRINT 2105 PRINT "COLUMNS (width) must be <31" : PRINT 2109 PRINT ".SPUI menu -c 31 One Two Three Four Five" 2110 REG 127,0 : .SPUI menu -c 31 One Two Three Four Five 2199 ;******************************* 2200 CLS : PRINT "MENU TOO NARROW" : PRINT 2205 PRINT "COLUMNS (width) must be >6" : PRINT 2209 PRINT ".SPUI menu -c -6 One Two Three Four Five" 2210 REG 127,0 : .SPUI menu -c -6 One Two Three Four Five 2299 ;******************************* 2300 CLS : PRINT "MENU TOO TALL" : PRINT 2305 PRINT "ROWS (height) must be <25" : PRINT 2310 PRINT ".SPUI menu -r 25 One Two Three Four Five" 2319 REG 127,0 : .SPUI menu -r 25 One Two Three Four Five 2399 ;******************************* 2400 CLS : PRINT "MENU TOO SHORT" : PRINT 2405 PRINT "ROWS (height) must be > 1" : PRINT 2409 PRINT ".SPUI menu -r 1 One Two Three Four Five" 2410 REG 127,0 : .SPUI menu -r 1 One Two Three Four Five 2500 ;******************************* 2510 REG 127,0 : .SPUI menu -t "Overflows" -r 5 -y 5 "Width" "Height" "Bottom" "Side" 2520 LET %m =% REG 127 2530 IF %m = 0 THEN GOTO 2000 2540 GO TO %m*100+2500 2599 ;******************************* 2600 CLS : PRINT "OVERFLOW WIDTH" : PRINT 2605 PRINT "Content (x+width) must be <31" : PRINT 2609 PRINT ".SPUI menu -x 25 -c 6 One Two Three Four Five" 2610 REG 127,0 : .SPUI menu -x 25 -c 6 One Two Three Four Five 2699 ;******************************* 2700 CLS : PRINT "OVERFLOW HEIGHT" : PRINT 2705 PRINT "Content (y+height) must be <23" : PRINT 2709 PRINT ".SPUI menu -y 18 -r 5 One Two Three Four Five" 2710 REG 127,0 : .SPUI menu -y 18 -r 5 One Two Three Four Five 2799 ;******************************* 2800 CLS : PRINT "OVERFLOW BOTTOM" : PRINT 2805 PRINT "Content overflows screen length" : PRINT 2809 PRINT ".SPUI menu -r 20 One Two Three Four Five" 2810 REG 127,0 : .SPUI menu -r 20 One Two Three Four Five 2899 ;******************************* 2900 CLS : PRINT "OVERFLOW SIDE" : PRINT 2905 PRINT "Content overflows screen width" : PRINT 2909 PRINT ".SPUI menu -x 20 One Two Three Four Five" 2910 REG 127,0 : .SPUI menu -x 20 One Two Three Four Five 2999 ;******************************* 3000 CLS 3010 PRINT "--------------------------------" 3020 PRINT "Stale Pixels User Interface Tool" 3030 PRINT "--------------------------------" 3040 PRINT 3050 PRINT " 1) SHOWCASE" 3060 PRINT " Correct examples of use. ;)" 3070 PRINT 3080 PRINT " 2) TESTS" 3090 PRINT " Incorrect examples of use. :(" 3100 PRINT 3110 PRINT " 3) HELP" 3120 PRINT " This page. XD" 3130 .SPUI BANNER -t "SPUI Help" 3160 PROC WaitKey(1) 3170 CLS : GO TO 10 3999 STOP 8000 DEFPROC WaitKey(m) 8005 IF m THEN PRINT #0;" press any key" 8010 IF INKEY$ <>"" THEN GO TO 8010 8020 IF INKEY$ ="" THEN GO TO 8020 8030 IF INKEY$ <>"" THEN GO TO 8030 8050 ENDPROC 9990 CLS 9991 PRINT "STOP" 9992 STOP 9998 REMOUNT : .TXT2BAS "spui-demo.txt" : LOAD "spui-demo.bas" 9999 REMOUNT : SAVE "spui-demo.bas" LINE 1 : .BAS2TXT "spui-demo.bas" : PRINT "saved!": STOP \ No newline at end of file +#program spui-demo #autostart 1 REG 127,2 4 ;*************************; 5 ;StalePixels UserInterface; 6 ;*************************; 10 .SPUI menu -d 4 "Showcase" "Tests" "Help" 20 LET %m =% REG 127 30 IF %m = 0 THEN GO TO 9990 40 GO TO %m * 1000 1000 ;******************************* 1010 CLS : REG 127,0 : .SPUI menu -t "Showcase" -r 6 -y 5 "Default" "Narrow" "Long" "Short" "Custom" "Config File" 1020 LET %m =% REG 127 1030 IF %m = 0 THEN CLS: GOTO 10 1040 GO TO %m*100+1000 1099 ;******************************* 1100 CLS : PRINT "Default Menu": PRINT 1105 PRINT "16x6" : PRINT 1109 PRINT ".SPUI menu One Two Three Four Five" 1110 REG 127,0 : .SPUI menu One Two Three Four Five 1190 GOTO 1000 1199 ;******************************* 1200 CLS : PRINT "Narrow Menu": PRINT 1205 PRINT "6x6" : PRINT 1209 PRINT ".SPUI menu -c 6 One Two Three Four" 1210 REG 127,0 : .SPUI menu -c 6 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve 1290 GOTO 1000 1299 ;******************************* 1300 CLS : PRINT "Long Menu": PRINT 1305 PRINT "16x12" : PRINT 1309 PRINT ".SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve" 1310 REG 127,0 : .SPUI menu -r 12 One Two Three Four Five Six Siven Eight Nine Ten Eleven Twelve 1390 GOTO 1000 1399 ;******************************* 1400 CLS : PRINT "Short Menu": PRINT 1405 PRINT "6x1" : PRINT 1409 PRINT ".SPUI menu -r 2 ""One and Done""" 1410 REG 127,0 : .SPUI menu -r 2 "One and Done" 1490 GOTO 1000 1499 ;******************************* 1500 CLS : PRINT "Custom Menu": PRINT 1505 PRINT "6x6@1x1" : PRINT 1509 PRINT ".SPUI menu -x 1 -y 1 -t ""Fully Custom"" -c 20 -r 2 ""First option"" ""Two choices"" ""Three thingy"" ""Four is where it normally ends"" ""Five is here"" ""Six & done!""" 1510 REG 127,0 : .SPUI menu -x 1 -y 1 -t "Fully Custom" -c 20 -r 2 "First option" "Two choices" "Three thingy" "Four is where it normally ends" "Five is here" "Six & done!" 1590 GOTO 1000 1599 ;******************************* 1600 CLS : PRINT "Config Driven Menu": PRINT 1605 PRINT "1937.ini" : PRINT 1609 PRINT ".SPUI menu -I 1937.ini" 1610 REG 127,0 : .SPUI menu -I 1937.ini 1690 GOTO 1000 1699 ;******************************* 2000 ;******************************* 2010 CLS : REG 127,0 : .SPUI menu -t "Errors" -r 5 -y 5 "Too Wide" "Too Narrow" "Too Tall" "Too Short" "Overflow Tests" 2020 LET %m =% REG 127 2030 IF %m = 0 THEN CLS: GOTO 10 2040 GO TO %m*100+2000 2099 ;******************************* 2100 CLS : PRINT "MENU TOO WIDE": PRINT 2105 PRINT "COLUMNS (width) must be <31" : PRINT 2109 PRINT ".SPUI menu -c 31 One Two Three Four Five" 2110 REG 127,0 : .SPUI menu -c 31 One Two Three Four Five 2199 ;******************************* 2200 CLS : PRINT "MENU TOO NARROW" : PRINT 2205 PRINT "COLUMNS (width) must be >6" : PRINT 2209 PRINT ".SPUI menu -c -6 One Two Three Four Five" 2210 REG 127,0 : .SPUI menu -c -6 One Two Three Four Five 2299 ;******************************* 2300 CLS : PRINT "MENU TOO TALL" : PRINT 2305 PRINT "ROWS (height) must be <25" : PRINT 2310 PRINT ".SPUI menu -r 25 One Two Three Four Five" 2319 REG 127,0 : .SPUI menu -r 25 One Two Three Four Five 2399 ;******************************* 2400 CLS : PRINT "MENU TOO SHORT" : PRINT 2405 PRINT "ROWS (height) must be > 1" : PRINT 2409 PRINT ".SPUI menu -r 1 One Two Three Four Five" 2410 REG 127,0 : .SPUI menu -r 1 One Two Three Four Five 2500 ;******************************* 2510 REG 127,0 : .SPUI menu -t "Overflows" -r 5 -y 5 "Width" "Height" "Bottom" "Side" 2520 LET %m =% REG 127 2530 IF %m = 0 THEN GOTO 2000 2540 GO TO %m*100+2500 2599 ;******************************* 2600 CLS : PRINT "OVERFLOW WIDTH" : PRINT 2605 PRINT "Content (x+width) must be <31" : PRINT 2609 PRINT ".SPUI menu -x 25 -c 6 One Two Three Four Five" 2610 REG 127,0 : .SPUI menu -x 25 -c 6 One Two Three Four Five 2699 ;******************************* 2700 CLS : PRINT "OVERFLOW HEIGHT" : PRINT 2705 PRINT "Content (y+height) must be <23" : PRINT 2709 PRINT ".SPUI menu -y 18 -r 5 One Two Three Four Five" 2710 REG 127,0 : .SPUI menu -y 18 -r 5 One Two Three Four Five 2799 ;******************************* 2800 CLS : PRINT "OVERFLOW BOTTOM" : PRINT 2805 PRINT "Content overflows screen length" : PRINT 2809 PRINT ".SPUI menu -r 20 One Two Three Four Five" 2810 REG 127,0 : .SPUI menu -r 20 One Two Three Four Five 2899 ;******************************* 2900 CLS : PRINT "OVERFLOW SIDE" : PRINT 2905 PRINT "Content overflows screen width" : PRINT 2909 PRINT ".SPUI menu -x 20 One Two Three Four Five" 2910 REG 127,0 : .SPUI menu -x 20 One Two Three Four Five 2999 ;******************************* 3000 CLS 3010 PRINT "--------------------------------" 3020 PRINT "Stale Pixels User Interface Tool" 3030 PRINT "--------------------------------" 3040 PRINT 3050 PRINT " 1) SHOWCASE" 3060 PRINT " Correct examples of use. ;)" 3070 PRINT 3080 PRINT " 2) TESTS" 3090 PRINT " Incorrect examples of use. :(" 3100 PRINT 3110 PRINT " 3) HELP" 3120 PRINT " This page. XD" 3130 .SPUI BANNER -t "SPUI Help" 3160 PROC WaitKey(1) 3170 CLS : GO TO 10 3999 STOP 8000 DEFPROC WaitKey(m) 8005 IF m THEN PRINT #0;" press any key" 8010 IF INKEY$ <>"" THEN GO TO 8010 8020 IF INKEY$ ="" THEN GO TO 8020 8030 IF INKEY$ <>"" THEN GO TO 8030 8050 ENDPROC 9990 CLS 9991 PRINT "STOP" 9992 STOP 9998 REMOUNT : .TXT2BAS "spui-demo.txt" : LOAD "spui-demo.bas" 9999 REMOUNT : SAVE "spui-demo.bas" LINE 1 : .BAS2TXT "spui-demo.bas" : PRINT "saved!": STOP \ No newline at end of file