From b8a6c53b79cb9554a2fba49c2d230acaf016e810 Mon Sep 17 00:00:00 2001 From: charras Date: Sun, 25 Oct 2009 15:54:00 +0000 Subject: [PATCH] Some minor changes and enhancements --- common/about_kicad.cpp | 2 +- common/displlst.cpp | 26 +++++-- cvpcb/listboxes.cpp | 6 +- eeschema/pinedit.cpp | 73 +++++++++++++---- eeschema/tool_lib.cpp | 2 +- internat/fr/kicad.mo | Bin 200172 -> 201204 bytes internat/fr/kicad.po | 116 +++++++++++++++------------- pcbnew/class_pad_draw_functions.cpp | 32 ++++---- pcbnew/dialog_design_rules.cpp | 1 + pcbnew/dialog_layers_setup.cpp | 8 +- pcbnew/loadcmp.cpp | 3 +- 11 files changed, 165 insertions(+), 104 deletions(-) diff --git a/common/about_kicad.cpp b/common/about_kicad.cpp index 3f91970b42..def6666570 100644 --- a/common/about_kicad.cpp +++ b/common/about_kicad.cpp @@ -8,7 +8,7 @@ #include "appl_wxstruct.h" -#define BUILD_VERSION "(20091021-unstable)" +#define BUILD_VERSION "(20091024-unstable)" #ifdef HAVE_SVN_VERSION diff --git a/common/displlst.cpp b/common/displlst.cpp index a0c5b4b4f5..1f28b93a76 100644 --- a/common/displlst.cpp +++ b/common/displlst.cpp @@ -97,15 +97,25 @@ WinEDAListBox::WinEDAListBox( WinEDA_DrawFrame* parent, const wxString& title, { Centre(); } - else // Ensure the window dialog is on screen : + else // Ensure the window dialog is inside the main window : { - wxPoint pos; - m_Parent->GetPosition( &pos.x, &pos.y ); - if( pos.x < 0 ) - pos.x = 0; - if( pos.y < 0 ) - pos.y = 0; - pos.x += 20; pos.y += 30; + wxPoint pos = dialog_position; + wxPoint maxpos; + maxpos.x = parent->GetPosition().x + parent->GetSize().x; + maxpos.y = parent->GetPosition().y + parent->GetSize().y; + wxPoint endpoint; + endpoint.x = pos.x + GetSize().x; + endpoint.y = pos.y + GetSize().y; + + if( endpoint.x > maxpos.x ) + pos.x -= endpoint.x - maxpos.x; + if( endpoint.y > maxpos.y ) + pos.y -= endpoint.y - maxpos.y; + + if( pos.x < parent->GetPosition().x ) + pos.x = parent->GetPosition().x; + if( pos.y < parent->GetPosition().y ) + pos.y = parent->GetPosition().y; Move( pos ); } } diff --git a/cvpcb/listboxes.cpp b/cvpcb/listboxes.cpp index 164e2d7d68..ba5722955f 100644 --- a/cvpcb/listboxes.cpp +++ b/cvpcb/listboxes.cpp @@ -88,9 +88,9 @@ void WinEDA_CvpcbFrame::BuildCmpListBox() BOOST_FOREACH( COMPONENT & component, m_components ) { msg.Printf( CMP_FORMAT, m_ListCmp->GetCount() + 1, - component.m_Reference.GetData(), - component.m_Value.GetData(), - component.m_Module.GetData() ); + GetChars(component.m_Reference), + GetChars(component.m_Value), + GetChars(component.m_Module) ); m_ListCmp->m_ComponentList.Add( msg ); } diff --git a/eeschema/pinedit.cpp b/eeschema/pinedit.cpp index edc84e1f75..31c413b9fd 100644 --- a/eeschema/pinedit.cpp +++ b/eeschema/pinedit.cpp @@ -23,7 +23,7 @@ static int CodeOrient[4] = #define NBSHAPES 7 static wxString shape_list[NBSHAPES] = { - _( "line" ), _( "invert" ), _( "clock" ), _( "clock inv" ), + _( "line" ), _( "invert" ), _( "clock" ), _( "clock inv" ), _( "low in" ), _( "low clock" ), _( "low out" ) }; @@ -572,10 +572,10 @@ void WinEDA_LibeditFrame::CreatePin( wxDC* DC ) if( g_EditPinByPinIsOn == false ) CurrentPin->m_Flags |= IS_LINKED; - CurrentPin->m_Pos.x = GetScreen()->m_Curseur.x; - CurrentPin->m_Pos.y = -GetScreen()->m_Curseur.y; - CurrentPin->m_PinLen = LastPinSize; - CurrentPin->m_Orient = LastPinOrient; + CurrentPin->m_Pos.x = GetScreen()->m_Curseur.x; + CurrentPin->m_Pos.y = -GetScreen()->m_Curseur.y; + CurrentPin->m_PinLen = LastPinSize; + CurrentPin->m_Orient = LastPinOrient; CurrentPin->m_PinType = LastPinType; CurrentPin->m_PinShape = LastPinShape; CurrentPin->m_PinNameSize = LastPinNameSize; @@ -931,13 +931,18 @@ bool sort_by_pin_number( const LIB_PIN* ref, const LIB_PIN* tst ) } -/* Test for duplicate pins: +/* Test for duplicate pins and off grid pins: + * Pins are considered off grid when they are not on the 25 mils grid + * A grid smaller than 25 mils must be used only to build graphic shapes. */ void WinEDA_LibeditFrame::OnCheckComponent( wxCommandEvent& event ) { - int error; + #define MIN_GRID_SIZE 25 + int dup_error; + int offgrid_error; LIB_PIN* Pin; wxString msg; + wxString aux_msg; if( m_component == NULL ) return; @@ -962,13 +967,11 @@ void WinEDA_LibeditFrame::OnCheckComponent( wxCommandEvent& event ) sort( PinList.begin(), PinList.end(), sort_by_pin_number ); // Test for duplicates: - error = 0; - DIALOG_DISPLAY_HTML_TEXT_BASE - error_display( this, wxID_ANY, _( "Marker Info" ), - wxDefaultPosition, wxSize( 750, 600 ) ); + dup_error = 0; + DIALOG_DISPLAY_HTML_TEXT_BASE error_display( this, wxID_ANY, _( "Marker Info" ), + wxDefaultPosition, wxSize( 750, 600 ) ); for( unsigned ii = 1; ii < PinList.size(); ii++ ) { - wxString aux_msg; wxString stringPinNum, stringCurrPinNum; LIB_PIN* curr_pin = PinList[ii]; @@ -979,7 +982,7 @@ void WinEDA_LibeditFrame::OnCheckComponent( wxCommandEvent& event ) || Pin->m_Unit != curr_pin->m_Unit ) continue; - error++; + dup_error++; Pin->ReturnPinStringNum( stringPinNum ); curr_pin->ReturnPinStringNum( stringCurrPinNum ); msg.Printf( _( @@ -1007,12 +1010,50 @@ with pin %s \"%s\" at location (%.3f, %.3f)" } msg += wxT( ".
" ); - error_display.m_htmlWindow->AppendToPage( msg ); } - if( error == 0 ) - DisplayInfoMessage( this, _( "No duplicate pins were found." ) ); + // Test for off grid pins: + offgrid_error = 0; + for( unsigned ii = 0; ii < PinList.size(); ii++ ) + { + Pin = PinList[ii]; + + if( ( (Pin->m_Pos.x % MIN_GRID_SIZE) == 0 ) && + ( (Pin->m_Pos.y % MIN_GRID_SIZE) == 0 ) ) + continue; + + // A pin is foun here off grid + offgrid_error++; + wxString stringPinNum; + Pin->ReturnPinStringNum( stringPinNum ); + msg.Printf( _( "Off grid pin %s \"%s\" at location (%.3f, %.3f)" ), + GetChars( stringPinNum ), + GetChars( Pin->m_PinName ), + (float) Pin->m_Pos.x / 1000.0, (float) -Pin->m_Pos.y / 1000.0 + ); + + if( m_component->GetPartCount() > 1 ) + { + aux_msg.Printf( _( " in part %c" ), 'A' + Pin->m_Unit ); + msg += aux_msg; + } + + if( m_showDeMorgan ) + { + if( Pin->m_Convert ) + msg += _( " of converted" ); + else + msg += _( " of normal" ); + } + + msg += wxT( ".
" ); + error_display.m_htmlWindow->AppendToPage( msg ); + } + + if( !dup_error && !offgrid_error ) + DisplayInfoMessage( this, _( "No off grid or duplicate pins were found." ) ); + else error_display.ShowModal(); } diff --git a/eeschema/tool_lib.cpp b/eeschema/tool_lib.cpp index 7a6688e0df..6de8d64ba0 100644 --- a/eeschema/tool_lib.cpp +++ b/eeschema/tool_lib.cpp @@ -153,7 +153,7 @@ void WinEDA_LibeditFrame::ReCreateHToolbar() m_HToolBar->AddSeparator(); m_HToolBar->AddTool( ID_LIBEDIT_CHECK_PART, wxEmptyString, - wxBitmap( erc_xpm ), _( "Test for duplicate pins" ) ); + wxBitmap( erc_xpm ), _( "Test for duplicate pins and off grid pins" ) ); m_HToolBar->AddSeparator(); msg = AddHotkeyName( _( "Zoom in" ), s_Libedit_Hokeys_Descr, HK_ZOOM_IN ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 8f355dd25c5b848d1c045912f8b9fb9f9fda75d6..368fa85bc4f43b4224c5a059bacb7d7155c7597b 100644 GIT binary patch delta 62243 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%0DW!@dbM7T4tzg4@Z;et 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\n" "MIME-Version: 1.0\n" @@ -221,7 +221,7 @@ msgid "Place Module" msgstr "Place Module" #: pcbnew/loadcmp.cpp:234 -#: pcbnew/loadcmp.cpp:386 +#: pcbnew/loadcmp.cpp:387 #, c-format msgid "PCB footprint library file <%s> not found in search paths." msgstr "Librairie modules PCB %s non trouvée dans les chemins de recherche" @@ -229,8 +229,8 @@ msgstr "Librairie modules PCB %s non trouvée dans les chemins de recherche" #: pcbnew/loadcmp.cpp:236 #: pcbnew/loadcmp.cpp:248 #: pcbnew/loadcmp.cpp:264 -#: pcbnew/loadcmp.cpp:388 -#: pcbnew/loadcmp.cpp:424 +#: pcbnew/loadcmp.cpp:389 +#: pcbnew/loadcmp.cpp:425 msgid "Library Load Error" msgstr "Erreur en Chargement de librairie" @@ -245,7 +245,7 @@ msgid "Scan Lib: %s" msgstr "Examen Lib: %s" #: pcbnew/loadcmp.cpp:262 -#: pcbnew/loadcmp.cpp:422 +#: pcbnew/loadcmp.cpp:423 #, c-format msgid "<%s> is not a valid Kicad PCB footprint library file." msgstr "<%s> n'est pas un fichier librarire de modules Kicad PCB valide." @@ -255,16 +255,16 @@ msgstr "<%s> n'est pas un fichier librarire de modules Kicad PCB valide." msgid "Module <%s> not found" msgstr "Module <%s> non trouvé" -#: pcbnew/loadcmp.cpp:413 +#: pcbnew/loadcmp.cpp:414 msgid "Library " msgstr "Librairie " -#: pcbnew/loadcmp.cpp:413 +#: pcbnew/loadcmp.cpp:414 msgid " loaded" msgstr " chargé" -#: pcbnew/loadcmp.cpp:484 -#: pcbnew/loadcmp.cpp:636 +#: pcbnew/loadcmp.cpp:485 +#: pcbnew/loadcmp.cpp:637 #, c-format msgid "Modules [%d items]" msgstr "Modules [%d éléments]" @@ -2892,7 +2892,7 @@ msgstr "dimension" #: pcbnew/edit_track_width.cpp:180 #, c-format msgid "Set tracks and vias sizes to the Netclass \"%s\"default value (entire NET \"%s\") ?" -msgstr "" +msgstr "Ajuster pistes et vias sizes à la valeur de la Netclass \"%s\" (tout le NET \"%s\") ?" #: pcbnew/edit_track_width.cpp:232 msgid "Set All Tracks and Vias to Netclass value" @@ -3504,7 +3504,7 @@ msgstr "&Options Couches" #: pcbnew/menubarpcb.cpp:224 msgid "Enable and set properties of layers" -msgstr "" +msgstr "Activer les couches et ajuster leur propriétés" #: pcbnew/menubarpcb.cpp:235 msgid "Tracks and Vias" @@ -4876,19 +4876,19 @@ msgstr "De " msgid "Footprint library files:" msgstr "Fichiers Library Modules:" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:236 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:227 msgid "Library already in use" msgstr "Librairie déjà en usage" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:249 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:240 msgid "Default Path for Libraries" msgstr "Chemin par Défaut des Librairies" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:284 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:275 msgid "Path already in use" msgstr "Chemin déjà en usage" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:323 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:314 msgid "Footprint document file:" msgstr "Documentation des Modules:" @@ -5409,7 +5409,7 @@ msgid "No Net" msgstr "No Net" #: pcbnew/dialog_copper_layers_setup.cpp:135 -#: pcbnew/dialog_design_rules.cpp:478 +#: pcbnew/dialog_design_rules.cpp:479 msgid "Errors detected, Abort" msgstr "Erreurs detectées, Abandont" @@ -5574,68 +5574,68 @@ msgstr "* (Tout)" msgid "Class" msgstr "Classe" -#: pcbnew/dialog_design_rules.cpp:105 +#: pcbnew/dialog_design_rules.cpp:106 msgid "Current general settings:
" msgstr "Reglages généraux courants:
" -#: pcbnew/dialog_design_rules.cpp:109 +#: pcbnew/dialog_design_rules.cpp:110 #, c-format msgid "Minimum value for tracks width: %s
\n" msgstr "Valeur minimum pour la largeur de piste: %s
\n" -#: pcbnew/dialog_design_rules.cpp:113 +#: pcbnew/dialog_design_rules.cpp:114 #, c-format msgid "Minimum value for vias diameter: %s
\n" msgstr "Valeur minimum pour le diamètre de via: %s
\n" -#: pcbnew/dialog_design_rules.cpp:117 +#: pcbnew/dialog_design_rules.cpp:118 #, c-format msgid "Minimum value for microvias diameter: %s
\n" msgstr "Valeur minimum pour le diamètre de microvia: %s
\n" -#: pcbnew/dialog_design_rules.cpp:497 +#: pcbnew/dialog_design_rules.cpp:498 msgid "New Net Class Name:" msgstr "Nouveau Nom de Classe d'Equipotentielle:" -#: pcbnew/dialog_design_rules.cpp:510 +#: pcbnew/dialog_design_rules.cpp:511 msgid "This NetClass is already existing, cannot add it; Aborted" msgstr "Cette NetClass existe déjà, et ne peut être ajoutée; Abandon" -#: pcbnew/dialog_design_rules.cpp:567 +#: pcbnew/dialog_design_rules.cpp:568 msgid "The defaut Netclass cannot be removed" msgstr "La Netclass Défault ne peut être supprimée" -#: pcbnew/dialog_design_rules.cpp:758 +#: pcbnew/dialog_design_rules.cpp:759 #, c-format msgid "%s: Track Size < Min Track Size
" msgstr "%s: Largeur PisteLargeur Piste Minimum
" -#: pcbnew/dialog_design_rules.cpp:772 +#: pcbnew/dialog_design_rules.cpp:773 #, c-format msgid "%s: Via Diameter < Minimun Via Diameter
" msgstr "%s: Diamètre ViaMin. Diamètre Via
" -#: pcbnew/dialog_design_rules.cpp:784 +#: pcbnew/dialog_design_rules.cpp:785 #, c-format msgid "%s: Via DrillVia Dia
" msgstr "%s: Perçage ViaDiam Via
" -#: pcbnew/dialog_design_rules.cpp:793 +#: pcbnew/dialog_design_rules.cpp:794 #, c-format msgid "%s: Via Drill < Min Via Drill
" msgstr "%s: Perçage Via < Via Perçage Min
" -#: pcbnew/dialog_design_rules.cpp:807 +#: pcbnew/dialog_design_rules.cpp:808 #, c-format msgid "%s: MicroVia Diameter < MicroVia Min Diameter
" msgstr "%s: Diamètre MicroVia < Diamètre MicroVia Minimum
" -#: pcbnew/dialog_design_rules.cpp:819 +#: pcbnew/dialog_design_rules.cpp:820 #, c-format msgid "%s: MicroVia DrillMicroVia Dia
" msgstr "%s: Perçage MicroViaDiam MicroVia
" -#: pcbnew/dialog_design_rules.cpp:828 +#: pcbnew/dialog_design_rules.cpp:829 #, c-format msgid "%s: MicroVia Drill < MicroVia Min Drill
" msgstr "%s: Perçage MicroVia < MicroVia Perçage Min
" @@ -5847,9 +5847,8 @@ msgid "Seg Layer" msgstr "Couche Seg." #: pcbnew/dialog_print_for_modedit.cpp:242 -#, fuzzy msgid "Print Footprint" -msgstr "Module" +msgstr "Imprimer Module" #: pcbnew/dialog_print_for_modedit_base.cpp:22 msgid "Scale 8" @@ -6995,35 +6994,43 @@ msgstr "Position occupée par une autre pin. Continuer ?" msgid "Initial pin position (%d, %d)" msgstr "Position initiane de la pin (%d, %d)" -#: eeschema/pinedit.cpp:956 +#: eeschema/pinedit.cpp:961 msgid "No pins!" msgstr "Pas de Pins!" -#: eeschema/pinedit.cpp:967 +#: eeschema/pinedit.cpp:971 msgid "Marker Info" msgstr "Info Marqueur" -#: eeschema/pinedit.cpp:986 +#: eeschema/pinedit.cpp:989 #, c-format msgid "Duplicate pin %s \"%s\" at location (%.3f, %.3f) conflicts with pin %s \"%s\" at location (%.3f, %.3f)" msgstr "Pin dupliquée %s \"%s\" en position (%.3f, %.3f) en conflit avec pin %s \"%s\" en position (%.3f, %.3f)" -#: eeschema/pinedit.cpp:997 +#: eeschema/pinedit.cpp:1000 +#: eeschema/pinedit.cpp:1038 #, c-format msgid " in part %c" msgstr " en composant %c" -#: eeschema/pinedit.cpp:1004 +#: eeschema/pinedit.cpp:1007 +#: eeschema/pinedit.cpp:1045 msgid " of converted" msgstr " de converti" -#: eeschema/pinedit.cpp:1006 +#: eeschema/pinedit.cpp:1009 +#: eeschema/pinedit.cpp:1047 msgid " of normal" msgstr " de normal" -#: eeschema/pinedit.cpp:1015 -msgid "No duplicate pins were found." -msgstr "Pas de pins doublées trouvéées" +#: eeschema/pinedit.cpp:1030 +#, c-format +msgid "Off grid pin %s \"%s\" at location (%.3f, %.3f)" +msgstr "" + +#: eeschema/pinedit.cpp:1055 +msgid "No off grid or duplicate pins were found." +msgstr "Pas de pins doublées ou hors grille trouvées" #: eeschema/eelayer.cpp:218 msgid "White" @@ -7155,7 +7162,7 @@ msgstr "Supprimer composant \"%s\" de la librairie \"%s\"?" #: eeschema/libedit.cpp:442 msgid "The component being deleted has been modified. All changes will be lost. Discard changes?" -msgstr "" +msgstr "Le composant à supprimer a été modifié. Tous les changements seront perdus. Ignorer les changements?" #: eeschema/libedit.cpp:497 msgid "" @@ -7204,9 +7211,9 @@ msgid "reference" msgstr "référence" #: eeschema/class_libentry.cpp:332 -#, fuzzy, c-format +#, c-format msgid "An attempt was made to remove the %s field from component %s in library %s." -msgstr "Alias <%s> non trouvé pour le component <%s> en librairie <%s>." +msgstr "Une tentative a été faite pour supprimer le champ %s du composant %s en librairie %s." #: eeschema/class_libentry.cpp:674 msgid "file ended prematurely loading component draw element" @@ -7443,8 +7450,8 @@ msgid "Add and remove fields and edit field properties" msgstr "Ajouter, supprimer des champs et éditer leurs propriétés" #: eeschema/tool_lib.cpp:156 -msgid "Test for duplicate pins" -msgstr "Test pins doublées" +msgid "Test for duplicate pins and off grid pins" +msgstr "Test pins doublées et hors grille" #: eeschema/tool_lib.cpp:179 msgid "Show as \"De Morgan\" normal part" @@ -8041,7 +8048,7 @@ msgstr "Créer composant comme &symbole d'alimentation" #: eeschema/dialog_lib_new_component_base.cpp:121 msgid "Parts in package locked (cannot be swapped)" -msgstr "Les parts du boitier sont verroulliées (ne peuvent pas être interchangées)" +msgstr "Les parts du boitier sont verrouillées (ne peuvent pas être interchangées)" #: eeschema/dialog_lib_new_component_base.cpp:130 msgid "Global Pin Settings" @@ -8614,19 +8621,19 @@ msgstr "" msgid "Doc Files" msgstr "Fichiers de Doc" -#: eeschema/edit_component_in_lib.cpp:457 +#: eeschema/edit_component_in_lib.cpp:462 msgid "Ok to Delete FootprintFilter LIST" msgstr "Ok pour effacer la LISTE des filtres de modules" -#: eeschema/edit_component_in_lib.cpp:480 +#: eeschema/edit_component_in_lib.cpp:485 msgid "Add Footprint Filter" msgstr "Ajouter Filtre Modules" -#: eeschema/edit_component_in_lib.cpp:480 +#: eeschema/edit_component_in_lib.cpp:485 msgid "Footprint Filter" msgstr "Filtrage Modules" -#: eeschema/edit_component_in_lib.cpp:493 +#: eeschema/edit_component_in_lib.cpp:498 #, c-format msgid "Foot print filter <%s> is already defined." msgstr "Filtre de module <%s> déjà défini." @@ -9862,12 +9869,11 @@ msgstr "&Epaisseur" #: eeschema/dialog_lib_edit_draw_item_base.cpp:56 msgid "Apply changes to all &parts in component" -msgstr "" +msgstr "Apliquer les changements à toutes les &parts du composant" #: eeschema/dialog_lib_edit_draw_item_base.cpp:68 -#, fuzzy msgid "Apply changes to all body &styles (DeMorgan)" -msgstr "Créer un composant avec une forme &alternative (DeMorgan)" +msgstr "Appliquer les changements à toutes les parts et &représentation (DeMorgan)" #: eeschema/dialog_lib_edit_draw_item_base.cpp:77 msgid "Fill Style" diff --git a/pcbnew/class_pad_draw_functions.cpp b/pcbnew/class_pad_draw_functions.cpp index e253346eaf..fb19da5b5e 100644 --- a/pcbnew/class_pad_draw_functions.cpp +++ b/pcbnew/class_pad_draw_functions.cpp @@ -266,16 +266,16 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, if( fillpad ) { GRFillCSegm( &panel->m_ClipBox, DC, - ux0 + delta_cx + mask_margin, uy0 + delta_cy + mask_margin, - ux0 - delta_cx - mask_margin, uy0 - delta_cy - mask_margin, - rotdx, color ); + ux0 + delta_cx, uy0 + delta_cy, + ux0 - delta_cx, uy0 - delta_cy, + rotdx + mask_margin, color ); } else { GRCSegm( &panel->m_ClipBox, DC, - ux0 + delta_cx + mask_margin, uy0 + delta_cy + mask_margin, - ux0 - delta_cx - mask_margin, uy0 - delta_cy - mask_margin, - rotdx, color ); + ux0 + delta_cx, uy0 + delta_cy, + ux0 - delta_cx, uy0 - delta_cy, + rotdx + mask_margin, color ); } /* Trace de la marge d'isolement */ @@ -293,20 +293,20 @@ void D_PAD::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, case PAD_TRAPEZOID: { int ddx, ddy; - ddx = (m_DeltaSize.x >> 1) + mask_margin; - ddy = (m_DeltaSize.y >> 1) + mask_margin; /* demi dim dx et dy */ + ddx = (m_DeltaSize.x >> 1); + ddy = (m_DeltaSize.y >> 1); /* demi dim dx et dy */ - coord[0].x = -dx - ddy; - coord[0].y = +dy + ddx; + coord[0].x = -dx - ddy - mask_margin; + coord[0].y = +dy + ddx + mask_margin; - coord[1].x = -dx + ddy; - coord[1].y = -dy - ddx; + coord[1].x = -dx + ddy - mask_margin; + coord[1].y = -dy - ddx - mask_margin; - coord[2].x = +dx - ddy; - coord[2].y = -dy + ddx; + coord[2].x = +dx - ddy + mask_margin; + coord[2].y = -dy + ddx - mask_margin; - coord[3].x = +dx + ddy; - coord[3].y = +dy - ddx; + coord[3].x = +dx + ddy + mask_margin; + coord[3].y = +dy - ddx + mask_margin; for( ii = 0; ii < 4; ii++ ) { diff --git a/pcbnew/dialog_design_rules.cpp b/pcbnew/dialog_design_rules.cpp index 9ba8df03c3..f0096af2d5 100644 --- a/pcbnew/dialog_design_rules.cpp +++ b/pcbnew/dialog_design_rules.cpp @@ -91,6 +91,7 @@ DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES( WinEDA_PcbFrame* parent ) : Layout(); GetSizer()->Fit( this ); GetSizer()->SetSizeHints( this ); + Center(); } diff --git a/pcbnew/dialog_layers_setup.cpp b/pcbnew/dialog_layers_setup.cpp index 99e817b672..bcaeb3b752 100644 --- a/pcbnew/dialog_layers_setup.cpp +++ b/pcbnew/dialog_layers_setup.cpp @@ -258,7 +258,7 @@ void DialogLayerSetup::SetLayerType( int Layer, LAYER_T Type ) } //============================================================================== -// The layer mask for non-copper layers is obtained from the new +// The layer mask for non-copper layers is obtained from the new // EDA_BoardDesignSettings::m*EnabledLayers, but for compatibility, the mask // for the copper-layers is obtained from g_DesignSettings::m_CopperLayerCount @@ -445,7 +445,7 @@ DialogLayerSetup::DialogLayerSetup( WinEDA_PcbFrame* parent, const wxPoint& pos, // The copper layer names can be changed, we need a text control m_LayerNameTextCtrl[Layer] = new wxTextCtrl( m_LayerNamePanel[Layer], ID_LAYERNAMES + Layer, GetLayerName( Layer ), wxDefaultPosition, wxDefaultSize, 0 /*|wxNO_BORDER*/ ); - m_LayerNameTextCtrl[Layer]->SetMaxLength( 20 ); + m_LayerNameTextCtrl[Layer]->SetMaxLength( 20 ); #if CONTROL_BACKGROUND_COLORED m_LayerNameTextCtrl[Layer]->SetBackgroundColour( GetRowColor( Layer )); @@ -659,6 +659,8 @@ DialogLayerSetup::DialogLayerSetup( WinEDA_PcbFrame* parent, const wxPoint& pos, m_LayerEnabledCheckBox[i]->Connect( wxEVT_KILL_FOCUS, wxFocusEventHandler( DialogLayerSetup::OnLayerEnabledKillFocus ), NULL, this ); m_LayerEnabledCheckBox[i]->Connect( wxEVT_SET_FOCUS, wxFocusEventHandler( DialogLayerSetup::OnLayerEnabledSetFocus ), NULL, this ); } + + Centre(); } //============================================================================== @@ -994,7 +996,7 @@ void DialogLayerSetup::OnOKClick( wxCommandEvent& event ) if( m_LayersMask >> i & 0x00000001 ) NumberOfCopperLayers++; } - + m_Pcb->m_BoardSettings->m_CopperLayerCount = NumberOfCopperLayers; m_Pcb->SetEnabledLayers( m_LayersMask ); diff --git a/pcbnew/loadcmp.cpp b/pcbnew/loadcmp.cpp index f7118e1519..60bb496c82 100644 --- a/pcbnew/loadcmp.cpp +++ b/pcbnew/loadcmp.cpp @@ -362,7 +362,8 @@ wxString WinEDA_BasePcbFrame::Select_1_Module_From_List( WinEDAListBox* ListBox = new WinEDAListBox( active_window, wxEmptyString, NULL, OldName, DisplayCmpDoc, - wxColour( 200, 200, 255 ),GetScreen()->m_Curseur ); + wxColour( 200, 200, 255 ), + GetComponentDialogPosition()); wxBeginBusyCursor();