FOX/ObjCryst++  1.10.X (development)
ObjCryst::WXMolecule Class Reference

wxCryst class for Molecule objects More...

+ Inheritance diagram for ObjCryst::WXMolecule:
+ Collaboration diagram for ObjCryst::WXMolecule:

Classes

struct  CellAtom
 Structure to store the Atom parameters. More...
 
struct  CellBond
 Structure to store the bond current values. More...
 
struct  CellBondAngle
 Structure to store the bond angles current values. More...
 
struct  CellDihedralAngle
 Structure to store the dihedral angles current values. More...
 
struct  CellRigidGroup
 

Public Member Functions

 WXMolecule (wxWindow *parent, Molecule *)
 
void OnMenuOptimizeConformation (wxCommandEvent &WXUNUSED(event))
 
void OnMenuPrintRestraintStatus (wxCommandEvent &WXUNUSED(event))
 
void OnMenuExportRestraints (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddAtom (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddBond (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddAngle (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddDihedralAngle (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddRigidGroup (wxCommandEvent &WXUNUSED(event))
 
void OnMenuAddNonFlipAtom (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRigidfyWithDihedralAngles (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveAtom (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveBond (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveAngle (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveDihedralAngle (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveNonFlipAtom (wxCommandEvent &WXUNUSED(event))
 
void OnMenuRemoveRigidGroup (wxCommandEvent &WXUNUSED(event))
 
void OnMenuSetLimits (wxCommandEvent &event)
 
void OnMenuShowRestraintWindow (wxCommandEvent &event)
 
void OnMenuSetDeltaSigma (wxCommandEvent &event)
 
void OnChangeCenterAtom (wxCommandEvent &event)
 
void OnEditGridAtom (wxGridEvent &e)
 
void OnEditGridBondLength (wxGridEvent &e)
 
void OnEditGridBondAngle (wxGridEvent &e)
 
void OnEditGridDihedralAngle (wxGridEvent &e)
 
void OnEditGridRigidGroup (wxGridEvent &e)
 
void OnMenuExport2ZMatrix (wxCommandEvent &event)
 
void OnMenuTest (wxCommandEvent &event)
 
void OnMenuMDTest (wxCommandEvent &event)
 
void OnMenuRotate (wxCommandEvent &event)
 
void NotifyDeleteListWin (WXMolScrolledWindow *win)
 Notify that either the bond, bond angle or dihedral angle list window has been destroyed.
 
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. More...
 
virtual void UpdateUI (const bool mutexlock=false)
 Update the User Interface, if necessary. More...
 
virtual bool Enable (bool enable=true)
 
- Public Member Functions inherited from ObjCryst::WXScatterer
 WXScatterer (wxWindow *parent, Scatterer *)
 
- Public Member Functions inherited from ObjCryst::WXRefinableObj
 WXRefinableObj (wxWindow *parent, RefinableObj *)
 
virtual bool OnChangeName (const int id)
 When a WXFieldName has been changed by the user, it is handled here. More...
 
void OnMenuSave (wxCommandEvent &WXUNUSED(event))
 
void OnMenuLoad (wxCommandEvent &WXUNUSED(event))
 
void OnMenuFixAllPar (wxCommandEvent &WXUNUSED(event))
 
void OnMenuUnFixAllPar (wxCommandEvent &WXUNUSED(event))
 
void OnMenuParRandomize (wxCommandEvent &WXUNUSED(event))
 
virtual void OnUpdateUI (wxUpdateUIEvent &event)
 
- Public Member Functions inherited from ObjCryst::WXCrystObj
 WXCrystObj (wxWindow *parent, int orient=wxHORIZONTAL, bool showName=true)
 Constructor, with a.
 
void OnToggleCollapse (wxCommandEvent &WXUNUSED(event))
 Only display the title, and collapse everything else. More...
 
virtual void OnEnable (wxUpdateUIEvent &event)
 
virtual void AddChild (WXCrystObjBasic *pChild, bool doBottomLayout=true)
 Notify that a new children has been added, also adding it to the correct sizer (which can be the top sizer or not). More...
 
- Public Member Functions inherited from ObjCryst::WXCrystObjBasic
 WXCrystObjBasic (wxWindow *parent)
 Constructor.
 
virtual ~WXCrystObjBasic ()
 Destructor.
 
 wxDEPRECATED (virtual void BottomLayout(WXCrystObjBasic *pChild))
 Redo the Layout for the object and ask parent to take it into account. More...
 
void AddedToList (WXCrystObjBasicList *list)
 
void RemovedFromList (WXCrystObjBasicList *list)
 
virtual bool Layout ()
 
virtual void SetToolTip (const wxString &tip)
 Set tooltip for this window. More...
 

Private Attributes

MoleculempMolecule
 
WXMolScrolledWindowmpAtomWin
 
WXMolScrolledWindowmpBondWin
 
WXMolScrolledWindowmpAngleWin
 
WXMolScrolledWindowmpDihedralAngleWin
 
WXMolScrolledWindowmpRigidGroupWin
 
WXMolScrolledWindowmpNonFlipAtomWin
 
std::list< CellAtommvpAtom
 Displayed list of atoms.
 
std::list< CellBondmvpBond
 Displayed list of bonds, in the order they appear.
 
std::list< CellBondAnglemvpBondAngle
 Displayed list of bond angle.
 
std::list< CellDihedralAnglemvpDihedralAngle
 Displayed list of Dihedral angles.
 
std::list< CellRigidGroupmvpRigidGroup
 Displayed list of Dihedral angles.
 
bool mIsSelfUpdating
 Flag to indicate whether we are updating values in the wxGrid data. More...
 
WXFieldChoicempFieldCenterAtom
 Center atom.
 

Additional Inherited Members

- Protected Attributes inherited from ObjCryst::WXScatterer
ScatterermpScatterer
 
- Protected Attributes inherited from ObjCryst::WXRefinableObj
WXCrystMenuBarmpMenuBar
 
- Protected Attributes inherited from ObjCryst::WXCrystObj
wxBoxSizer * mpTopSizer
 Top sizer including the title and WXCrystObj::mpSizer.
 
wxBoxSizer * mpSizer
 Sizer including all sub-objects.
 
WXFieldNamempWXTitle
 The title.
 
bool mIsExpanded
 To be used for collapsing the sub-objects.
 
WXCrystObjBasicList mList
 All windows but the title and collapse button are in this list.
 
wxButton * mpCollapseButton
 The collapse button.
 
- Protected Attributes inherited from ObjCryst::WXCrystObjBasic
WXCrystObjBasicmWXCrystParent
 Parent, if a WXCrystObjBasic itself.
 
bool mIsShown
 Is the the window currently shown ?
 
bool mNeedUpdateUI
 Do we need to update the display ?
 
CrystMutex mMutex
 Mutex used to lock data when preparing to update the UI in non-main thread.
 
std::set< WXCrystObjBasicList * > mvpList
 WXCrystObjBasicList which are aware of this object, and which should be told on destruction. More...
 

Detailed Description

wxCryst class for Molecule objects

Definition at line 127 of file wxMolecule.h.

Member Function Documentation

void ObjCryst::WXMolecule::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
updateUIif true, this will call UpdateUI, either directly (if in the main thread), or by sending a message.
mutexlockif 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.

Reimplemented from ObjCryst::WXRefinableObj.

Definition at line 2334 of file wxMolecule.cpp.

void ObjCryst::WXMolecule::UpdateUI ( const bool  mutexlock = false)
virtual

Update the User Interface, if necessary.

Parameters
mutexlockif 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.

Reimplemented from ObjCryst::WXRefinableObj.

Definition at line 2946 of file wxMolecule.cpp.

Member Data Documentation

bool ObjCryst::WXMolecule::mIsSelfUpdating
private

Flag to indicate whether we are updating values in the wxGrid data.

(enabled in wxMolecule::UpdateUI()).

Definition at line 259 of file wxMolecule.h.


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