X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=src%2Fviews.cpp;h=9d2af66574be0219347e110b2edd811c2e2489d5;hb=ff99ed271fc46136ca6a30221847a54d52ff0de6;hp=a8cb6e401156268a3b544818f249ddac715ab006;hpb=31a835d9aebd8acb367a033cc92efb4c944a7b4d;p=ctsim.git diff --git a/src/views.cpp b/src/views.cpp index a8cb6e4..9d2af66 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.93 2001/01/30 10:58:13 kevin Exp $ +** $Id: views.cpp,v 1.98 2001/02/04 21:28:19 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,7 +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) @@ -862,7 +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"); @@ -911,8 +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); - accelEntries[0].Set (wxACCEL_CTRL, static_cast('3'), IFMENU_IMAGE_CONVERT3D); +#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; @@ -923,7 +932,6 @@ bool ImageFileView::OnCreate (wxDocument *doc, long WXUNUSED(flags) ) { m_pFrame = CreateChildFrame(doc, this); - (m_pFrame); m_bMinSpecified = false; m_bMaxSpecified = false; @@ -1023,7 +1031,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 @@ -1108,6 +1116,7 @@ ImageFileView::OnScaleSize (wxCommandEvent& event) } } +#if wxUSE_GLCANVAS void ImageFileView::OnConvert3d (wxCommandEvent& event) { @@ -1115,10 +1124,16 @@ ImageFileView::OnConvert3d (wxCommandEvent& event) Graph3dFileDocument* pGraph3d = theApp->newGraph3dDoc(); pGraph3d->setBadFileOpen(); pGraph3d->createFromImageFile (rIF); - pGraph3d->getView()->getFrame()->SetClientSize (200, 200); + 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) { @@ -1835,7 +1850,10 @@ PhantomFileView::OnProjections (wxCommandEvent& event) Scanner theScanner (rPhantom, sGeometry.c_str(), m_iDefaultNDet, m_iDefaultNView, m_iDefaultNSample, m_dDefaultRotation, m_dDefaultFocalLength, m_dDefaultFieldOfView); if (theScanner.fail()) { - *theApp->getLog() << "Failed making scanner: " << theScanner.failMessage().c_str() << "\n"; + wxString msg = "Failed making scanner\n"; + msg += theScanner.failMessage().c_str(); + *theApp->getLog() << msg << "\n"; + wxMessageBox (msg, "Error"); return; } pProj->initFromScanner (theScanner); @@ -2154,7 +2172,7 @@ EVT_MENU(PJMENU_CONVERT_FFT_POLAR, ProjectionFileView::OnConvertFFTPolar) END_EVENT_TABLE() ProjectionFileView::ProjectionFileView() -: wxView(), m_pCanvas(NULL), m_pFrame(NULL), m_pFileMenu(0) +: wxView(), m_pFrame(0), m_pCanvas(0), m_pFileMenu(0) { #ifdef DEBUG m_iDefaultNX = 115;