2 * Copyright (C) Volition, Inc. 1999. All rights reserved.
4 * All source code herein is the property of Volition, Inc. You may not sell
5 * or otherwise commercially exploit the source or things you created based on
10 * $Logfile: /Freespace2/code/FRED2/AdjustGridDlg.cpp $
15 * Editor to allow one to change Fred's grid orientation and position.
18 * Revision 1.3 2002/06/09 04:41:16 relnev
19 * added copyright header
21 * Revision 1.2 2002/05/07 03:16:43 theoddone33
22 * The Great Newline Fix
24 * Revision 1.1.1.1 2002/05/03 03:28:08 root
28 * 2 10/07/98 6:28p Dave
29 * Initial checkin. Renamed all relevant stuff to be Fred2 instead of
30 * Fred. Globalized mission and campaign file extensions. Removed Silent
31 * Threat specific code.
33 * 1 10/07/98 3:01p Dave
35 * 1 10/07/98 2:59p Dave
37 * 3 8/18/97 10:01p Hoffoss
38 * Improved dialog by graying out fields that don't have any effect on
39 * current plane setting.
41 * 2 8/18/97 9:31p Hoffoss
42 * Added grid adjustment dialog and shield system editor dialog.
49 #include "adjustgriddlg.h"
50 #include "missiongrid.h"
55 static char THIS_FILE[] = __FILE__;
58 /////////////////////////////////////////////////////////////////////////////
59 // adjust_grid_dlg dialog
61 adjust_grid_dlg::adjust_grid_dlg(CWnd* pParent /*=NULL*/)
62 : CDialog(adjust_grid_dlg::IDD, pParent)
64 //{{AFX_DATA_INIT(adjust_grid_dlg)
71 void adjust_grid_dlg::DoDataExchange(CDataExchange* pDX)
73 CDialog::DoDataExchange(pDX);
74 //{{AFX_DATA_MAP(adjust_grid_dlg)
75 DDX_Control(pDX, IDC_SPIN_Z, m_spinz);
76 DDX_Control(pDX, IDC_SPIN_Y, m_spiny);
77 DDX_Control(pDX, IDC_SPIN_X, m_spinx);
78 DDX_Text(pDX, IDC_EDIT_X, m_x);
79 DDX_Text(pDX, IDC_EDIT_Y, m_y);
80 DDX_Text(pDX, IDC_EDIT_Z, m_z);
84 BEGIN_MESSAGE_MAP(adjust_grid_dlg, CDialog)
85 //{{AFX_MSG_MAP(adjust_grid_dlg)
86 ON_BN_CLICKED(IDC_XY_PLANE, OnXyPlane)
87 ON_BN_CLICKED(IDC_XZ_PLANE, OnXzPlane)
88 ON_BN_CLICKED(IDC_YZ_PLANE, OnYzPlane)
92 /////////////////////////////////////////////////////////////////////////////
93 // adjust_grid_dlg message handlers
95 BOOL adjust_grid_dlg::OnInitDialog()
97 m_x = (int) The_grid->center.x;
98 m_y = (int) The_grid->center.y;
99 m_z = (int) The_grid->center.z;
100 CDialog::OnInitDialog();
101 if (The_grid->gmatrix.uvec.y) {
102 ((CButton *) GetDlgItem(IDC_XZ_PLANE))->SetCheck(TRUE);
103 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
104 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
106 } else if (The_grid->gmatrix.uvec.z) {
107 ((CButton *) GetDlgItem(IDC_XY_PLANE))->SetCheck(TRUE);
108 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
109 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
112 ((CButton *) GetDlgItem(IDC_YZ_PLANE))->SetCheck(TRUE);
113 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
114 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
117 m_spinx.SetRange(99999, -99999);
118 m_spiny.SetRange(99999, -99999);
119 m_spinz.SetRange(99999, -99999);
123 void adjust_grid_dlg::OnOK()
126 The_grid->center.x = (float) m_x;
127 The_grid->center.y = (float) m_y;
128 The_grid->center.z = (float) m_z;
130 if (((CButton *) GetDlgItem(IDC_XY_PLANE)) -> GetCheck()) {
131 The_grid->gmatrix.fvec = vmd_x_vector;
132 The_grid->gmatrix.rvec = vmd_y_vector;
134 } else if (((CButton *) GetDlgItem(IDC_YZ_PLANE)) -> GetCheck()) {
135 The_grid->gmatrix.fvec = vmd_y_vector;
136 The_grid->gmatrix.rvec = vmd_z_vector;
139 The_grid->gmatrix.fvec = vmd_x_vector;
140 The_grid->gmatrix.rvec = vmd_z_vector;
143 modify_grid(The_grid);
147 void adjust_grid_dlg::OnXyPlane()
149 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
150 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
151 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
152 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
153 GetDlgItem(IDC_EDIT_Z)->EnableWindow(TRUE);
154 GetDlgItem(IDC_SPIN_Z)->EnableWindow(TRUE);
157 void adjust_grid_dlg::OnXzPlane()
159 GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
160 GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
161 GetDlgItem(IDC_EDIT_Y)->EnableWindow(TRUE);
162 GetDlgItem(IDC_SPIN_Y)->EnableWindow(TRUE);
163 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
164 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);
167 void adjust_grid_dlg::OnYzPlane()
169 GetDlgItem(IDC_EDIT_X)->EnableWindow(TRUE);
170 GetDlgItem(IDC_SPIN_X)->EnableWindow(TRUE);
171 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
172 GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
173 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
174 GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);