Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

ObjCryst::WXCrystMenuBar Class Reference

Our own local menu bar, using buttons and Popup menus. More...

Inheritance diagram for ObjCryst::WXCrystMenuBar:

Inheritance graph
[legend]
Collaboration diagram for ObjCryst::WXCrystMenuBar:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 WXCrystMenuBar (wxWindow *parent, WXCrystObj *owner)
 Ctor.

void AddMenu (const string &name, const int menuId, const string &help="")
 Add a menu.

wxMenu & GetMenu (const int menuId)
 Get access to a menu.

void AddMenuItem (const int menuId, int id, const string &item, const string &help="", const bool checkable=false)
 Add an entry to a menu.

void AddMenuItem (const int menuId, int id, const wxString &item, wxMenu *subMenu, const wxString &helpString="")
 Add a sub-menu to a menu.

virtual void CrystUpdate (const bool updateUI=false, const bool mutexlock=false)
 Get new values to be displayed from the underlying object, and raise flag if an UI update is necessary.

virtual void UpdateUI (const bool mutexlock=false)
 Update the User Interface, if necessary.

void OnPopupMenu (wxCommandEvent &event)
 Event handler to popu the menu when the button is clicked.


Protected Attributes

wxBoxSizer * mpSizer
 The sizer of the menu.

std::map< long, pair< wxMenu *,
wxButton * > > 
mvpMenu
 List of menus, first is the menu Id and second is a pair of <pointer to the menu, pointer to the button of the menu>.


Detailed Description

Our own local menu bar, using buttons and Popup menus.


Constructor & Destructor Documentation

ObjCryst::WXCrystMenuBar::WXCrystMenuBar wxWindow *  parent,
WXCrystObj owner
 

Ctor.


Member Function Documentation

void ObjCryst::WXCrystMenuBar::AddMenu const string &  name,
const int  menuId,
const string &  help = ""
 

Add a menu.

void ObjCryst::WXCrystMenuBar::AddMenuItem const int  menuId,
int  id,
const wxString &  item,
wxMenu *  subMenu,
const wxString &  helpString = ""
 

Add a sub-menu to a menu.

void ObjCryst::WXCrystMenuBar::AddMenuItem const int  menuId,
int  id,
const string &  item,
const string &  help = "",
const bool  checkable = false
 

Add an entry to a menu.

virtual void ObjCryst::WXCrystMenuBar::CrystUpdate const bool  updateUI = false,
const bool  mutexlock = false
[virtual]
 

Get new values to be displayed from the underlying object, and raise flag if an UI update is necessary.

The actual GUI update is not made here. UpdateUI() should be called separately, from the main thread.

Parameters:
updateUI: if true, this will call UpdateUI, either directly (if in the main thread), or by sending a message.
mutexlock: if true, a Mutex will be used to lock the data shared between main and background thread. The idea is to only use a few Mutexes to lock data from the top objects (wxRefinableObj,...), when calling CrystUpdate() and UpdateUI(). As sub-objects (WXField,...) are only updated from within a top object, the mutex lock in the top object will also lock the data in the sub-objects.

Implements ObjCryst::WXCrystObjBasic.

wxMenu& ObjCryst::WXCrystMenuBar::GetMenu const int  menuId  ) 
 

Get access to a menu.

void ObjCryst::WXCrystMenuBar::OnPopupMenu wxCommandEvent &  event  ) 
 

Event handler to popu the menu when the button is clicked.

virtual void ObjCryst::WXCrystMenuBar::UpdateUI const bool  mutexlock = false  )  [virtual]
 

Update the User Interface, if necessary.

Parameters:
mutexlock: if true, a Mutex will be used to lock the data shared between main and background thread.
The idea is to only use a few Mutexes to lock data from the top objects (wxRefinableObj,...), when calling CrystUpdate() and UpdateUI(). As sub-objects (WXField,...) are only updated from within a top object, the mutex lock in the top object will also lock the data in the sub-objects.

Implements ObjCryst::WXCrystObjBasic.


Member Data Documentation

wxBoxSizer* ObjCryst::WXCrystMenuBar::mpSizer [protected]
 

The sizer of the menu.

std::map<long,pair<wxMenu *,wxButton*> > ObjCryst::WXCrystMenuBar::mvpMenu [protected]
 

List of menus, first is the menu Id and second is a pair of <pointer to the menu, pointer to the button of the menu>.


The documentation for this class was generated from the following file:
Generated on Tue Nov 14 15:06:39 2006 for ObjCryst++ by doxygen 1.3.6