1 // MarkPropertyPage.cpp : implementation file
6 #include "MarkPropertyPage.h"
8 #include "Aspect_MarkMap.hxx"
9 #include "Aspect_MarkMapEntry.hxx"
10 #include "TColQuantity_Array1OfLength.hxx"
11 #include "TColStd_SequenceOfReal.hxx"
12 #include "TShort_Array1OfShortReal.hxx"
13 #include "TColStd_Array1OfBoolean.hxx"
15 /////////////////////////////////////////////////////////////////////////////
16 // CMarkPropertyPage property page
18 IMPLEMENT_DYNCREATE(CMarkPropertyPage, CPropertyPage)
20 CMarkPropertyPage::CMarkPropertyPage() : CPropertyPage(CMarkPropertyPage::IDD)
22 //{{AFX_DATA_INIT(CMarkPropertyPage)
23 m_MarkMapSize = _T("Computing...");
24 m_CurrentEntryStyle = _T("Computing...");
25 m_CurrentEntryXValue = _T("Computing...");
26 m_CurrentEntryYValue = _T("Computing...");
27 m_CurrentEntrySValue = _T("Computing...");
32 BOOL CMarkPropertyPage::OnInitDialog()
34 CPropertyPage::OnInitDialog();
40 return TRUE; // return TRUE unless you set the focus to a control
41 // EXCEPTION: OCX Property Pages should return FALSE
44 CMarkPropertyPage::~CMarkPropertyPage()
48 void CMarkPropertyPage::DoDataExchange(CDataExchange* pDX)
50 CPropertyPage::DoDataExchange(pDX);
51 //{{AFX_DATA_MAP(CMarkPropertyPage)
52 DDX_Control(pDX, IDC_MarkMap_TAB, m_TabCtrl);
53 DDX_Text(pDX, IDC_MarkMap_STATIC_Size, m_MarkMapSize);
54 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryStyle, m_CurrentEntryStyle);
55 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryXValue, m_CurrentEntryXValue);
56 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntryYValue, m_CurrentEntryYValue);
57 DDX_Text(pDX, IDC_MarkMap_STATIC_CurrentEntrySValue, m_CurrentEntrySValue);
63 BEGIN_MESSAGE_MAP(CMarkPropertyPage, CPropertyPage)
64 //{{AFX_MSG_MAP(CMarkPropertyPage)
65 ON_NOTIFY(TCN_SELCHANGE, IDC_MarkMap_TAB, OnSelchangeMarkMapTAB)
69 /////////////////////////////////////////////////////////////////////////////
70 // CMarkPropertyPage message handlers
71 void CMarkPropertyPage::UpdateDisplay(int CurrentSelectionIndex)
73 TCollection_AsciiString SizeMessage(myMarkMap->Size());
74 m_MarkMapSize = _T(SizeMessage.ToCString());
76 m_TabCtrl.DeleteAllItems();
79 TabCtrlItem.mask = TCIF_TEXT;
81 for(int i =1;i<=myMarkMap->Size();i++)
83 Aspect_MarkMapEntry aMarkMapEntry = myMarkMap->Entry(i);
84 TCollection_AsciiString EntryNumerMessage(aMarkMapEntry.Index());
85 TabCtrlItem.pszText = (LPSTR) EntryNumerMessage.ToCString();
86 m_TabCtrl.InsertItem( aMarkMapEntry.Index(), &TabCtrlItem );
88 m_TabCtrl.SetCurSel(CurrentSelectionIndex-1);
90 // update The Current Selected entry
91 Aspect_MarkMapEntry aMarkMapEntry = myMarkMap->Entry(CurrentSelectionIndex);
92 if (aMarkMapEntry. IsAllocated () )
94 Aspect_MarkerStyle aMarkerStyle = aMarkMapEntry.Style() ;
95 switch (aMarkerStyle.Type()) {
96 case Aspect_TOM_POINT : m_CurrentEntryStyle = _T("Aspect_TOM_POINT"); break;
97 case Aspect_TOM_PLUS : m_CurrentEntryStyle = _T("Aspect_TOM_PLUS"); break;
98 case Aspect_TOM_STAR : m_CurrentEntryStyle = _T("Aspect_TOM_STAR"); break;
99 case Aspect_TOM_O : m_CurrentEntryStyle = _T("Aspect_TOM_O"); break;
100 case Aspect_TOM_X : m_CurrentEntryStyle = _T("Aspect_TOM_X"); break;
101 case Aspect_TOM_O_POINT : m_CurrentEntryStyle = _T("Aspect_TOM_O_POINT"); break;
102 case Aspect_TOM_O_PLUS : m_CurrentEntryStyle = _T("Aspect_TOM_O_PLUS"); break;
103 case Aspect_TOM_O_STAR : m_CurrentEntryStyle = _T("Aspect_TOM_O_STAR"); break;
104 case Aspect_TOM_O_X : m_CurrentEntryStyle = _T("Aspect_TOM_O_X"); break;
105 case Aspect_TOM_BALL : m_CurrentEntryStyle = _T("Aspect_TOM_BALL"); break;
106 case Aspect_TOM_RING1 : m_CurrentEntryStyle = _T("Aspect_TOM_RING1"); break;
107 case Aspect_TOM_RING2 : m_CurrentEntryStyle = _T("Aspect_TOM_RING2"); break;
108 case Aspect_TOM_RING3 : m_CurrentEntryStyle = _T("Aspect_TOM_RING3"); break;
109 case Aspect_TOM_USERDEFINED : m_CurrentEntryStyle = _T("Aspect_TOM_USERDEFINED"); break;
110 default : m_CurrentEntryStyle = _T("Underknown");
113 cout<<" aMarkerStyle Length: "<<aMarkerStyle.Length()<<endl;
115 const TShort_Array1OfShortReal& aMarkerStyleXValues = aMarkerStyle.XValues() ;
116 const TShort_Array1OfShortReal& aMarkerStyleYValues= aMarkerStyle.YValues() ;
117 const TColStd_Array1OfBoolean& aMarkerStyleSValues= aMarkerStyle.SValues() ;
119 TCollection_AsciiString MessageX =BuildValuesAscii(aMarkerStyleXValues);
120 TCollection_AsciiString MessageY =BuildValuesAscii(aMarkerStyleYValues);
121 TCollection_AsciiString MessageS =BuildValuesAscii(aMarkerStyleSValues);
123 m_CurrentEntryXValue = _T(MessageX.ToCString());
124 m_CurrentEntryYValue = _T(MessageY.ToCString());
125 m_CurrentEntrySValue = _T(MessageS.ToCString());
130 m_CurrentEntryStyle = _T("Not Allocated");
131 m_CurrentEntryXValue = _T("");
132 m_CurrentEntryYValue = _T("");
133 m_CurrentEntrySValue = _T("");
134 GetDlgItem(IDC_FontMap_BUTTON_UpdateCurrent)->ShowWindow(SW_HIDE);
138 void CMarkPropertyPage::OnSelchangeMarkMapTAB(NMHDR* pNMHDR, LRESULT* pResult)
140 UpdateDisplay(m_TabCtrl.GetCurSel()+1);
145 BOOL CMarkPropertyPage::OnApply()
147 // myViewer->SetMarkMap(myMarkMap);
148 // myViewer->Update();
149 return CPropertyPage::OnApply();
152 TCollection_AsciiString CMarkPropertyPage::BuildValuesAscii(const TShort_Array1OfShortReal& anArray)
154 TCollection_AsciiString Message;
155 for(int i=1;i<=anArray.Length();i++)
157 Message += anArray.Value(i);
163 TCollection_AsciiString CMarkPropertyPage::BuildValuesAscii(const TColStd_Array1OfBoolean& anArray)
165 TCollection_AsciiString Message;
166 for(int i=1;i<=anArray.Length();i++)
168 if (anArray(i)) Message += "True"; else Message += "False";