====
Menu
====

Menu is used for easily creating command-line menus.

Included Files
==============

* menu/menu.py
  - python module used for creating command-line menus


Installation
============

Python must be installed in order for Menu to be imported. Install python at https://www.python.org/download/. In the terminal type “cd path/to/this/directory” and then “python setup.py install”. This will add the menu module to your site-packages.


How to Use
==========

Import menu
-----------

Import::

	From menu import menu

or::

	Import menu.menu

Create a Menu
-------------

The Menu constructor takes one non-optional argument, the title, and one optional argument, an update function that gets called every time the menu is show::

	mainMenu = menu.Menu(title,update=updateFunction)

To make a submenu make a property of the main menu another menu::

	mainMenu.submenu = menu.Menu(title,update=updateFunction)

Add options to a menu::

	options = [{"name":"firstOption","function":firstFunc},
	           {"name":"secondOption","function":secondFunc},
	           {"name":"thirdOption","function":thirdFunc}]
	mainMenu.addOptions(options)

Change the way options are added to a menu::

	mainMenu.explicit()
	options = [{"name":"firstOption","function":firstFunc},
		   {"name":"secondOption","function":secondFunc},
		   {"name":"thirdOption","function":thirdFunc}]
	mainMenu.addOptions(options)
	
	mainMenu.clearOptions()
	
	mainMenu.implicit()
	options = [("firstOption",firstFunc),
                   ("secondOption",secondFunc),
                   ("thirdOption",thirdFunc)]
	mainMenu.addOptions(options)

Display a menu, wait for user input, and call a corresponding function::

	mainMenu.open()
	
	###
	would look like this
	
	title
	
	1. firstOption
	2. secondOption
	3. thirdOption
	
	>>>
	###

Change the user input indicator::

	mainMenu.indicator(":")
	mainMenu.indicator(">>>")
	mainMenu.indicator(">")

	


