1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
/*
* Copyright (C) Volition, Inc. 1999. All rights reserved.
*
* All source code herein is the property of Volition, Inc. You may not sell
* or otherwise commercially exploit the source or things you created based on the
* source.
*
*/
#include "stdafx.h"
#include "FRED.h"
#include "AdjustGridDlg.h"
#include "mission/missiongrid.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// adjust_grid_dlg dialog
adjust_grid_dlg::adjust_grid_dlg(CWnd* pParent /*=NULL*/)
: CDialog(adjust_grid_dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(adjust_grid_dlg)
m_x = 0;
m_y = 0;
m_z = 0;
//}}AFX_DATA_INIT
}
void adjust_grid_dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(adjust_grid_dlg)
DDX_Control(pDX, IDC_SPIN_Z, m_spinz);
DDX_Control(pDX, IDC_SPIN_Y, m_spiny);
DDX_Control(pDX, IDC_SPIN_X, m_spinx);
DDX_Text(pDX, IDC_EDIT_X, m_x);
DDX_Text(pDX, IDC_EDIT_Y, m_y);
DDX_Text(pDX, IDC_EDIT_Z, m_z);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(adjust_grid_dlg, CDialog)
//{{AFX_MSG_MAP(adjust_grid_dlg)
ON_BN_CLICKED(IDC_XY_PLANE, OnXyPlane)
ON_BN_CLICKED(IDC_XZ_PLANE, OnXzPlane)
ON_BN_CLICKED(IDC_YZ_PLANE, OnYzPlane)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// adjust_grid_dlg message handlers
BOOL adjust_grid_dlg::OnInitDialog()
{
m_x = (int) The_grid->center.xyz.x;
m_y = (int) The_grid->center.xyz.y;
m_z = (int) The_grid->center.xyz.z;
CDialog::OnInitDialog();
if (The_grid->gmatrix.vec.uvec.xyz.y) {
((CButton *) GetDlgItem(IDC_XZ_PLANE))->SetCheck(TRUE);
GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
} else if (The_grid->gmatrix.vec.uvec.xyz.z) {
((CButton *) GetDlgItem(IDC_XY_PLANE))->SetCheck(TRUE);
GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
} else {
((CButton *) GetDlgItem(IDC_YZ_PLANE))->SetCheck(TRUE);
GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
}
m_spinx.SetRange(SHRT_MIN, SHRT_MAX);
m_spiny.SetRange(SHRT_MIN, SHRT_MAX);
m_spinz.SetRange(SHRT_MIN, SHRT_MAX);
return TRUE;
}
void adjust_grid_dlg::OnOK()
{
UpdateData(TRUE);
The_grid->center.xyz.x = (float) m_x;
The_grid->center.xyz.y = (float) m_y;
The_grid->center.xyz.z = (float) m_z;
if (((CButton *) GetDlgItem(IDC_XY_PLANE)) -> GetCheck()) {
The_grid->gmatrix.vec.fvec = vmd_x_vector;
The_grid->gmatrix.vec.rvec = vmd_y_vector;
} else if (((CButton *) GetDlgItem(IDC_YZ_PLANE)) -> GetCheck()) {
The_grid->gmatrix.vec.fvec = vmd_y_vector;
The_grid->gmatrix.vec.rvec = vmd_z_vector;
} else { // XZ plane
The_grid->gmatrix.vec.fvec = vmd_x_vector;
The_grid->gmatrix.vec.rvec = vmd_z_vector;
}
modify_grid(The_grid);
CDialog::OnOK();
}
void adjust_grid_dlg::OnXyPlane()
{
GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Z)->EnableWindow(TRUE);
GetDlgItem(IDC_SPIN_Z)->EnableWindow(TRUE);
}
void adjust_grid_dlg::OnXzPlane()
{
GetDlgItem(IDC_EDIT_X)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_X)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Y)->EnableWindow(TRUE);
GetDlgItem(IDC_SPIN_Y)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);
}
void adjust_grid_dlg::OnYzPlane()
{
GetDlgItem(IDC_EDIT_X)->EnableWindow(TRUE);
GetDlgItem(IDC_SPIN_X)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_Y)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_Y)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_Z)->EnableWindow(FALSE);
GetDlgItem(IDC_SPIN_Z)->EnableWindow(FALSE);
}
|