Three is a good number. I say let's all stick to that.
So, I've begun work on my little game (it's very much just a mock-up so far), and after a couple of hours of programming (you try programming while unpacking and see how long it takes you!

), I came up with this for my main menu:
Rem Project: Martin the Marble
Rem Created: Friday, December 03, 2010
Rem ***** Main Source File *****
Gosub _initialize
Gosub _mainMenu
Rem ###########################################
Rem S U B R O U T I N E S
Rem ###########################################
_initialize:
`Set display mode
Set Display Mode 800,600,32
`Set window properties
Set Window On
Set Window Size 800,600
Set Window Position 150,50
Set Window Title "The Adventures of Martin the Marble"
`Set sync mode
Sync on
Sync Rate 90
Set Text Font "Microsoft Sans Serif"
Set Text Size 18
Return
_mainMenu:
`Set up menu variables
itemSelect=0 : `Highlighting variable
gameType=0 : `0=New Game, 1=Load saved game
`Menu item colors
cyan as DWORD : cyan=RGB(0,180,255)
green as DWORD : green=RGB(0,255,55)
white as DWORD : white=RGB(255,255,255)
blue1 as DWORD : blue1=RGB(0,0,255)
red as DWORD : red=RGB(55,0,0)
red2 as DWORD : red2=RGB(175,0,0)
black as DWORD : black=RGB(0,0,0)
grey1 as DWORD : grey1=RGB(80,80,80)
grey2 as DWORD : grey2=RGB(35,35,35)
While EscapeKey()=0
Ink RGB(255,255,255),RGB(255,255,255)
Box 0,0,800,600,blue1,black,black,cyan
Center Text 400,10,"THE ADVENTURES OF MARTIN THE MARBLE"
Box 320,190,480,350,black,black,black,black
Box 321,191,479,228,red,red2,red2,red
If itemSelect=1
Box 321,191,479,228,white,white,white,white
Box 322,192,478,227,black,cyan,cyan,black
Center Text 400,200,"Start Game"
Else
Center Text 400,200,"Start Game"
EndIf
Box 321,229,479,268,red,red2,red2,red
If itemSelect=2
subMenu=1
If RightKey()=1 and subMenu=1
subItem=1
While LeftKey()=0
Box 321,229,479,268,white,white,white,white
Box 322,230,478,267,black,cyan,cyan,black
Center Text 400,240,"Game Settings >"
Box 321,269,479,308,red,red2,red2,red
Center Text 400,280,"Instructions"
Box 321,309,479,349,red,red2,red2,red
Center Text 400,320,"Exit to Windows"
Box 481,228,630,350,black,black,black,black
Box 482,229,629,349,red,red2,red2,red
If subItem=1
Box 482,229,629,269,white,white,white,white
Box 483,230,628,268,black,cyan,cyan,black
Text 490,240,"Sound Settings"
Else
Text 490,240,"Sound Settings"
EndIf
If subItem=2
Box 482,269,629,309,white,white,white,white
Box 483,270,628,308,black,cyan,cyan,black
Text 490,280,"Input Settings"
Else
Text 490,280,"Input Settings"
EndIf
If subItem=3
Box 482,310,629,349,white,white,white,white
Box 483,311,628,348,black,cyan,cyan,black
Text 490,320,"Screen Settings"
Else
Text 490,320,"Screen Settings"
EndIf
If UpKey()=1 and hold=0 then Dec subItem : hold=1
If DownKey()=1 and hold=0 then Inc subItem : hold=1
If UpKey()=0 and DownKey()=0 then hold=0
If subItem > 3 Then subItem=3
If subItem < 1 Then subItem=1
Sync : Sync
EndWhile
subMenu=0
EndIf
Box 321,229,479,268,white,white,white,white
Box 322,230,478,267,black,cyan,cyan,black
Center Text 400,240,"Game Settings >"
Else
Center Text 400,240,"Game Settings"
EndIf
Box 321,269,479,308,red,red2,red2,red
If itemSelect=3
Box 321,269,479,308,white,white,white,white
Box 322,270,478,307,black,cyan,cyan,black
Center Text 400,280,"Instructions"
Else
Center Text 400,280,"Instructions"
EndIf
Box 321,309,479,349,red,red2,red2,red
If itemSelect=4
Box 321,309,479,349,white,white,white,white
Box 322,310,478,348,black,cyan,cyan,black
Center Text 400,320,"Exit to Windows"
Else
Center Text 400,320,"Exit to Windows"
EndIf
If UpKey()=1 and hold=0 then Dec itemSelect : hold=1
If DownKey()=1 and hold=0 then Inc itemSelect : hold=1
If UpKey()=0 and DownKey()=0 then hold=0
If itemSelect > 4 Then itemSelect=4
If itemSelect < 1 Then itemSelect=1
Sync
EndWhile
Return
Tell me that isn't the messiest code you've seen for a GUI system?
Does anybody know if there's any way to still show previous menus from a submenu? You'll notice that I had to re-print all of the buttons when displaying my sub menu for the options...is there a way to program this so that I DON'T have to re-print all of that stuff?
Any advice appreciated!