1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        inputbuilder.h
3 // Purpose:
4 // Author:      Brett Bode
5 // Modified by:
6 // Created:     Mon 12 Jun 2006 09:37:31 AM CDT
7 // RCS-ID:
8 // Copyright:   (c) 2006 Iowa State University
9 // Licence:
10 /////////////////////////////////////////////////////////////////////////////
11 
12 #ifndef _INPUTBUILDER_H_
13 #define _INPUTBUILDER_H_
14 
15 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16 #pragma interface "inputbuilder.h"
17 #endif
18 
19 /*!
20  * Includes
21  */
22 
23 ////@begin includes
24 #include "wx/frame.h"
25 #include "wx/listbook.h"
26 #include "wx/grid.h"
27 #include "wx/spinctrl.h"
28 ////@end includes
29 
30 #include "wxUglyChoice.h"
31 #include "InputData.h"
32 
33 /*!
34  * Forward declarations
35  */
36 
37 ////@begin forward declarations
38 class wxListbook;
39 class wxUglyChoice;
40 class wxBoxSizer;
41 class wxGrid;
42 class wxSpinCtrl;
43 ////@end forward declarations
44 
45 /*!
46  * Control identifiers
47  */
48 
49 ////@begin control identifiers
50 #define ID_INPUTBUILDERWINDOW 10071
51 #define ID_PANEL6 10230
52 #define ID_IBNOTEBOOK 10072
53 #define ID_IBBASISPANEL 10091
54 #define ID_BASIS_CHOICE 10098
55 #define ID_ECPT_CHOICE 10099
56 #define ID_NUMD_CHOICE 10100
57 #define ID_NUMF_CHOICE 10101
58 #define ID_NUMP_CHOICE 10102
59 #define ID_POLAR_CHOICE 10103
60 #define ID_DIFFL_CHECKBOX 10104
61 #define ID_DIFFS_CHECKBOX 10105
62 #define ID_SPHERE_CHECK 10256
63 #define ID_IBCONTROLPANEL 10092
64 #define ID_RUN_CHOICE 10106
65 #define ID_SCF_CHOICE 10107
66 #define ID_LOCAL_CHOICE 10108
67 #define ID_MCHARGE_TEXTCTRL 10109
68 #define ID_MULT_TEXTCTRL 10110
69 #define ID_EXE_CHOICE 10111
70 #define ID_MAXIT_TEXTCTRL 10112
71 #define ID_MP2_CHECKBOX 10113
72 #define ID_DFT_CHECKBOX 10114
73 #define ID_CI_CHOICE 10115
74 #define ID_CC_CHOICE 10116
75 #define ID_IBDATAPANEL 10093
76 #define ID_TITLE_TEXTCTRL 10117
77 #define ID_COORD_CHOICE 10118
78 #define ID_UNIT_CHOICE 10119
79 #define ID_ZMAT_VARS_TEXT 10123
80 #define ID_POINTGROUP_CHOICE 10120
81 #define ID_ORDER_CHOICE 10121
82 #define ID_SYMMETRY_CHECKBOX 10122
83 #define ID_IBSYSTEMPANEL 10094
84 #define ID_TIMELIMIT_TEXT 10237
85 #define ID_TIMELIMITUNITS_CHOICE 10125
86 #define ID_MEMORY_TEXT 10164
87 #define ID_MEMORYUNITS_CHOICE 10127
88 #define ID_MEMDDI_EDIT 10242
89 #define ID_MEMDDICHOICE 10000
90 #define ID_DIAGONALIZATION_CHOICE 10128
91 #define ID_CORE_CHECKBOX 10129
92 #define ID_PLBALANCE_RADIOBOX 10130
93 #define ID_EXTERNDATAREP_CHECKBOX 10131
94 #define ID_PARALL_CHECK 10243
95 #define ID_GVBPANEL 10002
96 #define ID_GVB_NCOEDIT 10003
97 #define ID_GVB_PAIRSEDIT 10004
98 #define ID_GVB_NSETOEDIT 10005
99 #define ID_GVB_NOEDIT 10006
100 #define ID_IBDFTPANEL 10181
101 #define ID_DFTMETHOD_CHOICE 10183
102 #define ID_GRID_FUNCTIONAL_CHOICE 10184
103 #define ID_GRIDFREE_FUNCTIONAL_CHOICE 10185
104 #define ID_FMOPANE 10265
105 #define ID_FMOACTIVECHECK 10267
106 #define ID_FMOFRAGCOUNT 10266
107 #define ID_FMOLIST 10268
108 #define ID_FMOFRAGBUTTON 10269
109 #define ID_IBMOGUESSPANEL 10095
110 #define ID_INITGUESS_CHOICE 10132
111 #define ID_MOGUESS_VECSOURCE_CHOICE 10124
112 #define ID_MOGUESS_VECORBCOUNT_TEXT 10238
113 #define ID_PRINTINITGUESS_CHECKBOX 10133
114 #define ID_ROTORBITALS_CHECKBOX 10134
115 #define ID_IBHESSOPTSPANEL 10144
116 #define ID_HESSMETHOD_RADIO 10145
117 #define ID_FORCEDISPLACE_EDIT 10151
118 #define ID_HESSDOUBLEDIFFCHECK 10146
119 #define ID_HESSPURIFYCHECK 10147
120 #define ID_HESSPRTINTFC_CHECK 10148
121 #define ID_HESSVIBANL_CHECK 10149
122 #define ID_HESSFREQSCALE_EDIT 10150
123 #define ID_IBMISCPANEL 10096
124 #define ID_MOLPLT_CHECK 10136
125 #define ID_PLTORB_CHECK 10137
126 #define ID_AIMPAC_CHECK 10138
127 #define ID_RPAC_CHECK 10139
128 #define ID_MISC_PROG_RADIO 10135
129 #define ID_IBMP2PANEL 10182
130 #define ID_MP2_CORE_EDIT 10185
131 #define ID_MP2MEM_EDIT 10186
132 #define ID_MP2INTCUTOFF_EDIT 10187
133 #define ID_LMOMP2_CHECK 10188
134 #define ID_MP2PROP_CHECK 10241
135 #define ID_MP2TRANS_RADIO 10189
136 #define ID_MP2AOSTORAGE_RADIO 10190
137 #define ID_IBSCBOPTSPANEL 10097
138 #define ID_DIRECTSCF_CHECK 10140
139 #define ID_FDIFF_CHECK 10141
140 #define ID_UHF_NO_CHECK 10142
141 #define ID_SCF_CONV_SPIN 10126
142 #define ID_IBSTATPOINTPANEL 10152
143 #define ID_MAXSTEPCOUNT_EDIT 10153
144 #define ID_GRADCONVCRITERIA_EDIT 10154
145 #define ID_OPTMETHOD_CHOICE 10155
146 #define ID_INITSTEPSIZE_EDIT 10159
147 #define ID_MINSTEPSIZE_EDIT 10160
148 #define ID_MAXSTEPSIZE_CHECK 10161
149 #define ID_UPDATESTEPSIZE_CHECK 10157
150 #define ID_STATPT_CHECK 10158
151 #define ID_STATPT_JUMP_EDIT 10239
152 #define ID_INIT_HESS_RADIO 10162
153 #define ID_HESS_RECALC_EDIT 10163
154 #define ID_STATPT_MODE_EDIT 10240
155 #define ID_PRINTORBS_CHECK 10156
156 #define ID_HESSEND_CHECK 10264
157 #define ID_SUMMARYPANEL 10229
158 #define ID_SUMMARY_TITLE 10231
159 #define ID_SUMMARY_BASISSET 10232
160 #define ID_SUMMARY_SCFTYPE 10233
161 #define ID_SUMMARY_RUNTYPE 10234
162 #define ID_SUMMARY_PG 10235
163 #define ID_SUMMARY_ELEC 10236
164 #define ID_DEFAULTSBUTTON 10228
165 #define ID_REVERTBUTTON 10090
166 #define ID_WRITEFILEBUTTON 10073
167 #define ID_WRITE_EDIT_BUTTON 10074
168 #define ID_ADVANCEDBUTTON 10270
169 #define SYMBOL_INPUTBUILDERWINDOW_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|wxTAB_TRAVERSAL
170 #define SYMBOL_INPUTBUILDERWINDOW_TITLE _("Input Builder")
171 #define SYMBOL_INPUTBUILDERWINDOW_IDNAME ID_INPUTBUILDERWINDOW
172 #define SYMBOL_INPUTBUILDERWINDOW_SIZE wxDefaultSize
173 #define SYMBOL_INPUTBUILDERWINDOW_POSITION wxDefaultPosition
174 ////@end control identifiers
175 #define ID_ENQUEUEBUTTON 10273
176 
177 
178 enum {
179     BASIS_PANE,
180     CONTROL_PANE,
181     DATA_PANE,
182     SYSTEM_PANE,
183 	GVB_PANE,
184     DFT_PANE,
185 	FMO_Pane,
186     MOGUESS_PANE,
187     HESSOPTS_PANE,
188     MISCPREFS_PANE,
189     MP2OPTS_PANE,
190     SCFOPTS_PANE,
191     STATPOINT_PANE,
192     SUMMARY_PANE,
193     NUM_PANES
194 };
195 
196 
197 /*!
198  * Compatibility
199  */
200 
201 #ifndef wxCLOSE_BOX
202 #define wxCLOSE_BOX 0x1000
203 #endif
204 
205 /*!
206  * InputBuilderWindow class declaration
207  */
208 
209 class InputBuilderWindow: public wxFrame
210 {
211     DECLARE_CLASS( InputBuilderWindow )
212     DECLARE_EVENT_TABLE()
213 
214 public:
215     /// Constructors
216     InputBuilderWindow( );
217     InputBuilderWindow( wxWindow* parent, wxWindowID id = SYMBOL_INPUTBUILDERWINDOW_IDNAME, const wxString& caption = SYMBOL_INPUTBUILDERWINDOW_TITLE, const wxPoint& pos = SYMBOL_INPUTBUILDERWINDOW_POSITION, const wxSize& size = SYMBOL_INPUTBUILDERWINDOW_SIZE, long style = SYMBOL_INPUTBUILDERWINDOW_STYLE );
218 
219     ~InputBuilderWindow();
220 
221     bool Create( wxWindow* parent, wxWindowID id = SYMBOL_INPUTBUILDERWINDOW_IDNAME, const wxString& caption = SYMBOL_INPUTBUILDERWINDOW_TITLE, const wxPoint& pos = SYMBOL_INPUTBUILDERWINDOW_POSITION, const wxSize& size = SYMBOL_INPUTBUILDERWINDOW_SIZE, long style = SYMBOL_INPUTBUILDERWINDOW_STYLE );
222 
223     /// Creates the controls and sizers
224     void CreateControls();
225 
226 	/// Saves the temporary data back to the main data structure
227 	void SaveData(void) const;
228 
229 	bool ShowBasis() const;
230 	bool ShowStatPoint() const;
231 	bool ShowMP2Opts() const;
232 	bool ShowHessOpts() const;
233 	bool ShowSCFOpts() const;
234 
235 ////@begin InputBuilderWindow event handler declarations
236 
237 	/// wxEVT_CLOSE_WINDOW event handler for ID_INPUTBUILDERWINDOW
238 	void OnCloseWindow( wxCloseEvent& event );
239 
240 	/// wxEVT_COMMAND_LISTBOOK_PAGE_CHANGED event handler for ID_IBNOTEBOOK
241 	void OnIblistbookPageChanged( wxListbookEvent& event );
242 
243 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_BASIS_CHOICE
244 	void OnBasisChoiceSelected( wxCommandEvent& event );
245 
246 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_ECPT_CHOICE
247 	void OnEcptChoiceSelected( wxCommandEvent& event );
248 
249 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_NUMD_CHOICE
250 	void OnNumdChoiceSelected( wxCommandEvent& event );
251 
252 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_NUMF_CHOICE
253 	void OnNumfChoiceSelected( wxCommandEvent& event );
254 
255 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_NUMP_CHOICE
256 	void OnNumpChoiceSelected( wxCommandEvent& event );
257 
258 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_POLAR_CHOICE
259 	void OnPolarChoiceSelected( wxCommandEvent& event );
260 
261 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_DIFFL_CHECKBOX
262 	void OnDifflCheckboxClick( wxCommandEvent& event );
263 
264 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_DIFFS_CHECKBOX
265 	void OnDiffsCheckboxClick( wxCommandEvent& event );
266 
267 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SPHERE_CHECK
268 	void OnSphereCheckClick( wxCommandEvent& event );
269 
270 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_RUN_CHOICE
271 	void OnRunChoiceSelected( wxCommandEvent& event );
272 
273 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_SCF_CHOICE
274 	void OnScfChoiceSelected( wxCommandEvent& event );
275 
276 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_LOCAL_CHOICE
277 	void OnLocalChoiceSelected( wxCommandEvent& event );
278 
279 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MCHARGE_TEXTCTRL
280 	void OnMchargeTextctrlUpdated( wxCommandEvent& event );
281 
282 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MULT_TEXTCTRL
283 	void OnMultTextctrlUpdated( wxCommandEvent& event );
284 
285 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_EXE_CHOICE
286 	void OnExeChoiceSelected( wxCommandEvent& event );
287 
288 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MAXIT_TEXTCTRL
289 	void OnMaxitTextctrlUpdated( wxCommandEvent& event );
290 
291 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_MP2_CHECKBOX
292 	void OnMp2CheckboxClick( wxCommandEvent& event );
293 
294 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_DFT_CHECKBOX
295 	void OnDftCheckboxClick( wxCommandEvent& event );
296 
297 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CI_CHOICE
298 	void OnCiChoiceSelected( wxCommandEvent& event );
299 
300 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_CC_CHOICE
301 	void OnCcChoiceSelected( wxCommandEvent& event );
302 
303 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TITLE_TEXTCTRL
304 	void OnTitleTextctrlUpdated( wxCommandEvent& event );
305 
306 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_COORD_CHOICE
307 	void OnCoordChoiceSelected( wxCommandEvent& event );
308 
309 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_UNIT_CHOICE
310 	void OnUnitChoiceSelected( wxCommandEvent& event );
311 
312 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_ZMAT_VARS_TEXT
313 	void OnZmatVarsTextUpdated( wxCommandEvent& event );
314 
315 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_POINTGROUP_CHOICE
316 	void OnPointgroupChoiceSelected( wxCommandEvent& event );
317 
318 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_ORDER_CHOICE
319 	void OnOrderChoiceSelected( wxCommandEvent& event );
320 
321 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_SYMMETRY_CHECKBOX
322 	void OnSymmetryCheckboxClick( wxCommandEvent& event );
323 
324 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_TIMELIMIT_TEXT
325 	void OnTimelimitTextUpdated( wxCommandEvent& event );
326 
327 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_TIMELIMITUNITS_CHOICE
328 	void OnTimelimitunitsChoiceSelected( wxCommandEvent& event );
329 
330 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MEMORY_TEXT
331 	void OnMemoryTextUpdated( wxCommandEvent& event );
332 
333 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_MEMORYUNITS_CHOICE
334 	void OnMemoryunitsChoiceSelected( wxCommandEvent& event );
335 
336 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MEMDDI_EDIT
337 	void OnMemddiEditUpdated( wxCommandEvent& event );
338 
339 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_MEMDDICHOICE
340 	void OnMemddichoiceSelected( wxCommandEvent& event );
341 
342 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_DIAGONALIZATION_CHOICE
343 	void OnDiagonalizationChoiceSelected( wxCommandEvent& event );
344 
345 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_CORE_CHECKBOX
346 	void OnCoreCheckboxClick( wxCommandEvent& event );
347 
348 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_PLBALANCE_RADIOBOX
349 	void OnPlbalanceRadioboxSelected( wxCommandEvent& event );
350 
351 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_EXTERNDATAREP_CHECKBOX
352 	void OnExterndatarepCheckboxClick( wxCommandEvent& event );
353 
354 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_PARALL_CHECK
355 	void OnParallCheckClick( wxCommandEvent& event );
356 
357 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_GVB_NCOEDIT
358 	void OnGVBNCOEditTextUpdated( wxCommandEvent& event );
359 
360 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_GVB_PAIRSEDIT
361 	void OnGVBPairsEditTextUpdated( wxCommandEvent& event );
362 
363 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_GVB_NSETOEDIT
364 	void OnGVBNSetOeditTextUpdated( wxCommandEvent& event );
365 
366 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_GVB_NOEDIT
367 	void OnGVBNOeditTextUpdated( wxCommandEvent& event );
368 
369 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_DFTMETHOD_CHOICE
370 	void OnDftmethodChoiceSelected( wxCommandEvent& event );
371 
372 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_GRID_FUNCTIONAL_CHOICE
373 	void OnGridFunctionalChoiceSelected( wxCommandEvent& event );
374 
375 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_GRIDFREE_FUNCTIONAL_CHOICE
376 	void OnGridfreeFunctionalChoiceSelected( wxCommandEvent& event );
377 
378 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_FMOACTIVECHECK
379 	void OnFMOActiveCheckClick( wxCommandEvent& event );
380 
381 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_FMOFRAGCOUNT
382 	void OnFMOFragCountTextUpdated( wxCommandEvent& event );
383 
384 	/// wxEVT_GRID_CELL_CHANGE event handler for ID_FMOLIST
385 	void OnFMOFragIdCellChange( wxGridEvent& event );
386 
387 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_FMOFRAGBUTTON
388 	void OnFMOFragButtonClick( wxCommandEvent& event );
389 
390 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_INITGUESS_CHOICE
391 	void OnInitguessChoiceSelected( wxCommandEvent& event );
392 
393 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_MOGUESS_VECSOURCE_CHOICE
394 	void OnMoguessVecsourceChoiceSelected( wxCommandEvent& event );
395 
396 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MOGUESS_VECORBCOUNT_TEXT
397 	void OnMoguessVecorbcountTextUpdated( wxCommandEvent& event );
398 
399 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_PRINTINITGUESS_CHECKBOX
400 	void OnPrintinitguessCheckboxClick( wxCommandEvent& event );
401 
402 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_ROTORBITALS_CHECKBOX
403 	void OnRotorbitalsCheckboxClick( wxCommandEvent& event );
404 
405 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_HESSMETHOD_RADIO
406 	void OnHessmethodRadioSelected( wxCommandEvent& event );
407 
408 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_FORCEDISPLACE_EDIT
409 	void OnForcedisplaceEditUpdated( wxCommandEvent& event );
410 
411 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_HESSDOUBLEDIFFCHECK
412 	void OnHessdoublediffcheckClick( wxCommandEvent& event );
413 
414 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_HESSPURIFYCHECK
415 	void OnHesspurifycheckClick( wxCommandEvent& event );
416 
417 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_HESSPRTINTFC_CHECK
418 	void OnHessprtintfcCheckClick( wxCommandEvent& event );
419 
420 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_HESSVIBANL_CHECK
421 	void OnHessvibanlCheckClick( wxCommandEvent& event );
422 
423 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_HESSFREQSCALE_EDIT
424 	void OnHessfreqscaleEditUpdated( wxCommandEvent& event );
425 
426 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_MOLPLT_CHECK
427 	void OnMolpltCheckClick( wxCommandEvent& event );
428 
429 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_PLTORB_CHECK
430 	void OnPltorbCheckClick( wxCommandEvent& event );
431 
432 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_AIMPAC_CHECK
433 	void OnAimpacCheckClick( wxCommandEvent& event );
434 
435 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_RPAC_CHECK
436 	void OnRpacCheckClick( wxCommandEvent& event );
437 
438 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_MISC_PROG_RADIO
439 	void OnMiscProgRadioSelected( wxCommandEvent& event );
440 
441 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MP2_CORE_EDIT
442 	void OnMp2CoreEditUpdated( wxCommandEvent& event );
443 
444 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MP2MEM_EDIT
445 	void OnMp2memEditUpdated( wxCommandEvent& event );
446 
447 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MP2INTCUTOFF_EDIT
448 	void OnMp2intcutoffEditUpdated( wxCommandEvent& event );
449 
450 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_LMOMP2_CHECK
451 	void OnLmomp2CheckClick( wxCommandEvent& event );
452 
453 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_MP2PROP_CHECK
454 	void OnMp2propCheckClick( wxCommandEvent& event );
455 
456 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_MP2TRANS_RADIO
457 	void OnMp2transRadioSelected( wxCommandEvent& event );
458 
459 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_MP2AOSTORAGE_RADIO
460 	void OnMp2aostorageRadioSelected( wxCommandEvent& event );
461 
462 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_DIRECTSCF_CHECK
463 	void OnDirectscfCheckClick( wxCommandEvent& event );
464 
465 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_FDIFF_CHECK
466 	void OnFdiffCheckClick( wxCommandEvent& event );
467 
468 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_UHF_NO_CHECK
469 	void OnUhfNoCheckClick( wxCommandEvent& event );
470 
471 	/// wxEVT_COMMAND_SPINCTRL_UPDATED event handler for ID_SCF_CONV_SPIN
472 	void OnScfConvSpinUpdated( wxSpinEvent& event );
473 
474 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MAXSTEPCOUNT_EDIT
475 	void OnMaxstepcountEditUpdated( wxCommandEvent& event );
476 
477 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_GRADCONVCRITERIA_EDIT
478 	void OnGradconvcriteriaEditUpdated( wxCommandEvent& event );
479 
480 	/// wxEVT_COMMAND_CHOICE_SELECTED event handler for ID_OPTMETHOD_CHOICE
481 	void OnOptmethodChoiceSelected( wxCommandEvent& event );
482 
483 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_INITSTEPSIZE_EDIT
484 	void OnInitstepsizeEditUpdated( wxCommandEvent& event );
485 
486 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MINSTEPSIZE_EDIT
487 	void OnMinstepsizeEditUpdated( wxCommandEvent& event );
488 
489 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_MAXSTEPSIZE_CHECK
490 	void OnMaxstepsizeEditUpdated( wxCommandEvent& event );
491 
492 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_UPDATESTEPSIZE_CHECK
493 	void OnUpdatestepsizeCheckClick( wxCommandEvent& event );
494 
495 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_STATPT_CHECK
496 	void OnStatptCheckClick( wxCommandEvent& event );
497 
498 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_STATPT_JUMP_EDIT
499 	void OnStatptJumpEditUpdated( wxCommandEvent& event );
500 
501 	/// wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_INIT_HESS_RADIO
502 	void OnInitHessRadioSelected( wxCommandEvent& event );
503 
504 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_HESS_RECALC_EDIT
505 	void OnHessRecalcEditUpdated( wxCommandEvent& event );
506 
507 	/// wxEVT_COMMAND_TEXT_UPDATED event handler for ID_STATPT_MODE_EDIT
508 	void OnStatptModeEditUpdated( wxCommandEvent& event );
509 
510 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_PRINTORBS_CHECK
511 	void OnPrintorbsCheckClick( wxCommandEvent& event );
512 
513 	/// wxEVT_COMMAND_CHECKBOX_CLICKED event handler for ID_HESSEND_CHECK
514 	void OnHessendCheckClick( wxCommandEvent& event );
515 
516 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_DEFAULTSBUTTON
517 	void OnDefaultsbuttonClick( wxCommandEvent& event );
518 
519 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_REVERTBUTTON
520 	void OnRevertbuttonClick( wxCommandEvent& event );
521 
522 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_WRITEFILEBUTTON
523 	void OnWritefilebuttonClick( wxCommandEvent& event );
524 
525 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_WRITE_EDIT_BUTTON
526 	void OnWriteEditButtonClick( wxCommandEvent& event );
527 
528 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_ADVANCEDBUTTON
529 	void OnAdvancedButtonClicked( wxCommandEvent& event );
530 
531 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
532 	void OnCancelClick( wxCommandEvent& event );
533 
534 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
535 	void OnOkClick( wxCommandEvent& event );
536 
537 ////@end InputBuilderWindow event handler declarations
538 
539 	/// Handler for when the window is raised, Stops running animations
540 	void OnActivate(wxActivateEvent & event);
541 
542 ////@begin InputBuilderWindow member function declarations
543 
544 	/// Retrieves bitmap resources
545 	wxBitmap GetBitmapResource( const wxString& name );
546 
547 	/// Retrieves icon resources
548 	wxIcon GetIconResource( const wxString& name );
549 ////@end InputBuilderWindow member function declarations
550 
551     /// Should we show tooltips?
552     static bool ShowToolTips();
553 
554 	/// Change the window title when the file name changes
555 	void UpdateWindowTitle(void);
556 
557 	/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_ENQUEUEBUTTON
558 	void OnEnqueueButtonClick( wxCommandEvent& event );
559 
560     void SetupItems();
561     void SetupBasisItems();
562     void SetupControlItems();
563     void SetupDataItems();
564     void SetupSystemItems();
565 	void SetupGVBItems();
566 	void SetupDFTItems();
567 	void SetupFMOItems();
568     void SetupMOGuessItems();
569     void SetupHessOptsItems();
570     void SetupMiscPrefsItems();
571     void SetupMP2OptsItems();
572     void SetupSCFOptsItems();
573     void SetupStatPointItems();
574     void SetupSummaryItems();
575 
576 	void SetupPointGroupOrder(void);
577 	///Call when the frame or atoms in it have changed in case the input builder needs to update
578 	void FrameChanged(void);
579 ////@begin InputBuilderWindow member variables
580 	wxListbook* listBook;
581 	wxUglyChoice* basisChoice;
582 	wxStaticText* ecpTypeLabel;
583 	wxUglyChoice* ecpTypeChoice;
584 	wxUglyChoice* numDChoice;
585 	wxUglyChoice* numFChoice;
586 	wxUglyChoice* numPChoice;
587 	wxStaticText* polarLabel;
588 	wxUglyChoice* polarChoice;
589 	wxCheckBox* diffuseLCheck;
590 	wxCheckBox* diffuseSCheck;
591 	wxCheckBox* spherHarmCheck;
592 	wxUglyChoice* runChoice;
593 	wxUglyChoice* scfChoice;
594 	wxUglyChoice* localChoice;
595 	wxTextCtrl* mchargeText;
596 	wxTextCtrl* multText;
597 	wxUglyChoice* exeChoice;
598 	wxTextCtrl* scfIterText;
599 	wxCheckBox* mp2Check;
600 	wxCheckBox* dftCheck;
601 	wxStaticText* ciLabel;
602 	wxUglyChoice* ciChoice;
603 	wxStaticText* ccLabel;
604 	wxUglyChoice* ccChoice;
605 	wxTextCtrl* titleText;
606 	wxUglyChoice* coordTypeChoice;
607 	wxUglyChoice* unitChoice;
608 	wxTextCtrl* zmatrixVarsText;
609 	wxUglyChoice* pointGroupChoice;
610 	wxStaticText* paxisOrderText;
611 	wxUglyChoice* paxisOrderChoice;
612 	wxCheckBox* symmetryCheck;
613 	wxTextCtrl* timeLimitText;
614 	wxUglyChoice* timeLimitUnitChoice;
615 	wxTextCtrl* memoryText;
616 	wxUglyChoice* memoryUnitChoice;
617 	wxTextCtrl* memddiText;
618 	wxUglyChoice* memddiUnitChoice;
619 	wxUglyChoice* diagChoice;
620 	wxCheckBox* coreCheck;
621 	wxRadioBox* plBalanceRadio;
622 	wxCheckBox* externDataRepCheck;
623 	wxCheckBox* mSGParallCheck;
624 	wxTextCtrl* mGVB_NCOEdit;
625 	wxTextCtrl* mGVB_PairsEdit;
626 	wxTextCtrl* mGVB_NSETOEdit;
627 	wxStaticText* mGVB_NOStatic;
628 	wxTextCtrl* mGVB_NOEdit;
629 	wxUglyChoice* dftMethodChoice;
630 	wxBoxSizer* funcSizer;
631 	wxUglyChoice* dftGridFuncChoice;
632 	wxUglyChoice* dftGridFreeFuncChoice;
633 	wxCheckBox* mFMOCheck;
634 	wxTextCtrl* mNumFragsEdit;
635 	wxGrid* mFMOFragList;
636 	wxButton* mFMOGenFragsButton;
637 	wxUglyChoice* initGuessChoice;
638 	wxUglyChoice* mMOSourceChoice;
639 	wxTextCtrl* mVecOrbCountText;
640 	wxCheckBox* printInitGuessCheck;
641 	wxCheckBox* rotOrbitalsCheck;
642 	wxRadioBox* mHessMethodRadio;
643 	wxTextCtrl* mHESSDisplaceEdit;
644 	wxCheckBox* mHessDblDiffCheck;
645 	wxCheckBox* mHessPurifyCheck;
646 	wxCheckBox* mHessPrintIntFCCheck;
647 	wxCheckBox* mHessVibAnlCheck;
648 	wxTextCtrl* mHessFreqScaleEdit;
649 	wxCheckBox* mMolPltCheck;
650 	wxCheckBox* mPltOrbCheck;
651 	wxCheckBox* aimpacCheck;
652 	wxCheckBox* rpacCheck;
653 	wxRadioBox* mMiscProgRadio;
654 	wxTextCtrl* mMP2CoreEleEdit;
655 	wxTextCtrl* mMP2MemEdit;
656 	wxTextCtrl* mMP2IntCutoffEdit;
657 	wxCheckBox* mLMOMP2Check;
658 	wxCheckBox* mMP2PropCheck;
659 	wxRadioBox* mMP2TransRadio;
660 	wxRadioBox* mMP2AOStorageRadio;
661 	wxCheckBox* mDirectSCFCheck;
662 	wxCheckBox* mFDiffCheck;
663 	wxCheckBox* mUHFNOCheck;
664 	wxSpinCtrl* mSCFConvSpin;
665 	wxTextCtrl* mMaxStepCountEdit;
666 	wxTextCtrl* mGradConvEdit;
667 	wxUglyChoice* mOptMethodChoice;
668 	wxTextCtrl* mInitStepSizeEdit;
669 	wxTextCtrl* mMinStepSizeEdit;
670 	wxTextCtrl* mMaxStepSizeEdit;
671 	wxCheckBox* mUpdateStepSizeCheck;
672 	wxCheckBox* mIsStatPtCheck;
673 	wxTextCtrl* mStatPtJumpSizeEdit;
674 	wxRadioBox* mInitHessRadio;
675 	wxTextCtrl* mHessRecalcEdit;
676 	wxTextCtrl* mStatPtModeEdit;
677 	wxCheckBox* mPrintOrbsCheck;
678 	wxTextCtrl* mTitleText;
679 	wxTextCtrl* mBasisSetText;
680 	wxTextCtrl* mSCFTypeText;
681 	wxTextCtrl* mRunTypeText;
682 	wxTextCtrl* mPointGroupText;
683 	wxTextCtrl* mElectronCorr;
684 	wxButton* defaultsBtn;
685 	wxButton* revertBtn;
686 	wxButton* writeBtn;
687 	wxButton* advanced_button;
688 ////@end InputBuilderWindow member variables
689 
690     InputData * TmpInputRec;
691 	wxBoxSizer *button_sizer;
692 	//local data for FMO
693 	std::vector<long> FMOFragmentIds;	///< Vector containing the FMO fragment mapping for each atom
694 
695     wxWindow *tab[NUM_PANES];
696     wxString  tabText[NUM_PANES];
697     bool visibleTab[NUM_PANES];
698 
699     void setPaneVisible(int pane, bool visible);
700     int getCurrentPane();
701     int getPaneAtPosition(int pos);
702 
703     void CheckBasisMenu(void);
704 };
705 
706 #endif
707     // _INPUTBUILDER_H_
708