void EDA_DRAW_FRAME::LoadSettings( wxConfigBase* aCfg ) { EDA_BASE_FRAME::LoadSettings( aCfg ); wxString baseCfgName = ConfigBaseName(); bool btmp; if( aCfg->Read( baseCfgName + ShowGridEntryKeyword, &btmp ) ) SetGridVisibility( btmp ); // Read grid color: COLOR4D wtmp = COLOR4D::UNSPECIFIED; if( wtmp.SetFromWxString( aCfg->Read( baseCfgName + GridColorEntryKeyword, wxT( "NONE" ) ) ) ) SetGridColor( wtmp ); aCfg->Read( baseCfgName + LastGridSizeIdKeyword, &m_LastGridSizeId, 0L ); // m_LastGridSizeId is an offset, expected to be >= 0 if( m_LastGridSizeId < 0 ) m_LastGridSizeId = 0; m_UndoRedoCountMax = aCfg->Read( baseCfgName + MaxUndoItemsEntry, long( DEFAULT_MAX_UNDO_ITEMS ) ); aCfg->Read( baseCfgName + FirstRunShownKeyword, &m_firstRunDialogSetting, 0L ); m_galDisplayOptions->ReadConfig( aCfg, baseCfgName + GalDisplayOptionsKeyword ); }
void EDA_BASE_FRAME::LoadSettings( wxConfigBase* aCfg ) { int maximized = 0; wxString baseCfgName = ConfigBaseName(); wxString text = baseCfgName + entryPosX; aCfg->Read( text, &m_FramePos.x ); text = baseCfgName + entryPosY; aCfg->Read( text, &m_FramePos.y ); text = baseCfgName + entrySizeX; aCfg->Read( text, &m_FrameSize.x, 600 ); text = baseCfgName + entrySizeY; aCfg->Read( text, &m_FrameSize.y, 400 ); text = baseCfgName + entryMaximized; aCfg->Read( text, &maximized, 0 ); if( m_hasAutoSave ) { text = baseCfgName + entryAutoSaveInterval; aCfg->Read( text, &m_autoSaveInterval, DEFAULT_AUTO_SAVE_INTERVAL ); } // Ensure the window is on a connected display, and is visible. // (at least a corner of the frame must be visible on screen) // Sometimes, if a window was moved on an auxiliary display, and when this // display is no more available, it is not the case. wxRect rect( m_FramePos, m_FrameSize ); if( wxDisplay::GetFromPoint( rect.GetTopLeft() ) == wxNOT_FOUND && wxDisplay::GetFromPoint( rect.GetTopRight() ) == wxNOT_FOUND && wxDisplay::GetFromPoint( rect.GetBottomLeft() ) == wxNOT_FOUND && wxDisplay::GetFromPoint( rect.GetBottomRight() ) == wxNOT_FOUND ) { m_FramePos = wxDefaultPosition; } // Ensure Window title bar is visible #if defined( __WXMAC__ ) // for macOSX, the window must be below system (macOSX) toolbar // Ypos_min = GetMBarHeight(); seems no more exist in new API (subject to change) int Ypos_min = 20; #else int Ypos_min = 0; #endif if( m_FramePos.y < Ypos_min ) m_FramePos.y = Ypos_min; if( maximized ) Maximize(); aCfg->Read( baseCfgName + entryPerspective, &m_perspective ); aCfg->Read( baseCfgName + entryMruPath, &m_mruPath ); }
void EDA_DRAW_FRAME::SaveSettings( wxConfigBase* aCfg ) { EDA_BASE_FRAME::SaveSettings( aCfg ); wxString baseCfgName = ConfigBaseName(); aCfg->Write( baseCfgName + ShowGridEntryKeyword, IsGridVisible() ); aCfg->Write( baseCfgName + GridColorEntryKeyword, GetGridColor().ToColour().GetAsString( wxC2S_CSS_SYNTAX ) ); aCfg->Write( baseCfgName + LastGridSizeIdKeyword, ( long ) m_LastGridSizeId ); aCfg->Write( baseCfgName + FirstRunShownKeyword, m_firstRunDialogSetting ); if( GetScreen() ) aCfg->Write( baseCfgName + MaxUndoItemsEntry, long( GetScreen()->GetMaxUndoItems() ) ); m_galDisplayOptions->WriteConfig( aCfg, baseCfgName + GalDisplayOptionsKeyword ); }
void EDA_BASE_FRAME::SaveSettings( wxConfigBase* aCfg ) { wxString text; if( IsIconized() ) return; wxString baseCfgName = ConfigBaseName(); m_FrameSize = GetSize(); m_FramePos = GetPosition(); text = baseCfgName + wxT( "Pos_x" ); aCfg->Write( text, (long) m_FramePos.x ); text = baseCfgName + wxT( "Pos_y" ); aCfg->Write( text, (long) m_FramePos.y ); text = baseCfgName + wxT( "Size_x" ); aCfg->Write( text, (long) m_FrameSize.x ); text = baseCfgName + wxT( "Size_y" ); aCfg->Write( text, (long) m_FrameSize.y ); text = baseCfgName + wxT( "Maximized" ); aCfg->Write( text, IsMaximized() ); if( m_hasAutoSave ) { text = baseCfgName + entryAutoSaveInterval; aCfg->Write( text, m_autoSaveInterval ); } // Once this is fully implemented, wxAuiManager will be used to maintain // the persistance of the main frame and all it's managed windows and // all of the legacy frame persistence position code can be removed. wxString perspective = m_auimgr.SavePerspective(); // printf( "perspective(%s): %s\n", // TO_UTF8( m_FrameName + entryPerspective ), TO_UTF8( perspective ) ); aCfg->Write( baseCfgName + entryPerspective, perspective ); aCfg->Write( baseCfgName + entryMruPath, m_mruPath ); }
void EDA_BASE_FRAME::LoadSettings( wxConfigBase* aCfg ) { int maximized = 0; wxString baseCfgName = ConfigBaseName(); wxString text = baseCfgName + wxT( "Pos_x" ); aCfg->Read( text, &m_FramePos.x ); text = baseCfgName + wxT( "Pos_y" ); aCfg->Read( text, &m_FramePos.y ); text = baseCfgName + wxT( "Size_x" ); aCfg->Read( text, &m_FrameSize.x, 600 ); text = baseCfgName + wxT( "Size_y" ); aCfg->Read( text, &m_FrameSize.y, 400 ); text = baseCfgName + wxT( "Maximized" ); aCfg->Read( text, &maximized, 0 ); if( m_hasAutoSave ) { text = baseCfgName + entryAutoSaveInterval; aCfg->Read( text, &m_autoSaveInterval, DEFAULT_AUTO_SAVE_INTERVAL ); } // Ensure Window title bar is visible #if defined( __WXMAC__ ) // for macOSX, the window must be below system (macOSX) toolbar // Ypos_min = GetMBarHeight(); seems no more exist in new API (subject to change) int Ypos_min = 20; #else int Ypos_min = 0; #endif if( m_FramePos.y < Ypos_min ) m_FramePos.y = Ypos_min; if( maximized ) Maximize(); aCfg->Read( baseCfgName + entryPerspective, &m_perspective ); }
void EDA_DRAW_FRAME::LoadSettings( wxConfigBase* aCfg ) { EDA_BASE_FRAME::LoadSettings( aCfg ); wxString baseCfgName = ConfigBaseName(); wxConfigBase* cmnCfg = Pgm().CommonSettings(); // Read units used in dialogs and toolbars EDA_UNITS_T unitsTmp; if( aCfg->Read( baseCfgName + UserUnitsEntryKeyword, (int*) &unitsTmp ) ) SetUserUnits( unitsTmp ); else SetUserUnits( MILLIMETRES ); // Read show/hide grid entry bool btmp; if( aCfg->Read( baseCfgName + ShowGridEntryKeyword, &btmp ) ) SetGridVisibility( btmp ); // Read grid color: COLOR4D wtmp = COLOR4D::UNSPECIFIED; if( wtmp.SetFromWxString( aCfg->Read( baseCfgName + GridColorEntryKeyword, wxT( "NONE" ) ) ) ) SetGridColor( wtmp ); aCfg->Read( baseCfgName + LastGridSizeIdKeyword, &m_LastGridSizeId, 0L ); // m_LastGridSizeId is an offset, expected to be >= 0 if( m_LastGridSizeId < 0 ) m_LastGridSizeId = 0; m_UndoRedoCountMax = aCfg->Read( baseCfgName + MaxUndoItemsEntry, long( DEFAULT_MAX_UNDO_ITEMS ) ); aCfg->Read( baseCfgName + FirstRunShownKeyword, &m_firstRunDialogSetting, 0L ); m_galDisplayOptions.ReadConfig( *cmnCfg, *aCfg, baseCfgName, this ); }