Milo  0.1
Milo:EquationManipulationProgram
Public Member Functions | Private Attributes | List of all members
MenuBar Class Reference

#include <menu.h>

Inheritance diagram for MenuBar:
Inheritance graph
[legend]
Collaboration diagram for MenuBar:
Collaboration graph
[legend]

Public Member Functions

 MenuBar (const std::string &xml)
 
void add (Menu *menu)
 
void draw ()
 
bool select (int mouse_x=1)
 
bool active ()
 
bool handleKey (int code)
 
bool doMenuKey (const UI::KeyEvent &key)
 
Overridden Public Member Functions
void define_menu (const StringMap &attributes)
 
void define_menu_end (const std::string &name)
 
void define_menu_item (const StringMap &attributes)
 
void define_menu_line ()
 
- Public Member Functions inherited from UI::MenuXML
void parse_menu (XML::Parser &in)
 

Private Attributes

MenuPtr m_root
 current menu on bar open
 
int m_level
 Keep track of menu level.
 
std::vector< MenuPtr > m_menus
 vector of menus in menu bar
 
std::stack< Menu * > m_menu_heap
 Stack of menus being created.
 
std::unordered_map< UI::KeyEvent, std::string > key_menu_map
 

Detailed Description

Menubar class

Constructor & Destructor Documentation

MenuBar::MenuBar ( const std::string &  xml)

Constructor for class MenuBar

Parameters
xmlFilename of xml file for menubar

Member Function Documentation

bool MenuBar::active ( )
inline

Returns if menus are active

Returns
m_root not null
void MenuBar::add ( Menu *  menu)

Add menu to bar

Parameters
menuPointer to new menu
void MenuBar::define_menu ( const StringMap &  attributes)
virtual

Start of menu with attributes

Parameters
attributesAll menu settings in map.

Implements UI::MenuXML.

void MenuBar::define_menu_end ( const std::string &  name)
virtual

No more menu items for current menu

Parameters
nameName of menu coming to end

Implements UI::MenuXML.

void MenuBar::define_menu_item ( const StringMap &  attributes)
virtual

Menu item for current menu

Parameters
attributesAll menu item settings in map.

Implements UI::MenuXML.

void MenuBar::define_menu_line ( )
virtual

Menu line for current menu

Implements UI::MenuXML.

bool MenuBar::doMenuKey ( const UI::KeyEvent &  key)

Static function to call function that corresponds to menu key

Parameters
keyKey event.
Returns
True if menu key found
void MenuBar::draw ( )

Draw menu bar

bool MenuBar::handleKey ( int  code)

Send key code to active menu

Parameters
codeKey code
Returns
True if key code was handled.
bool MenuBar::select ( int  mouse_x = 1)

Handle event loop for menu bar

Parameters
mouse_xMenu clicked (default first menu)
Returns
Menu was selected

Member Data Documentation

std::unordered_map<UI::KeyEvent, std::string> MenuBar::key_menu_map
private

Map ncurses keys to a name representing a function to call.


The documentation for this class was generated from the following files: