0022459: The ImportExport sample crash
[occt.git] / samples / mfc / standard / Common / Resource2D / RectangularGrid.cpp
1 // RectangularGrid.cpp : implementation file
2 //
3
4 #include "stdafx.h"
5
6 #include "RectangularGrid.h"
7
8 /////////////////////////////////////////////////////////////////////////////
9 // CRectangularGrid dialog
10
11
12 CRectangularGrid::CRectangularGrid(CWnd* pParent /*=NULL*/)
13         : CDialog(CRectangularGrid::IDD, pParent)
14 {
15         //{{AFX_DATA_INIT(CRectangularGrid)
16         m_XOrigin = 0.0;
17         m_YOrigin = 0.0;
18         m_XStep   = 0.0;
19         m_YStep   = 0.0;
20         m_RotationAngle = 0.0;
21         //}}AFX_DATA_INIT
22 }
23
24
25 void CRectangularGrid::DoDataExchange(CDataExchange* pDX)
26 {
27         CDialog::DoDataExchange(pDX);
28         //{{AFX_DATA_MAP(CRectangularGrid)
29         DDX_Text(pDX, IDC_RectGrid_XOrigin, m_XOrigin);
30         DDX_Text(pDX, IDC_RectGrid_Yorigin, m_YOrigin);
31         DDX_Text(pDX, IDC_RectGrid_XStep, m_XStep);
32         DDX_Text(pDX, IDC_RectGrid_YStep, m_YStep);
33         DDX_Text(pDX, IDC_RectGrid_Rotationangle, m_RotationAngle);
34         //}}AFX_DATA_MAP
35 }
36
37
38 BEGIN_MESSAGE_MAP(CRectangularGrid, CDialog)
39         //{{AFX_MSG_MAP(CRectangularGrid)
40         ON_EN_UPDATE(IDC_RectGrid_Rotationangle, OnUpdateRectGridRotationangle)
41         ON_EN_UPDATE(IDC_RectGrid_XOrigin, OnUpdateRectGridXOrigin)
42         ON_EN_UPDATE(IDC_RectGrid_XStep, OnUpdateRectGridXStep)
43         ON_EN_UPDATE(IDC_RectGrid_Yorigin, OnUpdateRectGridYorigin)
44         ON_EN_UPDATE(IDC_RectGrid_YStep, OnUpdateRectGridYStep)
45         //}}AFX_MSG_MAP
46 END_MESSAGE_MAP()
47
48 /////////////////////////////////////////////////////////////////////////////
49 // CRectangularGrid message handlers
50
51 void CRectangularGrid::UpdateDialogData() 
52 {
53   UpdateData(TRUE);
54   ASSERT(!myViewer.IsNull());
55   Quantity_Length  XOrigin,YOrigin , XStep, YStep;
56   Quantity_PlaneAngle RotationAngle ;            
57   XOrigin = m_XOrigin ;
58   YOrigin = m_YOrigin ;
59   XStep   = m_XStep   ;
60   YStep   = m_YStep   ;
61   RotationAngle= m_RotationAngle*M_PI/180 ;
62   myViewer->SetRectangularGridValues(XOrigin, YOrigin, XStep, YStep, RotationAngle );
63 }
64
65 void CRectangularGrid::OnUpdateRectGridRotationangle() 
66 {
67   UpdateDialogData();
68 }
69
70 void CRectangularGrid::OnUpdateRectGridXOrigin() 
71 {
72   UpdateDialogData();
73 }
74
75 void CRectangularGrid::OnUpdateRectGridXStep() 
76 {
77   UpdateDialogData();
78 }
79
80 void CRectangularGrid::OnUpdateRectGridYorigin() 
81 {
82   UpdateDialogData();
83 }
84
85 void CRectangularGrid::OnUpdateRectGridYStep() 
86 {
87   UpdateDialogData();
88 }
89
90 void CRectangularGrid::OnCancel() 
91 {
92   myViewer->SetRectangularGridValues(SavedXOrigin, SavedYOrigin, 
93                                          SavedXStep, SavedYStep, 
94                                          SavedRotationAngle );
95   CDialog::OnCancel();
96 }
97
98 void CRectangularGrid::UpdateValues()
99 {
100   Quantity_Length  XOrigin,YOrigin , XStep, YStep;
101   Quantity_PlaneAngle RotationAngle ;                             
102   myViewer->RectangularGridValues(XOrigin, YOrigin, XStep, YStep, RotationAngle );
103   m_XOrigin = SavedXOrigin = XOrigin;
104   m_YOrigin = SavedYOrigin = YOrigin;
105   m_XStep   = SavedXStep   = XStep;
106   m_YStep   = SavedYStep   = YStep;
107   m_RotationAngle = SavedRotationAngle= RotationAngle;
108   UpdateData(FALSE);
109 }