home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 8090 / ModelEdit.7z / InvalidAnimDimsDlg.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2006-03-08  |  3.1 KB  |  125 lines

  1. // InvalidAnimDimsDlg.cpp : implementation file
  2. //
  3.  
  4. #include "precompile.h"
  5. #include "modeledit.h"
  6. #include "invalidanimdimsdlg.h"
  7. #include "model_ops.h"
  8.  
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14.  
  15. /////////////////////////////////////////////////////////////////////////////
  16. // CInvalidAnimDimsDlg dialog
  17.  
  18.  
  19. CInvalidAnimDimsDlg::CInvalidAnimDimsDlg(CWnd* pParent /*=NULL*/)
  20.     : CDialog(CInvalidAnimDimsDlg::IDD, pParent)
  21. {
  22.     //{{AFX_DATA_INIT(CInvalidAnimDimsDlg)
  23.     //}}AFX_DATA_INIT
  24. }
  25.  
  26.  
  27. void CInvalidAnimDimsDlg::DoDataExchange(CDataExchange* pDX)
  28. {
  29.     CDialog::DoDataExchange(pDX);
  30.     //{{AFX_DATA_MAP(CInvalidAnimDimsDlg)
  31.     //}}AFX_DATA_MAP
  32. }
  33.  
  34.  
  35. BEGIN_MESSAGE_MAP(CInvalidAnimDimsDlg, CDialog)
  36.     //{{AFX_MSG_MAP(CInvalidAnimDimsDlg)
  37.     ON_EN_CHANGE(IDC_EDIT_DIMS_X, UpdateEnabled)
  38.     ON_EN_CHANGE(IDC_EDIT_DIMS_Z, UpdateEnabled)
  39.  
  40.     ON_BN_CLICKED(IDC_BUTTON_USE_X, OnButtonUseX)
  41.     ON_BN_CLICKED(IDC_BUTTON_USE_Z, OnButtonUseZ)
  42.  
  43.     //}}AFX_MSG_MAP
  44. END_MESSAGE_MAP()
  45.  
  46. /////////////////////////////////////////////////////////////////////////////
  47. // CInvalidAnimDimsDlg message handlers
  48.  
  49. void CInvalidAnimDimsDlg::OnOK() 
  50. {
  51.     //get the values and make sure that they are ok
  52.     CString sX, sZ;
  53.     GetDlgItem(IDC_EDIT_DIMS_X)->GetWindowText(sX);
  54.     GetDlgItem(IDC_EDIT_DIMS_Z)->GetWindowText(sZ);
  55.  
  56.     //convert to floats
  57.     m_pAnimInfo->m_vDims.x = (float)atof(sX);
  58.     m_pAnimInfo->m_vDims.z = (float)atof(sZ);
  59.     
  60.     CDialog::OnOK();
  61. }
  62.  
  63. void CInvalidAnimDimsDlg::UpdateEnabled()
  64. {
  65.     //get the values and make sure that they are ok
  66.     CString sX, sZ;
  67.     GetDlgItem(IDC_EDIT_DIMS_X)->GetWindowText(sX);
  68.     GetDlgItem(IDC_EDIT_DIMS_Z)->GetWindowText(sZ);
  69.  
  70.     //convert to floats
  71.     float fX = (float)atof(sX);
  72.     float fZ = (float)atof(sZ);
  73.  
  74.     //make sure that they match
  75.     GetDlgItem(IDOK)->EnableWindow(fabs(fX - fZ) < 0.1f);
  76. }
  77.  
  78. BOOL CInvalidAnimDimsDlg::OnInitDialog() 
  79. {
  80.     CDialog::OnInitDialog();
  81.     
  82.     //display the animation name
  83.     CString sAnimName;
  84.     sAnimName.Format("Anim: %s", m_pAnimInfo->m_pAnim->GetName());
  85.     GetDlgItem(IDC_STATIC_ANIM_NAME)->SetWindowText(sAnimName);
  86.  
  87.     //now fill in the dimension fields
  88.     CString sData;
  89.  
  90.     sData.Format("%.2f", m_pAnimInfo->m_vDims.x);
  91.     GetDlgItem(IDC_EDIT_DIMS_X)->SetWindowText(sData);
  92.  
  93.     sData.Format("%.2f", m_pAnimInfo->m_vDims.y);
  94.     GetDlgItem(IDC_EDIT_DIMS_Y)->SetWindowText(sData);
  95.  
  96.     sData.Format("%.2f", m_pAnimInfo->m_vDims.z);
  97.     GetDlgItem(IDC_EDIT_DIMS_Z)->SetWindowText(sData);
  98.  
  99.     //update the enabled status
  100.     UpdateEnabled();
  101.     
  102.     return TRUE;  // return TRUE unless you set the focus to a control
  103.                   // EXCEPTION: OCX Property Pages should return FALSE
  104. }
  105.  
  106. void CInvalidAnimDimsDlg::OnButtonUseX()
  107. {
  108.     //copy the text from the X field to the Z field and just bail
  109.     CString sX;
  110.     GetDlgItem(IDC_EDIT_DIMS_X)->GetWindowText(sX);
  111.     GetDlgItem(IDC_EDIT_DIMS_Z)->SetWindowText(sX);
  112.  
  113.     OnOK();
  114. }
  115.  
  116. void CInvalidAnimDimsDlg::OnButtonUseZ()
  117. {
  118.     //copy the text from the Z field to the X field and just bail
  119.     CString sZ;
  120.     GetDlgItem(IDC_EDIT_DIMS_Z)->GetWindowText(sZ);
  121.     GetDlgItem(IDC_EDIT_DIMS_X)->SetWindowText(sZ);
  122.  
  123.     OnOK();
  124. }
  125.