From ec1a5d1318d6ef1c77a5db693ad3e1704379ec40 Mon Sep 17 00:00:00 2001 From: Maciej Suminski Date: Tue, 25 Jun 2013 09:15:57 +0200 Subject: [PATCH] Added zoom in, zoom out & fit on screen view commands handling in GAL. --- common/zoom.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/common/zoom.cpp b/common/zoom.cpp index e8e07b5f90..e23e718a73 100644 --- a/common/zoom.cpp +++ b/common/zoom.cpp @@ -33,6 +33,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -81,10 +84,10 @@ void EDA_DRAW_FRAME::Zoom_Automatique( bool aWarpPointer ) if( screen->m_FirstRedraw ) screen->SetCrossHairPosition( screen->GetScrollCenterPosition() ); +#ifdef KICAD_GAL if( !m_galCanvasActive ) +#endif /* KICAD_GAL */ RedrawScreen( screen->GetScrollCenterPosition(), aWarpPointer ); - else - m_canvas->Hide(); } @@ -193,6 +196,20 @@ void EDA_DRAW_FRAME::OnZoom( wxCommandEvent& event ) RedrawScreen( center, true ); } + if( m_galCanvasActive ) + { + // Apply computed view settings to GAL + KiGfx::VIEW* view = m_galCanvas->GetView(); + KiGfx::GAL* gal = m_galCanvas->GetGAL(); + + double zoomFactor = gal->GetWorldScale() / gal->GetZoomFactor(); + double zoom = 1.0 / ( zoomFactor * GetZoom() ); + + view->SetScale( zoom ); + view->SetCenter( VECTOR2D( center ) ); + m_galCanvas->Refresh(); + } + UpdateStatusBar(); }