2 * $Logfile: /Freespace2/code/FRED2/AdjustGridDlg.cpp $
7 * Editor to allow one to change Fred's grid orientation and position.
10 * Revision 1.2 2002/05/07 03:16:43 theoddone33
11 * The Great Newline Fix
13 * Revision 1.1.1.1 2002/05/03 03:28:08 root
17 * 2 10/07/98 6:28p Dave
18 * Initial checkin. Renamed all relevant stuff to be Fred2 instead of
19 * Fred. Globalized mission and campaign file extensions. Removed Silent
20 * Threat specific code.
22 * 1 10/07/98 3:01p Dave
24 * 1 10/07/98 2:59p Dave
26 * 3 8/18/97 10:01p Hoffoss
27 * Improved dialog by graying out fields that don't have any effect on
28 * current plane setting.
30 * 2 8/18/97 9:31p Hoffoss
31 * Added grid adjustment dialog and shield system editor dialog.
38 #include "adjustgriddlg.h"
39 #include "missiongrid.h"
44 static char THIS_FILE[] = __FILE__;
47 /////////////////////////////////////////////////////////////////////////////
48 // adjust_grid_dlg dialog
50 adjust_grid_dlg::adjust_grid_dlg(CWnd* pParent /*=NULL*/)
51 : CDialog(adjust_grid_dlg::IDD, pParent)
53 //{{AFX_DATA_INIT(adjust_grid_dlg)
60 void adjust_grid_dlg::DoDataExchange(CDataExchange* pDX)
62 CDialog::DoDataExchange(pDX);
63 //{{AFX_DATA_MAP(adjust_grid_dlg)
64 DDX_Control(pDX, IDC_SPIN_Z, m_spinz);
65 DDX_Control(pDX, IDC_SPIN_Y, m_spiny);
66 DDX_Control(pDX, IDC_SPIN_X, m_spinx);
67 DDX_Text(pDX, IDC_EDIT_X, m_x);
68 DDX_Text(pDX, IDC_EDIT_Y, m_y);
69 DDX_Text(pDX, IDC_EDIT_Z, m_z);
73 BEGIN_MESSAGE_MAP(adjust_grid_dlg, CDialog)
74 //{{AFX_MSG_MAP(adjust_grid_dlg)
75 ON_BN_CLICKED(IDC_XY_PLANE, OnXyPlane)
76 ON_BN_CLICKED(IDC_XZ_PLANE, OnXzPlane)
77 ON_BN_CLICKED(IDC_YZ_PLANE, OnYzPlane)
81 /////////////////////////////////////////////////////////////////////////////
82 // adjust_grid_dlg message handlers
84 BOOL adjust_grid_dlg::OnInitDialog()
86 m_x = (int) The_grid->center.x;
87 m_y = (int) The_grid->center.y;
88 m_z = (int) The_grid->center.z;
89 CDialog::OnInitDialog();
90 if (The_grid->gmatrix.uvec.y) {
91 ((CButton *) GetDlgItem(IDC_XZ_PLANE))->SetCheck(TRUE);
92 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
93 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
95 } else if (The_grid->gmatrix.uvec.z) {
96 ((CButton *) GetDlgItem(IDC_XY_PLANE))->SetCheck(TRUE);
97 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
98 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
101 ((CButton *) GetDlgItem(IDC_YZ_PLANE))->SetCheck(TRUE);
102 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
103 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
106 m_spinx.SetRange(99999, -99999);
107 m_spiny.SetRange(99999, -99999);
108 m_spinz.SetRange(99999, -99999);
112 void adjust_grid_dlg::OnOK()
115 The_grid->center.x = (float) m_x;
116 The_grid->center.y = (float) m_y;
117 The_grid->center.z = (float) m_z;
119 if (((CButton *) GetDlgItem(IDC_XY_PLANE)) -> GetCheck()) {
120 The_grid->gmatrix.fvec = vmd_x_vector;
121 The_grid->gmatrix.rvec = vmd_y_vector;
123 } else if (((CButton *) GetDlgItem(IDC_YZ_PLANE)) -> GetCheck()) {
124 The_grid->gmatrix.fvec = vmd_y_vector;
125 The_grid->gmatrix.rvec = vmd_z_vector;
128 The_grid->gmatrix.fvec = vmd_x_vector;
129 The_grid->gmatrix.rvec = vmd_z_vector;
132 modify_grid(The_grid);
136 void adjust_grid_dlg::OnXyPlane()
138 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
139 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
140 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
141 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
142 GetDlgItem(IDC_EDIT_Z)->EnableWindow(TRUE);
143 GetDlgItem(IDC_SPIN_Z)->EnableWindow(TRUE);
146 void adjust_grid_dlg::OnXzPlane()
148 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
149 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
150 GetDlgItem(IDC_EDIT_Y)->EnableWindow(TRUE);
151 GetDlgItem(IDC_SPIN_Y)->EnableWindow(TRUE);
152 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
153 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);
156 void adjust_grid_dlg::OnYzPlane()
158 GetDlgItem(IDC_EDIT_X)->EnableWindow(TRUE);
159 GetDlgItem(IDC_SPIN_X)->EnableWindow(TRUE);
160 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
161 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
162 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
163 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);