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

A field with the name of a WXCrystObj. More...

+ Inheritance diagram for ObjCryst::WXFieldName:
+ Collaboration diagram for ObjCryst::WXFieldName:

Public Member Functions

 WXFieldName (wxWindow *parent, const string &label, WXCrystObj *owner, const int field_id, const int hsize=50, bool isEditable=true)
 
void OnEnter (wxCommandEvent &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)
 
void SetValue (const string &)
 This actually posts an UpdateUI event, so that it is safe to call it from a non-graphic thread. More...
 
const string GetValue () const
 Get the current name.
 
virtual void CrystUpdate (const bool updateUI=false, const bool mutexlock=false)
 This does nothing. More...
 
virtual void UpdateUI (const bool mutexlock=false)
 Update the User Interface, if necessary. More...
 
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, ...)
 
virtual void ValidateUserInput ()
 This function shall be called when a new value has been entered.
 
virtual void SetSize (int width, int height)
 Change the size of the field (excluding the title)
 
virtual void SetToolTip (const wxString &tip)
 Set tooltip for this window. It will be activated when going over the entry field.
 
- 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...
 
- 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 Attributes

WXCrystObjmpWXObj
 The WXCrystObj whose name is shown here.
 
string mValue
 Last name displayed.
 
wxTextCtrl * mpField
 The text window.
 
string mValueOld
 Last name displayed, before the value was changed by the user. More...
 
bool mIsSelfUpdating
 Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input. More...
 
- 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. More...
 

Detailed Description

A field with the name of a WXCrystObj.

Updating must be done by the WXCrystObj owner. For a simple string field linked directly to a string, use ObjCryst::WXFieldString

Definition at line 371 of file wxCryst.h.

Member Function Documentation

void ObjCryst::WXFieldName::CrystUpdate ( const bool  updateUI = false,
const bool  mutexlock = false 
)
virtual

This does nothing.

Updates should be done by the owner in the particular case of names.

Implements ObjCryst::WXCrystObjBasic.

Definition at line 486 of file wxCryst.cpp.

void ObjCryst::WXFieldName::OnEnter ( wxCommandEvent &  event)

When a new value is entered (must type it and then hit the 'enter' key).

The Field reads the new value, then forwards the event to its owner, who will take care of anything that must be done.

Definition at line 451 of file wxCryst.cpp.

void ObjCryst::WXFieldName::SetValue ( const string &  s)

This actually posts an UpdateUI event, so that it is safe to call it from a non-graphic thread.

Definition at line 467 of file wxCryst.cpp.

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

Definition at line 491 of file wxCryst.cpp.

Member Data Documentation

bool ObjCryst::WXFieldName::mIsSelfUpdating
protected

Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input.

Definition at line 409 of file wxCryst.h.

string ObjCryst::WXFieldName::mValueOld
protected

Last name displayed, before the value was changed by the user.

Not used yet, could be useful for undo.

Definition at line 406 of file wxCryst.h.


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