FOX/ObjCryst++  1.10.X (development)
wxCryst.h
1 /* ObjCryst++ Object-Oriented Crystallographic Library
2  (c) 2000-2002 Vincent Favre-Nicolin vincefn@users.sourceforge.net
3  2000-2001 University of Geneva (Switzerland)
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19 /*
20 * header file for the general wxCryst functions.
21 *
22 *
23 */
24 
25 #ifndef _VFN_WX_CRYST_H_
26 #define _VFN_WX_CRYST_H_
27 
28 #include <string>
29 #include <iostream>
30 #include <set>
31 #include <map>
32 
33 // wx headers, with or without precompilation
34 #include "wx/wxprec.h"
35 #ifdef __BORLANDC__
36  #pragma hdrstop
37 #endif
38 #ifndef WX_PRECOMP
39  #include "wx/wx.h"
40 #endif
41 
42 #include "ObjCryst/CrystVector/CrystVector.h"
43 
44 namespace ObjCryst
45 {
50 extern std::map<wxWindowID,std::pair<wxPoint,wxSize> > gvWindowPosition;
51 #if 1
52 
56 class wxMultiChoiceDialog_ListBox:public wxDialog
57 {
58  public:
59  wxMultiChoiceDialog_ListBox(wxWindow* parent, const wxString& message, const wxString& caption,
60  int n, const wxString* choices);
61  wxArrayInt GetSelections() const;
62  private:
63  wxListBox mListBox;
64 };
65 #endif
66 //
68 // Unique ID for menus incrementer
69 //
71 
75 {
76  public:
77  WXCRYST_ID();
78  operator long();
79  private:
80  long mIndex;
81  static long mCounter;
82 };
83 extern const long ID_WXOBJ_ENABLE; //These are used in ObjCryst/RefinableObj.cpp
84 extern const long ID_WXOBJ_DISABLE;// and defined in wxCryst/wxCryst.cpp
85 
86 #undef VFN_CRYST_MUTEX
87 #ifdef VFN_CRYST_MUTEX
88 
91 class CrystMutex:public wxMutex
92 {
93  public:
94  CrystMutex();
95  ~CrystMutex();
96  wxMutexError Lock();
97  wxMutexError Unlock();
98  private:
99  unsigned long mNbLock;
100 };
101 #else
102 #define CrystMutex wxMutex
103 #endif
104 #ifndef DOXYGEN_SKIP_THIS
105 // constants that are shared between several classes must
106 // be defined here. Constants declared as "extern..." are
107 // not correctly used in EVT_MENU() macros etc..
108 enum
109 {
110  ID_REFOBJ_MENU_OBJ=wxID_HIGHEST+1,
111  ID_REFOBJ_MENU_OBJ_SAVE,
112  ID_REFOBJ_MENU_OBJ_LOAD,
113  ID_REFOBJ_MENU_PAR,
114  ID_REFOBJ_MENU_PAR_FIXALL,
115  ID_REFOBJ_MENU_PAR_UNFIXALL,
116  ID_REFOBJ_MENU_PAR_RANDOMIZE,
117  ID_CRYST_UPDATEUI,
118  ID_WXOBJ_COLLAPSE,
119  ID_WXOBJ_NAME,
120  ID_WXFIELD
121 };
122 #endif
123 // Forward declaration
124 class WXCrystObjBasicList;
125 
127 class WXCrystObjBasic: public wxWindow
128 {
129  public:
131  WXCrystObjBasic(wxWindow* parent);
133  virtual ~WXCrystObjBasic();
148  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false)=0;
160  virtual void UpdateUI(const bool mutexlock=false)=0;
165  wxDEPRECATED(virtual void BottomLayout(WXCrystObjBasic *pChild));
170  virtual void AddChild(WXCrystObjBasic *pChild, bool doBottomLayout=true);
172  void AddedToList(WXCrystObjBasicList* list);
175  virtual bool Layout();
180  virtual void SetToolTip(const wxString& tip);
181  protected:
185  bool mIsShown;
189  CrystMutex mMutex;
192  std::set<WXCrystObjBasicList*> mvpList;
193 };
194 
197 {
198  public:
204  unsigned int GetNb()const;
207  void Add(WXCrystObjBasic *);
209  void Remove(WXCrystObjBasic *);
211  bool Show(bool);
219  void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
227  void UpdateUI(const bool mutexlock=false);
228  void Enable(bool enable);
229  private:
231  std::set<WXCrystObjBasic*> mvpWXCrystObj;
232 };
233 
234 class WXFieldName;
235 
249 {
250  public:
252  WXCrystObj(wxWindow* parent,int orient=wxHORIZONTAL,bool showName=true);
253  virtual ~WXCrystObj();
257  void OnToggleCollapse(wxCommandEvent & WXUNUSED(event));
261  virtual bool OnChangeName(const int id)=0;
262  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
263  virtual void UpdateUI(const bool mutexlock=false);
264  virtual void OnEnable(wxUpdateUIEvent &event);
265  virtual bool Enable(bool enable);
266  virtual void AddChild(WXCrystObjBasic *pChild, bool doBottomLayout=true);
267  protected:
269  wxBoxSizer *mpTopSizer;
271  wxBoxSizer *mpSizer;
279  wxButton * mpCollapseButton;
280  DECLARE_EVENT_TABLE()
281 };
282 
292 {
293  public:
297  WXField(wxWindow *parent,const string& label,const int field_id);
299  void SetLabel(const string&);
302  virtual void Revert()=0;
305  virtual bool SetForegroundColour(const wxColour& colour);
307  virtual void ValidateUserInput()=0;
309  virtual void SetSize(int width, int height);
310  protected:
312  wxBoxSizer *mpSizer;
314  wxStaticText *mpLabel;
316  const int mId;
317 };
318 
323 
328 class WXFieldString:public WXField
329 {
330  public:
331  WXFieldString(wxWindow *parent,string& st,const int field_id,
332  const int hsize=50, bool isEditable=true);
337  void OnEnter(wxCommandEvent & event);
339  void OnText(wxCommandEvent & WXUNUSED(event));
342  void SetValue(const string&);
344  const string GetValue() const;
345  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
346  virtual void UpdateUI(const bool mutexlock=false);
347  void Revert();
348  virtual void ValidateUserInput();
349  virtual void SetSize(int width, int height);
351  virtual void SetToolTip(const wxString& tip);
352  protected:
354  string* mpString;
356  string mValue;
358  wxTextCtrl *mpField;
361  string mValueOld;
365  DECLARE_EVENT_TABLE()
366 };
371 class WXFieldName:public WXField
372 {
373  public:
374  WXFieldName(wxWindow *parent,const string& label, WXCrystObj* owner,const int field_id,
375  const int hsize=50, bool isEditable=true);
380  void OnEnter(wxCommandEvent & event);
382  void OnText(wxCommandEvent & WXUNUSED(event));
385  void SetValue(const string&);
387  const string GetValue() const;
390  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
391  virtual void UpdateUI(const bool mutexlock=false);
392  void Revert();
393  virtual void ValidateUserInput();
394  virtual void SetSize(int width, int height);
396  virtual void SetToolTip(const wxString& tip);
397  protected:
401  string mValue;
403  wxTextCtrl *mpField;
406  string mValueOld;
410  DECLARE_EVENT_TABLE()
411 };
412 
417 {
418  public:
420  WXFieldParBase(wxWindow *parent,const string& label, const int field_id,
421  const int hsize=65);
426  void OnEnter(wxCommandEvent & WXUNUSED(event));
428  void OnText(wxCommandEvent & WXUNUSED(event));
430  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false)=0;
431  virtual void Revert()=0;
432  virtual void ValidateUserInput();
434  virtual void SetToolTip(const wxString& tip);
436  void SetFormat(const wxString &format);
437  protected:
439  virtual void ReadNewValue()=0;
441  wxTextCtrl *mpField;
446  wxString mFormat;
447  DECLARE_EVENT_TABLE()
448 };
449 
452 template<class T>class WXFieldPar:public WXFieldParBase
453 {
454  public:
456  WXFieldPar(wxWindow *parent,const string& label, const int field_id,
457  T *par,const int hsize=65);
459  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
460  virtual void UpdateUI(const bool mutexlock=false);
461  virtual void Revert();
464  void SetHumanValueScale(const T s);
465  protected:
467  virtual void ReadNewValue();
477 };
478 
482 class WXFieldChoice:public WXField
483 {
484  public:
486  WXFieldChoice(wxWindow *parent,const int field_id,
487  const string &name,const int hsize=80);
489  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
491  virtual void UpdateUI(const bool mutexlock=false);
492  void Revert();
494  void SetValue(const string&);
496  virtual void ValidateUserInput();
497  protected:
499  wxButton *mpButton;
500 };
501 
504 {
505  public:
507  WXCrystMenuBar(wxWindow *parent, WXCrystObj* owner);
509  void AddMenu(const string &name,const int menuId, const string& help="");
511  wxMenu& GetMenu(const int menuId);
513  void AddMenuItem(const int menuId, int id, const string& item, const string& help="",
514  const bool checkable= false);
516  void AddMenuItem(const int menuId,int id, const wxString& item,
517  wxMenu *subMenu, const wxString& helpString = _T(""));
518  virtual void CrystUpdate(const bool updateUI=false,const bool mutexlock=false);
519  virtual void UpdateUI(const bool mutexlock=false);
521  void OnPopupMenu(wxCommandEvent & event);
523  virtual void SetToolTip(const wxString& tip,long menu=0);
524  protected:
526  wxBoxSizer* mpSizer;
529  std::map<long,pair<wxMenu *,wxButton*> > mvpMenu;
530  DECLARE_EVENT_TABLE()
531 };
532 
533 } //namespace
534 
535 #endif //_VFN_WX_CRYST_H_
void SetHumanValueScale(const T s)
Set Coefficient between the value used by ObjCryst++ and the one to be displayed to the user...
Definition: wxCryst.cpp:697
wxButton * mpButton
The button to be clicked to change the value.
Definition: wxCryst.h:499
WXCrystObj * mpWXObj
The WXCrystObj whose name is shown here.
Definition: wxCryst.h:399
wxString mFormat
Format to be used, default = _T("%8f")
Definition: wxCryst.h:446
void SetValue(const string &)
This actually posts an UpdateUI event, so that it is safe to call it from a non-graphic thread...
Definition: wxCryst.cpp:467
virtual void SetToolTip(const wxString &tip)
Set tooltip for this window. It will be activated when going over the entry field.
Definition: wxCryst.cpp:584
WXFieldParBase(wxWindow *parent, const string &label, const int field_id, const int hsize=65)
Constructor.
Definition: wxCryst.cpp:548
A List of WXCrystObjBasic.
Definition: wxCryst.h:196
virtual void UpdateUI(const bool mutexlock=false)=0
Update the User Interface, if necessary.
bool mIsSelfUpdating
Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input...
Definition: wxCryst.h:409
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
virtual ~WXCrystObjBasic()
Destructor.
Definition: wxCryst.cpp:143
virtual void CrystUpdate(const bool updateUI=false, const bool mutexlock=false)
This gets a new value from the parameter.
Definition: wxCryst.cpp:611
wxTextCtrl * mpField
The text window.
Definition: wxCryst.h:358
string mValueOld
Last name displayed, before the value was changed by the user.
Definition: wxCryst.h:406
void SetValue(const string &)
This actually posts an UpdateUI event, so that it is safe to call it from a non-graphic thread...
Definition: wxCryst.cpp:346
void WXCrystValidateAllUserInput()
This function validates all user input (in a WXField) not yet taken into account, if needs be...
Definition: wxCryst.cpp:257
CrystMutex mMutex
Mutex used to lock data when preparing to update the UI in non-main thread.
Definition: wxCryst.h:189
T mValueOld
Last value.
Definition: wxCryst.h:473
void Remove(WXCrystObjBasic *)
remove an object from the list
Definition: wxCryst.cpp:206
Class to pick one choice...
Definition: wxCryst.h:482
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...
Definition: wxCryst.cpp:365
WXFieldChoice(wxWindow *parent, const int field_id, const string &name, const int hsize=80)
Constructor.
Definition: wxCryst.cpp:734
T mValue
The value displayed.
Definition: wxCryst.h:471
bool mIsSelfUpdating
Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input...
Definition: wxCryst.h:444
virtual void ReadNewValue()=0
Reads the new value when the Enter key is hit.
const int mId
The Id of this field.
Definition: wxCryst.h:316
WXFieldPar(wxWindow *parent, const string &label, const int field_id, T *par, const int hsize=65)
Constructor.
Definition: wxCryst.cpp:596
virtual void SetToolTip(const wxString &tip)
Set tooltip for this window. It will be activated when going over the entry field.
Definition: wxCryst.cpp:536
std::set< WXCrystObjBasic * > mvpWXCrystObj
List of pointers to the objects.
Definition: wxCryst.h:231
void Add(WXCrystObjBasic *)
Add an object to the list.
Definition: wxCryst.cpp:199
unsigned int GetNb() const
Number of objects.
Definition: wxCryst.cpp:197
bool mNeedUpdateUI
Do we need to update the display ?
Definition: wxCryst.h:187
void SetValue(const string &)
Used by the owner to change the name of the choice.
Definition: wxCryst.cpp:759
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 necessar...
virtual void SetToolTip(const wxString &tip)
Set tooltip for this window.
Definition: wxCryst.cpp:179
void OnEnter(wxCommandEvent &event)
When a new value is entered (must type it and then hit the 'enter' key).
Definition: wxCryst.cpp:330
virtual void ValidateUserInput()
This function shall be called when a new value has been entered.
Definition: wxCryst.cpp:578
bool mIsShown
Is the the window currently shown ?
Definition: wxCryst.h:185
bool mIsSelfUpdating
Set to true if the Field is being updated, so that no 'EVT_TEXT' is understood as user input...
Definition: wxCryst.h:364
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
Definition: wxCryst.cpp:946
virtual void SetSize(int width, int height)
Change the size of the field (excluding the title)
Definition: wxCryst.cpp:413
void OnText(wxCommandEvent &WXUNUSED(event))
Records when text is entered (either from self-updating or user input)
Definition: wxCryst.cpp:335
void OnToggleCollapse(wxCommandEvent &WXUNUSED(event))
Only display the title, and collapse everything else.
Definition: wxCryst.cpp:813
std::map< wxWindowID, std::pair< wxPoint, wxSize > > gvWindowPosition
Used to remember window positions.
Definition: wxCryst.cpp:51
virtual void Revert()=0
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
wxBoxSizer * mpSizer
The sizer of the menu.
Definition: wxCryst.h:526
bool Show(bool)
Show or hide all of the windows.
Definition: wxCryst.cpp:213
void SetLabel(const string &)
Change the field's label.
Definition: wxCryst.cpp:285
virtual void CrystUpdate(const bool updateUI=false, const bool mutexlock=false)
This does nothing.
Definition: wxCryst.cpp:486
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
Definition: wxCryst.cpp:491
virtual void SetToolTip(const wxString &tip, long menu=0)
Set tooltip for each menu.
Definition: wxCryst.cpp:962
virtual void Revert()
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
Definition: wxCryst.cpp:686
wxMenu & GetMenu(const int menuId)
Get access to a menu.
Definition: wxCryst.cpp:922
bool mIsExpanded
To be used for collapsing the sub-objects.
Definition: wxCryst.h:275
WXFieldName * mpWXTitle
The title.
Definition: wxCryst.h:273
void OnEnter(wxCommandEvent &WXUNUSED(event))
When a new value is entered (must type it and then hit the 'enter' key).
Definition: wxCryst.cpp:563
A field with the name of a WXCrystObj.
Definition: wxCryst.h:371
This is the abstract base class for all fields, wether they contain a floating-point parameter...
Definition: wxCryst.h:291
void CrystUpdate(const bool updateUI=false, const bool mutexlock=false)
Forces all objects in the list to update.
Definition: wxCryst.cpp:223
WXCrystObjBasic * mWXCrystParent
Parent, if a WXCrystObjBasic itself.
Definition: wxCryst.h:183
void OnText(wxCommandEvent &WXUNUSED(event))
Records when text is entered (either from self-updating or user input)
Definition: wxCryst.cpp:568
WXCrystObjBasicList mList
All windows but the title and collapse button are in this list.
Definition: wxCryst.h:277
void Revert()
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
Definition: wxCryst.cpp:755
WXCrystMenuBar(wxWindow *parent, WXCrystObj *owner)
Ctor.
Definition: wxCryst.cpp:901
void RemovedFromList(WXCrystObjBasicList *list)
Definition: wxCryst.cpp:172
void AddedToList(WXCrystObjBasicList *list)
Definition: wxCryst.cpp:171
void Revert()
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
Definition: wxCryst.cpp:515
virtual void SetSize(int width, int height)
Change the size of the field (excluding the title)
Definition: wxCryst.cpp:298
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...
Definition: wxCryst.cpp:943
Abstract base class for all objects in wxCryst.
Definition: wxCryst.h:127
wxTextCtrl * mpField
The field in which the value is written.
Definition: wxCryst.h:441
void AddMenuItem(const int menuId, int id, const string &item, const string &help="", const bool checkable=false)
Add an entry to a menu.
Definition: wxCryst.cpp:928
virtual void CrystUpdate(const bool updateUI=false, const bool mutexlock=false)
Does nothing.
Definition: wxCryst.cpp:746
virtual void Revert()=0
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
void OnEnter(wxCommandEvent &event)
When a new value is entered (must type it and then hit the 'enter' key).
Definition: wxCryst.cpp:451
const string GetValue() const
Get the current name.
Definition: wxCryst.cpp:481
virtual bool SetForegroundColour(const wxColour &colour)
Change the colour of the field's title.
Definition: wxCryst.cpp:291
std::map< long, pair< wxMenu *, wxButton * > > mvpMenu
List of menus, first is the menu Id and second is a pair of
Definition: wxCryst.h:529
Provides the same functionnality as wxMultiChoiceDialog, but always using a wxListBox, which is much easier when selecting a large number of successive choices (using shift-click).
Definition: wxCryst.h:56
string mValue
Last name displayed.
Definition: wxCryst.h:401
virtual bool OnChangeName(const int id)=0
When a WXFieldName has been changed by the user, it is handled here.
wxBoxSizer * mpSizer
The horizontal sizer in which the title, button, fields, are put.
Definition: wxCryst.h:312
A field for a parameter.
Definition: wxCryst.h:416
~WXCrystObjBasicList()
Destructor.
Definition: wxCryst.cpp:189
WXCrystObj(wxWindow *parent, int orient=wxHORIZONTAL, bool showName=true)
Constructor, with a.
Definition: wxCryst.cpp:778
WXCrystObjBasic(wxWindow *parent)
Constructor.
Definition: wxCryst.cpp:129
const string GetValue() const
Get the current name.
Definition: wxCryst.cpp:360
virtual void UpdateUI(const bool mutexlock=false)
Does nothing.
Definition: wxCryst.cpp:750
virtual void CrystUpdate(const bool updateUI=false, const bool mutexlock=false)=0
This gets a new value from the parameter.
Base class for all displayed ObjCryst objects (with a title, and a sizer to stack objects)...
Definition: wxCryst.h:248
string mValue
Last name displayed.
Definition: wxCryst.h:356
T * mpValue
A pointer to the value displayed.
Definition: wxCryst.h:469
virtual void SetSize(int width, int height)
Change the size of the field (excluding the title)
Definition: wxCryst.cpp:531
wxTextCtrl * mpField
The text window.
Definition: wxCryst.h:403
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 ...
Definition: wxCryst.cpp:855
virtual void ValidateUserInput()
Unnecessary here. Any change is immediately taken into account.
Definition: wxCryst.cpp:763
virtual void SetToolTip(const wxString &tip)
Set tooltip for this window. It will be activated when going over the entry field.
Definition: wxCryst.cpp:419
void OnPopupMenu(wxCommandEvent &event)
Event handler to popu the menu when the button is clicked.
Definition: wxCryst.cpp:950
virtual void ValidateUserInput()=0
This function shall be called when a new value has been entered.
void AddMenu(const string &name, const int menuId, const string &help="")
Add a menu.
Definition: wxCryst.cpp:909
WXCrystObjBasicList()
Constructor.
Definition: wxCryst.cpp:186
virtual void ReadNewValue()
Reads the new value when the Enter key is hit.
void SetFormat(const wxString &format)
Set Format.
Definition: wxCryst.cpp:586
string mValueOld
Last name displayed, before the value was changed by the user.
Definition: wxCryst.h:361
wxBoxSizer * mpSizer
Sizer including all sub-objects.
Definition: wxCryst.h:271
wxDEPRECATED(virtual void BottomLayout(WXCrystObjBasic *pChild))
Redo the Layout for the object and ask parent to take it into account.
A field for a parameter.
Definition: wxCryst.h:452
Class to automatically assign a unique wxID to each window.
Definition: wxCryst.h:74
The namespace which includes all objects (crystallographic and algorithmic) in ObjCryst++.
Definition: Atom.cpp:47
wxBoxSizer * mpTopSizer
Top sizer including the title and WXCrystObj::mpSizer.
Definition: wxCryst.h:269
wxStaticText * mpLabel
The label.
Definition: wxCryst.h:314
virtual void ValidateUserInput()
This function shall be called when a new value has been entered.
Definition: wxCryst.cpp:522
virtual void ValidateUserInput()
This function shall be called when a new value has been entered.
Definition: wxCryst.cpp:404
T mHumanScale
Coefficient between the value used by ObjCryst++ and the one to be displayed to the user...
Definition: wxCryst.h:476
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
Definition: wxCryst.cpp:834
std::set< WXCrystObjBasicList * > mvpList
WXCrystObjBasicList which are aware of this object, and which should be told on destruction.
Definition: wxCryst.h:192
string * mpString
The WXCrystObj whose name is shown here.
Definition: wxCryst.h:354
wxButton * mpCollapseButton
The collapse button.
Definition: wxCryst.h:279
void OnText(wxCommandEvent &WXUNUSED(event))
Records when text is entered (either from self-updating or user input)
Definition: wxCryst.cpp:456
virtual void UpdateUI(const bool mutexlock=false)
Update the User Interface, if necessary.
Definition: wxCryst.cpp:381
WXField(wxWindow *parent, const string &label, const int field_id)
Constructor, specifying the label of the field.
Definition: wxCryst.cpp:273
void Revert()
After a user entry, this allows to go back to the last value, if for some reason the entry was reject...
Definition: wxCryst.cpp:397
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...
Definition: wxCryst.cpp:826
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 ...
Definition: wxCryst.cpp:159
A field which directly links to a string.
Definition: wxCryst.h:328
void UpdateUI(const bool mutexlock=false)
Forces all objects in the list to update.
Definition: wxCryst.cpp:233
Our own local menu bar, using buttons and Popup menus.
Definition: wxCryst.h:503