53 #include <wx/statline.h>
54 #include <wx/spinbutt.h>
55 #include <wx/spinctrl.h>
56 #include <wx/splitter.h>
57 #include <wx/listctrl.h>
58 #include <wx/treectrl.h>
59 #include <wx/notebook.h>
64 #define ID_NOTEBOOK 10000
65 #define ID_B_DONE 10001
66 #define ID_B_CANCEL 10002
70 #define ID_TEXTCTRL 10004
71 #define ID_SPINBUTTON 10005
72 #define ID_C_HIGHLIGHT 10006
73 #define ID_RADIOBOX 10007
74 #define ID_B_Q_LOW 10008
75 #define ID_B_Q_MED 10009
76 #define ID_B_Q_HIGH 10010
79 #define ID_C_CACHE_ON 10011
81 #define ID_T_CACHE_1 10013
82 #define ID_B_CACHE_BROWSE 10014
83 #define ID_T_CACHE_FOLDER 10015
84 #define ID_T_CACHE_2 10016
85 #define ID_B_CACHE_CLEAR 10017
88 #define ID_C_ANNOT_RO 10018
89 #define ID_T_LAUNCH 10019
90 #define ID_T_NSTRUCT 10020
91 #define ID_T_FOOT 10021
92 #define ID_T_SEPARATION 10022
93 #define ID_C_PROXIMAL 10023
108 #define DECLARE_AND_FIND_WINDOW_RETURN_ON_ERR(var, id, type) \
110 var = wxDynamicCast(FindWindow(id), type); \
112 ERRORMSG("Can't find window with id " << id); \
122 #define SET_ISPINCTRL_FROM_REGISTRY_VALUE(section, name, iSpinCtrl) \
125 if (!RegistryGetInteger((section), (name), &value) || !((iSpinCtrl)->SetInteger(value))) \
126 WARNINGMSG("PreferencesDialog::PreferencesDialog() - error with " << (name)); \
129 #define SET_FSPINCTRL_FROM_REGISTRY_VALUE(section, name, fSpinCtrl) \
132 if (!RegistryGetDouble((section), (name), &value) || !((fSpinCtrl)->SetDouble(value))) \
133 WARNINGMSG("PreferencesDialog::PreferencesDialog() - error with " << (name)); \
136 #define SET_CHECKBOX_FROM_REGISTRY_VALUE(section, name, id) \
139 wxCheckBox *box = wxDynamicCast(FindWindow(id), wxCheckBox); \
140 if (!box || !RegistryGetBoolean((section), (name), &on)) \
141 WARNINGMSG("PreferencesDialog::PreferencesDialog() - error with " << (name)); \
146 #define SET_RADIOBOX_FROM_REGISTRY_VALUE(section, name, id) \
149 wxRadioBox *radio = wxDynamicCast(FindWindow(id), wxRadioBox); \
150 if (!radio || !RegistryGetString((section), (name), &value)) \
151 WARNINGMSG("PreferencesDialog::PreferencesDialog() - error with " << (name)); \
153 radio->SetStringSelection(value.c_str()); \
156 #define SET_TEXTCTRL_FROM_REGISTRY_VALUE(section, name, id) \
159 wxTextCtrl *text = wxDynamicCast(FindWindow(id), wxTextCtrl); \
160 if (!text || !RegistryGetString((section), (name), &value)) \
161 WARNINGMSG("PreferencesDialog::PreferencesDialog() - error with " << (name)); \
163 text->SetValue(value.c_str()); \
168 wxDialog(parent, -1,
"Preferences", wxPoint(400, 100), wxDefaultSize, wxDEFAULT_DIALOG_STYLE)
199 wxCommandEvent fakeCheck(wxEVT_COMMAND_CHECKBOX_CLICKED,
ID_C_CACHE_ON);
214 topSizer->SetSizeHints(
this);
231 #define SET_INTEGER_REGISTRY_VALUE_IF_DIFFERENT(section, name, iSpinCtrl, changedPtr) \
233 int oldValue, newValue; \
234 if (!RegistryGetInteger((section), (name), &oldValue)) throw "RegistryGetInteger() failed"; \
235 if (!((iSpinCtrl)->GetInteger(&newValue))) throw "GetInteger() failed"; \
236 if (newValue != oldValue) { \
237 if (!RegistrySetInteger((section), (name), newValue)) \
238 throw "RegistrySetInteger() failed"; \
239 if (changedPtr != NULL) *((bool*) changedPtr) = true; \
243 #define SET_DOUBLE_REGISTRY_VALUE_IF_DIFFERENT(section, name, fSpinCtrl, changedPtr) \
245 double oldValue, newValue; \
246 if (!RegistryGetDouble((section), (name), &oldValue)) throw "RegistryGetInteger() failed"; \
247 if (!((fSpinCtrl)->GetDouble(&newValue))) throw "GetInteger() failed"; \
248 if (newValue != oldValue) { \
249 if (!RegistrySetDouble((section), (name), newValue)) \
250 throw "RegistrySetInteger() failed"; \
251 if (changedPtr != NULL) *((bool*) changedPtr) = true; \
255 #define SET_BOOL_REGISTRY_VALUE_IF_DIFFERENT(section, name, id, changedPtr) \
257 bool oldValue, newValue; \
258 if (!RegistryGetBoolean((section), (name), &oldValue)) throw "RegistryGetBoolean() failed"; \
259 wxCheckBox *box = wxDynamicCast(FindWindow(id), wxCheckBox); \
260 if (!box) throw "Can't get wxCheckBox*"; \
261 newValue = box->GetValue(); \
262 if (newValue != oldValue) { \
263 if (!RegistrySetBoolean((section), (name), newValue, true)) \
264 throw "RegistrySetBoolean() failed"; \
265 if (changedPtr != NULL) *((bool*) changedPtr) = true; \
269 #define SET_RADIO_REGISTRY_VALUE_IF_DIFFERENT(section, name, id, changedPtr) \
271 string oldValue, newValue; \
272 if (!RegistryGetString((section), (name), &oldValue)) throw "RegistryGetString() failed"; \
273 wxRadioBox *radio = wxDynamicCast(FindWindow(id), wxRadioBox); \
274 if (!radio) throw "Can't get wxRadioBox*"; \
275 newValue = radio->GetStringSelection().c_str(); \
276 if (newValue != oldValue) { \
277 if (!RegistrySetString((section), (name), newValue)) \
278 throw "RegistrySetString() failed"; \
279 if (changedPtr != NULL) *((bool*) changedPtr) = true; \
283 #define SET_STRING_REGISTRY_VALUE_IF_DIFFERENT(section, name, textCtrl) \
285 string oldValue, newValue; \
286 if (!RegistryGetString((section), (name), &oldValue)) throw "RegistryGetString() failed"; \
287 newValue = (textCtrl)->GetValue().c_str(); \
288 if (newValue != oldValue) { \
289 if (!RegistrySetString((section), (name), newValue)) \
290 throw "RegistrySetString() failed"; \
297 bool okay =
true, qualityChanged =
false;
338 }
catch (
const char *err) {
339 ERRORMSG(
"Error setting registry values - " << err);
355 switch (event.GetId()) {
396 path = wxDirSelector(
"Select a cache folder:", tCache->GetValue());
397 if (path.size() > 0 && wxDirExists(path.c_str()))
398 tCache->SetValue(path);
419 st1->Enable(c->GetValue());
420 b1->Enable(c->GetValue());
421 t->Enable(c->GetValue());
422 st2->Enable(c->GetValue());
423 b2->Enable(c->GetValue());
424 iCacheSize->GetTextCtrl()->Enable(c->GetValue());
440 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
442 wxNotebook *item2 =
new wxNotebook( parent,
ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 );
444 wxPanel *item3 =
new wxPanel( item2, -1 );
446 item2->AddPage( item3,
"Quality" );
448 wxPanel *item4 =
new wxPanel( item2, -1 );
450 item2->AddPage( item4,
"Cache" );
452 wxPanel *item5 =
new wxPanel( item2, -1 );
454 item2->AddPage( item5,
"Advanced" );
456 item0->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 );
458 wxBoxSizer *item6 =
new wxBoxSizer( wxHORIZONTAL );
460 wxButton *item7 =
new wxButton( parent,
ID_B_DONE,
"Done", wxDefaultPosition, wxDefaultSize, 0 );
462 item6->Add( item7, 0, wxALIGN_CENTRE|wxALL, 5 );
464 item6->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
466 wxButton *item8 =
new wxButton( parent,
ID_B_CANCEL,
"Cancel", wxDefaultPosition, wxDefaultSize, 0 );
467 item6->Add( item8, 0, wxALIGN_CENTRE|wxALL, 5 );
469 item0->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );
473 parent->SetAutoLayout(
TRUE );
474 parent->SetSizer( item0 );
477 item0->Fit( parent );
478 item0->SetSizeHints( parent );
491 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
493 wxStaticBox *item2 =
new wxStaticBox( parent, -1,
"Advanced" );
494 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
496 wxCheckBox *item3 =
new wxCheckBox( parent,
ID_C_ANNOT_RO,
"CDD annotations are read-only", wxDefaultPosition, wxDefaultSize, 0 );
497 item3->SetValue(
TRUE );
498 item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 );
501 wxFlexGridSizer *item4 =
new wxFlexGridSizer( 1, 0, 0, 0 );
502 item4->AddGrowableCol( 0 );
504 wxTextCtrl *item5 =
new wxTextCtrl( parent,
ID_T_LAUNCH,
"", wxDefaultPosition, wxSize(80,-1), 0 );
505 item4->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
507 wxStaticText *item6 =
new wxStaticText( parent,
ID_TEXT,
"Browser launch", wxDefaultPosition, wxDefaultSize, 0 );
508 item4->Add( item6, 0, wxALIGN_CENTRE|wxALL, 5 );
510 item1->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );
513 wxFlexGridSizer *item7 =
new wxFlexGridSizer( 2, 0, 0, 0 );
514 item7->AddGrowableCol( 0 );
516 wxStaticText *item8 =
new wxStaticText( parent,
ID_TEXT,
"Max structures to load:", wxDefaultPosition, wxDefaultSize, 0 );
517 item7->Add( item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
520 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
521 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
525 wxStaticText *item11 =
new wxStaticText( parent,
ID_TEXT,
"Footprint excess residues:", wxDefaultPosition, wxDefaultSize, 0 );
526 item7->Add( item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
529 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
530 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
534 item1->Add( item7, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
536 item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
538 wxStaticBox *item15 =
new wxStaticBox( parent, -1,
wxT(
"Stereo Settings") );
539 wxStaticBoxSizer *item14 =
new wxStaticBoxSizer( item15, wxVERTICAL );
541 wxFlexGridSizer *item16 =
new wxFlexGridSizer( 3, 0, 0 );
542 item16->AddGrowableCol( 0 );
544 wxStaticText *item17 =
new wxStaticText( parent,
ID_TEXT,
wxT(
"Eye separation (degrees):"), wxDefaultPosition, wxDefaultSize, 0 );
545 item16->Add( item17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
548 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
549 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
553 wxStaticText *item20 =
new wxStaticText( parent,
ID_TEXT,
wxT(
"Proximal (cross-eyed):"), wxDefaultPosition, wxDefaultSize, 0 );
554 item16->Add( item20, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
556 wxCheckBox *item21 =
new wxCheckBox( parent,
ID_C_PROXIMAL,
wxT(
""), wxDefaultPosition, wxDefaultSize, 0 );
557 item16->Add( item21, 0, wxALIGN_CENTRE|wxALL, 5 );
559 item16->Add( 5, 5, 0, wxALIGN_CENTRE|wxALL, 5 );
561 item14->Add( item16, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
563 item0->Add( item14, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
567 parent->SetAutoLayout(
TRUE );
568 parent->SetSizer( item0 );
571 item0->Fit( parent );
572 item0->SetSizeHints( parent );
581 wxFlexGridSizer *item0 =
new wxFlexGridSizer( 2, 0, 0 );
583 wxStaticBox *item2 =
new wxStaticBox( parent, -1,
"Rendering Settings" );
584 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
585 wxFlexGridSizer *item3 =
new wxFlexGridSizer( 2, 0, 0 );
586 item3->AddGrowableCol( 0 );
588 wxStaticText *item5 =
new wxStaticText(parent,
ID_TEXT,
"Worm segments:", wxDefaultPosition, wxDefaultSize, 0);
589 item3->Add(item5, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
592 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
593 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
597 wxStaticText *item8 =
new wxStaticText(parent,
ID_TEXT,
"Worm sides:", wxDefaultPosition, wxDefaultSize, 0);
598 item3->Add(item8, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
601 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
602 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
606 wxStaticText *item11 =
new wxStaticText(parent,
ID_TEXT,
"Bond sides:", wxDefaultPosition, wxDefaultSize, 0);
607 item3->Add(item11, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
610 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
611 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
615 wxStaticText *item14 =
new wxStaticText(parent,
ID_TEXT,
"Helix sides:", wxDefaultPosition, wxDefaultSize, 0);
616 item3->Add(item14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
619 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
620 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
624 wxStaticText *item17 =
new wxStaticText(parent,
ID_TEXT,
"Atom slices:", wxDefaultPosition, wxDefaultSize, 0);
625 item3->Add(item17, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
628 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
629 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
633 wxStaticText *item20 =
new wxStaticText(parent,
ID_TEXT,
"Atom stacks:", wxDefaultPosition, wxDefaultSize, 0);
634 item3->Add(item20, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
637 wxDefaultPosition, wxSize(80,SPIN_CTRL_HEIGHT), 0,
638 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
642 item1->Add(item3, 0, wxALIGN_CENTRE|wxALL, 5);
644 wxFlexGridSizer *item22 =
new wxFlexGridSizer( 2, 0, 0, 0 );
645 item22->AddGrowableCol( 1 );
647 wxStaticText *item23 =
new wxStaticText( parent,
ID_TEXT,
"Highlights:", wxDefaultPosition, wxDefaultSize, 0 );
648 item22->Add( item23, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
650 wxCheckBox *item24 =
new wxCheckBox( parent,
ID_C_HIGHLIGHT,
"", wxDefaultPosition, wxDefaultSize, 0 );
651 item22->Add( item24, 0, wxALIGN_CENTRE|wxLEFT|wxTOP|wxBOTTOM, 5 );
653 wxStaticText *item25 =
new wxStaticText( parent,
ID_TEXT,
"Projection:", wxDefaultPosition, wxDefaultSize, 0 );
654 item22->Add( item25, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
661 wxRadioBox *item26 =
new wxRadioBox( parent,
ID_RADIOBOX,
"", wxDefaultPosition, wxDefaultSize, 2, strs26, 1, wxRA_SPECIFY_COLS );
662 item22->Add( item26, 0, wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
664 item1->Add( item22, 0, wxALIGN_CENTRE, 5 );
666 item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
668 wxStaticBox *item28 =
new wxStaticBox( parent, -1,
"Presets" );
669 wxStaticBoxSizer *item27 =
new wxStaticBoxSizer( item28, wxHORIZONTAL );
671 wxBoxSizer *item29 =
new wxBoxSizer( wxVERTICAL );
673 wxButton *item30 =
new wxButton( parent,
ID_B_Q_LOW,
"Low", wxDefaultPosition, wxDefaultSize, 0 );
674 item29->Add( item30, 0, wxALIGN_CENTRE|wxALL, 5 );
676 item29->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
678 wxButton *item31 =
new wxButton( parent,
ID_B_Q_MED,
"Medium", wxDefaultPosition, wxDefaultSize, 0 );
679 item29->Add( item31, 0, wxALIGN_CENTRE|wxALL, 5 );
681 item29->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
683 wxButton *item32 =
new wxButton( parent,
ID_B_Q_HIGH,
"High", wxDefaultPosition, wxDefaultSize, 0 );
684 item29->Add( item32, 0, wxALIGN_CENTRE|wxALL, 5 );
686 item27->Add( item29, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
688 item0->Add( item27, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 );
692 parent->SetAutoLayout(
TRUE);
693 parent->SetSizer(item0);
697 item0->SetSizeHints(parent);
706 wxBoxSizer *item0 =
new wxBoxSizer( wxVERTICAL );
708 wxStaticBox *item2 =
new wxStaticBox( parent, -1,
"Cache Settings" );
709 wxStaticBoxSizer *item1 =
new wxStaticBoxSizer( item2, wxVERTICAL );
711 wxCheckBox *item3 =
new wxCheckBox( parent,
ID_C_CACHE_ON,
"Enable Biostruc cache", wxDefaultPosition, wxDefaultSize, 0 );
712 item1->Add( item3, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10 );
714 wxStaticLine *item4 =
new wxStaticLine( parent,
ID_LINE, wxDefaultPosition, wxSize(20,-1), wxLI_HORIZONTAL );
715 item1->Add( item4, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
717 wxBoxSizer *item5 =
new wxBoxSizer( wxVERTICAL );
719 wxFlexGridSizer *item6 =
new wxFlexGridSizer( 1, 0, 0, 0 );
720 item6->AddGrowableCol( 1 );
722 wxStaticText *item7 =
new wxStaticText( parent,
ID_T_CACHE_1,
"Cache folder:", wxDefaultPosition, wxDefaultSize, 0 );
723 item6->Add( item7, 0, wxALIGN_CENTRE|wxLEFT|wxRIGHT|wxTOP, 5 );
725 item6->Add( 20, 20, 0, wxALIGN_CENTRE|wxLEFT|wxRIGHT|wxTOP, 5 );
727 wxButton *item8 =
new wxButton( parent,
ID_B_CACHE_BROWSE,
"Browse", wxDefaultPosition, wxDefaultSize, 0 );
728 item6->Add( item8, 0, wxALIGN_CENTRE|wxLEFT|wxRIGHT|wxTOP, 5 );
730 item5->Add( item6, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );
732 wxTextCtrl *item9 =
new wxTextCtrl( parent,
ID_T_CACHE_FOLDER,
"", wxDefaultPosition, wxDefaultSize, 0 );
733 item5->Add( item9, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5 );
735 item5->Add( 20, 20, 0, wxALIGN_CENTRE, 5 );
737 wxFlexGridSizer *item10 =
new wxFlexGridSizer( 1, 0, 0, 0 );
738 item10->AddGrowableCol( 2 );
740 wxStaticText *item11 =
new wxStaticText( parent,
ID_T_CACHE_2,
"Maximum folder size (MB):", wxDefaultPosition, wxDefaultSize, 0 );
741 item10->Add( item11, 0, wxALIGN_CENTRE|wxALL, 5 );
745 wxDefaultPosition, wxSize(50,SPIN_CTRL_HEIGHT), 0,
746 wxDefaultPosition, wxSize(-1,SPIN_CTRL_HEIGHT));
750 item10->Add( 20, 20, 0, wxALIGN_CENTRE|wxALL, 5 );
752 wxButton *item14 =
new wxButton( parent,
ID_B_CACHE_CLEAR,
"Clear now", wxDefaultPosition, wxDefaultSize, 0 );
753 item10->Add( item14, 0, wxALIGN_CENTRE|wxALL, 5 );
755 item5->Add( item10, 0, wxGROW|wxALIGN_CENTER_VERTICAL, 5 );
757 item1->Add( item5, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
759 item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5 );
763 parent->SetAutoLayout(
TRUE );
764 parent->SetSizer( item0 );
767 item0->Fit( parent );
768 item0->SetSizeHints( parent );
EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX, CAdjustFeaturesForGaps::OnKnownUnknownSelected) EVT_CHECKBOX(ID_CADJUSTFEATURES_CHECKBOX1
wxTextCtrl * GetTextCtrl(void) const
wxTextCtrl * GetTextCtrl(void) const
void PostRedrawAllStructures(void)
void OnCheckbox(wxCommandEvent &event)
ncbi::IntegerSpinCtrl * iAtomSlices
ncbi::FloatingPointSpinCtrl * fSeparation
PreferencesDialog(wxWindow *parent)
ncbi::IntegerSpinCtrl * iWormSides
ncbi::IntegerSpinCtrl * iMaxStructs
ncbi::IntegerSpinCtrl * iHelixSides
ncbi::IntegerSpinCtrl * iBondSides
ncbi::IntegerSpinCtrl * iAtomStacks
ncbi::IntegerSpinCtrl * iFootRes
void OnCloseWindow(wxCloseEvent &event)
ncbi::IntegerSpinCtrl * iWormSegments
void OnButton(wxCommandEvent &event)
ncbi::IntegerSpinCtrl * iCacheSize
void TruncateCache(unsigned int maxSize)
Include a standard set of the NCBI C++ Toolkit most basic headers.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_SCOPE(ns)
Define a new scope.
Messenger * GlobalMessenger(void)
const struct ncbi::grid::netcache::search::fields::SIZE size
Process information in the NCBI Registry, including working with configuration files.
static IntegerSpinCtrl * giFootRes
#define ID_B_CACHE_BROWSE
static IntegerSpinCtrl * giMaxStructs
static IntegerSpinCtrl * giWormSegments
#define DECLARE_AND_FIND_WINDOW_RETURN_ON_ERR(var, id, type)
#define SET_RADIOBOX_FROM_REGISTRY_VALUE(section, name, id)
#define SET_RADIO_REGISTRY_VALUE_IF_DIFFERENT(section, name, id, changedPtr)
#define SET_BOOL_REGISTRY_VALUE_IF_DIFFERENT(section, name, id, changedPtr)
#define SET_TEXTCTRL_FROM_REGISTRY_VALUE(section, name, id)
#define SET_STRING_REGISTRY_VALUE_IF_DIFFERENT(section, name, textCtrl)
wxSizer * SetupAdvancedPage(wxWindow *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
#define SET_CHECKBOX_FROM_REGISTRY_VALUE(section, name, id)
static IntegerSpinCtrl * giAtomSlices
#define SET_DOUBLE_REGISTRY_VALUE_IF_DIFFERENT(section, name, fSpinCtrl, changedPtr)
#define SET_FSPINCTRL_FROM_REGISTRY_VALUE(section, name, fSpinCtrl)
static IntegerSpinCtrl * giBondSides
wxSizer * SetupCachePage(wxWindow *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
#define SET_ISPINCTRL_FROM_REGISTRY_VALUE(section, name, iSpinCtrl)
#define SET_INTEGER_REGISTRY_VALUE_IF_DIFFERENT(section, name, iSpinCtrl, changedPtr)
static FloatingPointSpinCtrl * gfSeparation
wxSizer * SetupPreferencesNotebook(wxWindow *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
wxSizer * SetupQualityPage(wxWindow *parent, bool call_fit=TRUE, bool set_sizer=TRUE)
static IntegerSpinCtrl * giHelixSides
static IntegerSpinCtrl * giWormSides
static IntegerSpinCtrl * giCacheSize
#define ID_T_CACHE_FOLDER
static IntegerSpinCtrl * giAtomStacks