00001
00009 #if !defined(MOLMECHDLG_H)
00010 #define MOLMECHDLG_H
00011
00012 #include "win_dialogs_2.h"
00013 #include "GridControl/GridCtrl.h"
00014
00015 class HaMolMechMod;
00016 class NuclAcidMod;
00017 class MMBond;
00018 class MMValAngle;
00019 class MMDihedral;
00020 class MMDihedral;
00021
00023
00024
00025 class AmberParamPage : public CPropertyPage
00026 {
00027 DECLARE_DYNCREATE(AmberParamPage)
00028
00029
00030 public:
00031 AmberParamPage();
00032 ~AmberParamPage();
00033
00034
00035
00036 enum { IDD = IDD_MM_AMBER_PARAM };
00037
00038
00039 HaMolMechMod* ptr_mm_mod;
00040
00041
00042
00043
00044 protected:
00045 virtual void DoDataExchange(CDataExchange* pDX);
00046
00047
00048
00049 protected:
00050
00051
00052 afx_msg void OnAmbSaveAllInp();
00053 afx_msg void OnAmberRun();
00054 afx_msg void OnAmberLoadRestart();
00055 afx_msg void OnEditchangeRunType();
00056 afx_msg void OnCalcSinglePtEne();
00057 afx_msg void OnLoadLogFile();
00058 afx_msg void OnMmStop();
00059 afx_msg void OnPlayTrj();
00060
00061 DECLARE_MESSAGE_MAP()
00062
00063 };
00065
00066
00067 class FFParamSetPage : public CPropertyPage
00068 {
00069 DECLARE_DYNCREATE(FFParamSetPage)
00070
00071
00072 public:
00073 FFParamSetPage();
00074 ~FFParamSetPage();
00075
00076
00077
00078 enum { IDD = IDD_MM_PAR_SETUP };
00079
00080
00081
00082
00083 HaMolMechMod* ptr_mm_mod;
00084
00085
00086
00087
00088 protected:
00089 virtual void DoDataExchange(CDataExchange* pDX);
00090
00091
00092
00093 BOOL OnInitDialog();
00094 protected:
00095
00096
00097 afx_msg void OnInitMolMech();
00098 afx_msg void OnConstrainHBond();
00099 afx_msg void OnSetModParam();
00100 afx_msg void OnSelOKMovingAtoms();
00101
00102 DECLARE_MESSAGE_MAP()
00103
00104 void FillAtomListsNames();
00105
00106 };
00107
00109
00110
00111 class FFModelEditPage : public CPropertyPage
00112 {
00113 DECLARE_DYNCREATE(FFModelEditPage)
00114
00115 public:
00116 FFModelEditPage();
00117 ~FFModelEditPage();
00118
00119
00120
00121 enum { IDD = IDD_MM_EDIT_MODEL };
00122
00123
00124
00125
00126 HaMolMechMod* ptr_mm_mod;
00127
00128 MMBond* cur_bond;
00129 MMValAngle* cur_vang;
00130 MMDihedral* cur_dih;
00131 MMDihedral* cur_impr_dih;
00132
00133
00134
00135
00136 protected:
00137 virtual void DoDataExchange(CDataExchange* pDX);
00138
00139
00140
00141 BOOL OnInitDialog();
00142
00143
00144 protected:
00145
00146
00147 afx_msg void OnUpdateElemList();
00148 afx_msg void OnRadioListDih();
00149 afx_msg void OnRadioListImproper();
00150 afx_msg void OnRadioListValBonds();
00151 afx_msg void OnRadioListValAng();
00152 afx_msg void OnRadioListMatPoints();
00153 afx_msg void OnSetNewPar();
00154
00155 DECLARE_MESSAGE_MAP()
00156
00157 void OnChangeSelElem();
00158
00159
00160
00161
00162 };
00163
00165
00166
00167 class AmberParamPage;
00168 class FFParamSetPage;
00169 class FFModelEditPage;
00170
00171 class MolMechDlg : public CPropertySheet
00173 {
00174 DECLARE_DYNAMIC(MolMechDlg)
00175
00176
00177 public:
00178 MolMechDlg(HaMolMechMod* new_ptr_mm_mod, LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
00179 virtual ~MolMechDlg();
00180
00181 AmberParamPage m_amber_par_page;
00182 FFParamSetPage m_ff_par_setup_page;
00183 FFModelEditPage m_ff_model_edit_page;
00184
00185
00186 public:
00187
00188 static int dlg_open;
00189 HaMolMechMod* ptr_mm_mod;
00190
00191
00192 public:
00193
00194
00195
00196
00197 public:
00198 virtual void PostNcDestroy();
00199 protected:
00200 virtual void DoDataExchange(CDataExchange* pDX);
00201
00202
00203
00204 public:
00205
00206
00207 protected:
00208
00209
00210
00211 DECLARE_MESSAGE_MAP()
00212 };
00213
00215 class NuclAcidDlg : public CModelessDlg
00217 {
00218
00219 public:
00220 NuclAcidDlg(NuclAcidMod* new_jumna_mod, CWnd* pParent = NULL);
00221 virtual ~NuclAcidDlg();
00222
00223
00224
00225 enum { IDD = IDD_NUCL_ACID };
00226
00227
00228 static BOOL dlg_open;
00229
00230
00231
00232
00233 protected:
00234 virtual void DoDataExchange(CDataExchange* pDX);
00235
00236
00237
00238
00239 BOOL OnInitDialog();
00240 protected:
00241 HaMolSet* pmset;
00242 NuclAcidMod* nucl_acid_mod;
00243
00244
00245
00246 afx_msg void OnUpdateControls();
00247 afx_msg void OnSaveChanges();
00248 afx_msg void OnBuildNuclAcid();
00249 afx_msg void OnPdistToCnt();
00250 afx_msg void OnMinEne();
00251 afx_msg void OnCalcEne();
00252 afx_msg void DoDNAIntCoordDialog();
00253 afx_msg void OnGenComplStr();
00254 afx_msg void OnLocBaseStepPars();
00255 afx_msg void OnLocHlxParsBp();
00256 afx_msg void OnCalcAxis();
00257 afx_msg void OnGlobHlxPar();
00258 afx_msg void OnCalcBbCrd();
00259
00260 afx_msg void OnExit();
00261 DECLARE_MESSAGE_MAP()
00262 };
00263
00265 class CGridDlg : public CModelessDlg
00267 {
00268 public:
00269 CGridDlg(CWnd* pParent = NULL);
00270 virtual ~CGridDlg();
00271
00272
00273 enum { IDD = IDD_DNA_INT_COORD };
00274 int m_nCols;
00275 int m_nRows;
00276 int m_nFixCols;
00277 int m_nFixRows;
00278 BOOL m_bEditable;
00279 BOOL m_bHorzLines;
00280 BOOL m_bListMode;
00281 BOOL m_bVertLines;
00282 BOOL m_bSelectable;
00283 BOOL m_bAllowColumnResize;
00284 BOOL m_bAllowRowResize;
00285 BOOL m_bHeaderSort;
00286 BOOL m_bItalics;
00287 BOOL m_btitleTips;
00288 BOOL m_bSingleSelMode;
00289 BOOL m_bSingleColSelMode;
00290 BOOL m_bTrackFocus;
00291 BOOL m_bFrameFocus;
00292 BOOL m_bVirtualMode;
00293 BOOL m_bCallback;
00294 BOOL m_bVertical;
00295 BOOL m_bExpandUseFixed;
00296 BOOL m_bRejectEditAttempts;
00297 BOOL m_bRejectEditChanges;
00298 BOOL m_bRow2Col2Hidden;
00299
00300
00301 CGridCtrl m_Grid;
00302 CSize m_OldSize;
00303 HICON m_hIcon;
00304 CImageList m_ImageList;
00305
00306
00307
00308
00309 public:
00310 virtual BOOL PreTranslateMessage(MSG* pMsg);
00311 protected:
00312 virtual void DoDataExchange(CDataExchange* pDX);
00313 virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
00314
00315
00316 public:
00317 virtual BOOL OnInitDialog();
00318
00319 static BOOL CALLBACK GridCallback(GV_DISPINFO *pDispInfo, LPARAM lParam);
00320 void OnGridLines();
00321 virtual void UpdateMenuUI();
00322
00323 protected:
00324
00325
00326
00327 afx_msg HCURSOR OnQueryDragIcon();
00328 afx_msg void OnHorzGridLines();
00329 afx_msg void OnVertGridLines();
00330 afx_msg void OnListmode();
00331 afx_msg void OnEditable();
00332 afx_msg void OnPrintButton();
00333 afx_msg void OnAllowSelection();
00334 afx_msg void OnRowResize();
00335 afx_msg void OnColResize();
00336 afx_msg void OnFontButton();
00337 afx_msg void OnSize(UINT nType, int cx, int cy);
00338 afx_msg void OnHeaderSort();
00339 afx_msg void OnEditSelectall();
00340 afx_msg void OnAppAbout();
00341 afx_msg void OnItalics();
00342 afx_msg void OnTitletips();
00343 afx_msg void OnInsertRow();
00344 afx_msg void OnDeleteRow();
00345 afx_msg void OnSingleselmode();
00346 afx_msg void OnSingleColMode();
00347 afx_msg void OnExpandToFit();
00348 afx_msg void OnAutoSize();
00349 afx_msg void OnFill();
00350 afx_msg void OnCellUrl();
00351 afx_msg void OnCellNormal();
00352 afx_msg void OnCellCombo();
00353 afx_msg void OnCellNumeric();
00354 afx_msg void OnCellReadonly();
00355 afx_msg void OnCellCheckbox();
00356 afx_msg void OnCellDateTime();
00357 afx_msg void OnTrackfocus();
00358 afx_msg void OnFramefocus();
00359 afx_msg void OnExpandLast();
00360 afx_msg void OnSetFocus11();
00361 afx_msg void OnVirtualMode();
00362 afx_msg void OnCallbackFunction();
00363 afx_msg void OnFixedRowSelection();
00364 afx_msg void OnFixedColSelection();
00365 afx_msg void OnVertical();
00366 afx_msg void OnExpandUseFixed();
00367 afx_msg void OnRejectEditAttempts();
00368 afx_msg void OnRejectEditChanges();
00369 afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
00370
00371 afx_msg void OnGridDblClick(NMHDR *pNotifyStruct, LRESULT* pResult);
00372 afx_msg void OnGridClick(NMHDR *pNotifyStruct, LRESULT* pResult);
00373 afx_msg void OnGridRClick(NMHDR *pNotifyStruct, LRESULT* pResult);
00374 afx_msg void OnGridStartEdit(NMHDR *pNotifyStruct, LRESULT* pResult);
00375 afx_msg void OnGridEndEdit(NMHDR *pNotifyStruct, LRESULT* pResult);
00376 afx_msg void OnGridStartSelChange(NMHDR *pNotifyStruct, LRESULT* pResult);
00377 afx_msg void OnGridEndSelChange(NMHDR *pNotifyStruct, LRESULT* pResult);
00378 afx_msg void OnGridBeginDrag(NMHDR *pNotifyStruct, LRESULT* pResult);
00379 afx_msg void OnExit();
00380 DECLARE_MESSAGE_MAP()
00381 #ifndef GRIDCONTROL_NO_CLIPBOARD
00382 afx_msg void OnEditCopy();
00383 afx_msg void OnEditCut();
00384 afx_msg void OnUpdateEditCopyOrCut(CCmdUI* pCmdUI);
00385 afx_msg void OnEditPaste();
00386 afx_msg void OnUpdateEditPaste(CCmdUI* pCmdUI);
00387 #endif
00388 };
00389
00390 class DNAIntCrdDlg : public CGridDlg
00392 {
00393
00394 public:
00395 DNAIntCrdDlg(NuclAcidMod* new_jumna_mod, CWnd* pParent = NULL);
00396 virtual ~DNAIntCrdDlg();
00397
00398
00399
00400 enum { IDD = IDD_NUCL_ACID };
00401
00402
00403 static BOOL dlg_open;
00404
00405
00406
00407
00408 protected:
00409 virtual void DoDataExchange(CDataExchange* pDX);
00410
00411
00412
00413
00414 enum DISPLAY_MODE { JUMNA_HLX_CRD = 1, BASE_BASE_CRD, GLOB_INTER_BASE_CRD, GLOB_INTER_BP_CRD,
00415 LOC_INTER_BASE_CRD, LOC_INTER_BP_CRD} display_mode;
00416
00417 BOOL OnInitDialog();
00418 protected:
00419 HaMolSet* pmset;
00420 NuclAcidMod* nucl_acid_mod;
00421
00422
00423
00424 afx_msg void OnUpdateContent();
00425 afx_msg void OnSize(UINT nType, int cx, int cy);
00426 afx_msg void OnBaseBasePars();
00427
00428 afx_msg void OnSetFromJumna();
00429 afx_msg void OnSetToJumna();
00430 afx_msg void OnUpdateXYZ();
00431 afx_msg void OnUpdateGrid();
00432 afx_msg void OnExit();
00433 afx_msg void OnGridEndEdit(NMHDR *pNotifyStruct, LRESULT* pResult);
00434 afx_msg void OnLockSelCrd();
00435 DECLARE_MESSAGE_MAP()
00436 };
00437
00438
00439
00440
00441
00442 #endif // !defined(MOLMECHDLG_H)