Commit 393e0204 authored by Wayne Stambaugh's avatar Wayne Stambaugh

Fix cursor warping out of client when zooming bug.

* Modify algorithm to correctly calculate the virtual drawing size and
  offset required to place the drawing correctly under all conditions.
* Ignore default wxWidgets scroll keys on Windows in EDA_DRAW_PANEL key
  event handler.
parent 7c171870
...@@ -87,13 +87,6 @@ void BASE_SCREEN::InitDatas() ...@@ -87,13 +87,6 @@ void BASE_SCREEN::InitDatas()
} }
/**
* Get screen units scalar.
*
* Default implementation returns scalar used for schematic screen. The
* internal units used by the schematic screen is 1 mil (0.001"). Override
* this in derived classes that require internal units other than 1 mil.
*/
int BASE_SCREEN::GetInternalUnits( void ) int BASE_SCREEN::GetInternalUnits( void )
{ {
return EESCHEMA_INTERNAL_UNIT; return EESCHEMA_INTERNAL_UNIT;
...@@ -119,23 +112,13 @@ void BASE_SCREEN::SetPageSize( wxSize& aPageSize ) ...@@ -119,23 +112,13 @@ void BASE_SCREEN::SetPageSize( wxSize& aPageSize )
} }
/**
* Function GetScalingFactor
* @return the the current scale used to draw items on screen
* draw coordinates are user coordinates * GetScalingFactor( )
*/
double BASE_SCREEN::GetScalingFactor() const double BASE_SCREEN::GetScalingFactor() const
{ {
double scale = 1.0 / GetZoom(); double scale = 1.0 / GetZoom();
return scale; return scale;
} }
/**
* Function SetScalingFactor
* calculates the .m_Zoom member to have a given scaling factor
* @param aScale - the the current scale used to draw items on screen
* draw coordinates are user coordinates * GetScalingFactor()
*/
void BASE_SCREEN::SetScalingFactor(double aScale ) void BASE_SCREEN::SetScalingFactor(double aScale )
{ {
double zoom = aScale; double zoom = aScale;
...@@ -152,6 +135,7 @@ void BASE_SCREEN::SetScalingFactor(double aScale ) ...@@ -152,6 +135,7 @@ void BASE_SCREEN::SetScalingFactor(double aScale )
SetZoom( zoom ); SetZoom( zoom );
} }
void BASE_SCREEN::SetZoomList( const wxArrayDouble& zoomlist ) void BASE_SCREEN::SetZoomList( const wxArrayDouble& zoomlist )
{ {
if( !m_ZoomList.IsEmpty() ) if( !m_ZoomList.IsEmpty() )
...@@ -293,7 +277,6 @@ void BASE_SCREEN::SetGrid( const wxRealPoint& size ) ...@@ -293,7 +277,6 @@ void BASE_SCREEN::SetGrid( const wxRealPoint& size )
} }
/* Set grid size from command ID. */
void BASE_SCREEN::SetGrid( int id ) void BASE_SCREEN::SetGrid( int id )
{ {
wxASSERT( !m_grids.empty() ); wxASSERT( !m_grids.empty() );
...@@ -462,6 +445,7 @@ wxPoint BASE_SCREEN::GetCrossHairScreenPosition() const ...@@ -462,6 +445,7 @@ wxPoint BASE_SCREEN::GetCrossHairScreenPosition() const
return pos; return pos;
} }
void BASE_SCREEN::SetCrossHairPosition( const wxPoint& aPosition, bool aSnapToGrid ) void BASE_SCREEN::SetCrossHairPosition( const wxPoint& aPosition, bool aSnapToGrid )
{ {
if( aSnapToGrid ) if( aSnapToGrid )
......
This diff is collapsed.
...@@ -1162,7 +1162,24 @@ void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event ) ...@@ -1162,7 +1162,24 @@ void EDA_DRAW_PANEL::OnKeyEvent( wxKeyEvent& event )
GetParent()->GeneralControl( &DC, pos, localkey ); GetParent()->GeneralControl( &DC, pos, localkey );
#ifdef __WINDOWS__ #ifdef __WINDOWS__
// Disable the default scrolling command keys which break KiCad's zooming and
// panning. This is also likely the reason skip was disabled for other platforms.
// There probably needs to be some more investigation done here.
switch( event.GetKeyCode() )
{
case WXK_HOME:
case WXK_END:
case WXK_PAGEUP:
case WXK_PAGEDOWN:
case WXK_UP:
case WXK_DOWN:
case WXK_LEFT:
case WXK_RIGHT:
break;
default:
event.Skip(); // Allow menu shortcut processing on Windows. event.Skip(); // Allow menu shortcut processing on Windows.
}
#endif #endif
} }
......
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 2008-2011 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/** /**
* @file viewlib_frame.cpp * @file viewlib_frame.cpp
*/ */
...@@ -24,13 +49,11 @@ wxString LIB_VIEW_FRAME::m_entryName; ...@@ -24,13 +49,11 @@ wxString LIB_VIEW_FRAME::m_entryName;
int LIB_VIEW_FRAME::m_unit = 1; int LIB_VIEW_FRAME::m_unit = 1;
int LIB_VIEW_FRAME::m_convert = 1; int LIB_VIEW_FRAME::m_convert = 1;
// When the viewer is used to select a component in schematic, the selected component is here.
/// When the viewer is used to select a component in schematic, the selected component is here.
wxString LIB_VIEW_FRAME::m_exportToEeschemaCmpName; wxString LIB_VIEW_FRAME::m_exportToEeschemaCmpName;
/*****************************/
/* class WinEDA_ViewlibFrame */
/*****************************/
BEGIN_EVENT_TABLE( LIB_VIEW_FRAME, EDA_DRAW_FRAME ) BEGIN_EVENT_TABLE( LIB_VIEW_FRAME, EDA_DRAW_FRAME )
/* Window events */ /* Window events */
EVT_CLOSE( LIB_VIEW_FRAME::OnCloseWindow ) EVT_CLOSE( LIB_VIEW_FRAME::OnCloseWindow )
...@@ -212,7 +235,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph ...@@ -212,7 +235,7 @@ LIB_VIEW_FRAME::LIB_VIEW_FRAME( wxWindow* father, CMP_LIBRARY* Library, wxSemaph
wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) ); wxAuiPaneInfo( mesg ).Name( wxT( "MsgPanel" ) ).Bottom().Layer(10) );
/* Now the minimum windows are fixed, set library list /* Now the minimum windows are fixed, set library list
and component list of the previous values from last viewlib use * and component list of the previous values from last viewlib use
*/ */
if( m_LibListWindow ) if( m_LibListWindow )
{ {
...@@ -253,15 +276,13 @@ void LIB_VIEW_FRAME::OnCloseWindow( wxCloseEvent& Event ) ...@@ -253,15 +276,13 @@ void LIB_VIEW_FRAME::OnCloseWindow( wxCloseEvent& Event )
// This window will be destroyed by the calling function, // This window will be destroyed by the calling function,
// to avoid side effects // to avoid side effects
} }
else else
{
Destroy(); Destroy();
}
} }
/*
* Resize sub windows when dragging a sash window border
*/
void LIB_VIEW_FRAME::OnSashDrag( wxSashEvent& event ) void LIB_VIEW_FRAME::OnSashDrag( wxSashEvent& event )
{ {
if( event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE ) if( event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE )
...@@ -358,12 +379,6 @@ double LIB_VIEW_FRAME::BestZoom() ...@@ -358,12 +379,6 @@ double LIB_VIEW_FRAME::BestZoom()
} }
/**
* Function ReCreateListLib
*
* Creates or recreates the list of current loaded libraries.
* This list is sorted, with the library cache always at end of the list
*/
void LIB_VIEW_FRAME::ReCreateListLib() void LIB_VIEW_FRAME::ReCreateListLib()
{ {
if( m_LibList == NULL ) if( m_LibList == NULL )
...@@ -475,10 +490,6 @@ void LIB_VIEW_FRAME::ClickOnCmpList( wxCommandEvent& event ) ...@@ -475,10 +490,6 @@ void LIB_VIEW_FRAME::ClickOnCmpList( wxCommandEvent& event )
} }
/*
* Export the current component to schematic and close the library browser
*/
void LIB_VIEW_FRAME::ExportToSchematicLibraryPart( wxCommandEvent& event ) void LIB_VIEW_FRAME::ExportToSchematicLibraryPart( wxCommandEvent& event )
{ {
int ii = m_CmpList->GetSelection(); int ii = m_CmpList->GetSelection();
...@@ -496,12 +507,6 @@ void LIB_VIEW_FRAME::ExportToSchematicLibraryPart( wxCommandEvent& event ) ...@@ -496,12 +507,6 @@ void LIB_VIEW_FRAME::ExportToSchematicLibraryPart( wxCommandEvent& event )
#define CMPLIST_WIDTH_KEY wxT( "Cmplist_width" ) #define CMPLIST_WIDTH_KEY wxT( "Cmplist_width" )
/**
* Load library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get loaded.
*/
void LIB_VIEW_FRAME::LoadSettings( ) void LIB_VIEW_FRAME::LoadSettings( )
{ {
wxConfig* cfg ; wxConfig* cfg ;
...@@ -526,12 +531,6 @@ void LIB_VIEW_FRAME::LoadSettings( ) ...@@ -526,12 +531,6 @@ void LIB_VIEW_FRAME::LoadSettings( )
} }
/**
* Save library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get saved.
*/
void LIB_VIEW_FRAME::SaveSettings() void LIB_VIEW_FRAME::SaveSettings()
{ {
wxConfig* cfg; wxConfig* cfg;
...@@ -547,9 +546,7 @@ void LIB_VIEW_FRAME::SaveSettings() ...@@ -547,9 +546,7 @@ void LIB_VIEW_FRAME::SaveSettings()
cfg->Write( CMPLIST_WIDTH_KEY, m_CmpListSize.x ); cfg->Write( CMPLIST_WIDTH_KEY, m_CmpListSize.x );
} }
/** Called on activate the frame.
* Reload the libraries lists that can be changed by the schematic editor or the library editor
*/
void LIB_VIEW_FRAME::OnActivate( wxActivateEvent& event ) void LIB_VIEW_FRAME::OnActivate( wxActivateEvent& event )
{ {
EDA_DRAW_FRAME::OnActivate( event ); EDA_DRAW_FRAME::OnActivate( event );
......
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 2008-2011 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/**
* @file viewlib_frame.h
*/
#ifndef __LIBVIEWFRM_H__ #ifndef __LIBVIEWFRM_H__
#define __LIBVIEWFRM_H__ #define __LIBVIEWFRM_H__
...@@ -50,8 +79,22 @@ public: ...@@ -50,8 +79,22 @@ public:
~LIB_VIEW_FRAME(); ~LIB_VIEW_FRAME();
void OnSize( wxSizeEvent& event ); void OnSize( wxSizeEvent& event );
/**
* Function OnSashDrag
* resizes the child windows when dragging a sash window border.
*/
void OnSashDrag( wxSashEvent& event ); void OnSashDrag( wxSashEvent& event );
/**
* Function ReCreateListLib
*
* Creates or recreates the list of current loaded libraries.
* This list is sorted, with the library cache always at end of the list
*/
void ReCreateListLib(); void ReCreateListLib();
void ReCreateListCmp(); void ReCreateListCmp();
void Process_Special_Functions( wxCommandEvent& event ); void Process_Special_Functions( wxCommandEvent& event );
void DisplayLibInfos(); void DisplayLibInfos();
...@@ -69,7 +112,22 @@ public: ...@@ -69,7 +112,22 @@ public:
void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 ); void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
/**
* Function LoadSettings
* loads the library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get loaded.
*/
void LoadSettings(); void LoadSettings();
/**
* Function SaveSettings
* save library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get saved.
*/
void SaveSettings(); void SaveSettings();
wxString& GetEntryName( void ) const { return m_entryName; } wxString& GetEntryName( void ) const { return m_entryName; }
...@@ -79,12 +137,20 @@ public: ...@@ -79,12 +137,20 @@ public:
int GetConvert( void ) { return m_convert; } int GetConvert( void ) { return m_convert; }
private: private:
/** OnActivate event funtion( virtual ) /**
* Function OnActivate
* is called when the frame frame is activate to reload the libraries and component lists
* that can be changed by the schematic editor or the library editor.
*/ */
virtual void OnActivate( wxActivateEvent& event ); virtual void OnActivate( wxActivateEvent& event );
void SelectCurrentLibrary(); void SelectCurrentLibrary();
void SelectAndViewLibraryPart( int option ); void SelectAndViewLibraryPart( int option );
/**
* Function ExportToSchematicLibraryPart
* exports the current component to schematic and close the library browser.
*/
void ExportToSchematicLibraryPart( wxCommandEvent& event ); void ExportToSchematicLibraryPart( wxCommandEvent& event );
void ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag ); void ViewOneLibraryContent( CMP_LIBRARY* Lib, int Flag );
bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu ); bool OnRightClick( const wxPoint& MousePos, wxMenu* PopMenu );
......
...@@ -179,6 +179,15 @@ public: ...@@ -179,6 +179,15 @@ public:
void SetPageSize( wxSize& aPageSize ); void SetPageSize( wxSize& aPageSize );
wxSize ReturnPageSize( void ); wxSize ReturnPageSize( void );
/**
* Function GetInternalUnits
* @return the screen units scalar.
*
* Default implementation returns scalar used for schematic screen. The
* internal units used by the schematic screen is 1 mil (0.001"). Override
* this in derived classes that require internal units other than 1 mil.
*/
virtual int GetInternalUnits( void ); virtual int GetInternalUnits( void );
/** /**
...@@ -284,14 +293,14 @@ public: ...@@ -284,14 +293,14 @@ public:
/** /**
* Function GetScalingFactor * Function GetScalingFactor
* @return the the current scale used to draw items on screen * @return the the current scale used to draw items on screen
* draw coordinates are user coordinates * GetScalingFactor( ) * draw coordinates are user coordinates * GetScalingFactor()
*/ */
double GetScalingFactor() const; double GetScalingFactor() const;
/** /**
* Function SetScalingFactor * Function SetScalingFactor
* @param aScale = the the current scale used to draw items on screen * @param aScale = the the current scale used to draw items on screen
* draw coordinates are user coordinates * GetScalingFactor( ) * draw coordinates are user coordinates * GetScalingFactor()
*/ */
void SetScalingFactor( double aScale ); void SetScalingFactor( double aScale );
...@@ -347,6 +356,11 @@ public: ...@@ -347,6 +356,11 @@ public:
const wxPoint& GetGridOrigin(); const wxPoint& GetGridOrigin();
void SetGrid( const wxRealPoint& size ); void SetGrid( const wxRealPoint& size );
/**
* Function SetGrid
* sets the grid size from command ID.
*/
void SetGrid( int id ); void SetGrid( int id );
void SetGridList( GRIDS& sizelist ); void SetGridList( GRIDS& sizelist );
void AddGrid( const GRID_TYPE& grid ); void AddGrid( const GRID_TYPE& grid );
......
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 2008-2011 Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/** /**
* @file wxBasePcbFrame.h * @file wxBasePcbFrame.h
* @brief Classes used in Pcbnew, CvPcb and GerbView. * @brief Classes used in Pcbnew, CvPcb and GerbView.
...@@ -100,6 +125,11 @@ public: ...@@ -100,6 +125,11 @@ public:
return (PCB_SCREEN*) EDA_DRAW_FRAME::GetScreen(); return (PCB_SCREEN*) EDA_DRAW_FRAME::GetScreen();
} }
/**
* Function BestZoom
* @return the "best" zoom to show the entire board or footprint on the screen.
*/
virtual double BestZoom(); virtual double BestZoom();
virtual void Show3D_Frame( wxCommandEvent& event ); virtual void Show3D_Frame( wxCommandEvent& event );
......
...@@ -557,6 +557,14 @@ public: ...@@ -557,6 +557,14 @@ public:
* grid size combobox on the toolbar. * grid size combobox on the toolbar.
*/ */
virtual void OnSelectGrid( wxCommandEvent& event ); virtual void OnSelectGrid( wxCommandEvent& event );
/**
* Functions OnSelectZoom
* sets the zoom factor when selected by the zoom list box in the main tool bar.
* @note List position 0 is fit to page
* List position >= 1 = zoom (1 to zoom max)
* Last list position is custom zoom not in zoom list.
*/
virtual void OnSelectZoom( wxCommandEvent& event ); virtual void OnSelectZoom( wxCommandEvent& event );
// Command event handlers shared by all applications derived from EDA_DRAW_FRAME. // Command event handlers shared by all applications derived from EDA_DRAW_FRAME.
...@@ -585,7 +593,12 @@ public: ...@@ -585,7 +593,12 @@ public:
*/ */
virtual void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 ) { } virtual void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 ) { }
/**
* Function OnSize
* recalculates the size of toolbars and display panel when the frame size changes.
*/
virtual void OnSize( wxSizeEvent& event ); virtual void OnSize( wxSizeEvent& event );
void OnEraseBackground( wxEraseEvent& SizeEvent ); void OnEraseBackground( wxEraseEvent& SizeEvent );
virtual void OnZoom( wxCommandEvent& event ); virtual void OnZoom( wxCommandEvent& event );
...@@ -608,7 +621,10 @@ public: ...@@ -608,7 +621,10 @@ public:
/* Return the zoom level which displays the full page on screen */ /* Return the zoom level which displays the full page on screen */
virtual double BestZoom() = 0; virtual double BestZoom() = 0;
/* Return the current zoom level */ /**
* Function GetZoom
* @return The current zoom level.
*/
double GetZoom( void ); double GetZoom( void );
void TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_width ); void TraceWorkSheet( wxDC* DC, BASE_SCREEN* screen, int line_width );
...@@ -655,6 +671,10 @@ public: ...@@ -655,6 +671,10 @@ public:
*/ */
virtual void UpdateStatusBar(); virtual void UpdateStatusBar();
/**
* Function DisplayUnitsMsg
* displays current unit pane on the status bar.
*/
void DisplayUnitsMsg(); void DisplayUnitsMsg();
/* Handlers for block commands */ /* Handlers for block commands */
...@@ -698,7 +718,22 @@ public: ...@@ -698,7 +718,22 @@ public:
void OnSockRequest( wxSocketEvent& evt ); void OnSockRequest( wxSocketEvent& evt );
void OnSockRequestServer( wxSocketEvent& evt ); void OnSockRequestServer( wxSocketEvent& evt );
/**
* Function LoadSettings
* loads the draw frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings common to the draw frame will not get loaded.
*/
virtual void LoadSettings(); virtual void LoadSettings();
/**
* Funxtion SaveSettings
* saves the draw frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings common to the draw frame will not get saved.
*/
virtual void SaveSettings(); virtual void SaveSettings();
/** /**
...@@ -1056,7 +1091,7 @@ static inline void AddMenuItem( wxMenu* aMenu, ...@@ -1056,7 +1091,7 @@ static inline void AddMenuItem( wxMenu* aMenu,
* Each panel has rows, starting at 0. Each row has positions starting at 0. Each item in a panel * Each panel has rows, starting at 0. Each row has positions starting at 0. Each item in a panel
* can have it's row and position set. * can have it's row and position set.
* *
* Eventually panels will be moveable. Each initialization function sets up the panel for this, * Eventually panels will be movable. Each initialization function sets up the panel for this,
* then after a //==// break has additional calls to anchor toolbars in a way that matches * then after a //==// break has additional calls to anchor toolbars in a way that matches
* present functionality. * present functionality.
*/ */
...@@ -1076,7 +1111,7 @@ public: ...@@ -1076,7 +1111,7 @@ public:
CloseButton( false ); CloseButton( false );
LeftDockable( false ); LeftDockable( false );
RightDockable( false ); RightDockable( false );
//==================== Remove calls below here for moveable toolbars // //==================== Remove calls below here for movable toolbars //
Gripper( false ); Gripper( false );
DockFixed( true ); DockFixed( true );
Movable( false ); Movable( false );
...@@ -1094,7 +1129,7 @@ public: ...@@ -1094,7 +1129,7 @@ public:
CloseButton( false ); CloseButton( false );
TopDockable( false ); TopDockable( false );
BottomDockable( false ); BottomDockable( false );
//==================== Remove calls below here for moveable toolbars // //==================== Remove calls below here for movable toolbars //
Gripper( false ); Gripper( false );
DockFixed( true ); DockFixed( true );
Movable( false ); Movable( false );
......
...@@ -122,9 +122,6 @@ void PCB_BASE_FRAME::SetBoard( BOARD* aBoard ) ...@@ -122,9 +122,6 @@ void PCB_BASE_FRAME::SetBoard( BOARD* aBoard )
} }
/**
* Return the "best" zoom, i.e. the zoom which shows the entire board on screen
*/
double PCB_BASE_FRAME::BestZoom( void ) double PCB_BASE_FRAME::BestZoom( void )
{ {
int dx, dy; int dx, dy;
...@@ -151,6 +148,7 @@ double PCB_BASE_FRAME::BestZoom( void ) ...@@ -151,6 +148,7 @@ double PCB_BASE_FRAME::BestZoom( void )
jj = 32.0; jj = 32.0;
double bestzoom = MAX( ii, jj ); double bestzoom = MAX( ii, jj );
GetScreen()->SetScrollCenterPosition( m_Pcb->m_BoundaryBox.Centre() ); GetScreen()->SetScrollCenterPosition( m_Pcb->m_BoundaryBox.Centre() );
return bestzoom ; return bestzoom ;
......
...@@ -314,6 +314,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title, ...@@ -314,6 +314,7 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( wxWindow* parent, const wxString& title,
m_InternalUnits = PCB_INTERNAL_UNIT; // Unites internes = 1/10000 inch m_InternalUnits = PCB_INTERNAL_UNIT; // Unites internes = 1/10000 inch
SetScreen( new PCB_SCREEN() ); SetScreen( new PCB_SCREEN() );
GetScreen()->m_Center = false; // PCB drawings start in the upper left corner.
// LoadSettings() *after* creating m_LayersManager, because LoadSettings() // LoadSettings() *after* creating m_LayersManager, because LoadSettings()
// initialize parameters in m_LayersManager // initialize parameters in m_LayersManager
......
...@@ -156,7 +156,6 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) ); ...@@ -156,7 +156,6 @@ Changing extension to .brd." ), GetChars( fn.GetFullPath() ) );
} }
frame->Zoom_Automatique( true ); frame->Zoom_Automatique( true );
frame->GetScreen()->m_FirstRedraw = false;
/* Load file specified in the command line. */ /* Load file specified in the command line. */
if( fn.IsOk() ) if( fn.IsOk() )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment