2459de2f837cf3ce52b936769ea64aecdb01d6ca
[occt.git] / samples / mfc / standard / Common / ImportExport / SaveSTEPDlg.cpp
1 // FileSaveStepDialog.cpp : implementation file
2 //
3
4 #include "stdafx.h"
5
6 #include "SaveSTEPDlg.h"
7
8 /////////////////////////////////////////////////////////////////////////////
9 // CFileSaveSTEPDialog dialog
10
11
12 CFileSaveSTEPDialog::CFileSaveSTEPDialog(CWnd* pParent /*=NULL*/)
13         : CFileDialog(FALSE,_T("*.STEP"),NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
14                 _T("STEP Files (*.step)|*.step;|STEP Files (*.stp)|*.stp;||"),
15                                   pParent)
16
17
18
19 //dlg.m_ofn.lpstrInitialDir = initdir;
20
21 {
22         //{{AFX_DATA_INIT(CFileSaveSTEPDialog)
23         m_Cc1ModelType = STEPControl_ManifoldSolidBrep;
24         //}}AFX_DATA_INIT
25
26 CString CASROOTValue;
27 CASROOTValue.GetEnvironmentVariable (L"CASROOT");
28 CString initdir = (CASROOTValue + "\\..\\data\\step");
29
30         m_ofn.lpstrInitialDir = initdir;
31         m_ofn.Flags |= OFN_ENABLETEMPLATE;
32         m_ofn.lpTemplateName = MAKEINTRESOURCE(CFileSaveSTEPDialog::IDD);
33         m_ofn.lpstrTitle = _T("Save as STEP File");
34 }
35
36 void CFileSaveSTEPDialog::DoDataExchange(CDataExchange* pDX)
37 {
38         CFileDialog::DoDataExchange(pDX);
39     if (!pDX->m_bSaveAndValidate)
40         {
41
42         if (m_Cc1ModelType==STEPControl_ManifoldSolidBrep) m_DialogType=0;
43         if (m_Cc1ModelType==STEPControl_BrepWithVoids) Standard_Failure::Raise("unsupported enumeration terme");
44         if (m_Cc1ModelType==STEPControl_FacetedBrep) m_DialogType=1;
45         if (m_Cc1ModelType==STEPControl_FacetedBrepAndBrepWithVoids) Standard_Failure::Raise("unsupported enumeration terme");
46         if (m_Cc1ModelType==STEPControl_ShellBasedSurfaceModel) m_DialogType=2;
47         if (m_Cc1ModelType==STEPControl_GeometricCurveSet) m_DialogType=3;
48
49                 }
50         //{{AFX_DATA_MAP(CFileSaveSTEPDialog)
51         DDX_Control(pDX, IDC_FSaveSTEP_Type, m_SaveTypeCombo);
52         DDX_CBIndex(pDX, IDC_FSaveSTEP_Type, m_DialogType );
53         //}}AFX_DATA_MAP
54
55     if (pDX->m_bSaveAndValidate)
56         {
57
58         if (m_DialogType==0) m_Cc1ModelType=STEPControl_ManifoldSolidBrep;
59
60         if (m_DialogType==1) m_Cc1ModelType=STEPControl_FacetedBrep;
61
62         if (m_DialogType==2) m_Cc1ModelType=STEPControl_ShellBasedSurfaceModel;
63         if (m_DialogType==3) m_Cc1ModelType=STEPControl_GeometricCurveSet;
64
65                 }
66 }
67
68 BEGIN_MESSAGE_MAP(CFileSaveSTEPDialog, CFileDialog)
69         //{{AFX_MSG_MAP(CFileSaveSTEPDialog)
70         ON_WM_CLOSE()
71         //}}AFX_MSG_MAP
72 END_MESSAGE_MAP()
73
74 /////////////////////////////////////////////////////////////////////////////
75 // CFileSaveSTEPDialog message handlers
76
77 BOOL CFileSaveSTEPDialog::OnInitDialog() 
78 {
79         
80         BOOL bRet =     CFileDialog::OnInitDialog();
81         m_SaveTypeCombo.InsertString(-1, L"ManifoldSolidBrep");
82
83   m_SaveTypeCombo.InsertString(-1, L"FacetedBrep");
84
85   m_SaveTypeCombo.InsertString(-1, L"ShellBasedSurfaceModel");
86   m_SaveTypeCombo.InsertString(-1, L"GeometricCurveSet");
87         m_SaveTypeCombo.SetCurSel(m_DialogType);
88
89         return bRet;
90 }
91
92 BOOL CFileSaveSTEPDialog::OnFileNameOK()
93 {
94         ASSERT_VALID(this);
95         UpdateData(TRUE);
96
97         // Do not call Default() if you override
98         return FALSE;
99 }