X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fviews.cpp;h=6f71f01602850e3204409a47649d5328991f84ad;hb=c6f2bb52c598291d61d31a3eba54b84ebb338580;hp=0a3896c012513435375f37d1f0eec593adcb9d32;hpb=ba8635d790ee847d9746c6da24b60bd4cb6d9116;p=ctsim.git diff --git a/src/views.cpp b/src/views.cpp index 0a3896c..6f71f01 100644 --- a/src/views.cpp +++ b/src/views.cpp @@ -9,7 +9,7 @@ ** This is part of the CTSim program ** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: views.cpp,v 1.92 2001/01/30 07:32:13 kevin Exp $ +** $Id: views.cpp,v 1.96 2001/02/02 23:04:06 kevin Exp $ ** ** This program is free software; you can redistribute it and/or modify ** it under the terms of the GNU General Public License (version 2) as @@ -226,6 +226,9 @@ EVT_MENU(IFMENU_IMAGE_SUBTRACT, ImageFileView::OnSubtract) EVT_MENU(IFMENU_IMAGE_MULTIPLY, ImageFileView::OnMultiply) EVT_MENU(IFMENU_IMAGE_DIVIDE, ImageFileView::OnDivide) EVT_MENU(IFMENU_IMAGE_SCALESIZE, ImageFileView::OnScaleSize) +#if wxUSE_GLCANVAS +EVT_MENU(IFMENU_IMAGE_CONVERT3D, ImageFileView::OnConvert3d) +#endif #ifdef HAVE_FFT EVT_MENU(IFMENU_FILTER_FFT, ImageFileView::OnFFT) EVT_MENU(IFMENU_FILTER_IFFT, ImageFileView::OnIFFT) @@ -861,6 +864,9 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) image_menu->Append (IFMENU_IMAGE_DIVIDE, "&Divide..."); image_menu->AppendSeparator(); image_menu->Append (IFMENU_IMAGE_SCALESIZE, "S&cale Size..."); +#if wxUSE_GLCANVAS + image_menu->Append (IFMENU_IMAGE_CONVERT3D, "Convert &3-D\tCtrl-3"); +#endif m_pMenuAnalyze = new wxMenu; m_pMenuAnalyze->Append (IFMENU_PLOT_ROW, "Plot &Row"); @@ -898,7 +904,7 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) subframe->Centre(wxBOTH); - wxAcceleratorEntry accelEntries[10]; + wxAcceleratorEntry accelEntries[11]; accelEntries[0].Set (wxACCEL_CTRL, static_cast('O'), wxID_OPEN); accelEntries[1].Set (wxACCEL_CTRL, static_cast('S'), wxID_SAVE); accelEntries[2].Set (wxACCEL_CTRL, static_cast('W'), wxID_CLOSE); @@ -909,7 +915,13 @@ ImageFileView::CreateChildFrame(wxDocument *doc, wxView *view) accelEntries[7].Set (wxACCEL_CTRL, static_cast('A'), IFMENU_VIEW_SCALE_AUTO); accelEntries[8].Set (wxACCEL_CTRL, static_cast('U'), IFMENU_VIEW_SCALE_FULL); accelEntries[9].Set (wxACCEL_CTRL, static_cast('E'), IFMENU_VIEW_SCALE_MINMAX); +#if wxUSE_GLCANVAS + accelEntries[10].Set (wxACCEL_CTRL, static_cast('3'), IFMENU_IMAGE_CONVERT3D); + wxAcceleratorTable accelTable (11, accelEntries); +#else wxAcceleratorTable accelTable (10, accelEntries); +#endif + subframe->SetAcceleratorTable (accelTable); return subframe; @@ -1020,7 +1032,7 @@ ImageFileView::OnClose (bool deleteWindow) SetFrame(NULL); if (deleteWindow) { - m_pFrame->Destroy(); + delete m_pFrame; m_pFrame = NULL; if (GetDocument() && GetDocument()->getBadFileOpen()) ::wxYield(); // wxWindows bug workaround @@ -1105,6 +1117,24 @@ ImageFileView::OnScaleSize (wxCommandEvent& event) } } +#if wxUSE_GLCANVAS +void +ImageFileView::OnConvert3d (wxCommandEvent& event) +{ + ImageFile& rIF = GetDocument()->getImageFile(); + Graph3dFileDocument* pGraph3d = theApp->newGraph3dDoc(); + pGraph3d->setBadFileOpen(); + pGraph3d->createFromImageFile (rIF); + pGraph3d->getView()->OnUpdate (this, NULL); + pGraph3d->UpdateAllViews(); + pGraph3d->getView()->getFrame()->SetClientSize (400, 400); + pGraph3d->getView()->getFrame()->Show (true); + GetDocumentManager()->ActivateView (pGraph3d->getView(), true, false); + ::wxYield(); + pGraph3d->getView()->getCanvas()->SetFocus(); +} +#endif + void ImageFileView::OnPlotRow (wxCommandEvent& event) {