AnimPageKeyFrame.cpp
上传用户:shxiangxiu
上传日期:2007-01-03
资源大小:1101k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // AnimPageKeyFrame.cpp : implementation file
  3. //
  4. // glOOP (OpenGL Object Oriented Programming library)
  5. // Copyright (c) Craig Fahrnbach 1997, 1998
  6. //
  7. // OpenGL is a registered trademark of Silicon Graphics
  8. //
  9. //
  10. // This program is provided for educational and personal use only and
  11. // is provided without guarantee or warrantee expressed or implied.
  12. //
  13. // Commercial use is strickly prohibited without written permission
  14. // from ImageWare Development.
  15. //
  16. // This program is -not- in the public domain.
  17. //
  18. /////////////////////////////////////////////////////////////////////////////
  19. #include "stdafx.h"
  20. #include "glOOP.h"
  21. #include "AnimationDialog.h"
  22. #ifdef _DEBUG
  23. #undef THIS_FILE
  24. static char BASED_CODE THIS_FILE[] = __FILE__;
  25. #endif
  26. /////////////////////////////////////////////////////////////////////////////
  27. // CAnimPageKeyFrame
  28. IMPLEMENT_DYNCREATE(CAnimPageKeyFrame, CPropertyPage)
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CAnimPageKeyFrame dialog construction
  31. CAnimPageKeyFrame::CAnimPageKeyFrame()
  32. : CPropertyPage(CAnimPageKeyFrame::IDD)
  33. {
  34. //{{AFX_DATA_INIT(CAnimPageKeyFrame)
  35. m_iNumFrames = 0;
  36. m_iCycleKeyFrames = -1;
  37. //}}AFX_DATA_INIT
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CAnimPageKeyFrame Destructor
  41. CAnimPageKeyFrame::~CAnimPageKeyFrame()
  42. {
  43. }
  44. void CAnimPageKeyFrame::DoDataExchange(CDataExchange* pDX)
  45. {
  46. CPropertyPage::DoDataExchange(pDX);
  47. //{{AFX_DATA_MAP(CAnimPageKeyFrame)
  48. DDX_Text(pDX, IDC_NUM_KEYFRAMES, m_iNumFrames);
  49. DDX_Radio(pDX, IDC_RADIO_CYCLE, m_iCycleKeyFrames);
  50. //}}AFX_DATA_MAP
  51. }
  52. BEGIN_MESSAGE_MAP(CAnimPageKeyFrame, CPropertyPage)
  53. //{{AFX_MSG_MAP(CAnimPageKeyFrame)
  54. ON_BN_CLICKED(IDC_RADIO_CYCLE, OnRadioCycle)
  55. //}}AFX_MSG_MAP
  56. END_MESSAGE_MAP()
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CAnimPageKeyFrame message handlers
  59. BOOL CAnimPageKeyFrame::OnInitDialog() 
  60. {
  61. // Set our local values to the Objects' values
  62. if(m_pAnimation)
  63. {
  64. // Disable the data windows (for reference only...)
  65. GetDlgItem(IDC_NUM_KEYFRAMES)->EnableWindow(FALSE);
  66. m_iNumFrames = m_pAnimation->m_pKeyFrameList->GetNumKeys();
  67. if(m_pAnimation->m_bCycleKeyFrames)
  68. m_iCycleKeyFrames = 0;
  69. else
  70. m_iCycleKeyFrames = 1;
  71. }
  72. CPropertyPage::OnInitDialog();  // let the base class do the default work
  73. return TRUE;  // return TRUE unless you set the focus to a control
  74.               // EXCEPTION: OCX Property Pages should return FALSE
  75. }
  76. void CAnimPageKeyFrame::OnOK() 
  77. {
  78. // Dialog box is being initialized (FALSE)
  79. // or data is being retrieved (TRUE).
  80. UpdateData(TRUE);
  81. // Set our Objects' values to the local values
  82. if(m_pAnimation)
  83. {
  84. }
  85. CPropertyPage::OnOK();
  86. }
  87. void CAnimPageKeyFrame::OnRadioCycle() 
  88. {
  89. if(m_pAnimation)
  90. {
  91. // Toggle the radio selection
  92. if(m_pAnimation->m_bCycleKeyFrames)
  93. {
  94. m_pAnimation->m_bCycleKeyFrames = FALSE;
  95. m_iCycleKeyFrames = 1;
  96. }
  97. else
  98. {
  99. m_pAnimation->m_bCycleKeyFrames = TRUE;
  100. m_iCycleKeyFrames = 0;
  101. }
  102. // Initialize the Dialog Data (forces DoDataExchange)
  103. UpdateData(FALSE);
  104. }
  105. }