]> Creatis software - creaMaracasVisu.git/blobdiff - lib/maracasVisuLib/src/interface/wxWindows/widgets/pPlotter/mathplot.cxx
DFCH: Manual paint changes!
[creaMaracasVisu.git] / lib / maracasVisuLib / src / interface / wxWindows / widgets / pPlotter / mathplot.cxx
index bda190264c79f3ae16cc2d5795fb7b1485a80a01..b6b1e48c9784eb5a3a2a59ec9c4b5cce58e9f279 100644 (file)
@@ -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);
        }