void DIALOG_PAGES_SETTINGS::OnPaperSizeChoice( wxCommandEvent& event ) { int idx = m_paperSizeComboBox->GetSelection(); if( idx < 0 ) idx = 0; const wxString paperType = m_pageFmt[idx]; if( paperType.Contains( PAGE_INFO::Custom ) ) { m_orientationComboBox->Enable( false ); m_TextUserSizeX->Enable( true ); m_TextUserSizeY->Enable( true ); m_customFmt = true; } else { m_orientationComboBox->Enable( true ); if( paperType.Contains( wxT( "A4" ) ) && IsGOST() ) { m_orientationComboBox->SetStringSelection( _( "Portrait" ) ); m_orientationComboBox->Enable( false ); } m_TextUserSizeX->Enable( false ); m_TextUserSizeY->Enable( false ); m_customFmt = false; } GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); }
void DIALOG_PAGES_SETTINGS::OnPageOrientationChoice( wxCommandEvent& event ) { if( m_initialized ) { GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); } }
void DIALOG_PAGES_SETTINGS::OnUserPageSizeYTextUpdated( wxCommandEvent& event ) { if( m_initialized ) { GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); } }
void DIALOG_PAGES_SETTINGS::OnUserPageSizeXTextUpdated( wxCommandEvent& event ) { if( m_initialized && m_TextUserSizeX->IsModified() ) { GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); } }
void DIALOG_PAGES_SETTINGS::OnComment4TextUpdated( wxCommandEvent& event ) { if( m_initialized && m_TextComment4->IsModified() ) { GetPageLayoutInfoFromDialog(); m_tb.SetComment4( m_TextComment4->GetValue() ); UpdatePageLayoutExample(); } }
void DIALOG_PAGES_SETTINGS::OnWksFileSelection( wxCommandEvent& event ) { wxFileName fn = GetWksFileName(); wxString name = GetWksFileName(); wxString path; if( fn.IsAbsolute() ) { path = fn.GetPath(); name = fn.GetFullName(); } else { path = m_projectPath; } // Display a file picker dialog wxFileDialog fileDialog( this, _( "Select Page Layout Description File" ), path, name, PageLayoutDescrFileWildcard(), wxFD_DEFAULT_STYLE | wxFD_FILE_MUST_EXIST ); if( fileDialog.ShowModal() != wxID_OK ) return; wxString fileName = fileDialog.GetPath(); // Try to remove the path, if the path is the current working dir, // or the dir of kicad.pro (template), and use a relative path wxString shortFileName = WORKSHEET_LAYOUT::MakeShortFileName( fileName, m_projectPath ); // For Win/Linux/macOS compatibility, a relative path is a good idea if( shortFileName != GetWksFileName() && shortFileName != fileName ) { wxString msg = wxString::Format( _( "The page layout description file name has changed.\n" "Do you want to use the relative path:\n" "\"%s\"\n" "instead of\n" "\"%s\"?" ), GetChars( shortFileName ), GetChars( fileName ) ); if( !IsOK( this, msg ) ) shortFileName = fileName; } SetWksFileName( shortFileName ); if( m_pagelayout == NULL ) m_pagelayout = new WORKSHEET_LAYOUT; m_pagelayout->SetPageLayout( fileName ); GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); }
void DIALOG_PAGES_SETTINGS::OnPaperSizeChoice( wxCommandEvent& event ) { int idx = m_paperSizeComboBox->GetSelection(); if( idx < 0 ) idx = 0; const wxString paperType = m_pageFmt[idx]; if( paperType.Contains( PAGE_INFO::Custom ) ) { m_orientationComboBox->Enable( false ); m_customSizeX.Enable( true ); m_customSizeY.Enable( true ); m_customFmt = true; } else { m_orientationComboBox->Enable( true ); #if 0 // ForcePortrait() does not exist, but could be useful. // so I leave these lines, which could be seen as a todo feature if( paperType.ForcePortrait() ) { m_orientationComboBox->SetStringSelection( _( "Portrait" ) ); m_orientationComboBox->Enable( false ); } #endif m_customSizeX.Enable( false ); m_customSizeY.Enable( false ); m_customFmt = false; } GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); }
void DIALOG_PAGES_SETTINGS::initDialog() { wxString msg; // initialize page format choice box and page format list. // The first shows translated strings, the second contains not translated strings m_paperSizeComboBox->Clear(); for( unsigned ii = 0; ii < arrayDim(pageFmts); ii++ ) { m_pageFmt.Add( pageFmts[ii] ); m_paperSizeComboBox->Append( wxGetTranslation( pageFmts[ii] ) ); } // initialize the page layout descr filename SetWksFileName( BASE_SCREEN::m_PageLayoutDescrFileName ); #ifdef EESCHEMA // Init display value for schematic sub-sheet number wxString format = m_TextSheetCount->GetLabel(); msg.Printf( format, m_screen->m_NumberOfScreens ); m_TextSheetCount->SetLabel( msg ); format = m_TextSheetNumber->GetLabel(); msg.Printf( format, m_screen->m_ScreenNumber ); m_TextSheetNumber->SetLabel( msg ); #else m_TextSheetCount->Show( false ); m_TextSheetNumber->Show( false ); #endif m_pageInfo = m_parent->GetPageSettings(); SetCurrentPageSizeSelection( m_pageInfo.GetType() ); m_orientationComboBox->SetSelection( m_pageInfo.IsPortrait() ); // only a click fires the "selection changed" event, so have to fabricate this check wxCommandEvent dummy; OnPaperSizeChoice( dummy ); if( m_customFmt ) { m_customSizeX.SetValue( m_pageInfo.GetWidthMils() * IU_PER_MILS ); m_customSizeY.SetValue( m_pageInfo.GetHeightMils() * IU_PER_MILS ); } else { m_customSizeX.SetValue( m_pageInfo.GetCustomWidthMils() * IU_PER_MILS ); m_customSizeY.SetValue( m_pageInfo.GetCustomHeightMils() * IU_PER_MILS ); } m_TextRevision->SetValue( m_tb.GetRevision() ); m_TextDate->SetValue( m_tb.GetDate() ); m_TextTitle->SetValue( m_tb.GetTitle() ); m_TextCompany->SetValue( m_tb.GetCompany() ); m_TextComment1->SetValue( m_tb.GetComment1() ); m_TextComment2->SetValue( m_tb.GetComment2() ); m_TextComment3->SetValue( m_tb.GetComment3() ); m_TextComment4->SetValue( m_tb.GetComment4() ); #ifndef EESCHEMA // these options have meaning only for Eeschema. // disable them for other apps m_RevisionExport->Show( false ); m_DateExport->Show( false ); m_TitleExport->Show( false ); m_CompanyExport->Show( false ); m_Comment1Export->Show( false ); m_Comment2Export->Show( false ); m_Comment3Export->Show( false ); m_Comment4Export->Show( false ); #endif GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); // Make the OK button the default. m_sdbSizerOK->SetDefault(); m_initialized = true; }
void DIALOG_PAGES_SETTINGS::initDialog() { wxString msg; double customSizeX; double customSizeY; // initalize page format choice box and page format list. // The first shows translated strings, the second contains not translated strings m_paperSizeComboBox->Clear(); for( unsigned ii = 0; ii < DIM(pageFmts); ii++ ) { m_pageFmt.Add( pageFmts[ii] ); m_paperSizeComboBox->Append( wxGetTranslation( pageFmts[ii] ) ); } // initialize the page layout descr filename SetWksFileName( BASE_SCREEN::m_PageLayoutDescrFileName ); #ifdef EESCHEMA // Init display value for schematic sub-sheet number wxString format = m_TextSheetCount->GetLabel(); msg.Printf( format, m_screen->m_NumberOfScreens ); m_TextSheetCount->SetLabel( msg ); format = m_TextSheetNumber->GetLabel(); msg.Printf( format, m_screen->m_ScreenNumber ); m_TextSheetNumber->SetLabel( msg ); #else m_TextSheetCount->Show( false ); m_TextSheetNumber->Show( false ); #endif m_pageInfo = m_parent->GetPageSettings(); SetCurrentPageSizeSelection( m_pageInfo.GetType() ); m_orientationComboBox->SetSelection( m_pageInfo.IsPortrait() ); // only a click fires the "selection changed" event, so have to fabricate this check wxCommandEvent dummy; OnPaperSizeChoice( dummy ); if( m_customFmt) // The custom value is defined by the page size { customSizeX = m_pageInfo.GetWidthMils(); customSizeY = m_pageInfo.GetHeightMils(); } else // The custom value is set to a default value, or the last defined value { customSizeX = m_pageInfo.GetCustomWidthMils(); customSizeY = m_pageInfo.GetCustomHeightMils(); } switch( g_UserUnit ) { case MILLIMETRES: customSizeX *= 25.4e-3; customSizeY *= 25.4e-3; msg.Printf( wxT( "%.2f" ), customSizeX ); m_TextUserSizeX->SetValue( msg ); msg.Printf( wxT( "%.2f" ), customSizeY ); m_TextUserSizeY->SetValue( msg ); break; default: case INCHES: customSizeX /= 1000.0; customSizeY /= 1000.0; msg.Printf( wxT( "%.3f" ), customSizeX ); m_TextUserSizeX->SetValue( msg ); msg.Printf( wxT( "%.3f" ), customSizeY ); m_TextUserSizeY->SetValue( msg ); break; } m_TextRevision->SetValue( m_tb.GetRevision() ); m_TextDate->SetValue( m_tb.GetDate() ); m_TextTitle->SetValue( m_tb.GetTitle() ); m_TextCompany->SetValue( m_tb.GetCompany() ); m_TextComment1->SetValue( m_tb.GetComment1() ); m_TextComment2->SetValue( m_tb.GetComment2() ); m_TextComment3->SetValue( m_tb.GetComment3() ); m_TextComment4->SetValue( m_tb.GetComment4() ); #ifndef EESCHEMA m_RevisionExport->Show( false ); m_DateExport->Show( false ); m_TitleExport->Show( false ); m_CompanyExport->Show( false ); m_Comment1Export->Show( false ); m_Comment2Export->Show( false ); m_Comment3Export->Show( false ); m_Comment4Export->Show( false ); #endif GetPageLayoutInfoFromDialog(); UpdatePageLayoutExample(); // Make the OK button the default. m_sdbSizer1OK->SetDefault(); m_initialized = true; }