20 #ifndef _VFN_WX_MOLECULE_H_
21 #define _VFN_WX_MOLECULE_H_
24 #include "ObjCryst/wxCryst/wxScatterer.h"
25 #include "ObjCryst/ObjCryst/Molecule.h"
48 virtual void CrystUpdate(
const bool updateUI=
false,
const bool mutexlock=
false);
49 virtual void UpdateUI(
const bool mutexlock=
false);
50 void OnChangeScattPow(wxCommandEvent &);
66 virtual void CrystUpdate(
const bool updateUI=
false,
const bool mutexlock=
false);
67 virtual void UpdateUI(
const bool mutexlock=
false);
68 void OnChangeAtom(wxCommandEvent &);
77 wxCheckBox *mpButtonFree;
89 virtual void CrystUpdate(
const bool updateUI=
false,
const bool mutexlock=
false);
90 virtual void UpdateUI(
const bool mutexlock=
false);
91 void OnChangeAtom(wxCommandEvent &);
101 DECLARE_EVENT_TABLE()
110 virtual void CrystUpdate(
const bool updateUI=
false,
const bool mutexlock=
false);
111 virtual void UpdateUI(
const bool mutexlock=
false);
112 void OnChangeAtom(wxCommandEvent &);
123 DECLARE_EVENT_TABLE()
132 void OnMenuOptimizeConformation(wxCommandEvent & WXUNUSED(event));
133 void OnMenuPrintRestraintStatus(wxCommandEvent & WXUNUSED(event));
134 void OnMenuExportRestraints(wxCommandEvent & WXUNUSED(event));
135 void OnMenuAddAtom(wxCommandEvent & WXUNUSED(event));
136 void OnMenuAddBond(wxCommandEvent & WXUNUSED(event));
137 void OnMenuAddAngle(wxCommandEvent & WXUNUSED(event));
138 void OnMenuAddDihedralAngle(wxCommandEvent & WXUNUSED(event));
139 void OnMenuAddRigidGroup(wxCommandEvent & WXUNUSED(event));
140 void OnMenuAddNonFlipAtom(wxCommandEvent & WXUNUSED(event));
141 void OnMenuRigidfyWithDihedralAngles(wxCommandEvent & WXUNUSED(event));
142 void OnMenuRemoveAtom(wxCommandEvent & WXUNUSED(event));
143 void OnMenuRemoveBond(wxCommandEvent & WXUNUSED(event));
144 void OnMenuRemoveAngle(wxCommandEvent & WXUNUSED(event));
145 void OnMenuRemoveDihedralAngle(wxCommandEvent & WXUNUSED(event));
146 void OnMenuRemoveNonFlipAtom(wxCommandEvent & WXUNUSED(event));
147 void OnMenuRemoveRigidGroup(wxCommandEvent & WXUNUSED(event));
148 void OnMenuSetLimits(wxCommandEvent &event);
149 void OnMenuShowRestraintWindow(wxCommandEvent &event);
150 void OnMenuSetDeltaSigma(wxCommandEvent &event);
151 void OnChangeCenterAtom(wxCommandEvent &event);
152 void OnEditGridAtom(wxGridEvent &e);
153 void OnEditGridBondLength(wxGridEvent &e);
154 void OnEditGridBondAngle(wxGridEvent &e);
155 void OnEditGridDihedralAngle(wxGridEvent &e);
156 void OnEditGridRigidGroup(wxGridEvent &e);
157 void OnMenuExport2ZMatrix(wxCommandEvent &event);
158 void OnMenuTest(wxCommandEvent &event);
159 void OnMenuMDTest(wxCommandEvent &event);
160 void OnMenuRotate(wxCommandEvent &event);
164 virtual void CrystUpdate(
const bool updateUI=
false,
const bool mutexlock=
false);
165 virtual void UpdateUI(
const bool mutexlock=
false);
166 virtual bool Enable(
bool enable=
true);
262 DECLARE_EVENT_TABLE()
The namespace which includes all objects (crystallographic and algorithmic) in ObjCryst++.
MolAtom : atom inside a Molecule.
Bond between two atoms, also a restraint on the associated bond length.
Bond angle restraint between 3 atoms.
Dihedral angle restraint between 4 atoms.
Rigid groups of atoms inside a molecule.
Molecule : class for complex scatterer descriptions using cartesian coordinates with bond length/angl...
Abstract Base Class to describe the scattering power of any Scatterer component in a crystal.
Abstract base class for all objects in wxCryst.
A List of WXCrystObjBasic.
A field which directly links to a string.
Class to pick one choice...
WXMolecule * mpWXMolecule
The WXMolecule window which created this window, and who should be told if it is destroyed.
wx class for MolAtom objects
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 necessar...
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
wx class for MolBond objects
void OnToggleFree(wxCommandEvent &WXUNUSED(event))
Toggle the 'free' status of the bond.
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
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 necessar...
REAL mValue
The current value.
wx class for MolBondAngle objects
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 necessar...
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
REAL mValue
The current value.
wx class for MolDihedralAngle objects
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 necessar...
REAL mValue
The current value.
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
wxCryst class for Molecule objects
std::list< CellRigidGroup > mvpRigidGroup
Displayed list of Dihedral angles.
void NotifyDeleteListWin(WXMolScrolledWindow *win)
Notify that either the bond, bond angle or dihedral angle list window has been destroyed.
std::list< CellDihedralAngle > mvpDihedralAngle
Displayed list of Dihedral angles.
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 necessar...
WXFieldChoice * mpFieldCenterAtom
Center atom.
std::list< CellAtom > mvpAtom
Displayed list of atoms.
std::list< CellBondAngle > mvpBondAngle
Displayed list of bond angle.
std::list< CellBond > mvpBond
Displayed list of bonds, in the order they appear.
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
bool mIsSelfUpdating
Flag to indicate whether we are updating values in the wxGrid data.
Structure to store the Atom parameters.
bool mNeedUpdateUI
True if we need to update the displayed values.
Structure to store the bond current values.
bool mNeedUpdateUI
True if we need to update the displayed values.
Structure to store the bond angles current values.
bool mNeedUpdateUI
True if we need to update the displayed values.
Structure to store the dihedral angles current values.
bool mNeedUpdateUI
True if we need to update the displayed values.
RigidGroup mGroupCopy
Copy of the set of atoms, as it was last displayed.
RigidGroup * mpGroup
Rigid group in the Molecule.
bool mNeedUpdateUI
True if we need to update the displayed values.
base wxCryst class for Scatterers