void PCB_CALCULATOR_FRAME::OnClosePcbCalc( wxCloseEvent& event ) { if( m_RegulatorListChanged ) { if( GetDataFilename().IsEmpty() ) { int opt = wxMessageBox( _("Data modified, and no data filename to save modifications\n"\ "Do you want to exit and abandon your change?"), _("Regulator list change"), wxYES_NO | wxICON_QUESTION ); if( opt == wxNO ) return; } else { if( !WriteDataFile() ) { wxString msg; msg.Printf( _("Unable to write file<%s>\n"\ "Do you want to exit and abandon your change?"), GetDataFilename().c_str() ); int opt = wxMessageBox( msg, _("Write Data File Errror"), wxYES_NO | wxICON_QUESTION ); if( opt == wxNO ) return; } } } Destroy(); }
void MpcorbEphemeris::VLoad() { // make_unique not supported in c++11 g_ephemerisDatabase = std::unique_ptr<MpcorbEphemerisIO>(new MpcorbEphemerisIO(GetDataFilename())); try { g_ephemerisDatabase->Initialize(); } catch (std::exception ex) { OTL_FATAL() << "Exception caught while trying to load ephemeris datafile " << Bracket(GetDataFilename()) << ": " << Bracket(ex.what()); } }
/* * Called when ckicking on button Browse: * Select a new data file, and load it on request */ void PCB_CALCULATOR_FRAME::OnDataFileSelection( wxCommandEvent& event ) { wxString fullfilename = GetDataFilename(); wxString wildcard; wildcard.Printf( _("PCB Calculator data file (*.%s)|*.%s"), GetChars( DataFileNameExt ), GetChars( DataFileNameExt ) ); wxFileDialog dlg( m_panelRegulators, _("Select a PCB Calculator data file"), wxEmptyString, fullfilename, wildcard, wxFD_OPEN ); if (dlg.ShowModal() == wxID_CANCEL) return; fullfilename = dlg.GetPath(); if( fullfilename == GetDataFilename() ) return; SetDataFilename( fullfilename ); if( wxFileExists( fullfilename ) && m_RegulatorList.GetCount() > 0 ) // Read file { if( wxMessageBox( _("Do you want to load this file and replace current regulator list?" ) ) != wxID_OK ) return; } if( ReadDataFile() ) { m_RegulatorListChanged = false; m_choiceRegulatorSelector->Clear(); m_choiceRegulatorSelector->Append( m_RegulatorList.GetRegList() ); SelectLastSelectedRegulator(); } else { wxString msg; msg.Printf( _("Unable to read data file <%s>"), GetChars( fullfilename ) ); wxMessageBox( msg ); } }
void PCB_CALCULATOR_FRAME::WriteConfig() { if( m_Config == NULL ) return; if( !IsIconized() ) { m_FrameSize = GetSize(); m_FramePos = GetPosition(); m_Config->Write( KEYWORD_FRAME_POSX, (long) m_FramePos.x ); m_Config->Write( KEYWORD_FRAME_POSY, (long) m_FramePos.y ); m_Config->Write( KEYWORD_FRAME_SIZEX, (long) m_FrameSize.x ); m_Config->Write( KEYWORD_FRAME_SIZEY, (long) m_FrameSize.y ); } m_Config->Write( KEYWORD_TRANSLINE_SELECTION, (long) m_currTransLineType ); m_Config->Write( KEYWORD_PAGE_SELECTION, m_Notebook->GetSelection() ); m_Config->Write( KEYWORD_COLORCODE_SELECTION, m_rbToleranceSelection->GetSelection() ); m_Config->Write( KEYWORD_ATTENUATORS_SELECTION, m_AttenuatorsSelection->GetSelection() ); m_Config->Write( KEYWORD_BRDCLASS_SELECTION, m_BoardClassesUnitsSelector->GetSelection() ); m_Config->Write( KEYWORD_REGUL_R1, m_RegulR1Value->GetValue() ); m_Config->Write( KEYWORD_REGUL_R2, m_RegulR2Value->GetValue() ); m_Config->Write( KEYWORD_REGUL_VREF, m_RegulVrefValue->GetValue() ); m_Config->Write( KEYWORD_REGUL_VOUT, m_RegulVoutValue->GetValue() ); m_Config->Write( KEYWORD_DATAFILE_FILENAME, GetDataFilename() ); m_Config->Write( KEYWORD_REGUL_SELECTED, m_lastSelectedRegulatorName ); m_Config->Write( KEYWORD_REGUL_TYPE, m_choiceRegType->GetSelection() ); wxRadioButton * regprms[3] = { m_rbRegulR1, m_rbRegulR2, m_rbRegulVout }; for( int ii = 0; ii < 3; ii++ ) { if( regprms[ii]->GetValue() ) { m_Config->Write( KEYWORD_REGUL_LAST_PARAM, ii ); break; } } m_Config->Write( KEYWORD_ELECTRICAL_SPACING_SELECTION, m_ElectricalSpacingUnitsSelector->GetSelection() ); m_Config->Write( KEYWORD_ELECTRICAL_SPACING_VOLTAGE, m_ElectricalSpacingVoltage->GetValue() ); TW_WriteConfig(); for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) m_transline_list[ii]->WriteConfig( m_Config ); for( unsigned ii = 0; ii < m_attenuator_list.size(); ii++ ) m_attenuator_list[ii]->WriteConfig( m_Config ); }