X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FmaracasVisuLib%2Fsrc%2Finterface%2FwxWindows%2Fwidgets%2FpPlotter%2Fmathplot.cxx;h=b6b1e48c9784eb5a3a2a59ec9c4b5cce58e9f279;hb=8138ced89fa9f1cc6933ff739dfa28b1e3c3883b;hp=bda190264c79f3ae16cc2d5795fb7b1485a80a01;hpb=c5feadbb145eecf6d73f793535b7e23eb18db2cb;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 bda1902..b6b1e48 100644 --- a/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx +++ b/lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx @@ -320,7 +320,7 @@ mpScaleY::mpScaleY(wxString name) SetFont( ff ); } -void mpScaleY::Plot(wxDC & dc, mpWindow & w) +void mpScaleY::Plot(wxDC & dc, mpWindow & w, int orgy) { dc.SetPen( m_pen); dc.SetFont( m_font); @@ -328,7 +328,9 @@ void mpScaleY::Plot(wxDC & dc, mpWindow & w) const int orgx = -(int)(w.GetPosX() * w.GetScaleX()); const int extend = w.GetScrY()/2; - dc.DrawLine( orgx, -extend, orgx, extend); + double sizedc = dc.GetSize().GetHeight()-orgy; + + dc.DrawLine( orgx, GetYTranslated(sizedc, -extend), orgx, GetYTranslated(sizedc, extend)); const double dig = floor( log( 128.0 / w.GetScaleY() ) / mpLN10 ); const double step = exp( mpLN10 * dig); @@ -354,19 +356,19 @@ void mpScaleY::Plot(wxDC & dc, mpWindow & w) for (;n < end; n += step) { const int p = (int)((w.GetPosY() - n) * w.GetScaleY()); - dc.DrawLine( orgx, p, orgx+4, p); + dc.DrawLine( orgx, GetYTranslated(sizedc, p), orgx+4, GetYTranslated(sizedc,p)); s.Printf(fmt, n); dc.GetTextExtent(s, &tx, &ty); if ((tmp-p+ty/2) > 32) { - dc.DrawText( s, orgx+4, p-ty/2); + dc.DrawText( s, orgx+4, GetYTranslated(sizedc,p-ty/2)); tmp=p-ty/2; } } dc.GetTextExtent(m_name, &tx, &ty); - dc.DrawText( m_name, orgx-tx-4, -extend + ty + 4); + dc.DrawText( m_name, orgx-tx-4, GetYTranslated(sizedc,-extend + ty + 4)); } //----------------------------------------------------------------------------- @@ -392,7 +394,7 @@ 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; @@ -406,6 +408,7 @@ mpWindow::mpWindow( wxWindow *parent, wxWindowID id, const wxPoint &pos, const w m_lockaspect = FALSE; offsetX = offsetY = 0; offsetPixelX = offsetPixelY= 0; + _bitmap_functions=NULL; real_guideLine_X = -1; real_guideLine_Y = -1; @@ -440,7 +443,7 @@ void mpWindow::Fit() { int cx, cy; GetClientSize( &cx, &cy); - + double d; d = m_maxX - m_minX; if (d!=0) @@ -562,6 +565,7 @@ 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; @@ -588,8 +592,15 @@ void mpWindow::OnPaint( wxPaintEvent &event ) //dc.SetDeviceOrigin(70,40); //dc.SetAxisOrientation(false,true); - temp_dc.SetAxisOrientation(true,false); - dc.Blit(0,0, m_scrX, m_scrY, &temp_dc,-70,-m_scrY+40); + //temp_dc.SetAxisOrientation(true,false); + + //EED 14mai2009 + //dc.Blit(0,0, m_scrX, m_scrY, &temp_dc,-70,-m_scrY+40); + + temp_dc.SetDeviceOrigin(0,0); + dc.Blit(0,0, m_scrX, m_scrY, &temp_dc,0,0); + + delete _bitmap_functions; //_bitmap_functions //dc.SetAxisOrientation(false,true); @@ -688,17 +699,18 @@ bool mpWindow::UpdateBBox() return first == FALSE; } -void mpWindow :: UpdateAll() +void mpWindow::UpdateAll() { if (UpdateBBox()) { int cx, cy; GetClientSize( &cx, &cy); +printf("EED mpWindow::UpdateAll %d %d\n",cx,cy); - const int sx = (int)((m_maxX - m_minX) * GetScaleX()); - const int sy = (int)((m_maxY - m_minY) * GetScaleY()); - const int px = (int)((GetPosX() - m_minX) * GetScaleX() - (cx>>1)); - const int py = (int)((GetPosY() - m_minY) * GetScaleY() - (cy>>1)); + //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); }