GG::MenuBar Class Reference

a menu bar control providing "browse" updates to user navigation of the menu. More...

#include <Menu.h>

Inheritance diagram for GG::MenuBar:

GG::Control GG::Wnd List of all members.

Signal Types

typedef boost::signal< void(int)> BrowsedSignalType

Slot Types

typedef BrowsedSignalType::slot_type BrowsedSlotType

Accessors

BrowsedSignalType BrowsedSignal
virtual Pt MinUsableSize () const
const MenuItemAllMenus () const
bool ContainsMenu (const std::string &str) const
int NumMenus () const
const MenuItemGetMenu (const std::string &str) const
const MenuItemGetMenu (int n) const
Clr BorderColor () const
Clr InteriorColor () const
Clr TextColor () const
Clr HiliteColor () const
Clr SelectedTextColor () const

Structors

 MenuBar (int x, int y, int w, const boost::shared_ptr< Font > &font, Clr text_color=CLR_WHITE, Clr color=CLR_BLACK, Clr interior=CLR_SHADOW)
 MenuBar (int x, int y, int w, const boost::shared_ptr< Font > &font, const MenuItem &m, Clr text_color=CLR_WHITE, Clr color=CLR_BLACK, Clr interior=CLR_SHADOW)

Mutators

virtual void Render ()
virtual void LButtonDown (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseHere (const Pt &pt, Flags< ModKey > mod_keys)
virtual void MouseLeave ()
virtual void SizeMove (const Pt &ul, const Pt &lr)
MenuItemAllMenus ()
MenuItemGetMenu (const std::string &str)
MenuItemGetMenu (int n)
void AddMenu (const MenuItem &menu)
void SetBorderColor (Clr clr)
void SetInteriorColor (Clr clr)
void SetTextColor (Clr clr)
void SetHiliteColor (Clr clr)
void SetSelectedTextColor (Clr clr)
virtual void DefineAttributes (WndEditor *editor)

Structors

 MenuBar ()

Accessors

const boost::shared_ptr< Font > & GetFont () const
const std::vector< TextControl * > & MenuLabels () const
int Caret () const

Friends

struct SetFontAction
struct SetTextColorAction

Detailed Description

a menu bar control providing "browse" updates to user navigation of the menu.

Whenever a menu item is selected, a signal is emitted which includes the ID of the selected item. It is recommended that the user attach each menu item to an appropriate function the will execute the actions associated with the menu item, rather than attaching all the items to a single slot which uses the int ID parameter to deduce the appropriate action. The int ID parameter is best used when there are several menu items that should execute the same code with different parameters. For instance, if a submenu contains a list of recently used files, each item that contains a filename might be attached to a Reopen(int) function, and the int can be used to determine which file from the list should be opened. If some action is to be taken as the user browses the menu items, such as displaying some visual cue to indicate the result of chosing a particular menu entry, you can attach a slot function to the BrowsedSignalType object returned by BrowsedSignal. Whenever the mouse moves to a new menu item, this signal is emitted with the ID number of the item under the cursor.

Definition at line 111 of file Menu.h.


Member Typedef Documentation

typedef boost::signal<void (int)> GG::MenuBar::BrowsedSignalType

emits the ID of an item in the menu when the cursor moves over it

Definition at line 115 of file Menu.h.

typedef BrowsedSignalType::slot_type GG::MenuBar::BrowsedSlotType

type of functor(s) invoked on a BrowsedSignalType

Definition at line 119 of file Menu.h.


Constructor & Destructor Documentation

GG::MenuBar::MenuBar ( int  x,
int  y,
int  w,
const boost::shared_ptr< Font > &  font,
Clr  text_color = CLR_WHITE,
Clr  color = CLR_BLACK,
Clr  interior = CLR_SHADOW 
)

ctor. ctor

Parameter m should contain the desired menu in its next_level member.

GG::MenuBar::MenuBar ( int  x,
int  y,
int  w,
const boost::shared_ptr< Font > &  font,
const MenuItem m,
Clr  text_color = CLR_WHITE,
Clr  color = CLR_BLACK,
Clr  interior = CLR_SHADOW 
)

ctor that takes a MenuItem containing menus with which to populate the MenuBar

GG::MenuBar::MenuBar (  )  [protected]

default ctor


Member Function Documentation

virtual Pt GG::MenuBar::MinUsableSize (  )  const [virtual]

returns the size of the minimum bounding box that can enclose the Wnd and still show all of its elements, plus enough room for interaction with those elements (if applicable).

For example, a TextControl's MinUsableSize() is just the area of its text, and a Scroll's RenderableMinSize() is the combined sizes of its up-button, down-button, and tab (plus a bit of room in which to drag the tab).

Reimplemented from GG::Wnd.

const MenuItem& GG::MenuBar::AllMenus (  )  const

returns a const reference to the MenuItem that contains all the menus and their contents

bool GG::MenuBar::ContainsMenu ( const std::string &  str  )  const

returns true if there is a top-level menu in the MenuBar whose label is str

int GG::MenuBar::NumMenus (  )  const

returns the number of top-level menus in the MenuBar

const MenuItem& GG::MenuBar::GetMenu ( const std::string &  str  )  const

returns a const reference to the top-level menu in the MenuBar whose label is str.

Note:
No check is made to ensure such a menu exists.

const MenuItem& GG::MenuBar::GetMenu ( int  n  )  const

returns a const reference to the nth menu in the MenuBar; not range-checked

Clr GG::MenuBar::BorderColor (  )  const

returns the color used to render the border of the control

Clr GG::MenuBar::InteriorColor (  )  const

returns the color used to render the interior of the control

Clr GG::MenuBar::TextColor (  )  const

returns the color used to render menu item text

Clr GG::MenuBar::HiliteColor (  )  const

returns the color used to indicate a hilited menu item

Clr GG::MenuBar::SelectedTextColor (  )  const

returns the color used to render a hilited menu item's text

virtual void GG::MenuBar::Render (  )  [virtual]

draws this Wnd.

Note that Wnds being dragged for a drag-and-drop operation are rendered twice -- once in-place as normal, once in the location of the drag operation, attached to the cursor. Such Wnds may wish to render themselves differently in those two cases. To determine which render is being performed, they can call GUI::GetGUI()->RenderingDragDropWnds().

Implements GG::Control.

virtual void GG::MenuBar::LButtonDown ( const Pt pt,
Flags< ModKey >  mod_keys 
) [virtual]

respond to left button down msg.

A window receives this whenever any input device button changes from up to down while over the window.

Note:
If this Wnd was created with the REPEAT_BUTTON_DOWN flag, this method may be called multiple times during a single button press-release cycle.
See also:
GG::GUI

Reimplemented from GG::Wnd.

virtual void GG::MenuBar::MouseHere ( const Pt pt,
Flags< ModKey >  mod_keys 
) [virtual]

respond to cursor moving about within the Wnd, or to cursor lingering within the Wnd for a long period of time.

A MouseHere() message will not be generated the first time the cursor enters the window's area. In that case, a MouseEnter() message is generated.

Reimplemented from GG::Wnd.

virtual void GG::MenuBar::MouseLeave (  )  [virtual]

respond to cursor leaving window's coords

Reimplemented from GG::Wnd.

virtual void GG::MenuBar::SizeMove ( const Pt ul,
const Pt lr 
) [virtual]

resizes and/or moves window to new upper-left and lower right boundaries

Reimplemented from GG::Wnd.

MenuItem& GG::MenuBar::AllMenus (  ) 

returns a reference to the MenuItem that contains all the menus and their contents

MenuItem& GG::MenuBar::GetMenu ( const std::string &  str  ) 

returns a reference to the top-level menu in the MenuBar whose label is str.

Note:
No check is made to ensure such a menu exists.

MenuItem& GG::MenuBar::GetMenu ( int  n  ) 

returns a reference to the nth menu in the MenuBar; not range-checked

void GG::MenuBar::AddMenu ( const MenuItem menu  ) 

adds menu to the end of the top level of menus

void GG::MenuBar::SetBorderColor ( Clr  clr  ) 

sets the color used to render the border of the control

void GG::MenuBar::SetInteriorColor ( Clr  clr  ) 

sets the color used to render the interior of the control

void GG::MenuBar::SetTextColor ( Clr  clr  ) 

sets the color used to render menu item text

void GG::MenuBar::SetHiliteColor ( Clr  clr  ) 

sets the color used to indicate a hilited menu item

void GG::MenuBar::SetSelectedTextColor ( Clr  clr  ) 

sets the color used to render a hilited menu item's text

virtual void GG::MenuBar::DefineAttributes ( WndEditor *  editor  )  [virtual]

provides the attributes of this object that are appropriate for a user to edit in a WndEditor; see WndEditor for details.

Reimplemented from GG::Control.

const boost::shared_ptr<Font>& GG::MenuBar::GetFont (  )  const [protected]

returns the font used to render text in the control

const std::vector<TextControl*>& GG::MenuBar::MenuLabels (  )  const [protected]

returns the text for each top-level menu item

int GG::MenuBar::Caret (  )  const [protected]

returns the current position of the caret


Member Data Documentation

BrowsedSignalType GG::MenuBar::BrowsedSignal [mutable]

the browsed signal object for this PopupMenu

Definition at line 146 of file Menu.h.


The documentation for this class was generated from the following file:
Generated on Wed Mar 26 14:35:42 2008 for GG by  doxygen 1.5.2