 
                
                252 posts
                
             
            
                Posted 08 September 2012 - 12:55 AM
                I would like to know how I can make a selection menu…
I already know how to make stuff that deals with inputs that have to do with words, such as: Type an option: shutdown, play, ect…
I would like to have a selection menu, like this for an example:
[ ]Shutdown Computer
[ ]Play CD
Where, an 'o' would be in the selected thing. Like this for an example:
[o]Shutdown Computer
[ ]Play CD
I do not know the code to do this, please help me with it as much as you can! Thanks.
                
             
         
        
        
            
            
                
                     
                
                36 posts
                
             
            
                Posted 22 August 2014 - 05:10 PM
                If you try to write the 'o', it will be a lot more complicated than click in the [ ] and write there an 'o', simply because you could type many other things.
                
             
         
        
        
            
            
                
                     
                
                3057 posts
                
                    
                        Location
                        United States of America
                    
                
             
            
                Posted 22 August 2014 - 06:23 PM
                [shameless self-promotion] I made a great menu function over here: 
http://www.computercraft.info/forums2/index.php?/topic/20087-ui-craftos-themed-menu/[/shameless self-promotion]
 
         
        
        
            
            
                
                     
                
                63 posts
                
             
            
                Posted 22 August 2014 - 06:44 PM
                Here's some code I dug up from my old projects:
local function centerPrint(text)
  msgLen = string.len(text)
  screenWidth,_ = term.getSize()
  xCoords = tonumber(math.ceil((screenWidth / 2) - (msgLen / 2)))
  _,termY = term.getCursorPos()
  term.setCursorPos(xCoords, termY)
  print(text)
  return xCoords
end
local place = 1
while true do
  term.setTextColor(colors.green)
  term.setBackgroundColor(colors.gray)
  term.clear()
  term.setCursorPos(1, 1)
  print("Security Options")
  print("")
  term.setTextColor(colors.yellow)
  if place == 1 then
	centerPrint("> Open Door <")
	centerPrint("Edit Redstone")
	centerPrint("Administration")
	centerPrint("Developer Tools")
  elseif place == 2 then
	centerPrint("Open Door")
	centerPrint("> Edit Redstone <")
	centerPrint("Administration")
	centerPrint("Developer Tools")
  elseif place == 3 then
	centerPrint("Open Door")
	centerPrint("Edit Redstone")
	centerPrint("> Administration <")
	centerPrint("Developer Tools")
  elseif place == 4 then
	centerPrint("Open Door")
	centerPrint("Edit Redstone")
	centerPrint("Administration")
	centerPrint("> Developer Tools <")
  end
  _, key = os.pullEvent("key")
  if key == keys.up and place > 1 then
	place = place - 1
  elseif key == keys.down and place < 4 then
	place = place + 1
  elseif key == keys.enter then
	break
  end
end
  if place == 1 then
	-- Do something
  elseif place == 2 then
	-- Something else
  elseif place == 3 then
	-- Something else
  elseif place == 4 then
	-- Something else
  end
I just ripped it from a file, so some of the code may seem a little odd, and or incorrect spacing. Like I said, I took it out of an old project. I was too lazy to remove the centerPrint functions as well, so why not.
Edit: I noticed I didn't change the selection character to "o"…. I think you should be able to figure it out on your own…. any troubles, just message me.
Edited on 22 August 2014 - 04:47 PM