void PCB_CALCULATOR_FRAME::ReadConfig() { if( m_Config == NULL ) return; long ltmp; wxString msg; m_Config->Read( KEYWORD_FRAME_POSX, &m_FramePos.x, -1 ); m_Config->Read( KEYWORD_FRAME_POSY, &m_FramePos.y, -1 ); m_Config->Read( KEYWORD_FRAME_SIZEX, &m_FrameSize.x, -1 ); m_Config->Read( KEYWORD_FRAME_SIZEY, &m_FrameSize.y, -1 ); m_Config->Read( KEYWORD_TRANSLINE_SELECTION, <mp, (long) DEFAULT_TYPE ); m_currTransLineType = (enum TRANSLINE_TYPE_ID) ltmp; m_Config->Read( KEYWORD_PAGE_SELECTION, <mp, 0 ); m_Notebook->ChangeSelection( ltmp ); m_Config->Read( KEYWORD_COLORCODE_SELECTION, <mp, 1 ); m_rbToleranceSelection->SetSelection( ltmp ); m_Config->Read( KEYWORD_ATTENUATORS_SELECTION, <mp, 0 ); m_AttenuatorsSelection->SetSelection( ltmp ); m_Config->Read( KEYWORD_BRDCLASS_SELECTION, <mp, 0 ); m_BoardClassesUnitsSelector->SetSelection( ltmp ); // Regul panel config: m_Config->Read( KEYWORD_REGUL_R1, &msg, wxT( "10" ) ); m_RegulR1Value->SetValue( msg ); m_Config->Read( KEYWORD_REGUL_R2, &msg, wxT( "10" ) ); m_RegulR2Value->SetValue( msg ); m_Config->Read( KEYWORD_REGUL_VREF, &msg, wxT( "3" ) ); m_RegulVrefValue->SetValue( msg ); m_Config->Read( KEYWORD_REGUL_VOUT, &msg, wxT( "12" ) ); m_RegulVoutValue->SetValue( msg ); m_Config->Read( KEYWORD_DATAFILE_FILENAME, &msg, wxT( "" ) ); SetDataFilename( msg ); m_Config->Read( KEYWORD_REGUL_SELECTED, &msg, wxT( "" ) ); m_lastSelectedRegulatorName = msg; m_Config->Read( KEYWORD_REGUL_TYPE, <mp, 0 ); m_choiceRegType->SetSelection( ltmp ); m_Config->Read( KEYWORD_REGUL_LAST_PARAM, <mp, 0 ); wxRadioButton * regprms[3] = { m_rbRegulR1, m_rbRegulR2, m_rbRegulVout }; if( (unsigned)ltmp >= 3 ) ltmp = 0; for( int ii = 0; ii < 3; ii++ ) regprms[ii]->SetValue( ltmp == ii ); // Electrical panel config m_Config->Read( KEYWORD_ELECTRICAL_SPACING_SELECTION, <mp, 0 ); m_ElectricalSpacingUnitsSelector->SetSelection( ltmp ); m_Config->Read( KEYWORD_ELECTRICAL_SPACING_VOLTAGE, &msg, wxT( "500" ) ); m_ElectricalSpacingVoltage->SetValue( msg ); for( unsigned ii = 0; ii < m_transline_list.size(); ii++ ) m_transline_list[ii]->ReadConfig( m_Config ); for( unsigned ii = 0; ii < m_attenuator_list.size(); ii++ ) m_attenuator_list[ii]->ReadConfig( m_Config ); }
/* * 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 ); } }