X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2Fmathplot.cxx;h=738cae1a18c679ffc58824cb6c176891870dfde2;hb=255f774ce4100c0b84e6b5efa5c64d0db77f8a61;hp=fc7203f6be4fac7673d9efbf32ad21f92bc6845f;hpb=cc00f80af2e160ce2af3ddd2903c4a41c023cc94;p=creaMaracasVisu.git diff --git a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx index fc7203f..738cae1 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx @@ -1,3 +1,28 @@ +/*# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Sant�) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ */ + ///////////////////////////////////////////////////////////////////////////// // Name: mathplot.cpp // Purpose: Framework for mathematical graph plotting in wxWindows @@ -343,12 +368,10 @@ void mpScaleY::Plot(wxDC & dc, mpWindow & w, int orgy) if (tmp>=1) { fmt = wxT("%.f"); - } - else - { + } else { tmp=8-tmp; fmt.Printf(wxT("%%.%df"), tmp >= -1 ? 2 : -tmp); - } + } // if temp double n = floor( (w.GetPosY() - (double)extend / w.GetScaleY()) / step ) * step ; @@ -364,8 +387,8 @@ void mpScaleY::Plot(wxDC & dc, mpWindow & w, int orgy) { dc.DrawText( s, orgx+4, GetYTranslated(sizedc,p-ty/2)); tmp=p-ty/2; - } - } + } // if + } // for dc.GetTextExtent(m_name, &tx, &ty); dc.DrawText( m_name, orgx-tx-4, GetYTranslated(sizedc,-extend + ty + 4)); @@ -375,7 +398,13 @@ void mpScaleY::Plot(wxDC & dc, mpWindow & w, int orgy) // mpWindow //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(mpWindow, wxScrolledWindow) +//EED 2017-09-16 Migration wxWidgets 2.8 to 3.0 +#if wxMAJOR_VERSION <= 2 + IMPLEMENT_DYNAMIC_CLASS(mpWindow, wxScrolledWindow) +#else + wxIMPLEMENT_DYNAMIC_CLASS(mpWindow, wxScrolledWindow); +#endif + BEGIN_EVENT_TABLE(mpWindow, wxScrolledWindow) EVT_PAINT ( mpWindow::OnPaint) @@ -394,25 +423,26 @@ EVT_MENU( mpID_LOCKASPECT,mpWindow::OnLockAspect) END_EVENT_TABLE() mpWindow::mpWindow( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flag ) -: wxScrolledWindow( parent, id, pos, size, flag, wxT("wxPlotter") ) +: wxScrolledWindow( parent, id, wxDefaultPosition, wxDefaultSize, flag, wxT("wxPlotter") ) { - m_scaleX = m_scaleY = 1.0; - m_posX = m_posY = 0; - m_scrX = m_scrY = 64; - m_minX = m_minY = 0; - m_maxX = m_maxY = 0; - maxScrX = maxScrY = 200; - minScrX = minScrY = 0; - m_clickedX = 0; - m_clickedY = 5000; - m_lockaspect = FALSE; - offsetX = offsetY = 0; - offsetPixelX = offsetPixelY= 0; - - real_guideLine_X = -1; - real_guideLine_Y = -1; - drawGuides = true; - type=1; + m_scaleX = m_scaleY = 1.0; + m_posX = m_posY = 0; + m_scrX = m_scrY = 64; + m_minX = m_minY = 0; + m_maxX = m_maxY = 0; + maxScrX = maxScrY = 200; + minScrX = minScrY = 0; + m_clickedX = 0; + m_clickedY = 5000; + m_lockaspect = FALSE; + offsetX = offsetY = 0; + offsetPixelX = offsetPixelY = 0; + _bitmap_functions = NULL; + + real_guideLine_X = -1; + real_guideLine_Y = -1; + drawGuides = true; + type = 1; m_popmenu.Append( mpID_CENTER, _("Center"), _("Center plot view to this position")); m_popmenu.Append( mpID_FIT, _("Fit"), _("Set plot view to show all items")); @@ -485,16 +515,13 @@ void mpWindow::ZoomOut() void mpWindow::LockAspect(bool enable) { m_lockaspect = enable; - m_popmenu.Check(mpID_LOCKASPECT, enable); - if (m_lockaspect) { double s = (m_scaleX + m_scaleY)/2; m_scaleX = s; m_scaleY = s; } - UpdateAll(); } @@ -564,7 +591,6 @@ void mpWindow::OnPaint( wxPaintEvent &event ) { wxPaintDC dc(this); dc.GetSize(&m_scrX, &m_scrY); -printf("EED mpWindow::OnPaint %d %d\n",m_scrX,m_scrY); //m_scrX=200; //m_scrY=200; @@ -704,15 +730,12 @@ void mpWindow::UpdateAll() { int cx, cy; GetClientSize( &cx, &cy); -printf("EED mpWindow::UpdateAll %d %d\n",cx,cy); - - //const int sx = (int)((m_maxX - m_minX) * GetScaleX()); // JPRx - //const int sy = (int)((m_maxY - m_minY) * GetScaleY()); // JPRx - //const int px = (int)((GetPosX() - m_minX) * GetScaleX() - (cx>>1)); // JPRx - //const int py = (int)((GetPosY() - m_minY) * GetScaleY() - (cy>>1)); // JPRx - //SetScrollbars( 1, 1, sx, sy, px, py); + const int sx = (int)((m_maxX - m_minX) * GetScaleX()); // JPRx + const int sy = (int)((m_maxY - m_minY) * GetScaleY()); // JPRx + const int px = (int)((GetPosX() - m_minX) * GetScaleX() - (cx>>1)); // JPRx + const int py = (int)((GetPosY() - m_minY) * GetScaleY() - (cy>>1)); // JPRx + SetScrollbars( 1, 1, sx, sy, px, py); } - FitInside(); Refresh( false ); }