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

ObjCryst::WXCrystObjBasic Class Reference

Abstract base class for all objects in wxCryst. More...

Inheritance diagram for ObjCryst::WXCrystObjBasic:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 WXCrystObjBasic (wxWindow *parent)
 Constructor.

virtual ~WXCrystObjBasic ()
 Destructor.

virtual void CrystUpdate (const bool updateUI=false, const bool mutexlock=false)=0
 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)=0
 Update the User Interface, if necessary.

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).

void AddedToList (WXCrystObjBasicList *list)
 Tell the object it has been added to a list.

void RemovedFromList (WXCrystObjBasicList *list)
 Tell the object it has been removed from a list.

virtual bool Layout ()

Protected Attributes

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.


Detailed Description

Abstract base class for all objects in wxCryst.


Constructor & Destructor Documentation

ObjCryst::WXCrystObjBasic::WXCrystObjBasic wxWindow *  parent  ) 
 

Constructor.

virtual ObjCryst::WXCrystObjBasic::~WXCrystObjBasic  )  [virtual]
 

Destructor.


Member Function Documentation

virtual void ObjCryst::WXCrystObjBasic::AddChild WXCrystObjBasic pChild,
bool  doBottomLayout = true
[virtual]
 

Notify that a new children has been added, also adding it to the correct sizer (which can be the top sizer or not).

Parameters:
doBottomLayout ask for a new Layout of the window and of its parents.

Reimplemented in ObjCryst::WXCrystObj.

void ObjCryst::WXCrystObjBasic::AddedToList WXCrystObjBasicList list  ) 
 

Tell the object it has been added to a list.

virtual void ObjCryst::WXCrystObjBasic::BottomLayout WXCrystObjBasic pChild  )  [virtual]
 

Ask for a new Layout with recalculated size hints, because a child has been changed or added.

Parameters:
pChild: the modified child. If null, this will mean we are asking for a new layout of the window itself (useful when a sub-window is deleted).

Reimplemented in ObjCryst::WXCrystObj.

virtual void ObjCryst::WXCrystObjBasic::CrystUpdate const bool  updateUI = false,
const bool  mutexlock = false
[pure 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.

Implemented in ObjCryst::WXCrystObj, ObjCryst::WXFieldString, ObjCryst::WXFieldName, ObjCryst::WXFieldParBase, ObjCryst::WXFieldPar< T >, ObjCryst::WXFieldChoice, ObjCryst::WXCrystMenuBar, ObjCryst::WXCrystal, ObjCryst::WXDiffractionSingleCrystal, ObjCryst::WXOptimizationObj, ObjCryst::WXMolAtom, ObjCryst::WXMolBond, ObjCryst::WXMolBondAngle, ObjCryst::WXMolDihedralAngle, ObjCryst::WXMolecule, ObjCryst::WXPowderPattern, ObjCryst::WXPowderPatternBackground, ObjCryst::WXTexturePhaseMarchDollase, ObjCryst::WXRadiation, ObjCryst::WXFieldRefPar, ObjCryst::WXFieldOption, ObjCryst::WXRefinableObj, ObjCryst::WXZAtom, and ObjCryst::WXFieldPar< long >.

virtual bool ObjCryst::WXCrystObjBasic::Layout  )  [virtual]
 

void ObjCryst::WXCrystObjBasic::RemovedFromList WXCrystObjBasicList list  ) 
 

Tell the object it has been removed from a list.

virtual void ObjCryst::WXCrystObjBasic::UpdateUI const bool  mutexlock = false  )  [pure 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.

Implemented in ObjCryst::WXAtom, ObjCryst::WXCrystObj, ObjCryst::WXFieldString, ObjCryst::WXFieldName, ObjCryst::WXFieldPar< T >, ObjCryst::WXFieldChoice, ObjCryst::WXCrystMenuBar, ObjCryst::WXCrystal, ObjCryst::WXDiffractionSingleCrystal, ObjCryst::WXOptimizationObj, ObjCryst::WXMolAtom, ObjCryst::WXMolBond, ObjCryst::WXMolBondAngle, ObjCryst::WXMolDihedralAngle, ObjCryst::WXMolecule, ObjCryst::WXPowderPattern, ObjCryst::WXPowderPatternBackground, ObjCryst::WXTexturePhaseMarchDollase, ObjCryst::WXPowderPatternDiffraction, ObjCryst::WXRadiation, ObjCryst::WXFieldRefPar, ObjCryst::WXFieldOption, ObjCryst::WXRefinableObj, ObjCryst::WXScatteringPowerAtom, ObjCryst::WXScatteringPowerSphere, ObjCryst::WXZAtom, and ObjCryst::WXFieldPar< long >.


Member Data Documentation

bool ObjCryst::WXCrystObjBasic::mIsShown [protected]
 

Is the the window currently shown ?

CrystMutex ObjCryst::WXCrystObjBasic::mMutex [protected]
 

Mutex used to lock data when preparing to update the UI in non-main thread.

bool ObjCryst::WXCrystObjBasic::mNeedUpdateUI [protected]
 

Do we need to update the display ?

Reimplemented in ObjCryst::WXPowderPatternBackground.

std::set<WXCrystObjBasicList*> ObjCryst::WXCrystObjBasic::mvpList [protected]
 

WXCrystObjBasicList which are aware of this object, and which should be told on destruction.

WXCrystObjBasic* ObjCryst::WXCrystObjBasic::mWXCrystParent [protected]
 

Parent, if a WXCrystObjBasic itself.


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