]> icculus.org git repositories - taylor/freespace2.git/blob - src/fred2/adjustgriddlg.cpp
The Great Newline Fix
[taylor/freespace2.git] / src / fred2 / adjustgriddlg.cpp
1 /*
2  * $Logfile: /Freespace2/code/FRED2/AdjustGridDlg.cpp $
3  * $Revision$
4  * $Date$
5  * $Author$
6  *
7  * Editor to allow one to change Fred's grid orientation and position.
8  *
9  * $Log$
10  * Revision 1.2  2002/05/07 03:16:43  theoddone33
11  * The Great Newline Fix
12  *
13  * Revision 1.1.1.1  2002/05/03 03:28:08  root
14  * Initial import.
15  *
16  * 
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.
21  * 
22  * 1     10/07/98 3:01p Dave
23  * 
24  * 1     10/07/98 2:59p Dave
25  * 
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.
29  * 
30  * 2     8/18/97 9:31p Hoffoss
31  * Added grid adjustment dialog and shield system editor dialog.
32  *
33  * $NoKeywords: $
34  */
35
36 #include "stdafx.h"
37 #include "fred.h"
38 #include "adjustgriddlg.h"
39 #include "missiongrid.h"
40
41 #ifdef _DEBUG
42 #define new DEBUG_NEW
43 #undef THIS_FILE
44 static char THIS_FILE[] = __FILE__;
45 #endif
46
47 /////////////////////////////////////////////////////////////////////////////
48 // adjust_grid_dlg dialog
49
50 adjust_grid_dlg::adjust_grid_dlg(CWnd* pParent /*=NULL*/)
51         : CDialog(adjust_grid_dlg::IDD, pParent)
52 {
53         //{{AFX_DATA_INIT(adjust_grid_dlg)
54         m_x = 0;
55         m_y = 0;
56         m_z = 0;
57         //}}AFX_DATA_INIT
58 }
59
60 void adjust_grid_dlg::DoDataExchange(CDataExchange* pDX)
61 {
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);
70         //}}AFX_DATA_MAP
71 }
72
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)
78         //}}AFX_MSG_MAP
79 END_MESSAGE_MAP()
80
81 /////////////////////////////////////////////////////////////////////////////
82 // adjust_grid_dlg message handlers
83
84 BOOL adjust_grid_dlg::OnInitDialog() 
85 {
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);
94
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);
99
100         } else {
101                 ((CButton *) GetDlgItem(IDC_YZ_PLANE))->SetCheck(TRUE);
102                 GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
103                 GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
104         }
105
106         m_spinx.SetRange(99999, -99999);
107         m_spiny.SetRange(99999, -99999);
108         m_spinz.SetRange(99999, -99999);
109         return TRUE;
110 }
111
112 void adjust_grid_dlg::OnOK()
113 {
114         UpdateData(TRUE);
115         The_grid->center.x = (float) m_x;
116         The_grid->center.y = (float) m_y;
117         The_grid->center.z = (float) m_z;
118
119         if (((CButton *) GetDlgItem(IDC_XY_PLANE)) -> GetCheck()) {
120                 The_grid->gmatrix.fvec = vmd_x_vector;
121                 The_grid->gmatrix.rvec = vmd_y_vector;
122
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;
126
127         } else {  // XZ plane
128                 The_grid->gmatrix.fvec = vmd_x_vector;
129                 The_grid->gmatrix.rvec = vmd_z_vector;
130         }
131
132         modify_grid(The_grid);
133         CDialog::OnOK();
134 }
135
136 void adjust_grid_dlg::OnXyPlane() 
137 {
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);
144 }
145
146 void adjust_grid_dlg::OnXzPlane() 
147 {
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);
154 }
155
156 void adjust_grid_dlg::OnYzPlane() 
157 {
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);
164 }
165