0023821: Improve qmake project files for Qt samples
[occt.git] / samples / mfc / standard / 08_HLR / src / Properties / MarkPropertyPage.cpp
CommitLineData
7fd59977 1// MarkPropertyPage.cpp : implementation file
2//
3
4#include "stdafx.h"
5
6#include "MarkPropertyPage.h"
7
8#include "HLRApp.h"
9
10#include "Aspect_MarkMap.hxx"
11#include "Aspect_MarkMapEntry.hxx"
12#include "TColQuantity_Array1OfLength.hxx"
13#include "TColStd_SequenceOfReal.hxx"
14#include "TShort_Array1OfShortReal.hxx"
15#include "TColStd_Array1OfBoolean.hxx"
16
17#ifdef _DEBUG
18//#define new DEBUG_NEW
19#undef THIS_FILE
20static char THIS_FILE[] = __FILE__;
21#endif
22
23/////////////////////////////////////////////////////////////////////////////
24// CMarkPropertyPage property page
25
26IMPLEMENT_DYNCREATE(CMarkPropertyPage, CPropertyPage)
27
28CMarkPropertyPage::CMarkPropertyPage() : CPropertyPage(CMarkPropertyPage::IDD)
29{
30 //{{AFX_DATA_INIT(CMarkPropertyPage)
31 m_MarkMapSize = _T("Computing...");
32 m_CurrentEntryStyle = _T("Computing...");
33 m_CurrentEntryXValue = _T("Computing...");
34 m_CurrentEntryYValue = _T("Computing...");
35 m_CurrentEntrySValue = _T("Computing...");
36 //}}AFX_DATA_INIT
37
38
39}
40BOOL CMarkPropertyPage::OnInitDialog()
41{
42 CPropertyPage::OnInitDialog();
43
44 UpdateDisplay(1);
45
46 UpdateData(false);
47
48 return TRUE; // return TRUE unless you set the focus to a control
49 // EXCEPTION: OCX Property Pages should return FALSE
50}
51
52CMarkPropertyPage::~CMarkPropertyPage()
53{
54}
55
56void CMarkPropertyPage::DoDataExchange(CDataExchange* pDX)
57{
58 CPropertyPage::DoDataExchange(pDX);
59 //{{AFX_DATA_MAP(CMarkPropertyPage)
60 DDX_Control(pDX, IDC_MarkMap_TAB, m_TabCtrl);
61 DDX_Text(pDX, IDC_MarkMap_STATIC_Size, m_MarkMapSize);
62 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryStyle, m_CurrentEntryStyle);
63 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryXValue, m_CurrentEntryXValue);
64 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryYValue, m_CurrentEntryYValue);
65 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntrySValue, m_CurrentEntrySValue);
66
67 //}}AFX_DATA_MAP
68}
69
70
71BEGIN_MESSAGE_MAP(CMarkPropertyPage, CPropertyPage)
72 //{{AFX_MSG_MAP(CMarkPropertyPage)
73 ON_NOTIFY(TCN_SELCHANGE, IDC_MarkMap_TAB, OnSelchangeMarkMapTAB)
74 //}}AFX_MSG_MAP
75END_MESSAGE_MAP()
76
77/////////////////////////////////////////////////////////////////////////////
78// CMarkPropertyPage message handlers
79void CMarkPropertyPage::UpdateDisplay(int CurrentSelectionIndex)
80{
81 TCollection_AsciiString SizeMessage(myMarkMap->Size());
82 m_MarkMapSize = _T(SizeMessage.ToCString());
83
84 m_TabCtrl.DeleteAllItems();
85
86 TC_ITEM TabCtrlItem;
87 TabCtrlItem.mask = TCIF_TEXT;
88
89 for(int i =1;i<=myMarkMap->Size();i++)
90 {
91 Aspect_MarkMapEntry aMarkMapEntry = myMarkMap->Entry(i);
92 TCollection_AsciiString EntryNumerMessage(aMarkMapEntry.Index());
93 TabCtrlItem.pszText = (LPSTR) EntryNumerMessage.ToCString();
94 m_TabCtrl.InsertItem( aMarkMapEntry.Index(), &TabCtrlItem );
95 }
96 m_TabCtrl.SetCurSel(CurrentSelectionIndex-1);
97
98 // update The Current Selected entry
99 Aspect_MarkMapEntry aMarkMapEntry = myMarkMap->Entry(CurrentSelectionIndex);
100 if (aMarkMapEntry. IsAllocated () )
101 {
102 Aspect_MarkerStyle aMarkerStyle = aMarkMapEntry.Style() ;
103 switch (aMarkerStyle.Type()) {
104 case Aspect_TOM_POINT : m_CurrentEntryStyle = _T("Aspect_TOM_POINT"); break;
105 case Aspect_TOM_PLUS : m_CurrentEntryStyle = _T("Aspect_TOM_PLUS"); break;
106 case Aspect_TOM_STAR : m_CurrentEntryStyle = _T("Aspect_TOM_STAR"); break;
107 case Aspect_TOM_O : m_CurrentEntryStyle = _T("Aspect_TOM_O"); break;
108 case Aspect_TOM_X : m_CurrentEntryStyle = _T("Aspect_TOM_X"); break;
109 case Aspect_TOM_O_POINT : m_CurrentEntryStyle = _T("Aspect_TOM_O_POINT"); break;
110 case Aspect_TOM_O_PLUS : m_CurrentEntryStyle = _T("Aspect_TOM_O_PLUS"); break;
111 case Aspect_TOM_O_STAR : m_CurrentEntryStyle = _T("Aspect_TOM_O_STAR"); break;
112 case Aspect_TOM_O_X : m_CurrentEntryStyle = _T("Aspect_TOM_O_X"); break;
113 case Aspect_TOM_BALL : m_CurrentEntryStyle = _T("Aspect_TOM_BALL"); break;
114 case Aspect_TOM_RING1 : m_CurrentEntryStyle = _T("Aspect_TOM_RING1"); break;
115 case Aspect_TOM_RING2 : m_CurrentEntryStyle = _T("Aspect_TOM_RING2"); break;
116 case Aspect_TOM_RING3 : m_CurrentEntryStyle = _T("Aspect_TOM_RING3"); break;
117 case Aspect_TOM_USERDEFINED : m_CurrentEntryStyle = _T("Aspect_TOM_USERDEFINED"); break;
118 default : m_CurrentEntryStyle = _T("Underknown");
119 }
120
121 cout<<" aMarkerStyle Length: "<<aMarkerStyle.Length()<<endl;
122
123 const TShort_Array1OfShortReal& aMarkerStyleXValues = aMarkerStyle.XValues() ;
124 const TShort_Array1OfShortReal& aMarkerStyleYValues= aMarkerStyle.YValues() ;
125 const TColStd_Array1OfBoolean& aMarkerStyleSValues= aMarkerStyle.SValues() ;
126
127 TCollection_AsciiString MessageX =BuildValuesAscii(aMarkerStyleXValues);
128 TCollection_AsciiString MessageY =BuildValuesAscii(aMarkerStyleYValues);
129 TCollection_AsciiString MessageS =BuildValuesAscii(aMarkerStyleSValues);
130
131 m_CurrentEntryXValue = _T(MessageX.ToCString());
132 m_CurrentEntryYValue = _T(MessageY.ToCString());
133 m_CurrentEntrySValue = _T(MessageS.ToCString());
134
135 }
136 else
137 {
138 m_CurrentEntryStyle = _T("Not Allocated");
139 m_CurrentEntryXValue = _T("");
140 m_CurrentEntryYValue = _T("");
141 m_CurrentEntrySValue = _T("");
142 GetDlgItem(IDC_FontMap_BUTTON_UpdateCurrent)->ShowWindow(SW_HIDE);
143 }
144}
145
146void CMarkPropertyPage::OnSelchangeMarkMapTAB(NMHDR* pNMHDR, LRESULT* pResult)
147{
148 UpdateDisplay(m_TabCtrl.GetCurSel()+1);
149 UpdateData(false);
150 *pResult = 0;
151}
152
153BOOL CMarkPropertyPage::OnApply()
154{
155// myViewer->SetMarkMap(myMarkMap);
156// myViewer->Update();
157 return CPropertyPage::OnApply();
158}
159
160TCollection_AsciiString CMarkPropertyPage::BuildValuesAscii(const TShort_Array1OfShortReal& anArray)
161{
162 TCollection_AsciiString Message;
163 for(int i=1;i<=anArray.Length();i++)
164 {
165 Message += anArray.Value(i);
166 Message += "\t";
167 }
168 return Message;
169}
170
171TCollection_AsciiString CMarkPropertyPage::BuildValuesAscii(const TColStd_Array1OfBoolean& anArray)
172{
173 TCollection_AsciiString Message;
174 for(int i=1;i<=anArray.Length();i++)
175 {
176 if (anArray(i)) Message += "True"; else Message += "False";
177 Message += "\t";
178 }
179 return Message;
180}