FOX/ObjCryst++  2022
ObjCryst::WXFieldPar< T > Class Template Reference

A field for a parameter. More...

+ Inheritance diagram for ObjCryst::WXFieldPar< T >:
+ Collaboration diagram for ObjCryst::WXFieldPar< T >:

Public Member Functions

 WXFieldPar (wxWindow *parent, const string &label, const int field_id, T *par, const int hsize=65)
 Constructor.
 
virtual void CrystUpdate (const bool updateUI=false, const bool mutexlock=false)
 This gets a new value from the parameter.
 
virtual void UpdateUI (const bool mutexlock=false)
 Update the User Interface, if necessary. More...
 
virtual void Revert ()
 After a user entry, this allows to go back to the last value, if for some reason the entry was rejected (because the object is currently busy, ...)
 
void SetHumanValueScale (const T s)
 Set Coefficient between the value used by ObjCryst++ and the one to be displayed to the user. More...
 
 WXFieldPar (wxWindow *parent, const string &label, const int id, long *par, const int hsize)
 
void UpdateUI (const bool lock)
 Update the User Interface, if necessary. More...
 
void UpdateUI (const bool lock)
 Update the User Interface, if necessary. More...
 
- Public Member Functions inherited from ObjCryst::WXFieldParBase
 WXFieldParBase (wxWindow *parent, const string &label, const int field_id, const int hsize=65)
 Constructor.
 
void OnEnter (wxCommandEvent &WXUNUSED(event))
 When a new value is entered (must type it and then hit the 'enter' key). More...
 
void OnText (wxCommandEvent &WXUNUSED(event))
 Records when text is entered (either from self-updating or user input)
 
virtual void ValidateUserInput ()
 This function shall be called when a new value has been entered.
 
virtual void SetToolTip (const wxString &tip)
 Set tooltip for this window. It will be activated when going over the entry field.
 
void SetFormat (const wxString &format)
 Set Format.
 
- Public Member Functions inherited from ObjCryst::WXField
 WXField (wxWindow *parent, const string &label, const int field_id)
 Constructor, specifying the label of the field.
 
void SetLabel (const string &)
 Change the field's label.
 
virtual bool SetForegroundColour (const wxColour &colour)
 Change the colour of the field's title. More...
 
virtual void SetSize (int width, int height)
 Change the size of the field (excluding the title)
 
- 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...
 
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...
 
void AddedToList (WXCrystObjBasicList *list)
 
void RemovedFromList (WXCrystObjBasicList *list)
 
virtual bool Layout ()
 

Protected Member Functions

virtual void ReadNewValue ()
 Reads the new value when the Enter key is hit.
 
void ReadNewValue ()
 Reads the new value when the Enter key is hit.
 
void ReadNewValue ()
 Reads the new value when the Enter key is hit.
 

Protected Attributes

T * mpValue
 A pointer to the value displayed.
 
mValue
 The value displayed.
 
mValueOld
 Last value.
 
mHumanScale
 Coefficient between the value used by ObjCryst++ and the one to be displayed to the user. More...
 
- Protected Attributes inherited from ObjCryst::WXFieldParBase
wxTextCtrl * mpField
 The field in which the value is written.
 
bool mIsSelfUpdating
 Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input.
 
wxString mFormat
 Format to be used, default = _T("%8f")
 
- Protected Attributes inherited from ObjCryst::WXField
wxBoxSizer * mpSizer
 The horizontal sizer in which the title, button, fields, are put.
 
wxStaticText * mpLabel
 The label.
 
const int mId
 The Id of this field.
 
- 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.
 

Detailed Description

template<class T>
class ObjCryst::WXFieldPar< T >

A field for a parameter.

Template version. If the parameter is a RefinablePar, use WXFieldRefPar instead.

Definition at line 452 of file wxCryst.h.

Member Function Documentation

◆ SetHumanValueScale()

template<class T >
void ObjCryst::WXFieldPar< T >::SetHumanValueScale ( const T  s)

Set Coefficient between the value used by ObjCryst++ and the one to be displayed to the user.

Typically, 180/pi

Definition at line 702 of file wxCryst.cpp.

◆ UpdateUI() [1/3]

void ObjCryst::WXFieldPar< REAL >::UpdateUI ( const bool  mutexlock)
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.

Implements ObjCryst::WXCrystObjBasic.

Definition at line 633 of file wxCryst.cpp.

◆ UpdateUI() [2/3]

void ObjCryst::WXFieldPar< long >::UpdateUI ( const bool  mutexlock)
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.

Implements ObjCryst::WXCrystObjBasic.

Definition at line 653 of file wxCryst.cpp.

◆ UpdateUI() [3/3]

template<class T >
virtual void ObjCryst::WXFieldPar< T >::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.

Implements ObjCryst::WXCrystObjBasic.

Member Data Documentation

◆ mHumanScale

template<class T >
T ObjCryst::WXFieldPar< T >::mHumanScale
protected

Coefficient between the value used by ObjCryst++ and the one to be displayed to the user.

Typically, 180/pi

Definition at line 476 of file wxCryst.h.


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