ObjCryst++  1.5CVS
Classes | Public Member Functions | Private Attributes | List of all members
ObjCryst::WXCrystal Class Reference

wxCryst class for Crystals More...

Inheritance diagram for ObjCryst::WXCrystal:
ObjCryst::WXRefinableObj ObjCryst::WXCrystObj ObjCryst::WXCrystObjBasic

Classes

struct  RowScattPow
 Structure to store the scattering power parameters. More...

Public Member Functions

 WXCrystal (wxWindow *parent, Crystal *)
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.
void OnMenuSaveCIF (wxCommandEvent &WXUNUSED(event))
void OnMenuSaveText (wxCommandEvent &WXUNUSED(event))
void OnMenuAddScattPowAtom (wxCommandEvent &WXUNUSED(event))
void OnMenuAddScattPowSphere (wxCommandEvent &WXUNUSED(event))
void OnMenuRemoveScattPow (wxCommandEvent &WXUNUSED(event))
void OnMenuAddScatterer (wxCommandEvent &event)
void OnMenuRemoveScatterer (wxCommandEvent &WXUNUSED(event))
void OnMenuDuplicateScatterer (wxCommandEvent &WXUNUSED(event))
void OnMenuImportMoleculeFromFenskeHallZMatrix (wxCommandEvent &event)
void OnMenuAtoms2Molecule (wxCommandEvent &event)
void OnMenuSetRelativeXYZLimits (wxCommandEvent &WXUNUSED(event))
void OnMenuTestRandomMoves (wxCommandEvent &event)
bool OnChangeName (const int id)
 When a WXFieldName has been changed by the user, it is handled here.
void UpdateUI (const bool mutexlock=false)
 Update the User Interface, if necessary.
CrystalGetCrystal ()
const CrystalGetCrystal () const
void OnMenuShowScattPowWindow (wxCommandEvent &event)
void OnEditGridScattPow (wxGridEvent &e)
void OnEditGridScattPowAntiBump (wxGridEvent &e)
void OnEditGridScattPowBondValence (wxGridEvent &e)
void NotifyDeleteListWin (WXCrystalScrolledGridWindow *win)
virtual bool Enable (bool enable=true)
- Public Member Functions inherited from ObjCryst::WXRefinableObj
 WXRefinableObj (wxWindow *parent, RefinableObj *)
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.
virtual void OnEnable (wxUpdateUIEvent &event)
virtual void BottomLayout (WXCrystObjBasic *pChild)
 Ask for a new Layout with recalculated size hints, because a child has been changed or added.
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).
- Public Member Functions inherited from ObjCryst::WXCrystObjBasic
 WXCrystObjBasic (wxWindow *parent)
 Constructor.
virtual ~WXCrystObjBasic ()
 Destructor.
void AddedToList (WXCrystObjBasicList *list)
void RemovedFromList (WXCrystObjBasicList *list)
virtual bool Layout ()
virtual void SetToolTip (const wxString &tip)
 Set tooltip for this window.

Private Attributes

CrystalmpCrystal
WXFieldNamempFieldSpacegroup
 SpaceGroup.
WXRegistry< Scatterer > * mpWXScattererRegistry
 Scatterers.
WXRegistry< ScatteringPower > * mpWXScatteringPowerRegistry
 Scattering Powers.
WXCrystalScrolledGridWindow * mpScattPowWin
WXCrystalScrolledGridWindow * mpAntiBumpWin
WXCrystalScrolledGridWindow * mpBondValenceWin
std::map< ScatteringPowerAtom
*, RowScattPow
mvpRowScattPow
bool mIsSelfUpdating
 Flag to indicate that we are updating values in the wxGrid data, and that it is not the user inputing data.
wxMutex mMutexGLUpdate
 Mutex used when updating the OpenGL display List, between background and main thread.
wxCondition * mpConditionGLUpdate
 wxCondition used when updating the OpenGL display List, between background and main thread

Additional Inherited Members

- Protected Attributes inherited from ObjCryst::WXRefinableObj
WXCrystMenuBarmpMenuBar

Detailed Description

wxCryst class for Crystals

Member Function Documentation

virtual void ObjCryst::WXCrystal::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.

Reimplemented from ObjCryst::WXRefinableObj.

bool ObjCryst::WXCrystal::OnChangeName ( const int  id)
virtual

When a WXFieldName has been changed by the user, it is handled here.

This returns true if the value has been handled (for inheritance purposes).

Reimplemented from ObjCryst::WXRefinableObj.

void ObjCryst::WXCrystal::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.

Reimplemented from ObjCryst::WXRefinableObj.

Member Data Documentation

bool ObjCryst::WXCrystal::mIsSelfUpdating
private

Flag to indicate that we are updating values in the wxGrid data, and that it is not the user inputing data.


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