2 * $Logfile: /Freespace2/code/FRED2/AdjustGridDlg.cpp $
7 * Editor to allow one to change Fred's grid orientation and position.
10 * Revision 1.1 2002/05/03 03:28:08 root
14 * 2 10/07/98 6:28p Dave
15 * Initial checkin. Renamed all relevant stuff to be Fred2 instead of
16 * Fred. Globalized mission and campaign file extensions. Removed Silent
17 * Threat specific code.
19 * 1 10/07/98 3:01p Dave
21 * 1 10/07/98 2:59p Dave
23 * 3 8/18/97 10:01p Hoffoss
24 * Improved dialog by graying out fields that don't have any effect on
25 * current plane setting.
27 * 2 8/18/97 9:31p Hoffoss
28 * Added grid adjustment dialog and shield system editor dialog.
35 #include "adjustgriddlg.h"
36 #include "missiongrid.h"
41 static char THIS_FILE[] = __FILE__;
44 /////////////////////////////////////////////////////////////////////////////
45 // adjust_grid_dlg dialog
47 adjust_grid_dlg::adjust_grid_dlg(CWnd* pParent /*=NULL*/)
48 : CDialog(adjust_grid_dlg::IDD, pParent)
50 //{{AFX_DATA_INIT(adjust_grid_dlg)
57 void adjust_grid_dlg::DoDataExchange(CDataExchange* pDX)
59 CDialog::DoDataExchange(pDX);
60 //{{AFX_DATA_MAP(adjust_grid_dlg)
61 DDX_Control(pDX, IDC_SPIN_Z, m_spinz);
62 DDX_Control(pDX, IDC_SPIN_Y, m_spiny);
63 DDX_Control(pDX, IDC_SPIN_X, m_spinx);
64 DDX_Text(pDX, IDC_EDIT_X, m_x);
65 DDX_Text(pDX, IDC_EDIT_Y, m_y);
66 DDX_Text(pDX, IDC_EDIT_Z, m_z);
70 BEGIN_MESSAGE_MAP(adjust_grid_dlg, CDialog)
71 //{{AFX_MSG_MAP(adjust_grid_dlg)
72 ON_BN_CLICKED(IDC_XY_PLANE, OnXyPlane)
73 ON_BN_CLICKED(IDC_XZ_PLANE, OnXzPlane)
74 ON_BN_CLICKED(IDC_YZ_PLANE, OnYzPlane)
78 /////////////////////////////////////////////////////////////////////////////
79 // adjust_grid_dlg message handlers
81 BOOL adjust_grid_dlg::OnInitDialog()
83 m_x = (int) The_grid->center.x;
84 m_y = (int) The_grid->center.y;
85 m_z = (int) The_grid->center.z;
86 CDialog::OnInitDialog();
87 if (The_grid->gmatrix.uvec.y) {
88 ((CButton *) GetDlgItem(IDC_XZ_PLANE))->SetCheck(TRUE);
89 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
90 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
92 } else if (The_grid->gmatrix.uvec.z) {
93 ((CButton *) GetDlgItem(IDC_XY_PLANE))->SetCheck(TRUE);
94 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
95 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
98 ((CButton *) GetDlgItem(IDC_YZ_PLANE))->SetCheck(TRUE);
99 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
100 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
103 m_spinx.SetRange(99999, -99999);
104 m_spiny.SetRange(99999, -99999);
105 m_spinz.SetRange(99999, -99999);
109 void adjust_grid_dlg::OnOK()
112 The_grid->center.x = (float) m_x;
113 The_grid->center.y = (float) m_y;
114 The_grid->center.z = (float) m_z;
116 if (((CButton *) GetDlgItem(IDC_XY_PLANE)) -> GetCheck()) {
117 The_grid->gmatrix.fvec = vmd_x_vector;
118 The_grid->gmatrix.rvec = vmd_y_vector;
120 } else if (((CButton *) GetDlgItem(IDC_YZ_PLANE)) -> GetCheck()) {
121 The_grid->gmatrix.fvec = vmd_y_vector;
122 The_grid->gmatrix.rvec = vmd_z_vector;
125 The_grid->gmatrix.fvec = vmd_x_vector;
126 The_grid->gmatrix.rvec = vmd_z_vector;
129 modify_grid(The_grid);
133 void adjust_grid_dlg::OnXyPlane()
135 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
136 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
137 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
138 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
139 GetDlgItem(IDC_EDIT_Z)->EnableWindow(TRUE);
140 GetDlgItem(IDC_SPIN_Z)->EnableWindow(TRUE);
143 void adjust_grid_dlg::OnXzPlane()
145 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
146 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
147 GetDlgItem(IDC_EDIT_Y)->EnableWindow(TRUE);
148 GetDlgItem(IDC_SPIN_Y)->EnableWindow(TRUE);
149 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
150 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);
153 void adjust_grid_dlg::OnYzPlane()
155 GetDlgItem(IDC_EDIT_X)->EnableWindow(TRUE);
156 GetDlgItem(IDC_SPIN_X)->EnableWindow(TRUE);
157 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
158 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
159 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
160 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);