From 71ca194b688be1493f5244ec985a684b7dcd3d1e Mon Sep 17 00:00:00 2001 From: charras Date: Mon, 6 Apr 2009 10:56:17 +0000 Subject: [PATCH] overbar patch merged mainly in eechema/class_pin.cpp. Some cleanup and compil problem fixes. --- 3d-viewer/3d_draw.cpp | 1 + 3d-viewer/{makefile.g95 => makefile.mingw} | 0 CHANGELOG.txt | 12 +- bitmaps/{makefile.g95 => makefile.mingw} | 0 common/drawpanel.cpp | 11 +- common/drawtxt.cpp | 148 +- common/makefile.g95 | 16 - common/makefile.include | 157 +- common/makefile.mingw | 24 + common/sch_item_struct.cpp | 6 +- cvpcb/loadcmp.cpp | 8 +- cvpcb/makefile.include | 2 +- cvpcb/{makefile.g95 => makefile.mingw} | 2 +- eeschema/CMakeLists.txt | 1 + eeschema/class_hierarchical_PIN_sheet.cpp | 2 +- eeschema/class_pin.cpp | 699 ++++----- eeschema/class_text-label.cpp | 36 +- eeschema/dialog_build_BOM.cpp | 3 +- eeschema/dialog_eeschema_config.cpp | 615 +++----- eeschema/dialog_eeschema_config.h | 139 -- eeschema/dialog_eeschema_config.pjd | 1321 ----------------- eeschema/dialog_eeschema_config_fbp.cpp | 164 ++ eeschema/dialog_eeschema_config_fbp.fbp | 1116 ++++++++++++++ eeschema/dialog_eeschema_config_fbp.h | 82 + eeschema/makefile.include | 8 +- eeschema/{makefile.g95 => makefile.mingw} | 0 .../plugins/{makefile.g95 => makefile.mingw} | 0 gerbview/makefile.include | 2 +- gerbview/{makefile.g95 => makefile.mingw} | 0 include/drawtxt.h | 58 +- internat/fr/kicad.mo | Bin 177524 -> 178324 bytes internat/fr/kicad.po | 1218 +++------------ kicad/{makefile.g95 => makefile.mingw} | 0 makefile.g95 => makefile.mingw | 6 +- pcbnew/class_zone.cpp | 10 +- pcbnew/librairi.cpp | 2 +- pcbnew/makefile.include | 22 +- pcbnew/{makefile.g95 => makefile.mingw} | 2 +- .../src/{makefile.g95 => makefile.mingw} | 0 polygon/{makefile.g95 => makefile.mingw} | 0 40 files changed, 2437 insertions(+), 3456 deletions(-) rename 3d-viewer/{makefile.g95 => makefile.mingw} (100%) rename bitmaps/{makefile.g95 => makefile.mingw} (100%) delete mode 100644 common/makefile.g95 create mode 100644 common/makefile.mingw rename cvpcb/{makefile.g95 => makefile.mingw} (93%) delete mode 100644 eeschema/dialog_eeschema_config.h delete mode 100644 eeschema/dialog_eeschema_config.pjd create mode 100644 eeschema/dialog_eeschema_config_fbp.cpp create mode 100644 eeschema/dialog_eeschema_config_fbp.fbp create mode 100644 eeschema/dialog_eeschema_config_fbp.h rename eeschema/{makefile.g95 => makefile.mingw} (100%) rename eeschema/plugins/{makefile.g95 => makefile.mingw} (100%) rename gerbview/{makefile.g95 => makefile.mingw} (100%) rename kicad/{makefile.g95 => makefile.mingw} (100%) rename makefile.g95 => makefile.mingw (78%) rename pcbnew/{makefile.g95 => makefile.mingw} (93%) rename polygon/kbool/src/{makefile.g95 => makefile.mingw} (100%) rename polygon/{makefile.g95 => makefile.mingw} (100%) diff --git a/3d-viewer/3d_draw.cpp b/3d-viewer/3d_draw.cpp index 37d0f7da1b..a714cd0f4a 100644 --- a/3d-viewer/3d_draw.cpp +++ b/3d-viewer/3d_draw.cpp @@ -493,6 +493,7 @@ void Pcb3D_GLCanvas::Draw3D_DrawText( TEXTE_PCB* text ) text->m_Text, text->m_Orient, text->m_Size, text->m_HJustify, text->m_VJustify, text->m_Width, text->m_Italic, + true, Draw3dTextSegm ); } diff --git a/3d-viewer/makefile.g95 b/3d-viewer/makefile.mingw similarity index 100% rename from 3d-viewer/makefile.g95 rename to 3d-viewer/makefile.mingw diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 23dc54077b..00330f5c34 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -4,7 +4,17 @@ KiCad ChangeLog 2009 Please add newer entries at the top, list the date and your name with email address. -2009-xxx-xx UPDATE Wayne Stambaugh +2009-apr-06 UPDATE Jean-Pierre Charras +================================================================================ +++common: + overbar patch merged in drawtxt.cpp and mainly in eechema/class_pin.cpp + some cleanup and some compiling problems fixed. + +++eeschema: + changed dialog_eeschema_config.cpp to use wxFormBuilder to create + the corresponding equivalent dialog in dialog_eeschema_config_fbp.cpp + +2009-apr-05 UPDATE Wayne Stambaugh ================================================================================ ++All * Removed all instances #ifdef eda_global, COMMON_GLOBL, and MAIN in order diff --git a/bitmaps/makefile.g95 b/bitmaps/makefile.mingw similarity index 100% rename from bitmaps/makefile.g95 rename to bitmaps/makefile.mingw diff --git a/common/drawpanel.cpp b/common/drawpanel.cpp index ccaec19aed..51f50d3519 100644 --- a/common/drawpanel.cpp +++ b/common/drawpanel.cpp @@ -738,19 +738,20 @@ void WinEDA_DrawPanel::DrawBackGround( wxDC* DC ) for( ii = 0; ; ii++ ) { xg = wxRound(ii * screen_grid_size.x); + if( xg > size.x ) + break; int xpos = org.x + xg; - + xpos = GRMapX( xpos ); for( jj = 0; ; jj++ ) { yg = wxRound(jj * screen_grid_size.y); - GRPutPixel( &m_ClipBox, DC, xpos, org.y + yg, color ); if( yg > size.y ) break; + int ypos = org.y + yg; + DC->DrawPoint( xpos, GRMapY( ypos ) ); } - if( xg > size.x ) - break; - } + } } /* Draw axis */ diff --git a/common/drawtxt.cpp b/common/drawtxt.cpp index 8be51cc52f..c9c38c7eb2 100644 --- a/common/drawtxt.cpp +++ b/common/drawtxt.cpp @@ -20,6 +20,55 @@ #define EDA_DRAWBASE #include "grfonte.h" +/** Function NegableTextLength + * Return the text length of a negable string, excluding the ~ markers */ +int NegableTextLength(const wxString& aText) +{ + int char_count = aText.length(); + /* Fix the character count, removing the ~ found */ + for (int i = char_count-1; i >= 0; i--) { + if (aText[i] == '~') { + char_count--; + } + } + return char_count; +} + +/* Helper function for drawing character polygons */ +static void DrawGraphicTextPline( + WinEDA_DrawPanel* aPanel, + wxDC* aDC, + EDA_Colors aColor, + int aWidth, + bool sketch_mode, + int point_count, + wxPoint *coord, + void (* aCallback) (int x0, int y0, int xf, int yf)) +{ + if ( aCallback ) + { + for( int ik = 0; ik < (point_count - 1); ik ++ ) + { + aCallback( coord[ik].x, coord[ik].y, + coord[ik+1].x, coord[ik+1].y ); + } + } + + else if( sketch_mode ) + { + for( int ik = 0; ik < (point_count - 1); ik ++ ) + GRCSegm( &aPanel->m_ClipBox, aDC, coord[ik].x, coord[ik].y, + coord[ik+1].x, coord[ik+1].y, aWidth, aColor ); + } + else + GRPoly( &aPanel->m_ClipBox, aDC, point_count, coord, 0, + aWidth, aColor, aColor ); +} + +static int overbar_position(int size_v, int thickness) +{ + return size_v*1.1+thickness; +} /** Function DrawGraphicText * Draw a graphic text (like module texts) @@ -35,6 +84,7 @@ * @param aWidth = line width (pen width) (default = 0) * if width < 0 : draw segments in sketch mode, width = abs(width) * @param aItalic = true to simulate an italic font + * @param aNegable = true to enable the ~ char for overbarring * @param aCallback() = function called (if non null) to draw each segment. * used to draw 3D texts or for plotting, NULL for normal drawings */ @@ -50,10 +100,11 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, enum GRTextVertJustifyType aV_justify, int aWidth, bool aItalic, + bool aNegable, void (* aCallback) (int x0, int y0, int xf, int yf)) /****************************************************************************************************/ { - int kk, char_count, AsciiCode; + int char_count, AsciiCode; int x0, y0; int size_h, size_v, pitch; SH_CODE f_cod, plume = 'U'; @@ -62,10 +113,12 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, int ux0, uy0, dx, dy; // Draw coordinate for segments to draw. also used in some other calculation int cX, cY; // Texte center int ox, oy; // Draw coordinates for the current char + int overbar_x, overbar_y; // Start point for the current overbar + int overbars; // Number of ~ seen #define BUF_SIZE 100 wxPoint coord[BUF_SIZE+1]; // Buffer coordinate used to draw polylines (one char shape) bool sketch_mode = false; - bool italic_reverse = false; // true for mirrored texts with m_Size.x < 0 + bool italic_reverse = false; // true for mirrored texts with m_Size.x < 0 size_h = aSize.x; size_v = aSize.y; @@ -76,21 +129,22 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, sketch_mode = true; } int thickness = aWidth; - if ( aSize.x < 0 ) // text is mirrored using size.x < 0 (mirror / Y axis) - italic_reverse = true; + if ( aSize.x < 0 ) // text is mirrored using size.x < 0 (mirror / Y axis) + italic_reverse = true; - kk = 0; - ptr = 0; /* ptr = text index */ - - char_count = aText.Len(); + if (aNegable) { + char_count = NegableTextLength(aText); + } else { + char_count = aText.Len(); + } if( char_count == 0 ) return; pitch = (10 * size_h ) / 9; // this is the pitch between chars if ( pitch > 0 ) - pitch += ABS(thickness); + pitch += thickness; else - pitch -= ABS(thickness); + pitch -= thickness; ox = cX = aPos.x; oy = cY = aPos.y; @@ -220,17 +274,44 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, return; } - while( kk++ < char_count ) + overbars = 0; + ptr = 0; /* ptr = text index */ + while( ptr < char_count ) { - x0 = 0; y0 = 0; + if (aNegable) { + if (aText[ptr+overbars] == '~') { + /* Found an overbar, adjust the pointers */ + overbars++; + + if (overbars % 2) { + /* Starting the overbar */ + overbar_x = ox; + overbar_y = oy-overbar_position(size_v, thickness); + RotatePoint( &overbar_x, &overbar_y, cX, cY, aOrient ); + } else { + /* Ending the overbar */ + coord[0].x = overbar_x; + coord[0].y = overbar_y; + overbar_x = ox; + overbar_y = oy-overbar_position(size_v, thickness); + RotatePoint( &overbar_x, &overbar_y, cX, cY, aOrient ); + coord[1].x = overbar_x; + coord[1].y = overbar_y; + /* Plot the overbar segment */ + DrawGraphicTextPline(aPanel, aDC, aColor, aWidth, + sketch_mode, 2, coord, aCallback); + } + continue; /* Skip ~ processing */ + } + } #if defined(wxUSE_UNICODE) && defined(KICAD_CYRILLIC) - AsciiCode = aText.GetChar(ptr) & 0x7FF; + AsciiCode = aText.GetChar(ptr+overbars) & 0x7FF; if ( AsciiCode > 0x40F && AsciiCode < 0x450 ) // big small Cyr AsciiCode = utf8_to_ascii[AsciiCode - 0x410] & 0xFF; else AsciiCode = AsciiCode & 0xFF; #else - AsciiCode = aText.GetChar( ptr ) & 0xFF; + AsciiCode = aText.GetChar(ptr+overbars) & 0xFF; #endif ptcar = graphic_fonte_shape[AsciiCode]; /* ptcar pointe la description * du caractere a dessiner */ @@ -253,24 +334,8 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, { if( aWidth <= 1 ) aWidth = 0; - if ( aCallback ) - { - for( int ik = 0; ik < (point_count - 1); ik ++ ) - { - aCallback( coord[ik].x, coord[ik].y, - coord[ik+1].x, coord[ik+1].y ); - } - } - - else if( sketch_mode ) - { - for( int ik = 0; ik < (point_count - 1); ik ++ ) - GRCSegm( &aPanel->m_ClipBox, aDC, coord[ik].x, coord[ik].y, - coord[ik+1].x, coord[ik+1].y, aWidth, aColor ); - } - else - GRPoly( &aPanel->m_ClipBox, aDC, point_count, coord, 0, - aWidth, aColor, aColor ); + DrawGraphicTextPline(aPanel, aDC, aColor, aWidth, + sketch_mode, point_count, coord, aCallback); } plume = f_cod; point_count = 0; break; @@ -311,6 +376,19 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, ptr++; ox += pitch; } + if (overbars % 2) { + /* Close the last overbar */ + coord[0].x = overbar_x; + coord[0].y = overbar_y; + overbar_x = ox; + overbar_y = oy-overbar_position(size_v, thickness); + RotatePoint( &overbar_x, &overbar_y, cX, cY, aOrient ); + coord[1].x = overbar_x; + coord[1].y = overbar_y; + /* Plot the overbar segment */ + DrawGraphicTextPline(aPanel, aDC, aColor, aWidth, + sketch_mode, 2, coord, aCallback); + } } @@ -375,6 +453,7 @@ s_Callback_plot(int x0, * @param aWidth = line width (pen width) (default = 0) * if width < 0 : draw segments in sketch mode, width = abs(width) * @param aItalic = true to simulate an italic font + * @param aNegable = true to enable the ~ char for overbarring */ /******************************************************************************************/ void PlotGraphicText( int aFormat_plot, @@ -386,7 +465,8 @@ void PlotGraphicText( int aFormat_plot, enum GRTextHorizJustifyType aH_justify, enum GRTextVertJustifyType aV_justify, int aWidth, - bool aItalic ) + bool aItalic, + bool aNegable) /******************************************************************************************/ { // Initialise the actual function used to plot lines: @@ -415,7 +495,7 @@ void PlotGraphicText( int aFormat_plot, DrawGraphicText( NULL, NULL, aPos, aColor, aText, aOrient, aSize, aH_justify, aV_justify, - aWidth, aItalic, + aWidth, aItalic, aNegable, s_Callback_plot); /* end text : pen UP ,no move */ diff --git a/common/makefile.g95 b/common/makefile.g95 deleted file mode 100644 index b96ffe785c..0000000000 --- a/common/makefile.g95 +++ /dev/null @@ -1,16 +0,0 @@ -WXDIR = $(WXWIN) - -all: common.a - -include ../libs.win - -include makefile.include - -common.a: $(OBJECTS) ../libs.win makefile.include - ar ruv $@ $(OBJECTS) - ranlib $@ - -clean: - rm -f *.bak - rm -f *.o - rm -f common.a diff --git a/common/makefile.include b/common/makefile.include index 9303263a1f..fb57dbccf6 100644 --- a/common/makefile.include +++ b/common/makefile.include @@ -1,75 +1,106 @@ EXTRACPPFLAGS += -I$(SYSINCLUDE) -I./ -Ibitmaps -I../include -I../polygon -COMMON = ../include/colors.h +PCBINCL = -I../pcbnew -I../polygon -I../3d-viewer -PCBINCL = -I../pcbnew -I../polygon - -OBJECTS= \ - about_kicad.o\ - base_struct.o\ - basicframe.o\ - drawframe.o\ - confirm.o \ - copy_to_clipboard.o\ - class_drawpickedstruct.o\ - common_plot_functions.o\ +COMMON_OBJECTS= \ + about_kicad.o\ + base_screen.o\ + base_struct.o\ + basicframe.o\ + block_commande.o\ + class_drawpickedstruct.o\ + common.o\ + common_plot_functions.o\ + common_plotHPGL_functions.o\ + common_plotPS_functions.o\ common_plotGERBER_functions.o\ - common_plotPS_functions.o\ - common_plotHPGL_functions.o\ - dlist.o \ - hotkeys_basic.o\ - drawtxt.o \ + confirm.o\ + copy_to_clipboard.o\ + dcsvg.o\ + displlst.o\ + dlist.o\ + drawframe.o\ drawpanel.o\ - wxwineda.o \ - string.o \ - gr_basic.o\ - gestfich.o\ - trigo.o\ - selcolor.o\ - common.o\ - eda_doc.o\ - toolbars.o\ - displlst.o \ - edaappl.o\ - block_commande.o\ - msgpanel.o\ - projet_config.o\ - get_component_dialog.o\ - eda_dde.o\ - worksheet.o\ - base_screen.o\ - dcsvg.o\ - zoom.o\ + drawtxt.o\ + edaappl.o\ + eda_dde.o\ + eda_doc.o\ + gestfich.o\ + get_component_dialog.o\ + gr_basic.o\ + hotkeys_basic.o\ + msgpanel.o\ + projet_config.o\ + selcolor.o\ + string.o\ + toolbars.o\ + trigo.o\ + worksheet.o\ + wxwineda.o\ + zoom.o + + +PCB_COMMON_OBJECTS =\ + pcbcommon.o\ basepcbframe.o\ class_board.o\ class_board_connected_item.o\ + class_board_item.o\ class_cotation.o\ + class_drawsegment.o\ class_drc_item.o\ + class_edge_mod.o\ + class_equipot.o\ class_marker.o\ class_mire.o\ + class_module.o\ class_pad.o\ class_pad_draw_functions.o\ class_pcb_text.o\ + class_text_mod.o\ + class_track.o\ class_zone.o\ class_zone_setting.o\ classpcb.o\ collectors.o\ sel_layer.o\ + tracemod.o\ dialog_print_using_printer_base.o ifdef KICAD_PYTHON -OBJECTS += pyhandler.o -pyhandler.o: pyhandler.cpp $(COMMON) ../include/pyhandler.h +COMMON_OBJECTS += pyhandler.o +pyhandler.o: pyhandler.cpp ../include/pyhandler.h endif +pcbcommon.o: pcbcommon.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ $*.cpp + basepcbframe.o: ../pcbnew/basepcbframe.cpp $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp class_board.o: ../pcbnew/class_board.cpp $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp +class_board_item.o: ../pcbnew/class_board_item.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +class_drawsegment.o: ../pcbnew/class_drawsegment.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +class_edge_mod.o: ../pcbnew/class_edge_mod.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +class_equipot.o: ../pcbnew/class_equipot.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +class_module.o: ../pcbnew/class_module.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +class_text_mod.o: ../pcbnew/class_text_mod.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + class_board_connected_item.o: ../pcbnew/class_board_connected_item.cpp $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp @@ -94,6 +125,12 @@ class_pad_draw_functions.o: ../pcbnew/class_pad_draw_functions.cpp class_pcb_text.o: ../pcbnew/class_pcb_text.cpp $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp +class_track.o: ../pcbnew/class_track.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + +tracemod.o: ../pcbnew/tracemod.cpp + $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp + class_zone.o: ../pcbnew/class_zone.cpp $(CXX) $(PCBINCL) -c $(EDACPPFLAGS) -o $@ ../pcbnew/$*.cpp @@ -114,41 +151,41 @@ dialog_print_using_printer_base.o: ../pcbnew/dialog_print_using_printer_base.cpp gr_basic.o: gr_basic.cpp ../include/gr_basic.h $(DEPEND) -confirm.o: confirm.cpp $(COMMON) +confirm.o: confirm.cpp -hotkeys_basic.o: hotkeys_basic.cpp ../include/hotkeys_basic.h $(COMMON) +hotkeys_basic.o: hotkeys_basic.cpp ../include/hotkeys_basic.h -worksheet.o: worksheet.cpp ../include/worksheet.h $(COMMON) +worksheet.o: worksheet.cpp ../include/worksheet.h -selcolor.o: selcolor.cpp ../include/colors.h $(COMMON) +selcolor.o: selcolor.cpp ../include/colors.h -get_component_dialog.o: get_component_dialog.cpp $(COMMON) +get_component_dialog.o: get_component_dialog.cpp -common_plotPS_functions.o: common_plotPS_functions.cpp ../include/plot_common.h $(COMMON) +common_plotPS_functions.o: common_plotPS_functions.cpp ../include/plot_common.h -common_plotHPGL_functions.o: common_plotPS_functions.cpp ../include/plot_common.h $(COMMON) +common_plotHPGL_functions.o: common_plotPS_functions.cpp ../include/plot_common.h -drawtxt.o: drawtxt.cpp ../include/grfonte.h $(COMMON) +drawtxt.o: drawtxt.cpp ../include/grfonte.h -gr_basic.o: gr_basic.cpp ../include/gr_basic.h $(COMMON) ../include/plot_common.h +gr_basic.o: gr_basic.cpp ../include/gr_basic.h ../include/plot_common.h -dcsvg.o: dcsvg.cpp $(COMMON) ../include/dcsvg.h +dcsvg.o: dcsvg.cpp ../include/dcsvg.h -projet_config.o: projet_config.cpp $(COMMON) +projet_config.o: projet_config.cpp -base_struct.o: base_struct.cpp $(COMMON) +base_struct.o: base_struct.cpp -eda_doc.o: eda_doc.cpp $(COMMON) +eda_doc.o: eda_doc.cpp -common.o: common.cpp $(COMMON) +common.o: common.cpp -gestfich.o: gestfich.cpp $(COMMON) +gestfich.o: gestfich.cpp -toolbars.o: toolbars.cpp $(COMMON) +toolbars.o: toolbars.cpp -msgpanel.o: msgpanel.cpp $(COMMON) +msgpanel.o: msgpanel.cpp -block_commande.o: block_commande.cpp $(COMMON) +block_commande.o: block_commande.cpp string.o: string.cpp @@ -156,10 +193,10 @@ trigo.o: trigo.cpp ../include/trigo.h bitmaps.o: bitmaps.cpp ../include/bitmaps.h -edaappl.o: edaappl.cpp $(COMMON) ../include/worksheet.h\ +edaappl.o: edaappl.cpp ../include/worksheet.h\ ../include/common.h ../include/gr_basic.h\ ../include/build_version.h -eda_dde.o: eda_dde.cpp $(COMMON) ../include/eda_dde.h +eda_dde.o: eda_dde.cpp ../include/eda_dde.h -displlst.o: displlst.cpp $(COMMON) +displlst.o: displlst.cpp diff --git a/common/makefile.mingw b/common/makefile.mingw new file mode 100644 index 0000000000..4cb5ad0a38 --- /dev/null +++ b/common/makefile.mingw @@ -0,0 +1,24 @@ +WXDIR = $(WXWIN) + +all: common.a + +include ../libs.win + +include makefile.include + +all: common.a pcbcommon.a + +common.a: $(COMMON_OBJECTS) ../libs.win makefile.include + ar ruv $@ $(COMMON_OBJECTS) + ranlib $@ + + +pcbcommon.a: $(PCB_COMMON_OBJECTS) ../libs.win makefile.include + ar ruv $@ $(PCB_COMMON_OBJECTS) + ranlib $@ + + +clean: + rm -f *.bak + rm -f *.o + rm -f common.a diff --git a/common/sch_item_struct.cpp b/common/sch_item_struct.cpp index cd03b62ca9..2035cebaa2 100644 --- a/common/sch_item_struct.cpp +++ b/common/sch_item_struct.cpp @@ -1,6 +1,6 @@ -/****************************************************/ -/* class_drawpickedstruct.cpp */ -/****************************************************/ +/************************/ +/* sch_item_struct.cpp */ +/************************/ #include "fctsys.h" #include "common.h" diff --git a/cvpcb/loadcmp.cpp b/cvpcb/loadcmp.cpp index 10f326c8f9..b6a620399e 100644 --- a/cvpcb/loadcmp.cpp +++ b/cvpcb/loadcmp.cpp @@ -35,7 +35,6 @@ MODULE* WinEDA_DisplayFrame::Get_Module( const wxString& CmpName ) wxString tmp, msg; wxFileName fn; MODULE* Module = NULL; - FILE* file; for( ii = 0; ii < g_LibName_List.GetCount(); ii++ ) { @@ -54,7 +53,7 @@ MODULE* WinEDA_DisplayFrame::Get_Module( const wxString& CmpName ) continue; } - file = wxFopen( tmp, wxT( "rt" ) ); + FILE* file = wxFopen( tmp, wxT( "rt" ) ); if( file == NULL ) { @@ -131,12 +130,9 @@ MODULE* WinEDA_DisplayFrame::Get_Module( const wxString& CmpName ) } fclose( file ); - file = 0; + file = NULL; } - if( file ) - fclose( file ); - msg.Printf( _( "Module %s not found" ), CmpName.GetData() ); DisplayError( this, msg ); return NULL; diff --git a/cvpcb/makefile.include b/cvpcb/makefile.include index b5d68b6273..433d2ca5f1 100644 --- a/cvpcb/makefile.include +++ b/cvpcb/makefile.include @@ -4,7 +4,7 @@ OBJSUFF = o EXTRACPPFLAGS += -DCVPCB -I../include -Ibitmaps\ -I../pcbnew -I../cvpcb -I../share -I../3d-viewer -I ../polygon -EXTRALIBS = ../common/common.a ../bitmaps/libbitmaps.a\ +EXTRALIBS = ../common/common.a ../common/pcbcommon.a ../bitmaps/libbitmaps.a\ ../polygon/lib_polygon.a\ ../polygon/kbool/src/libkbool.a diff --git a/cvpcb/makefile.g95 b/cvpcb/makefile.mingw similarity index 93% rename from cvpcb/makefile.g95 rename to cvpcb/makefile.mingw index 975142f322..59bf76c0bf 100644 --- a/cvpcb/makefile.g95 +++ b/cvpcb/makefile.mingw @@ -12,7 +12,7 @@ include ../libs.win $(TARGET).exe: $(OBJECTS) $(TARGET)_resources.o\ - $(EDALIBS) $(LIBVIEWER3D) makefile.g95 + $(EDALIBS) $(LIBVIEWER3D) makefile.mingw $(CXX) $(ALL_LDFLAGS) -o $(TARGET).exe\ $(OBJECTS) $(LIBVIEWER3D) $(TARGET)_resources.o $(EDALIBS) $(SYSWXLIB) diff --git a/eeschema/CMakeLists.txt b/eeschema/CMakeLists.txt index 9bbe2217d7..7d5bb4ef29 100644 --- a/eeschema/CMakeLists.txt +++ b/eeschema/CMakeLists.txt @@ -48,6 +48,7 @@ set(EESCHEMA_SRCS dialog_edit_libentry_fields_in_lib.cpp dialog_edit_libentry_fields_in_lib_base.cpp dialog_eeschema_config.cpp + dialog_eeschema_config_fbp.cpp dialog_erc.cpp # dialog_find.cpp dialog_options.cpp diff --git a/eeschema/class_hierarchical_PIN_sheet.cpp b/eeschema/class_hierarchical_PIN_sheet.cpp index 69442a9a53..68b61e7be7 100644 --- a/eeschema/class_hierarchical_PIN_sheet.cpp +++ b/eeschema/class_hierarchical_PIN_sheet.cpp @@ -98,7 +98,7 @@ void Hierarchical_PIN_Sheet_Struct::Draw( WinEDA_DrawPanel* panel, wxDC* DC, con } DrawGraphicText( panel, DC, wxPoint( tposx, posy ), txtcolor, m_Text, TEXT_ORIENT_HORIZ, size, - side, GR_TEXT_VJUSTIFY_CENTER, LineWidth ); + side, GR_TEXT_VJUSTIFY_CENTER, LineWidth, false, true ); } /* dessin du symbole de connexion */ diff --git a/eeschema/class_pin.cpp b/eeschema/class_pin.cpp index d56d596645..78b05e854f 100644 --- a/eeschema/class_pin.cpp +++ b/eeschema/class_pin.cpp @@ -17,16 +17,17 @@ LibDrawPin::LibDrawPin() : LibEDA_BaseStruct( COMPONENT_PIN_DRAW_TYPE ) { - m_PinLen = 300; /* default Pin len */ - m_Orient = PIN_RIGHT; /* Pin oprient: Up, Down, Left, Right */ - m_PinShape = NONE; /* Bit a bit: Pin shape (voir enum prec) */ - m_PinType = PIN_UNSPECIFIED; /* electrical type of pin */ - m_Attributs = 0; /* bit 0 != 0: pin invisible */ - m_PinNum = 0; /*pin number ( i.e. 4 codes Ascii ) */ + m_PinLen = 300; /* default Pin len */ + m_Orient = PIN_RIGHT; /* Pin oprient: Up, Down, Left, Right */ + m_PinShape = NONE; /* Bit a bit: Pin shape (voir enum prec) */ + m_PinType = PIN_UNSPECIFIED; /* electrical type of pin */ + m_Attributs = 0; /* bit 0 != 0: pin invisible */ + m_PinNum = 0; /*pin number ( i.e. 4 codes Ascii ) */ m_PinNumSize = 50; - m_PinNameSize = 50; /* Default size for pin name and num */ - m_Width = 0; - m_typeName = _( "Pin" ); + m_PinNameSize = 50; /* Default size for pin name and num */ + m_Width = 0; + m_typeName = _( "Pin" ); + // m_PinNumWidth = m_PinNameWidth = 0; // Unused } @@ -42,30 +43,39 @@ bool LibDrawPin::Save( FILE* ExportFile ) const case PIN_INPUT: Etype = 'I'; break; + case PIN_OUTPUT: Etype = 'O'; break; + case PIN_BIDI: Etype = 'B'; break; + case PIN_TRISTATE: Etype = 'T'; break; + case PIN_PASSIVE: Etype = 'P'; break; + case PIN_UNSPECIFIED: Etype = 'U'; break; + case PIN_POWER_IN: Etype = 'W'; break; + case PIN_POWER_OUT: Etype = 'w'; break; + case PIN_OPENCOLLECTOR: Etype = 'C'; break; + case PIN_OPENEMITTER: Etype = 'E'; break; @@ -105,7 +115,7 @@ bool LibDrawPin::Save( FILE* ExportFile ) const bool LibDrawPin::Load( char* line, wxString& errorMsg ) { - int i, j; + int i, j; char pinAttrs[64]; char pinName[256]; char pinNum[64]; @@ -217,14 +227,18 @@ bool LibDrawPin::Load( char* line, wxString& errorMsg ) } -void LibDrawPin::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, - const wxPoint& aOffset, int aColor, - int aDrawMode, void* aData, - const int aTransformMatrix[2][2] ) +/**********************************************************************************************/ +void LibDrawPin::Draw( WinEDA_DrawPanel* aPanel, + wxDC* aDC, + const wxPoint& aOffset, + int aColor, + int aDrawMode, + void* aData, + const int aTransformMatrix[2][2] ) +/**********************************************************************************************/ { // Invisibles pins are only drawn on request. - // But in libedit they are drawn in g_InvisibleItemColor because we must - // see them + // But in libedit they are drawn in g_InvisibleItemColor because we must see them WinEDA_SchematicFrame* frame = (WinEDA_SchematicFrame*) wxGetApp().GetTopWindow(); @@ -236,7 +250,6 @@ void LibDrawPin::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, return; } - EDA_LibComponentStruct* Entry = ( (DrawPinPrms*) aData )->m_Entry; bool DrawPinText = ( (DrawPinPrms*) aData )->m_DrawPinText; @@ -251,30 +264,36 @@ void LibDrawPin::Draw( WinEDA_DrawPanel* aPanel, wxDC* aDC, if( DrawPinText ) { - DrawPinTexts( aPanel, aDC, pos1, orient, Entry->m_TextInside, + DrawPinTexts( aPanel, aDC, pos1, orient, + Entry->m_TextInside, Entry->m_DrawPinNum, Entry->m_DrawPinName, aColor, aDrawMode ); } } -/* Draw the pin symbol (without texts) +/** Function DrawPinSymbol + * Draw the pin symbol (without texts) * if Color != 0 draw with Color, else with the normal pin color */ -void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, - const wxPoint& aPinPos, int aOrient, - int aDrawMode, int aColor ) +void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, + wxDC* aDC, + const wxPoint& aPinPos, + int aOrient, + int aDrawMode, + int aColor ) { - int MapX1, MapY1, x1, y1; - int color; - int width = MAX( m_Width, g_DrawMinimunLineWidth ); - int posX = aPinPos.x, posY = aPinPos.y, len = m_PinLen; + int MapX1, MapY1, x1, y1; + int color; + int width = MAX( m_Width, g_DrawMinimunLineWidth ); + int posX = aPinPos.x, posY = aPinPos.y, len = m_PinLen; BASE_SCREEN* screen = aPanel->GetScreen(); + color = ReturnLayerColor( LAYER_PIN ); if( aColor < 0 ) // Used normal color or selected color { - if( m_Selected & IS_SELECTED ) + if( (m_Selected & IS_SELECTED) ) color = g_ItemSelectetColor; } else @@ -282,38 +301,32 @@ void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, GRSetDrawMode( aDC, aDrawMode ); - MapX1 = MapY1 = 0; - x1 = posX; - y1 = posY; + MapX1 = MapY1 = 0; x1 = posX; y1 = posY; switch( aOrient ) { case PIN_UP: - y1 = posY - len; - MapY1 = 1; + y1 = posY - len; MapY1 = 1; break; case PIN_DOWN: - y1 = posY + len; - MapY1 = -1; + y1 = posY + len; MapY1 = -1; break; case PIN_LEFT: - x1 = posX - len; - MapX1 = 1; + x1 = posX - len, MapX1 = 1; break; case PIN_RIGHT: - x1 = posX + len; - MapX1 = -1; + x1 = posX + len; MapX1 = -1; break; } if( m_PinShape & INVERT ) { GRCircle( &aPanel->m_ClipBox, aDC, MapX1 * INVERT_PIN_RADIUS + x1, - MapY1 * INVERT_PIN_RADIUS + y1, INVERT_PIN_RADIUS, width, - color ); + MapY1 * INVERT_PIN_RADIUS + y1, + INVERT_PIN_RADIUS, width, color ); GRMoveTo( MapX1 * INVERT_PIN_RADIUS * 2 + x1, MapY1 * INVERT_PIN_RADIUS * 2 + y1 ); @@ -330,17 +343,33 @@ void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, if( MapY1 == 0 ) /* MapX1 = +- 1 */ { GRMoveTo( x1, y1 + CLOCK_PIN_DIM ); - GRLineTo( &aPanel->m_ClipBox, aDC, x1 - MapX1 * CLOCK_PIN_DIM, - y1, width, color ); - GRLineTo( &aPanel->m_ClipBox, aDC, x1, y1 - CLOCK_PIN_DIM, width, + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1 - MapX1 * CLOCK_PIN_DIM, + y1, + width, + color ); + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1, + y1 - CLOCK_PIN_DIM, + width, color ); } else /* MapX1 = 0 */ { GRMoveTo( x1 + CLOCK_PIN_DIM, y1 ); - GRLineTo( &aPanel->m_ClipBox, aDC, x1, y1 - MapY1 * CLOCK_PIN_DIM, - width, color ); - GRLineTo( &aPanel->m_ClipBox, aDC, x1 - CLOCK_PIN_DIM, y1, width, + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1, + y1 - MapY1 * CLOCK_PIN_DIM, + width, + color ); + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1 - CLOCK_PIN_DIM, + y1, + width, color ); } } @@ -350,9 +379,12 @@ void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, if( MapY1 == 0 ) /* MapX1 = +- 1 */ { GRMoveTo( x1 + MapX1 * IEEE_SYMBOL_PIN_DIM * 2, y1 ); - GRLineTo( &aPanel->m_ClipBox, aDC, + GRLineTo( &aPanel->m_ClipBox, + aDC, x1 + MapX1 * IEEE_SYMBOL_PIN_DIM * 2, - y1 - IEEE_SYMBOL_PIN_DIM, width, color ); + y1 - IEEE_SYMBOL_PIN_DIM, + width, + color ); GRLineTo( &aPanel->m_ClipBox, aDC, x1, y1, width, color ); } else /* MapX1 = 0 */ @@ -370,22 +402,36 @@ void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, if( MapY1 == 0 ) /* MapX1 = +- 1 */ { GRMoveTo( x1, y1 - IEEE_SYMBOL_PIN_DIM ); - GRLineTo( &aPanel->m_ClipBox, aDC, - x1 + MapX1 * IEEE_SYMBOL_PIN_DIM * 2, y1, width, color ); + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1 + MapX1 * IEEE_SYMBOL_PIN_DIM * 2, + y1, + width, + color ); } else /* MapX1 = 0 */ { GRMoveTo( x1 - IEEE_SYMBOL_PIN_DIM, y1 ); - GRLineTo( &aPanel->m_ClipBox, aDC, x1, - y1 + MapY1 * IEEE_SYMBOL_PIN_DIM * 2, width, color ); + GRLineTo( &aPanel->m_ClipBox, + aDC, + x1, + y1 + MapY1 * IEEE_SYMBOL_PIN_DIM * 2, + width, + color ); } } - /* Draw the pin end target (active end of the pin) */ - /* Draw but do not print the pin end target 1 pixel width */ + /* Draw the pin end target (active end of the pin) + * Draw but do not print the pin end target 1 pixel width + */ if( !screen->m_IsPrinting ) - GRCircle( &aPanel->m_ClipBox, aDC, posX, posY, TARGET_PIN_DIAM, - 0, color ); + GRCircle( &aPanel->m_ClipBox, + aDC, + posX, + posY, + TARGET_PIN_DIAM, + 0, + color ); } @@ -397,195 +443,131 @@ void LibDrawPin::DrawPinSymbol( WinEDA_DrawPanel* aPanel, wxDC* aDC, * If TextInside then the text is been put inside,otherwise all is drawn outside. * Pin Name: substring beteween '~' is negated *****************************************************************************/ +void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, + wxDC* DC, + wxPoint& pin_pos, + int orient, + int TextInside, + bool DrawPinNum, + bool DrawPinName, + int Color, + int DrawMode ) /* DrawMode = GR_OR, XOR ... */ -void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, wxDC* DC, - wxPoint& pin_pos, int orient, - int TextInside, bool DrawPinNum, - bool DrawPinName, int Color, int DrawMode ) { - int ii, x, y, x1, y1, dx, dy, len; - wxString StringPinNum; - wxString PinText; - int PinTextBarPos[256]; - int PinTextBarCount; - EDA_Colors NameColor, NumColor; - int PinTxtLen; + int x, y, x1, y1; + wxString StringPinNum; + EDA_Colors NameColor, NumColor; + int PinTxtLen; - wxSize PinNameSize( m_PinNameSize, m_PinNameSize ); - wxSize PinNumSize( m_PinNumSize, m_PinNumSize ); + wxSize PinNameSize( m_PinNameSize, m_PinNameSize ); + wxSize PinNumSize( m_PinNumSize, m_PinNumSize ); - int LineWidth = g_DrawMinimunLineWidth; + int LineWidth = g_DrawMinimunLineWidth; GRSetDrawMode( DC, DrawMode ); /* Get the num and name colors */ if( (Color < 0) && (m_Selected & IS_SELECTED) ) Color = g_ItemSelectetColor; - NameColor = (EDA_Colors) ( ( Color == -1 ) ? - ReturnLayerColor( LAYER_PINNAM ) : Color ); - NumColor = (EDA_Colors) ( ( Color == -1 ) ? - ReturnLayerColor( LAYER_PINNUM ) : Color ); + NameColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNAM ) : Color); + NumColor = (EDA_Colors) (Color == -1 ? ReturnLayerColor( LAYER_PINNUM ) : Color); /* Create the pin num string */ ReturnPinStringNum( StringPinNum ); - x1 = pin_pos.x; - y1 = pin_pos.y; + x1 = pin_pos.x; y1 = pin_pos.y; switch( orient ) { case PIN_UP: - y1 -= m_PinLen; - break; + y1 -= m_PinLen; break; case PIN_DOWN: - y1 += m_PinLen; - break; + y1 += m_PinLen; break; case PIN_LEFT: - x1 -= m_PinLen; - break; + x1 -= m_PinLen; break; case PIN_RIGHT: - x1 += m_PinLen; - break; + x1 += m_PinLen; break; } - const wxChar* textsrc = m_PinName.GetData(); - float fPinTextPitch = (PinNameSize.x * 1.1) + LineWidth; - /* Do we need to invert the string? Is this string has only "~"? */ - PinTextBarCount = 0; - PinTxtLen = 0; - ii = 0; + float fPinTextPitch = (PinNameSize.x * 1.1) + LineWidth; - while( *textsrc ) - { - if( *textsrc == '~' ) - { - PinTextBarPos[PinTextBarCount++] = - (int) ( PinTxtLen * fPinTextPitch ); - } - else - { - PinText.Append( *textsrc ); - PinTxtLen++; - } + PinTxtLen = NegableTextLength( m_PinName ); - textsrc++; - } - - PinTxtLen = (int) ( fPinTextPitch * PinTxtLen ); - PinTextBarPos[PinTextBarCount] = PinTxtLen; // Needed if no end '~' - - if( PinText[0] == 0 ) + if( PinTxtLen == 0 ) DrawPinName = FALSE; + PinTxtLen = (int) ( fPinTextPitch * PinTxtLen ); if( TextInside ) /* Draw the text inside, but the pin numbers outside. */ { if( (orient == PIN_LEFT) || (orient == PIN_RIGHT) ) - - // It is an horizontal line { - if( PinText && DrawPinName ) + // It is an horizontal line + if( m_PinName && DrawPinName ) { if( orient == PIN_RIGHT ) { x = x1 + TextInside; DrawGraphicText( panel, DC, wxPoint( x, y1 ), NameColor, - PinText, TEXT_ORIENT_HORIZ, PinNameSize, + m_PinName, + TEXT_ORIENT_HORIZ, + PinNameSize, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_CENTER, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x, y1 - TXTMARGE ); - dy = -PinNameSize.y / 2; - GRMoveRel( 0, dy ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( dx, 0 ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, len, 0, LineWidth, - NameColor ); - } + GR_TEXT_VJUSTIFY_CENTER, LineWidth, + false, true ); } else // Orient == PIN_LEFT { x = x1 - TextInside; DrawGraphicText( panel, DC, wxPoint( x, y1 ), NameColor, - PinText, TEXT_ORIENT_HORIZ, PinNameSize, + m_PinName, + TEXT_ORIENT_HORIZ, + PinNameSize, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_CENTER, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x, y1 - TXTMARGE ); - dy = -PinNameSize.y / 2; - GRMoveRel( 0, dy ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( dx - PinTxtLen, 0 ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, len, 0, LineWidth, - NameColor ); - } + GR_TEXT_VJUSTIFY_CENTER, LineWidth, + false, true ); } } if( DrawPinNum ) { - DrawGraphicText( panel, DC, wxPoint( (x1 + pin_pos.x) / 2, - y1 - TXTMARGE ), NumColor, - StringPinNum, TEXT_ORIENT_HORIZ, PinNumSize, + DrawGraphicText( panel, DC, + wxPoint( (x1 + pin_pos.x) / 2, + y1 - TXTMARGE ), NumColor, + StringPinNum, + TEXT_ORIENT_HORIZ, PinNumSize, GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, LineWidth ); } } else /* Its a vertical line. */ { - // Text is drawn from bottom to top (i.e. to negative value for - // Y axis) - if( PinText && DrawPinName ) + // Text is drawn from bottom to top (i.e. to negative value for Y axis) + if( m_PinName && DrawPinName ) { if( orient == PIN_DOWN ) { y = y1 + TextInside; DrawGraphicText( panel, DC, wxPoint( x1, y ), NameColor, - PinText, TEXT_ORIENT_VERT, PinNameSize, + m_PinName, + TEXT_ORIENT_VERT, PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_TOP, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x1 - TXTMARGE, y ); - dy = -PinNameSize.y / 2; - GRMoveRel( dy, 0 ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( 0, PinTxtLen - dx ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, 0, -len, LineWidth, - NameColor ); - } + GR_TEXT_VJUSTIFY_TOP, LineWidth, + false, true ); } else /* PIN_UP */ { y = y1 - TextInside; DrawGraphicText( panel, DC, wxPoint( x1, y ), NameColor, - PinText, TEXT_ORIENT_VERT, PinNameSize, + m_PinName, + TEXT_ORIENT_VERT, PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_BOTTOM, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x1 - TXTMARGE, y ); - dy = -PinNameSize.y / 2; - GRMoveRel( dy, 0 ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( 0, -dx ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, 0, -len, LineWidth, - NameColor ); - } + GR_TEXT_VJUSTIFY_BOTTOM, LineWidth, + false, true ); } } @@ -594,7 +576,8 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, wxDC* DC, DrawGraphicText( panel, DC, wxPoint( x1 - TXTMARGE, (y1 + pin_pos.y) / 2 ), NumColor, - StringPinNum, TEXT_ORIENT_VERT, PinNumSize, + StringPinNum, + TEXT_ORIENT_VERT, PinNumSize, GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, LineWidth ); } @@ -603,56 +586,41 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, wxDC* DC, else /**** Draw num & text pin outside ****/ { if( (orient == PIN_LEFT) || (orient == PIN_RIGHT) ) - /* Its an horizontal line. */ { - if( PinText && DrawPinName ) + /* Its an horizontal line. */ + if( m_PinName && DrawPinName ) { x = (x1 + pin_pos.x) / 2; - DrawGraphicText( panel, DC, wxPoint( x, y1 - TXTMARGE ), - NameColor, PinText, TEXT_ORIENT_HORIZ, - PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_BOTTOM, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x, y1 - TXTMARGE * 2 ); - GRMoveRel( -PinTxtLen / 2, -PinNameSize.y ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( dx, 0 ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, len, 0, LineWidth, - NameColor ); - } + DrawGraphicText( panel, DC, wxPoint( x, + y1 - TXTMARGE ), + NameColor, m_PinName, + TEXT_ORIENT_HORIZ, PinNameSize, + GR_TEXT_HJUSTIFY_CENTER, + GR_TEXT_VJUSTIFY_BOTTOM, LineWidth, + false, true ); } if( DrawPinNum ) { x = (x1 + pin_pos.x) / 2; - DrawGraphicText( panel, DC, wxPoint( x, y1 + TXTMARGE ), - NumColor, StringPinNum, TEXT_ORIENT_HORIZ, - PinNumSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_TOP, LineWidth ); + DrawGraphicText( panel, DC, wxPoint( x, + y1 + TXTMARGE ), + NumColor, StringPinNum, + TEXT_ORIENT_HORIZ, PinNumSize, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, + LineWidth ); } } else /* Its a vertical line. */ { - if( PinText && DrawPinName ) + if( m_PinName && DrawPinName ) { y = (y1 + pin_pos.y) / 2; - DrawGraphicText( panel, DC, wxPoint( x1 - TXTMARGE, y ), - NameColor, PinText, TEXT_ORIENT_VERT, - PinNameSize, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_CENTER, LineWidth ); - - for( ii = 0; ii < PinTextBarCount; ) - { - GRMoveTo( x1 - (TXTMARGE * 2), y ); - GRMoveRel( -PinNameSize.y, -PinTxtLen / 2 ); - dx = PinTextBarPos[ii++]; // Get the line pos - GRMoveRel( 0, PinTxtLen - dx ); - len = PinTextBarPos[ii++] - dx; // Get the line length - GRLineRel( &panel->m_ClipBox, DC, 0, -len, LineWidth, - NameColor ); - } + DrawGraphicText( panel, DC, wxPoint( x1 - TXTMARGE, + y ), + NameColor, m_PinName, + TEXT_ORIENT_VERT, PinNameSize, + GR_TEXT_HJUSTIFY_RIGHT, + GR_TEXT_VJUSTIFY_CENTER, LineWidth, false, true ); } if( DrawPinNum ) @@ -660,8 +628,9 @@ void LibDrawPin::DrawPinTexts( WinEDA_DrawPanel* panel, wxDC* DC, DrawGraphicText( panel, DC, wxPoint( x1 + TXTMARGE, (y1 + pin_pos.y) / 2 ), - NumColor, StringPinNum, TEXT_ORIENT_VERT, - PinNumSize, GR_TEXT_HJUSTIFY_LEFT, + NumColor, StringPinNum, + TEXT_ORIENT_VERT, PinNumSize, + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, LineWidth ); } } @@ -682,175 +651,118 @@ extern void Move_Plume( wxPoint pos, int plume ); // see plot.cpp * the opposite direction to x2,y2), otherwise all is drawn outside. * *****************************************************************************/ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos, - int orient, - int TextInside, - bool DrawPinNum, - bool DrawPinName, + int orient, + int TextInside, + bool DrawPinNum, + bool DrawPinName, int aWidth, bool aItalic ) { - int dx, len, start; - int ii, x, y, x1, y1, cte; - wxString StringPinNum; - wxString PinText; - int PinTextBarPos[256]; - int PinTextBarCount; - EDA_Colors NameColor, NumColor; - int PinTxtLen = 0; - wxSize PinNameSize = wxSize( m_PinNameSize, m_PinNameSize ); - wxSize PinNumSize = wxSize( m_PinNumSize, m_PinNumSize ); - bool plot_color = (g_PlotFormat == PLOT_FORMAT_POST) - && g_PlotPSColorOpt; + int x, y, x1, y1; + wxString StringPinNum; + EDA_Colors NameColor, NumColor; + int PinTxtLen = 0; + wxSize PinNameSize = wxSize( m_PinNameSize, m_PinNameSize ); + wxSize PinNumSize = wxSize( m_PinNumSize, m_PinNumSize ); + bool plot_color = (g_PlotFormat == PLOT_FORMAT_POST) + && g_PlotPSColorOpt; /* Get the num and name colors */ - NameColor = (EDA_Colors) ( ( plot_color ) ? - ReturnLayerColor( LAYER_PINNAM ) : -1 ); - NumColor = (EDA_Colors) ( ( plot_color ) ? - ReturnLayerColor( LAYER_PINNUM ) : -1 ); + NameColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNAM ) : -1); + NumColor = (EDA_Colors) (plot_color ? ReturnLayerColor( LAYER_PINNUM ) : -1); /* Create the pin num string */ ReturnPinStringNum( StringPinNum ); - x1 = pin_pos.x; - y1 = pin_pos.y; + x1 = pin_pos.x; y1 = pin_pos.y; switch( orient ) { case PIN_UP: - y1 -= m_PinLen; - break; + y1 -= m_PinLen; break; case PIN_DOWN: - y1 += m_PinLen; - break; + y1 += m_PinLen; break; case PIN_LEFT: - x1 -= m_PinLen; - break; + x1 -= m_PinLen; break; case PIN_RIGHT: - x1 += m_PinLen; - break; + x1 += m_PinLen; break; } - const wxChar* textsrc = m_PinName.GetData(); - float fPinTextPitch = (PinNameSize.x * 1.1) + aWidth; - /* Do we need to invert the string? Is this string has only "~"? */ - PinTextBarCount = 0; - PinTxtLen = 0; - ii = 0; + float fPinTextPitch = (PinNameSize.x * 1.1) + aWidth; - while( *textsrc ) - { - if( *textsrc == '~' ) - { - PinTextBarPos[PinTextBarCount++] = - (int) ( fPinTextPitch * PinTxtLen ); - } - else - { - PinText.Append( *textsrc ); - PinTxtLen++; - } + PinTxtLen = NegableTextLength( m_PinName ); - textsrc++; - } - - PinTxtLen = (int) ( fPinTextPitch * PinTxtLen ); - PinTextBarPos[PinTextBarCount] = PinTxtLen; // Needed if no end '~' - - if( PinText[0] == 0 ) + if( PinTxtLen == 0 ) DrawPinName = FALSE; + PinTxtLen = (int) ( fPinTextPitch * PinTxtLen ); if( TextInside ) /* Draw the text inside, but the pin numbers outside. */ { - if( (orient == PIN_LEFT) || (orient == PIN_RIGHT) ) - { /* Its an horizontal line. */ - if( PinText && DrawPinName ) + if( (orient == PIN_LEFT) || (orient == PIN_RIGHT) ) /* Its an horizontal line. */ + { + if( m_PinName && DrawPinName ) { if( orient == PIN_RIGHT ) { x = x1 + TextInside; PlotGraphicText( g_PlotFormat, wxPoint( x, y1 ), NameColor, - PinText, TEXT_ORIENT_HORIZ, PinNameSize, + m_PinName, + TEXT_ORIENT_HORIZ, + PinNameSize, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_CENTER, aWidth, aItalic ); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = y1 - PinNameSize.y / 2 - TXTMARGE; - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( x + dx, cte ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( x + len, cte ), 'D' ); - } + GR_TEXT_VJUSTIFY_CENTER, + aWidth, aItalic, true ); } else // orient == PIN_LEFT { x = x1 - TextInside; PlotGraphicText( g_PlotFormat, wxPoint( x, y1 ), - NameColor, PinText, TEXT_ORIENT_HORIZ, - PinNameSize, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_CENTER, aWidth, aItalic ); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = y1 - PinNameSize.y / 2 - TXTMARGE; - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( x + dx - PinTxtLen, cte ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( x + len - PinTxtLen, cte ), 'D' ); - } + NameColor, m_PinName, TEXT_ORIENT_HORIZ, + PinNameSize, + GR_TEXT_HJUSTIFY_RIGHT, + GR_TEXT_VJUSTIFY_CENTER, + aWidth, aItalic, true ); } } if( DrawPinNum ) { PlotGraphicText( g_PlotFormat, - wxPoint( ( x1 + pin_pos.x ) / 2, - y1 - TXTMARGE ), - NumColor, StringPinNum, TEXT_ORIENT_HORIZ, - PinNumSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_BOTTOM, aWidth, aItalic ); + wxPoint( (x1 + pin_pos.x) / 2, + y1 - TXTMARGE ), + NumColor, StringPinNum, + TEXT_ORIENT_HORIZ, PinNumSize, + GR_TEXT_HJUSTIFY_CENTER, + GR_TEXT_VJUSTIFY_BOTTOM, + aWidth, aItalic ); } } else /* Its a vertical line. */ { - if( PinText && DrawPinName ) + if( m_PinName && DrawPinName ) { if( orient == PIN_DOWN ) { y = y1 + TextInside; PlotGraphicText( g_PlotFormat, wxPoint( x1, y ), NameColor, - PinText, TEXT_ORIENT_VERT, PinNameSize, + m_PinName, + TEXT_ORIENT_VERT, PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_TOP, aWidth, aItalic); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = x1 - PinNameSize.y / 2 - TXTMARGE; - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( cte, y + PinTxtLen - dx ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( cte, y + PinTxtLen - len ), 'D' ); - } + GR_TEXT_VJUSTIFY_TOP, + aWidth, aItalic, true ); } else /* PIN_UP */ { y = y1 - TextInside; PlotGraphicText( g_PlotFormat, wxPoint( x1, y ), NameColor, - PinText, TEXT_ORIENT_VERT, PinNameSize, + m_PinName, + TEXT_ORIENT_VERT, PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_BOTTOM, aWidth, aItalic); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = x1 - PinNameSize.y / 2 - TXTMARGE; - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( cte, y - dx ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( cte, y - len ), 'D' ); - } + GR_TEXT_VJUSTIFY_BOTTOM, + aWidth, aItalic, true ); } } @@ -858,111 +770,100 @@ void LibDrawPin::PlotPinTexts( wxPoint& pin_pos, { PlotGraphicText( g_PlotFormat, wxPoint( x1 - TXTMARGE, - ( y1 + pin_pos.y ) / 2 ), - NumColor, StringPinNum, TEXT_ORIENT_VERT, - PinNumSize, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_CENTER, aWidth, aItalic); + (y1 + pin_pos.y) / 2 ), + NumColor, StringPinNum, + TEXT_ORIENT_VERT, PinNumSize, + GR_TEXT_HJUSTIFY_RIGHT, + GR_TEXT_VJUSTIFY_CENTER, + aWidth, aItalic ); } } } else /* Draw num & text pin outside */ { if( (orient == PIN_LEFT) || (orient == PIN_RIGHT) ) - /* Its an horizontal line. */ { - if( PinText && DrawPinName ) + /* Its an horizontal line. */ + if( m_PinName && DrawPinName ) { x = (x1 + pin_pos.x) / 2; - PlotGraphicText( g_PlotFormat, wxPoint( x, y1 - TXTMARGE ), - NameColor, PinText, TEXT_ORIENT_HORIZ, - PinNameSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_BOTTOM, aWidth, aItalic); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = y1 - PinNameSize.y - TXTMARGE * 2; - start = x - (PinTxtLen / 2); - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( start + dx, cte ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( start + len, cte ), 'D' ); - } + PlotGraphicText( g_PlotFormat, wxPoint( x, + y1 - TXTMARGE ), + NameColor, m_PinName, + TEXT_ORIENT_HORIZ, PinNameSize, + GR_TEXT_HJUSTIFY_CENTER, + GR_TEXT_VJUSTIFY_BOTTOM, + aWidth, aItalic, true ); } if( DrawPinNum ) { - x = ( x1 + pin_pos.x ) / 2; + x = (x1 + pin_pos.x) / 2; PlotGraphicText( g_PlotFormat, wxPoint( x, y1 + TXTMARGE ), - NumColor, StringPinNum, TEXT_ORIENT_HORIZ, - PinNumSize, GR_TEXT_HJUSTIFY_CENTER, - GR_TEXT_VJUSTIFY_TOP, aWidth, aItalic); + NumColor, StringPinNum, + TEXT_ORIENT_HORIZ, PinNumSize, + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, + aWidth, aItalic ); } } else /* Its a vertical line. */ { - if( PinText && DrawPinName ) + if( m_PinName && DrawPinName ) { y = (y1 + pin_pos.y) / 2; - PlotGraphicText( g_PlotFormat, wxPoint( x1 - TXTMARGE, y ), - NameColor, PinText, TEXT_ORIENT_VERT, - PinNameSize, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_CENTER, aWidth, aItalic); - - for( ii = 0; ii < PinTextBarCount; ) - { - cte = x1 - PinNameSize.y - TXTMARGE * 2; - start = y + (PinTxtLen / 2); - dx = PinTextBarPos[ii++]; // Get the line pos - Move_Plume( wxPoint( cte, start - dx ), 'U' ); - len = PinTextBarPos[ii++]; // Get the line end - Move_Plume( wxPoint( cte, start - len ), 'D' ); - } + PlotGraphicText( g_PlotFormat, wxPoint( x1 - TXTMARGE, + y ), + NameColor, m_PinName, + TEXT_ORIENT_VERT, PinNameSize, + GR_TEXT_HJUSTIFY_RIGHT, + GR_TEXT_VJUSTIFY_CENTER, + aWidth, aItalic, true ); } if( DrawPinNum ) { PlotGraphicText( g_PlotFormat, wxPoint( x1 + TXTMARGE, - ( y1 + pin_pos.y ) / 2 ), - NumColor, StringPinNum, TEXT_ORIENT_VERT, - PinNumSize, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_CENTER, aWidth, aItalic); + (y1 + pin_pos.y) / 2 ), + NumColor, StringPinNum, + TEXT_ORIENT_VERT, PinNumSize, + GR_TEXT_HJUSTIFY_LEFT, + GR_TEXT_VJUSTIFY_CENTER, + aWidth, aItalic ); } } } } +/******************************************/ +wxPoint LibDrawPin::ReturnPinEndPoint() +/******************************************/ + /* return the pin end position, for a component in normal orient */ -wxPoint LibDrawPin::ReturnPinEndPoint() { wxPoint pos = m_Pos; switch( m_Orient ) { case PIN_UP: - pos.y += m_PinLen; - break; + pos.y += m_PinLen; break; case PIN_DOWN: - pos.y -= m_PinLen; - break; + pos.y -= m_PinLen; break; case PIN_LEFT: - pos.x -= m_PinLen; - break; + pos.x -= m_PinLen; break; case PIN_RIGHT: - pos.x += m_PinLen; - break; + pos.x += m_PinLen; break; } return pos; } -/** - * Function ReturnPinDrawOrient +/** Function ReturnPinDrawOrient * Return the pin real orientation (PIN_UP, PIN_DOWN, PIN_RIGHT, PIN_LEFT), * according to its orientation and the matrix transform (rot, mirror) TransMat * @param TransMat = transform matrix @@ -970,32 +871,25 @@ wxPoint LibDrawPin::ReturnPinEndPoint() int LibDrawPin::ReturnPinDrawOrient( const int TransMat[2][2] ) { int orient; - wxPoint end; /* position of a end pin starting at 0,0 according to - * its orientation, lenght = 1 */ + wxPoint end; // position of a end pin starting at 0,0 according to its orientation, lenght = 1 switch( m_Orient ) { case PIN_UP: - end.y = 1; - break; + end.y = 1; break; case PIN_DOWN: - end.y = -1; - break; + end.y = -1; break; case PIN_LEFT: - end.x = -1; - break; + end.x = -1; break; case PIN_RIGHT: - end.x = 1; - break; + end.x = 1; break; } - // = pos of end point, accordint to the component orientation - end = TransformCoordinate( TransMat, end ); + end = TransformCoordinate( TransMat, end ); // = pos of end point, accordint to the component orientation orient = PIN_UP; - if( end.x == 0 ) { if( end.y > 0 ) @@ -1012,8 +906,7 @@ int LibDrawPin::ReturnPinDrawOrient( const int TransMat[2][2] ) } - -/** +/** Function ReturnPinStringNum * fill the buffer with pin num as a wxString * Pin num is coded as a long * Used to print/draw the pin num @@ -1029,7 +922,7 @@ void LibDrawPin::ReturnPinStringNum( wxString& buffer ) const } -/* +/** Function LibDrawPin::SetPinNumFromString() * fill the buffer with pin num as a wxString * Pin num is coded as a long * Used to print/draw the pin num @@ -1051,13 +944,15 @@ void LibDrawPin::SetPinNumFromString( wxString& buffer ) } +/*************************************/ LibDrawPin* LibDrawPin::GenCopy() +/*************************************/ { LibDrawPin* newpin = new LibDrawPin(); - newpin->m_Pos = m_Pos; - newpin->m_PinLen = m_PinLen; - newpin->m_Orient = m_Orient; + newpin->m_Pos = m_Pos; + newpin->m_PinLen = m_PinLen; + newpin->m_Orient = m_Orient; newpin->m_PinShape = m_PinShape; newpin->m_PinType = m_PinType; newpin->m_Attributs = m_Attributs; @@ -1075,10 +970,10 @@ LibDrawPin* LibDrawPin::GenCopy() } -/*******************************************************/ -/* Affiche en bas d'ecran les caracteristiques de la pin +/** Function LibDrawPin::DisplayInfo + * Displays info (pin num and name, otientation ... + * on the Info window */ -/*******************************************************/ void LibDrawPin::DisplayInfo( WinEDA_DrawFrame* frame ) { wxString Text; @@ -1144,10 +1039,14 @@ void LibDrawPin::DisplayInfo( WinEDA_DrawFrame* frame ) } +/** Function LibDrawPin::GetBoundingBox + * @return the boundary box for this, in schematic coordinates + */ EDA_Rect LibDrawPin::GetBoundingBox() { wxPoint pt = m_Pos; - pt.y *= -1; + + pt.y *= -1; // Reverse the Y axis, according to the schematic orientation return EDA_Rect( pt, wxSize( 1, 1 ) ); } diff --git a/eeschema/class_text-label.cpp b/eeschema/class_text-label.cpp index f842515e4c..0930f24a28 100644 --- a/eeschema/class_text-label.cpp +++ b/eeschema/class_text-label.cpp @@ -195,7 +195,7 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, wxPoint( m_Pos.x + offset.x, m_Pos.y - TXTMARGE + offset.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, GR_TEXT_HJUSTIFY_LEFT, - GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic ); + GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic, true ); break; case 1: /* Vert Orientation UP */ @@ -204,7 +204,7 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, m_Pos.y + offset.y ), color, m_Text, TEXT_ORIENT_VERT, m_Size, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic ); + GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic, true ); break; case 2: /* Horiz Orientation - Right justified */ @@ -213,7 +213,7 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, TXTMARGE + offset.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic ); + GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic, true ); break; case 3: /* Vert Orientation BOTTOM */ @@ -222,7 +222,7 @@ void SCH_TEXT::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, m_Pos.y + offset.y ), color, m_Text, TEXT_ORIENT_VERT, m_Size, GR_TEXT_HJUSTIFY_RIGHT, - GR_TEXT_VJUSTIFY_TOP, width, m_Italic ); + GR_TEXT_VJUSTIFY_TOP, width, m_Italic, true ); break; } @@ -448,28 +448,28 @@ void SCH_HIERLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offs DrawGraphicText( panel, DC, wxPoint( AnchorPos.x - ii, AnchorPos.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, - GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic ); + GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic, true ); break; case 1: /* Orientation vert UP */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x, AnchorPos.y + ii ), color, m_Text, TEXT_ORIENT_VERT, m_Size, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width, m_Italic ); + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width, m_Italic, true ); break; case 2: /* Orientation horiz inverse */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x + ii, AnchorPos.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, - GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic ); + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic, true ); break; case 3: /* Orientation vert BOTTOM */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x, AnchorPos.y - ii ), color, m_Text, TEXT_ORIENT_VERT, m_Size, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic ); + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic, true ); break; } @@ -519,7 +519,7 @@ EDA_Rect SCH_HIERLABEL::GetBoundingBox() int width = MAX( m_Width, g_DrawMinimunLineWidth ); height = m_Size.y + 2*TXTMARGE; - length = ( Pitch(width) * GetLength() ) + height + 2*DANGLING_SYMBOL_SIZE; // add height for triangular shapes + length = ( Pitch(width) * NegableTextLength(m_Text) ) + height + 2*DANGLING_SYMBOL_SIZE; // add height for triangular shapes switch( m_Orient ) // respect orientation { @@ -605,28 +605,28 @@ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& dr DrawGraphicText( panel, DC, wxPoint( AnchorPos.x - offset, AnchorPos.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, - GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic ); + GR_TEXT_HJUSTIFY_RIGHT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic, true ); break; case 1: /* Orientation vert UP */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x, AnchorPos.y + offset ), color, m_Text, TEXT_ORIENT_VERT, m_Size, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width, m_Italic ); + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_TOP, width, m_Italic, true ); break; case 2: /* Orientation horiz inverse */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x + offset, AnchorPos.y ), color, m_Text, TEXT_ORIENT_HORIZ, m_Size, - GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic ); + GR_TEXT_HJUSTIFY_LEFT, GR_TEXT_VJUSTIFY_CENTER, width, m_Italic, true ); break; case 3: /* Orientation vert BOTTOM */ DrawGraphicText( panel, DC, wxPoint( AnchorPos.x, AnchorPos.y - offset ), color, m_Text, TEXT_ORIENT_VERT, m_Size, - GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic ); + GR_TEXT_HJUSTIFY_CENTER, GR_TEXT_VJUSTIFY_BOTTOM, width, m_Italic, true ); break; } @@ -647,15 +647,15 @@ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& dr */ void SCH_GLOBALLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) { - int HalfSize = m_Size.x / 2; + int HalfSize = m_Size.y / 2; int width = MAX( m_Width, g_DrawMinimunLineWidth ); *corner_list = 7; corner_list++; // 7 corners in list - int symb_len = ( Pitch(width) * GetLength() ) + (TXTMARGE * 2); + int symb_len = ( Pitch(width) * NegableTextLength(m_Text) ) + (TXTMARGE * 2); // Create outline shape : 6 points int x = symb_len + width + 3; - int y = HalfSize + width + 3; + int y = HalfSize*1.5 + width + 3; /* 50% more for negation bar */ corner_list[0] = 0; corner_list[1] = 0; // Starting point (anchor) corner_list[2] = 0; corner_list[3] = -y; // Up corner_list[4] = -x; corner_list[5] = -y; // left Up @@ -734,7 +734,7 @@ EDA_Rect SCH_GLOBALLABEL::GetBoundingBox() int width = MAX( m_Width, g_DrawMinimunLineWidth ); height = m_Size.y + 2*TXTMARGE; - length = ( Pitch(width) * GetLength() ) + 2* height + 2*DANGLING_SYMBOL_SIZE; // add 2*height for triangular shapes (bidirectional) + length = ( Pitch(width) * NegableTextLength(m_Text) ) + 2* height + 2*DANGLING_SYMBOL_SIZE; // add 2*height for triangular shapes (bidirectional) switch( m_Orient ) // respect orientation { @@ -782,7 +782,7 @@ EDA_Rect SCH_TEXT::GetBoundingBox() x = m_Pos.x; y = m_Pos.y; int width = MAX( m_Width, g_DrawMinimunLineWidth ); - length = ( Pitch(width) * GetLength() ); + length = ( Pitch(width) * NegableTextLength(m_Text) ); height = m_Size.y; dx = dy = 0; diff --git a/eeschema/dialog_build_BOM.cpp b/eeschema/dialog_build_BOM.cpp index f16745ea6e..5db1ae41e7 100644 --- a/eeschema/dialog_build_BOM.cpp +++ b/eeschema/dialog_build_BOM.cpp @@ -203,8 +203,7 @@ void DIALOG_BUILD_BOM::OnCancelClick( wxCommandEvent& event ) void DIALOG_BUILD_BOM::SavePreferences() /**************************************************/ { - wxConfig* config = wxGetApp().m_EDA_Config; - wxASSERT( config != NULL ); + wxASSERT( m_Config != NULL ); // Determine current settings of "List items" and "Options" checkboxes // (NOTE: These 6 settings are restored when the dialog box is next diff --git a/eeschema/dialog_eeschema_config.cpp b/eeschema/dialog_eeschema_config.cpp index 2a884604bf..54911d7acc 100644 --- a/eeschema/dialog_eeschema_config.cpp +++ b/eeschema/dialog_eeschema_config.cpp @@ -1,22 +1,13 @@ ///////////////////////////////////////////////////////////////////////////// + // Name: dialog_eeschema_config.cpp // Purpose: // Author: jean-pierre Charras -// Modified by: // Created: 17/02/2006 21:14:46 -// RCS-ID: -// Copyright: License GNU -// Licence: +// Copyright: Kicad Team +// Licence: GPL ///////////////////////////////////////////////////////////////////////////// -// Generated by DialogBlocks (unregistered), 17/02/2006 21:14:46 - -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "dialog_eeschema_config.h" -#endif - -////@begin includes -////@end includes #include "fctsys.h" #include "appl_wxstruct.h" #include "common.h" @@ -32,454 +23,266 @@ #include "id.h" -#include "dialog_eeschema_config.h" +#include "dialog_eeschema_config_fbp.h" + +class DIALOG_EESCHEMA_CONFIG : public DIALOG_EESCHEMA_CONFIG_FBP +{ +private: + WinEDA_SchematicFrame* m_Parent; + bool m_LibListChanged; + +private: + + // Virtual event handlers, overide them in your derived class + void Init(); + virtual void OnCloseWindow( wxCloseEvent& event ); + virtual void OnSaveCfgClick( wxCommandEvent& event ); + virtual void OnRemoveLibClick( wxCommandEvent& event ); + virtual void OnAddOrInsertLibClick( wxCommandEvent& event ); + virtual void OnLibPathSelClick( wxCommandEvent& event ); + virtual void OnOkClick( wxCommandEvent& event ); + virtual void OnCancelClick( wxCommandEvent& event ); + + +public: + DIALOG_EESCHEMA_CONFIG( WinEDA_SchematicFrame * parent ); + ~DIALOG_EESCHEMA_CONFIG() {}; +}; -////@begin XPM images -////@end XPM images /******************************************************************/ -void WinEDA_SchematicFrame::InstallConfigFrame(const wxPoint & pos) +void WinEDA_SchematicFrame::InstallConfigFrame( const wxPoint& pos ) /******************************************************************/ { - KiConfigEeschemaFrame * CfgFrame = new KiConfigEeschemaFrame(this); - CfgFrame->ShowModal(); CfgFrame->Destroy(); + DIALOG_EESCHEMA_CONFIG* CfgFrame = new DIALOG_EESCHEMA_CONFIG( this ); + + CfgFrame->ShowModal(); CfgFrame->Destroy(); } -/*! - * KiConfigEeschemaFrame type definition - */ - -IMPLEMENT_DYNAMIC_CLASS( KiConfigEeschemaFrame, wxDialog ) - -/*! - * KiConfigEeschemaFrame event table definition - */ - -BEGIN_EVENT_TABLE( KiConfigEeschemaFrame, wxDialog ) - -////@begin KiConfigEeschemaFrame event table entries - EVT_CLOSE( KiConfigEeschemaFrame::OnCloseWindow ) - - EVT_BUTTON( SAVE_CFG, KiConfigEeschemaFrame::OnSaveCfgClick ) - - EVT_LISTBOX( FORMAT_NETLIST, KiConfigEeschemaFrame::OnFormatNetlistSelected ) - - EVT_BUTTON( REMOVE_LIB, KiConfigEeschemaFrame::OnRemoveLibClick ) - - EVT_BUTTON( ADD_LIB, KiConfigEeschemaFrame::OnAddLibClick ) - - EVT_BUTTON( INSERT_LIB, KiConfigEeschemaFrame::OnInsertLibClick ) - - EVT_BUTTON( ID_LIB_PATH_SEL, KiConfigEeschemaFrame::OnLibPathSelClick ) - -////@end KiConfigEeschemaFrame event table entries - -END_EVENT_TABLE() - -/*! - * KiConfigEeschemaFrame constructors - */ - -KiConfigEeschemaFrame::KiConfigEeschemaFrame( ) +/*******************************************************************************/ +DIALOG_EESCHEMA_CONFIG::DIALOG_EESCHEMA_CONFIG( WinEDA_SchematicFrame* parent ) + : DIALOG_EESCHEMA_CONFIG_FBP( parent ) +/*******************************************************************************/ { + wxString msg; + + m_Parent = parent; + m_LibListChanged = false; + + Init(); + + msg = _( "from " ) + wxGetApp().m_CurrentOptionFile; + SetTitle( msg ); + + if( GetSizer() ) + GetSizer()->SetSizeHints( this ); } -KiConfigEeschemaFrame::KiConfigEeschemaFrame( WinEDA_SchematicFrame* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) + +/***********************************/ +void DIALOG_EESCHEMA_CONFIG::Init() +/***********************************/ { -wxString msg; + SetFont( *g_DialogFont ); + SetFocus(); - m_Parent = parent; - m_LibListChanged = FALSE; + // Display current files extension (info) + wxString msg = m_InfoCmpFileExt->GetLabel() + g_NetCmpExtBuffer; + m_InfoCmpFileExt->SetLabel( msg ); - Create(parent, id, caption, pos, size, style); + msg = m_InfoNetFileExt->GetLabel() + NetlistFileExtension; + m_InfoNetFileExt->SetLabel( msg ); - msg = _("from ") + wxGetApp().m_CurrentOptionFile; - SetTitle(msg); - SetFormatsNetListes(); - m_ListLibr->InsertItems(g_LibName_List, 0); - m_LibDirCtrl->SetValue( g_UserLibDirBuffer ); -} + msg = m_InfoLibFileExt->GetLabel() + CompLibFileExtension; + m_InfoLibFileExt->SetLabel( msg ); -/*! - * KiConfigEeschemaFrame creator - */ + msg = m_InfoSymbFileExt->GetLabel() + g_SymbolExtBuffer; + m_InfoSymbFileExt->SetLabel( msg ); -bool KiConfigEeschemaFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style ) -{ -////@begin KiConfigEeschemaFrame member initialisation - m_NetFormatBox = NULL; - m_FileExtList = NULL; - m_ListLibr = NULL; - m_LibDirCtrl = NULL; -////@end KiConfigEeschemaFrame member initialisation - -////@begin KiConfigEeschemaFrame creation - SetExtraStyle(wxWS_EX_BLOCK_EVENTS); - wxDialog::Create( parent, id, caption, pos, size, style ); - - CreateControls(); - if (GetSizer()) - { - GetSizer()->SetSizeHints(this); - } - Centre(); -////@end KiConfigEeschemaFrame creation - return true; -} - -/*! - * Control creation for KiConfigEeschemaFrame - */ - -void KiConfigEeschemaFrame::CreateControls() -{ - SetFont(*g_DialogFont); - -////@begin KiConfigEeschemaFrame content construction - // Generated by DialogBlocks, 10/11/2007 16:00:50 (unregistered) - - KiConfigEeschemaFrame* itemDialog1 = this; - - wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL); - itemDialog1->SetSizer(itemBoxSizer2); - - wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer2->Add(itemBoxSizer3, 1, wxGROW|wxALL, 5); - - wxBoxSizer* itemBoxSizer4 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer3->Add(itemBoxSizer4, 0, wxGROW|wxALL, 5); - - wxButton* itemButton5 = new wxButton( itemDialog1, SAVE_CFG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 ); - if (KiConfigEeschemaFrame::ShowToolTips()) - itemButton5->SetToolTip(_("save current configuration setting in the local .pro file")); - itemButton5->SetForegroundColour(wxColour(204, 0, 0)); - itemBoxSizer4->Add(itemButton5, 0, wxGROW|wxALL, 5); - - itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5); - - wxStaticText* itemStaticText7 = new wxStaticText( itemDialog1, wxID_STATIC, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 0 ); - itemBoxSizer4->Add(itemStaticText7, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP, 5); - - wxArrayString m_NetFormatBoxStrings; - m_NetFormatBox = new wxListBox( itemDialog1, FORMAT_NETLIST, wxDefaultPosition, wxDefaultSize, m_NetFormatBoxStrings, wxLB_SINGLE ); - itemBoxSizer4->Add(m_NetFormatBox, 0, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - itemBoxSizer4->Add(5, 5, 0, wxGROW|wxALL, 5); - - wxStaticBox* itemStaticBoxSizer10Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Files ext:")); - m_FileExtList = new wxStaticBoxSizer(itemStaticBoxSizer10Static, wxVERTICAL); - itemBoxSizer4->Add(m_FileExtList, 0, wxGROW|wxALL, 5); - - wxBoxSizer* itemBoxSizer11 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer3->Add(itemBoxSizer11, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxBoxSizer* itemBoxSizer12 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer11->Add(itemBoxSizer12, 1, wxGROW, 5); - - wxBoxSizer* itemBoxSizer13 = new wxBoxSizer(wxHORIZONTAL); - itemBoxSizer12->Add(itemBoxSizer13, 0, wxGROW|wxALL, 5); - - wxButton* itemButton14 = new wxButton( itemDialog1, REMOVE_LIB, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); - if (KiConfigEeschemaFrame::ShowToolTips()) - itemButton14->SetToolTip(_("Unload the selected library")); - itemButton14->SetForegroundColour(wxColour(204, 0, 0)); - itemBoxSizer13->Add(itemButton14, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxButton* itemButton15 = new wxButton( itemDialog1, ADD_LIB, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); - if (KiConfigEeschemaFrame::ShowToolTips()) - itemButton15->SetToolTip(_("Add a new library after the selected library, and load it")); - itemButton15->SetForegroundColour(wxColour(0, 128, 0)); - itemBoxSizer13->Add(itemButton15, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxButton* itemButton16 = new wxButton( itemDialog1, INSERT_LIB, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 ); - itemButton16->SetHelpText(_("Add a new library before the selected library, and load it")); - if (KiConfigEeschemaFrame::ShowToolTips()) - itemButton16->SetToolTip(_("Add a new library beforer the selected library, add load it")); - itemButton16->SetForegroundColour(wxColour(0, 0, 255)); - itemBoxSizer13->Add(itemButton16, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - - wxBoxSizer* itemBoxSizer17 = new wxBoxSizer(wxVERTICAL); - itemBoxSizer12->Add(itemBoxSizer17, 1, wxGROW|wxALL, 5); - - wxStaticText* itemStaticText18 = new wxStaticText( itemDialog1, wxID_STATIC, _("Libraries"), wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticText18->SetForegroundColour(wxColour(204, 0, 0)); - itemBoxSizer17->Add(itemStaticText18, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - - wxArrayString m_ListLibrStrings; - m_ListLibr = new wxListBox( itemDialog1, ID_LISTBOX, wxDefaultPosition, wxDefaultSize, m_ListLibrStrings, wxLB_SINGLE ); - itemBoxSizer17->Add(m_ListLibr, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM|wxADJUST_MINSIZE, 5); - - wxStaticBox* itemStaticBoxSizer20Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Default library file path:")); - wxStaticBoxSizer* itemStaticBoxSizer20 = new wxStaticBoxSizer(itemStaticBoxSizer20Static, wxHORIZONTAL); - itemStaticBoxSizer20Static->SetForegroundColour(wxColour(206, 0, 0)); - itemBoxSizer2->Add(itemStaticBoxSizer20, 0, wxGROW|wxALL, 5); - - m_LibDirCtrl = new wxTextCtrl( itemDialog1, ID_TEXTCTRL, _T(""), wxDefaultPosition, wxDefaultSize, 0 ); - if (KiConfigEeschemaFrame::ShowToolTips()) - m_LibDirCtrl->SetToolTip(_("Default path to search libraries which have no absolute path in name,\nor a name which does not start by ./ or ../\nIf void, the default path is kicad/library")); - itemStaticBoxSizer20->Add(m_LibDirCtrl, 1, wxGROW|wxLEFT|wxRIGHT|wxBOTTOM, 5); - - wxButton* itemButton22 = new wxButton( itemDialog1, ID_LIB_PATH_SEL, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer20->Add(itemButton22, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5); - -////@end KiConfigEeschemaFrame content construction - -wxString msg = _("Cmp file Ext: ") + g_NetCmpExtBuffer; - wxStaticText * text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); - m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - - msg = _("Net file Ext: ") + NetlistFileExtension; - text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); - m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - - msg = _("Library file Ext: ") + CompLibFileExtension; - text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); - m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - - msg = _("Symbol file Ext: ") + g_SymbolExtBuffer; - text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); - m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); - - msg = _("Schematic file Ext: ") + SchematicFileExtension; - text = new wxStaticText( itemDialog1, -1, msg, wxDefaultPosition, wxDefaultSize, 0 ); - m_FileExtList->Add(text, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); + msg = m_InfoSchFileExt->GetLabel() + SchematicFileExtension; + m_InfoSchFileExt->SetLabel( msg ); + // Init currently availlable netlist formats wxArrayString NetlistNameItems; - NetlistNameItems.Add(wxT("Pcbnew")); - NetlistNameItems.Add(wxT("OrcadPcb2")); - NetlistNameItems.Add(wxT("CadStar")); - NetlistNameItems.Add(wxT("Spice")); + NetlistNameItems.Add( wxT( "Pcbnew" ) ); + NetlistNameItems.Add( wxT( "OrcadPcb2" ) ); + NetlistNameItems.Add( wxT( "CadStar" ) ); + NetlistNameItems.Add( wxT( "Spice" ) ); + + // Add extra neltlist format (using external converter) msg = ReturnUserNetlistTypeName( true ); - while ( ! msg.IsEmpty() ) + while( !msg.IsEmpty() ) { - NetlistNameItems.Add(msg); + NetlistNameItems.Add( msg ); msg = ReturnUserNetlistTypeName( false ); } - m_NetFormatBox->InsertItems(NetlistNameItems, 0); + + m_NetFormatBox->InsertItems( NetlistNameItems, 0 ); + + if( g_NetFormat > (int) m_NetFormatBox->GetCount() ) + g_NetFormat = NET_TYPE_PCBNEW; + m_NetFormatBox->SetSelection( g_NetFormat - NET_TYPE_PCBNEW ); + + m_ListLibr->InsertItems( g_LibName_List, 0 ); + m_LibDirCtrl->SetValue( g_UserLibDirBuffer ); } -/*! - * Should we show tooltips? - */ -bool KiConfigEeschemaFrame::ShowToolTips() +/******************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnCancelClick( wxCommandEvent& event ) +/******************************************************************/ { - return true; + EndModal( -1 ); } -/*! - * Get bitmap resources - */ - -wxBitmap KiConfigEeschemaFrame::GetBitmapResource( const wxString& name ) -{ - // Bitmap retrieval -////@begin KiConfigEeschemaFrame bitmap retrieval - wxUnusedVar(name); - return wxNullBitmap; -////@end KiConfigEeschemaFrame bitmap retrieval -} - -/*! - * Get icon resources - */ - -wxIcon KiConfigEeschemaFrame::GetIconResource( const wxString& name ) -{ - // Icon retrieval -////@begin KiConfigEeschemaFrame icon retrieval - wxUnusedVar(name); - return wxNullIcon; -////@end KiConfigEeschemaFrame icon retrieval -} - - /**************************************************************/ -void KiConfigEeschemaFrame::OnCloseWindow(wxCloseEvent & event) +void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event ) /**************************************************************/ { - ChangeSetup(); - if ( m_LibListChanged ) - { - LoadLibraries(m_Parent); - if ( m_Parent->m_ViewlibFrame ) - m_Parent->m_ViewlibFrame->ReCreateListLib(); - } - EndModal(0); + // Set new netlist format + g_NetFormat = m_NetFormatBox->GetSelection() + NET_TYPE_PCBNEW; + + // Set new default path lib + g_UserLibDirBuffer = m_LibDirCtrl->GetValue(); + SetRealLibraryPath( wxT( "library" ) ); // set real path lib + + // Set new active lib list + if( m_LibListChanged ) + { + // Recreate lib list + g_LibName_List.Clear(); + for ( unsigned ii = 0; ii < m_ListLibr->GetCount(); ii ++ ) + g_LibName_List.Add(m_ListLibr->GetString(ii) ); + + // take new list in account + LoadLibraries( m_Parent ); + if( m_Parent->m_ViewlibFrame ) + m_Parent->m_ViewlibFrame->ReCreateListLib(); + } + if ( event.GetId() != ID_SAVE_CFG ) + EndModal( 0 ); } - -/*********************************************/ -void KiConfigEeschemaFrame::ChangeSetup() -/*********************************************/ +/**************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnCloseWindow( wxCloseEvent& event ) +/**************************************************************/ { - g_UserLibDirBuffer = m_LibDirCtrl->GetValue(); + EndModal( 0 ); } -/********************************************************/ -void KiConfigEeschemaFrame::LibDelFct(wxCommandEvent& event) -/********************************************************/ +/*********************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnRemoveLibClick( wxCommandEvent& event ) +/*********************************************************************/ { -int ii; + int ii; - ii = m_ListLibr->GetSelection(); - if ( ii < 0 ) return; - - g_LibName_List.RemoveAt(ii); - m_ListLibr->Clear(); - m_ListLibr->InsertItems(g_LibName_List, 0); - m_LibListChanged = TRUE; -} - -/****************************************************************/ -void KiConfigEeschemaFrame::AddOrInsertLibrary(wxCommandEvent& event) -/****************************************************************/ -/* Insert or add a library to the existing library list: - New library is put in list before (insert) or after (add) - the selection -*/ -{ - int ii; - wxString tmp; - wxFileName fn; - - /* TODO: Fix this, it's broken. Add should add the new library to the - * end of the list and insert should insert the new library ahead - * of the selected library in the list or at the beginning if no - * library is selected. */ - ii = m_ListLibr->GetSelection(); - if ( ii < 0 ) - ii = 0; - ChangeSetup(); - if( event.GetId() == ADD_LIB) - { - if( g_LibName_List.GetCount() != 0 ) - ii++; /* Add after selection */ - } - - wxFileDialog dlg( this, _( "Schematic Component Library Files" ), - g_RealLibDirBuffer, wxEmptyString, CompLibFileWildcard, - wxFD_OPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST ); - - if ( dlg.ShowModal() != wxID_OK ) + ii = m_ListLibr->GetSelection(); + if( ii < 0 ) return; - wxArrayString Filenames; - dlg.GetPaths(Filenames); + m_ListLibr->Delete(ii); + m_LibListChanged = TRUE; +} - for ( unsigned jj = 0; jj < Filenames.GetCount(); jj ++ ) - { - fn = Filenames[jj]; - /* If the library path is already in the library search paths - * list, just add the library name to the list. Otherwise, add - * the library name with the full path. */ - if( wxGetApp().GetLibraryPathList().Index( fn.GetPath() ) == wxNOT_FOUND ) - tmp = fn.GetPathWithSep() + fn.GetName(); +/**************************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnAddOrInsertLibClick( wxCommandEvent& event ) +/**************************************************************************/ + +/* Insert or add a library to the existing library list: + * New library is put in list before (insert) or after (add) + * the selection + */ +{ + int ii; + wxString FullLibName, ShortLibName, Mask; + + ii = m_ListLibr->GetSelection(); + if( ii < 0 ) + ii = 0; + + if( event.GetId() == ID_ADD_LIB ) + { + if( m_ListLibr->GetCount() != 0 ) + ii++; /* Add after selection */ + } + + + wxString libpath = m_LibDirCtrl->GetValue(); + if ( libpath.IsEmpty() ) + libpath = g_RealLibDirBuffer; + + Mask = wxT( "*" ) + CompLibFileExtension; + + wxFileDialog FilesDialog( this, _( "Library files:" ), libpath, + wxEmptyString, Mask, + wxFD_DEFAULT_STYLE | wxFD_MULTIPLE ); + + int diag = FilesDialog.ShowModal(); + if( diag != wxID_OK ) + return; + + wxArrayString Filenames; + FilesDialog.GetPaths( Filenames ); + + for( unsigned jj = 0; jj < Filenames.GetCount(); jj++ ) + { + FullLibName = Filenames[jj]; + ShortLibName = MakeReducedFileName( FullLibName, libpath, CompLibFileExtension ); + if( ShortLibName.IsEmpty() ) //Just in case... + continue; + + //Add or insert new library name, if not already in list + #ifdef __WINDOWS__ + bool case_sensitive = false; + #else + bool case_sensitive = true; + #endif + if( m_ListLibr->FindString( ShortLibName, case_sensitive ) == wxNOT_FOUND ) + { + m_LibListChanged = TRUE; + m_ListLibr->Insert( ShortLibName, ii ); + } else - tmp = fn.GetName(); - - // Add or insert new library name. - if( g_LibName_List.Index( tmp ) == wxNOT_FOUND ) - { - m_LibListChanged = TRUE; - g_LibName_List.Insert( tmp, ii++ ); - m_ListLibr->Clear(); - m_ListLibr->InsertItems(g_LibName_List, 0); - } - else - { - wxString msg = wxT("<") + tmp + wxT("> : ") + - _("Library already in use"); - DisplayError(this, msg); - } - } - + { + wxString msg; + msg << wxT( "<" ) << ShortLibName << wxT( "> : " ) << _( "Library already in use" ); + DisplayError( this, msg ); + } + } } -/****************************************************/ -void KiConfigEeschemaFrame::SetFormatsNetListes() -/****************************************************/ -/* Adjust the m_NetFormatBox current selection, according to the current netlist format*/ - +/*******************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnSaveCfgClick( wxCommandEvent& event ) +/*******************************************************************/ { - if ( g_NetFormat > (int)m_NetFormatBox->GetCount() ) - g_NetFormat = NET_TYPE_PCBNEW; - m_NetFormatBox->SetSelection(g_NetFormat - NET_TYPE_PCBNEW); + OnOkClick( event ); + m_Parent->Save_Config( this ); } -/*! - * wxEVT_COMMAND_NETLIST_SELECTED event handler for FORMAT_NETLIST - */ -void KiConfigEeschemaFrame::OnFormatNetlistSelected( wxCommandEvent& event ) +/***********************************************************************/ +void DIALOG_EESCHEMA_CONFIG::OnLibPathSelClick( wxCommandEvent& event ) +/***********************************************************************/ { - g_NetFormat = m_NetFormatBox->GetSelection() + NET_TYPE_PCBNEW; + wxString path = m_LibDirCtrl->GetValue(); + if ( path.IsEmpty() ) + path = g_RealLibDirBuffer; + + bool select = EDA_DirectorySelector( _( " Default Path for libraries" ), /* Titre de la fenetre */ + path, /* Chemin par defaut */ + wxDD_DEFAULT_STYLE, + this, /* parent frame */ + wxDefaultPosition ); + + if( !select ) + return; + + m_LibDirCtrl->SetValue( path ); } - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for DEL_LIB - */ - -void KiConfigEeschemaFrame::OnRemoveLibClick( wxCommandEvent& event ) -{ - LibDelFct(event); -} - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for ADD_LIB - */ - -void KiConfigEeschemaFrame::OnAddLibClick( wxCommandEvent& event ) -{ - AddOrInsertLibrary(event); -} - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for INSERT_LIB - */ - -void KiConfigEeschemaFrame::OnInsertLibClick( wxCommandEvent& event ) -{ - AddOrInsertLibrary(event); -} - - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for SAVE_CFG - */ - -void KiConfigEeschemaFrame::OnSaveCfgClick( wxCommandEvent& event ) -{ - ChangeSetup(); - m_Parent->Save_Config(this); -} - - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_LIB_PATH_SEL - */ - -void KiConfigEeschemaFrame::OnLibPathSelClick( wxCommandEvent& event ) -{ -wxString path = g_RealLibDirBuffer; - -bool select = EDA_DirectorySelector(_(" Default Path for libraries"), /* Titre de la fenetre */ - path, /* Chemin par defaut */ - wxDD_DEFAULT_STYLE, - this, /* parent frame */ - wxDefaultPosition); - - if ( !select ) return; - - m_LibDirCtrl->SetValue(path); - -} - - diff --git a/eeschema/dialog_eeschema_config.h b/eeschema/dialog_eeschema_config.h deleted file mode 100644 index bc10609c0f..0000000000 --- a/eeschema/dialog_eeschema_config.h +++ /dev/null @@ -1,139 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: dialog_eeschema_config.h -// Purpose: -// Author: jean-pierre Charras -// Modified by: -// Created: 17/02/2006 21:14:46 -// RCS-ID: -// Copyright: License GNU -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// Generated by DialogBlocks (unregistered), 17/02/2006 21:14:46 - -#ifndef _DIALOG_EESCHEMA_CONFIG_H_ -#define _DIALOG_EESCHEMA_CONFIG_H_ - -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "dialog_eeschema_config.h" -#endif - -/*! - * Includes - */ - -////@begin includes -////@end includes - -/*! - * Forward declarations - */ - -////@begin forward declarations -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define ID_DIALOG 10000 -#define SAVE_CFG 10001 -#define FORMAT_NETLIST 10006 -#define REMOVE_LIB 10009 -#define ADD_LIB 10010 -#define INSERT_LIB 10011 -#define ID_LISTBOX 10012 -#define ID_TEXTCTRL 10007 -#define ID_LIB_PATH_SEL 10008 -#define SYMBOL_KICONFIGEESCHEMAFRAME_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER -#define SYMBOL_KICONFIGEESCHEMAFRAME_TITLE _("Dialog") -#define SYMBOL_KICONFIGEESCHEMAFRAME_IDNAME ID_DIALOG -#define SYMBOL_KICONFIGEESCHEMAFRAME_SIZE wxSize(400, 300) -#define SYMBOL_KICONFIGEESCHEMAFRAME_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * Compatibility - */ - -#ifndef wxCLOSE_BOX -#define wxCLOSE_BOX 0x1000 -#endif - -/*! - * KiConfigEeschemaFrame class declaration - */ - -class KiConfigEeschemaFrame: public wxDialog -{ - DECLARE_DYNAMIC_CLASS( KiConfigEeschemaFrame ) - DECLARE_EVENT_TABLE() - -public: - /// Constructors - KiConfigEeschemaFrame( ); - KiConfigEeschemaFrame( WinEDA_SchematicFrame* parent, wxWindowID id = SYMBOL_KICONFIGEESCHEMAFRAME_IDNAME, const wxString& caption = SYMBOL_KICONFIGEESCHEMAFRAME_TITLE, const wxPoint& pos = SYMBOL_KICONFIGEESCHEMAFRAME_POSITION, const wxSize& size = SYMBOL_KICONFIGEESCHEMAFRAME_SIZE, long style = SYMBOL_KICONFIGEESCHEMAFRAME_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_KICONFIGEESCHEMAFRAME_IDNAME, const wxString& caption = SYMBOL_KICONFIGEESCHEMAFRAME_TITLE, const wxPoint& pos = SYMBOL_KICONFIGEESCHEMAFRAME_POSITION, const wxSize& size = SYMBOL_KICONFIGEESCHEMAFRAME_SIZE, long style = SYMBOL_KICONFIGEESCHEMAFRAME_STYLE ); - - /// Creates the controls and sizers - void CreateControls(); - -////@begin KiConfigEeschemaFrame event handler declarations - - /// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG - void OnCloseWindow( wxCloseEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for SAVE_CFG - void OnSaveCfgClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_LISTBOX_SELECTED event handler for FORMAT_NETLIST - void OnFormatNetlistSelected( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for REMOVE_LIB - void OnRemoveLibClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ADD_LIB - void OnAddLibClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for INSERT_LIB - void OnInsertLibClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_LIB_PATH_SEL - void OnLibPathSelClick( wxCommandEvent& event ); - -////@end KiConfigEeschemaFrame event handler declarations - -////@begin KiConfigEeschemaFrame member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end KiConfigEeschemaFrame member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - - void SetFormatsNetListes(); - void LibDelFct(wxCommandEvent& event); - void AddOrInsertLibrary(wxCommandEvent& event); - void ChangeSetup(); - -////@begin KiConfigEeschemaFrame member variables - wxListBox* m_NetFormatBox; - wxStaticBoxSizer* m_FileExtList; - wxListBox* m_ListLibr; - wxTextCtrl* m_LibDirCtrl; -////@end KiConfigEeschemaFrame member variables - - WinEDA_SchematicFrame * m_Parent; - bool m_LibListChanged; - -}; - -#endif - // _DIALOG_EESCHEMA_CONFIG_H_ diff --git a/eeschema/dialog_eeschema_config.pjd b/eeschema/dialog_eeschema_config.pjd deleted file mode 100644 index bfa085dc9b..0000000000 --- a/eeschema/dialog_eeschema_config.pjd +++ /dev/null @@ -1,1321 +0,0 @@ - - -
- 0 - "" - "" - "" - "" - "" - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 0 - "jean-pierre Charras" - "License GNU" - "" - 0 - 0 - "<All platforms>" - "<Any>" - "///////////////////////////////////////////////////////////////////////////// -// Name: %HEADER-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SOURCE-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SYMBOLS-FILENAME% -// Purpose: Symbols file -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "%HEADER-FILENAME%" -#endif - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "%HEADER-FILENAME%" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -" - " /// %BODY% -" - " -/*! - * %BODY% - */ - -" - "app_resources.h" - "app_resources.cpp" - "AppResources" - "app.h" - "app.cpp" - "Application" - 0 - "" - "<None>" - "<System>" - "utf-8" - "<System>" - "" - 0 - 0 - 4 - " " - "" - 0 - 0 - 1 - 1 - 1 - 0 - 1 - 0 -
- - - "" - "data-document" - "" - "" - 0 - 1 - 0 - 0 - - "Configurations" - "config-data-document" - "" - "" - 0 - 1 - 0 - 0 - "" - 1 - "" - "Debug" - "ANSI" - "Static" - "Modular" - "GUI" - "wxMSW" - "Dynamic" - "Yes" - "No" - "No" - "%WXVERSION%" - "%EXECUTABLE%" - "" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - - - - - - - "Projects" - "root-document" - "" - "project" - 1 - 1 - 0 - 1 - - "Windows" - "html-document" - "" - "dialogsfolder" - 1 - 1 - 0 - 1 - - "Eeschema Configuration Setup" - "dialog-document" - "" - "dialog" - 0 - 1 - 0 - 0 - "17/11/2006" - "wbDialogProxy" - 10000 - 0 - "" - 0 - "" - 0 - 0 - "wxEVT_CLOSE_WINDOW|OnCloseWindow" - "ID_DIALOG" - 10000 - "KiConfigEeschemaFrame" - "wxDialog" - "wxDialog" - "dialog_eeschema_config.cpp" - "dialog_eeschema_config.h" - "" - "Dialog" - 1 - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "Tiled" - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - "MAYBE_RESIZE_BORDER" - 0 - 1 - -1 - -1 - 400 - 300 - 0 - "" - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbBoxSizerProxy" - "Vertical" - "" - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbBoxSizerProxy" - "Horizontal" - "" - "Expand" - "Centre" - 1 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbBoxSizerProxy" - "Vertical" - "" - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxButton: SAVE_CFG" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnSaveCfgClick" - "SAVE_CFG" - 10001 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "Save Cfg" - 0 - "" - "save current configuration setting in the local .pro file" - "" - "" - "" - "" - "" - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "Spacer" - "dialog-control-document" - "" - "spacer" - 0 - 1 - 0 - 0 - "18/2/2006" - "wbSpacerProxy" - 5 - 5 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "" - "NetList Formats:" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 0 - 0 - "" - "" - - - "wxListBox: FORMAT_NETLIST" - "dialog-control-document" - "" - "listbox" - 0 - 1 - 0 - 0 - "17/7/2006" - "wbListBoxProxy" - "wxEVT_COMMAND_LISTBOX_SELECTED|OnFormatNetlistSelected|NONE||KiConfigEeschemaFrame" - "FORMAT_NETLIST" - 10006 - "" - "wxListBox" - "wxListBox" - 1 - 0 - "" - "" - "m_NetFormatBox" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - - - "Spacer" - "dialog-control-document" - "" - "spacer" - 0 - 1 - 0 - 0 - "18/2/2006" - "wbSpacerProxy" - 5 - 5 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - - "wxStaticBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbStaticBoxSizerProxy" - "wxID_ANY" - -1 - "Files ext:" - "" - "m_FileExtList" - "" - "" - 0 - 1 - "wxStaticBox" - "Vertical" - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "17/8/2006" - "wbBoxSizerProxy" - "Vertical" - "" - "Centre" - "Expand" - 1 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbBoxSizerProxy" - "Vertical" - "" - "Expand" - "Expand" - 1 - 5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "<Any platform>" - - "wxBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbBoxSizerProxy" - "Horizontal" - "" - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxButton: REMOVE_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnRemoveLibClick|||" - "REMOVE_LIB" - 10009 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "Remove" - 0 - "" - "Unload the selected library" - "" - "" - "" - "" - "" - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: ADD_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnAddLibClick|||" - "ADD_LIB" - 10010 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "Add" - 0 - "" - "Add a new library after the selected library, and load it" - "" - "" - "" - "" - "" - "" - "" - "" - "008000" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: INSERT_LIB" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnInsertLibClick|||" - "INSERT_LIB" - 10011 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "Ins" - 0 - "Add a new library before the selected library, and load it" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "0000FF" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbBoxSizerProxy" - "Vertical" - "" - "Expand" - "Centre" - 1 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "" - "Libraries" - -1 - "" - "" - "" - "CC0000" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 0 - 0 - 0 - 1 - 0 - "" - "" - - - "wxListBox: ID_LISTBOX" - "dialog-control-document" - "" - "listbox" - 0 - 1 - 0 - 0 - "10/11/2007" - "wbListBoxProxy" - "ID_LISTBOX" - 10012 - "" - "wxListBox" - "wxListBox" - 1 - 0 - "" - "" - "m_ListLibr" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 1 - 5 - 1 - 1 - 0 - 1 - 0 - 1 - 0 - "" - "" - - - - - - - "wxStaticBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "28/2/2007" - "wbStaticBoxSizerProxy" - "wxID_ANY" - "-1" - "Default library file path:" - "" - "" - "CE0000" - "" - 0 - 1 - "wxStaticBox" - "Horizontal" - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxTextCtrl: ID_TEXTCTRL" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "28/2/2007" - "wbTextCtrlProxy" - "ID_TEXTCTRL" - 10007 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_LibDirCtrl" - "" - 0 - "" - "Default path to search libraries which have no absolute path in name, -or a name which does not start by ./ or ../ -If void, the default path is kicad/library" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Expand" - 1 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: ID_LIB_PATH_SEL" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "28/2/2007" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnLibPathSelClick" - "ID_LIB_PATH_SEL" - 10008 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "Browse" - 0 - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - - - - "Sources" - "html-document" - "" - "sourcesfolder" - 1 - 1 - 0 - 1 - - "dialog_eeschema_config.rc" - "source-editor-document" - "dialog_eeschema_config.rc" - "source-editor" - 0 - 0 - 1 - 0 - "17/11/2006" - "" - - - - "Images" - "html-document" - "" - "bitmapsfolder" - 1 - 1 - 0 - 1 - - - - -
diff --git a/eeschema/dialog_eeschema_config_fbp.cpp b/eeschema/dialog_eeschema_config_fbp.cpp new file mode 100644 index 0000000000..38c1d5ec3c --- /dev/null +++ b/eeschema/dialog_eeschema_config_fbp.cpp @@ -0,0 +1,164 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_eeschema_config_fbp.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_EESCHEMA_CONFIG_FBP::DIALOG_EESCHEMA_CONFIG_FBP( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bUpperSizer; + bUpperSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bLeftSizer; + bLeftSizer = new wxBoxSizer( wxVERTICAL ); + + m_staticTextNetListFormats = new wxStaticText( this, wxID_ANY, _("NetList Formats:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextNetListFormats->Wrap( -1 ); + bLeftSizer->Add( m_staticTextNetListFormats, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_NetFormatBox = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); + bLeftSizer->Add( m_NetFormatBox, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + + bLeftSizer->Add( 0, 20, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sFileExtBox; + sFileExtBox = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Files ext:") ), wxVERTICAL ); + + m_InfoCmpFileExt = new wxStaticText( this, wxID_ANY, _("Cmp file Ext: "), wxDefaultPosition, wxDefaultSize, 0 ); + m_InfoCmpFileExt->Wrap( -1 ); + sFileExtBox->Add( m_InfoCmpFileExt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_InfoNetFileExt = new wxStaticText( this, wxID_ANY, _("Net file Ext: "), wxDefaultPosition, wxDefaultSize, 0 ); + m_InfoNetFileExt->Wrap( -1 ); + sFileExtBox->Add( m_InfoNetFileExt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_InfoLibFileExt = new wxStaticText( this, wxID_ANY, _("Library file Ext: "), wxDefaultPosition, wxDefaultSize, 0 ); + m_InfoLibFileExt->Wrap( -1 ); + sFileExtBox->Add( m_InfoLibFileExt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_InfoSymbFileExt = new wxStaticText( this, wxID_ANY, _("Symbol file Ext: "), wxDefaultPosition, wxDefaultSize, 0 ); + m_InfoSymbFileExt->Wrap( -1 ); + sFileExtBox->Add( m_InfoSymbFileExt, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_InfoSchFileExt = new wxStaticText( this, wxID_ANY, _("Schematic file Ext: "), wxDefaultPosition, wxDefaultSize, 0 ); + m_InfoSchFileExt->Wrap( -1 ); + sFileExtBox->Add( m_InfoSchFileExt, 0, wxALL, 5 ); + + bLeftSizer->Add( sFileExtBox, 0, wxEXPAND, 5 ); + + bUpperSizer->Add( bLeftSizer, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxStaticBoxSizer* sbLibsChoiceSizer; + sbLibsChoiceSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Libraries") ), wxVERTICAL ); + + wxBoxSizer* bLibsButtonsSizer; + bLibsButtonsSizer = new wxBoxSizer( wxHORIZONTAL ); + + sbLibsChoiceSizer->Add( bLibsButtonsSizer, 0, wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_staticTextlibList = new wxStaticText( this, wxID_ANY, _("Active Libraries:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextlibList->Wrap( -1 ); + sbLibsChoiceSizer->Add( m_staticTextlibList, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_ListLibr = new wxListBox( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_HSCROLL|wxLB_NEEDED_SB|wxLB_SINGLE ); + m_ListLibr->SetToolTip( _("List of active library files.\nOnly library files in this list are loaded by Eeschema.\nThe order of this list is important:\nEeschema searchs for a given component using this list order priority.") ); + m_ListLibr->SetMinSize( wxSize( 300,-1 ) ); + + sbLibsChoiceSizer->Add( m_ListLibr, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + bUpperSizer->Add( sbLibsChoiceSizer, 1, wxEXPAND|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bRightSizer; + bRightSizer = new wxBoxSizer( wxVERTICAL ); + + m_buttonRemove = new wxButton( this, ID_REMOVE_LIB, _("Remove"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonRemove->SetForegroundColour( wxColour( 186, 1, 38 ) ); + m_buttonRemove->SetToolTip( _("Unload the selected library") ); + + bRightSizer->Add( m_buttonRemove, 0, wxALL, 5 ); + + m_buttonAdd = new wxButton( this, ID_ADD_LIB, _("Add"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonAdd->SetForegroundColour( wxColour( 13, 118, 1 ) ); + m_buttonAdd->SetToolTip( _("Add a new library after the selected library, and load it") ); + + bRightSizer->Add( m_buttonAdd, 0, wxALL, 5 ); + + m_buttonIns = new wxButton( this, wxID_ANY, _("Ins"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonIns->SetForegroundColour( wxColour( 0, 65, 130 ) ); + m_buttonIns->SetToolTip( _("Add a new library before the selected library, and load it") ); + + bRightSizer->Add( m_buttonIns, 0, wxALL, 5 ); + + + bRightSizer->Add( 0, 20, 1, wxEXPAND, 5 ); + + m_buttonOk = new wxButton( this, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); + bRightSizer->Add( m_buttonOk, 0, wxALL, 5 ); + + m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonCancel->SetForegroundColour( wxColour( 14, 0, 179 ) ); + + bRightSizer->Add( m_buttonCancel, 0, wxALL, 5 ); + + m_buttonSave = new wxButton( this, ID_SAVE_CFG, _("Save Cfg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonSave->SetToolTip( _("Accept and save current configuration setting in the local .pro file") ); + + bRightSizer->Add( m_buttonSave, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + bUpperSizer->Add( bRightSizer, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + bMainSizer->Add( bUpperSizer, 1, wxEXPAND, 5 ); + + m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + bMainSizer->Add( m_staticline1, 0, wxEXPAND | wxALL, 5 ); + + wxStaticBoxSizer* sbLibPathSizer; + sbLibPathSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Default library file path:") ), wxHORIZONTAL ); + + m_LibDirCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + m_LibDirCtrl->SetToolTip( _("Default path to search libraries which have no absolute path in name,\nor a name which does not start by ./ or ../\nIf void, the default path is kicad/share/library") ); + + sbLibPathSizer->Add( m_LibDirCtrl, 1, wxALL, 5 ); + + m_buttonBrowse = new wxButton( this, ID_LIB_PATH_SEL, _("Browse"), wxDefaultPosition, wxDefaultSize, 0 ); + sbLibPathSizer->Add( m_buttonBrowse, 0, wxALL, 5 ); + + bMainSizer->Add( sbLibPathSizer, 0, wxEXPAND, 5 ); + + this->SetSizer( bMainSizer ); + this->Layout(); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnCloseWindow ) ); + m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnRemoveLibClick ), NULL, this ); + m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnAddOrInsertLibClick ), NULL, this ); + m_buttonIns->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnAddOrInsertLibClick ), NULL, this ); + m_buttonOk->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnOkClick ), NULL, this ); + m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnCancelClick ), NULL, this ); + m_buttonSave->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnSaveCfgClick ), NULL, this ); + m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnLibPathSelClick ), NULL, this ); +} + +DIALOG_EESCHEMA_CONFIG_FBP::~DIALOG_EESCHEMA_CONFIG_FBP() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnCloseWindow ) ); + m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnRemoveLibClick ), NULL, this ); + m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnAddOrInsertLibClick ), NULL, this ); + m_buttonIns->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnAddOrInsertLibClick ), NULL, this ); + m_buttonOk->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnOkClick ), NULL, this ); + m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnCancelClick ), NULL, this ); + m_buttonSave->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnSaveCfgClick ), NULL, this ); + m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_EESCHEMA_CONFIG_FBP::OnLibPathSelClick ), NULL, this ); +} diff --git a/eeschema/dialog_eeschema_config_fbp.fbp b/eeschema/dialog_eeschema_config_fbp.fbp new file mode 100644 index 0000000000..045c4524a7 --- /dev/null +++ b/eeschema/dialog_eeschema_config_fbp.fbp @@ -0,0 +1,1116 @@ + + + + + + C++ + 1 + UTF-8 + connect + dialog_eeschema_config_fbp + 1000 + none + 1 + dialog_eeschema_config + + . + + 1 + 1 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DIALOG_EESCHEMA_CONFIG_FBP + + 593,400 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + + + + + + + + + OnCloseWindow + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bMainSizer + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bUpperSizer + wxHORIZONTAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + + bLeftSizer + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + NetList Formats: + + + m_staticTextNetListFormats + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + + 1 + + + 0 + wxID_ANY + + + m_NetFormatBox + protected + + + wxLB_SINGLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + 20 + protected + 0 + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Files ext: + + sFileExtBox + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Cmp file Ext: + + + m_InfoCmpFileExt + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Net file Ext: + + + m_InfoNetFileExt + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Library file Ext: + + + m_InfoLibFileExt + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Symbol file Ext: + + + m_InfoSymbFileExt + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + Schematic file Ext: + + + m_InfoSchFileExt + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxRIGHT|wxLEFT + 1 + + wxID_ANY + Libraries + + sbLibsChoiceSizer + wxVERTICAL + none + + + 5 + wxALIGN_CENTER_HORIZONTAL + 0 + + + bLibsButtonsSizer + wxHORIZONTAL + none + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Active Libraries: + + + m_staticTextlibList + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 1 + + + + + 1 + + + 0 + wxID_ANY + + 300,-1 + m_ListLibr + protected + + + wxLB_HSCROLL|wxLB_NEEDED_SB|wxLB_SINGLE + + List of active library files. Only library files in this list are loaded by Eeschema. The order of this list is important: Eeschema searchs for a given component using this list order priority. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bRightSizer + wxVERTICAL + none + + 5 + wxALL + 0 + + + + 0 + 1 + 186,1,38 + + 0 + ID_REMOVE_LIB + Remove + + + m_buttonRemove + protected + + + + + Unload the selected library + + + + OnRemoveLibClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 0 + 1 + 13,118,1 + + 0 + ID_ADD_LIB + Add + + + m_buttonAdd + protected + + + + + Add a new library after the selected library, and load it + + + + OnAddOrInsertLibClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 0 + 1 + 0,65,130 + + 0 + wxID_ANY + Ins + + + m_buttonIns + protected + + + + + Add a new library before the selected library, and load it + + + + OnAddOrInsertLibClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 20 + protected + 0 + + + + 5 + wxALL + 0 + + + + 0 + 1 + + + 0 + wxID_OK + Ok + + + m_buttonOk + protected + + + + + + + + + OnOkClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 0 + 1 + 14,0,179 + + 0 + wxID_CANCEL + Cancel + + + m_buttonCancel + protected + + + + + + + + + OnCancelClick + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_SAVE_CFG + Save Cfg + + + m_buttonSave + protected + + + + + Accept and save current configuration setting in the local .pro file + + + + OnSaveCfgClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND | wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_staticline1 + protected + + + wxLI_HORIZONTAL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Default library file path: + + sbLibPathSizer + wxHORIZONTAL + none + + + 5 + wxALL + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_LibDirCtrl + protected + + + + + Default path to search libraries which have no absolute path in name, or a name which does not start by ./ or ../ If void, the default path is kicad/share/library + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + + + 0 + 1 + + + 0 + ID_LIB_PATH_SEL + Browse + + + m_buttonBrowse + protected + + + + + + + + + OnLibPathSelClick + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/eeschema/dialog_eeschema_config_fbp.h b/eeschema/dialog_eeschema_config_fbp.h new file mode 100644 index 0000000000..a644c9b3c7 --- /dev/null +++ b/eeschema/dialog_eeschema_config_fbp.h @@ -0,0 +1,82 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __dialog_eeschema_config_fbp__ +#define __dialog_eeschema_config_fbp__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_EESCHEMA_CONFIG_FBP +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_EESCHEMA_CONFIG_FBP : public wxDialog +{ + private: + + protected: + enum + { + ID_REMOVE_LIB = 1000, + ID_ADD_LIB, + ID_SAVE_CFG, + ID_LIB_PATH_SEL, + }; + + wxStaticText* m_staticTextNetListFormats; + wxListBox* m_NetFormatBox; + + wxStaticText* m_InfoCmpFileExt; + wxStaticText* m_InfoNetFileExt; + wxStaticText* m_InfoLibFileExt; + wxStaticText* m_InfoSymbFileExt; + wxStaticText* m_InfoSchFileExt; + wxStaticText* m_staticTextlibList; + wxListBox* m_ListLibr; + wxButton* m_buttonRemove; + wxButton* m_buttonAdd; + wxButton* m_buttonIns; + + wxButton* m_buttonOk; + wxButton* m_buttonCancel; + wxButton* m_buttonSave; + wxStaticLine* m_staticline1; + wxTextCtrl* m_LibDirCtrl; + wxButton* m_buttonBrowse; + + // Virtual event handlers, overide them in your derived class + virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); } + virtual void OnRemoveLibClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnAddOrInsertLibClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnSaveCfgClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnLibPathSelClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + DIALOG_EESCHEMA_CONFIG_FBP( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 593,400 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_EESCHEMA_CONFIG_FBP(); + +}; + +#endif //__dialog_eeschema_config_fbp__ diff --git a/eeschema/makefile.include b/eeschema/makefile.include index 38bf937646..e2c562ffe5 100644 --- a/eeschema/makefile.include +++ b/eeschema/makefile.include @@ -40,6 +40,7 @@ OBJECTS = eeschema.o\ tool_sch.o\ tool_viewlib.o\ schframe.o\ + sch_item_struct.o\ viewlib_frame.o\ dialog_print_using_printer_base.o\ dialog_print_using_printer.o\ @@ -52,6 +53,7 @@ OBJECTS = eeschema.o\ block_libedit.o\ eeredraw.o\ dialog_eeschema_config.o\ + dialog_eeschema_config_fbp.o\ eelayer.o \ priorque.o eeconfig.o \ getpart.o\ @@ -191,8 +193,12 @@ onleftclick.o: onleftclick.cpp $(DEPEND) eeredraw.o: eeredraw.cpp $(DEPEND) -dialog_eeschema_config.o: dialog_eeschema_config.cpp dialog_eeschema_config.h $(DEPEND) +dialog_eeschema_config.o: dialog_eeschema_config.cpp dialog_eeschema_config_fbp.h $(DEPEND) + +dialog_eeschema_config_fbp.o: dialog_eeschema_config_fbp.cpp dialog_eeschema_config_fbp.h $(DEPEND) libedit.o: libedit.cpp $(DEPEND) +sch_item_struct.o: ../common/sch_item_struct.cpp + $(CXX) -c $(EDACPPFLAGS) -o $@ ../common/$*.cpp diff --git a/eeschema/makefile.g95 b/eeschema/makefile.mingw similarity index 100% rename from eeschema/makefile.g95 rename to eeschema/makefile.mingw diff --git a/eeschema/plugins/makefile.g95 b/eeschema/plugins/makefile.mingw similarity index 100% rename from eeschema/plugins/makefile.g95 rename to eeschema/plugins/makefile.mingw diff --git a/gerbview/makefile.include b/gerbview/makefile.include index ea58ede992..2c9f5a455f 100644 --- a/gerbview/makefile.include +++ b/gerbview/makefile.include @@ -1,4 +1,4 @@ -EXTRALIBS = ../common/common.a ../bitmaps/libbitmaps.a\ +EXTRALIBS = ../common/common.a ../common/pcbcommon.a ../bitmaps/libbitmaps.a\ ../polygon/lib_polygon.a ../polygon/kbool/src/libkbool.a EXTRACPPFLAGS= -DGERBVIEW -DPCBNEW -fno-strict-aliasing\ diff --git a/gerbview/makefile.g95 b/gerbview/makefile.mingw similarity index 100% rename from gerbview/makefile.g95 rename to gerbview/makefile.mingw diff --git a/include/drawtxt.h b/include/drawtxt.h index 7bc78aacfd..f8e97e2f7f 100644 --- a/include/drawtxt.h +++ b/include/drawtxt.h @@ -10,10 +10,15 @@ class WinEDA_DrawPanel; +/** Function NegableTextLength + * Return the text length of a negable string, excluding the ~ markers */ +int NegableTextLength( const wxString& aText ); + + /** Function DrawGraphicText * Draw a graphic text (like module texts) - * @param aPanel = the current DrawPanel. NULL if draw within a 3D GL Canvas - * @param aDC = the current Device Context. NULL if draw within a 3D GL Canvas + * @param aPanel = the current DrawPanel. NULL if draw within a 3D GL Canvas + * @param aDC = the current Device Context. NULL if draw within a 3D GL Canvas * @param aPos = text position (according to h_justify, v_justify) * @param aColor (enum EDA_Colors) = text color * @param aText = text to draw @@ -24,21 +29,23 @@ class WinEDA_DrawPanel; * @param aWidth = line width (pen width) (default = 0) * if width < 0 : draw segments in sketch mode, width = abs(width) * @param aItalic = true to simulate an italic font + * @param aNegable = true to enable the ~ char for overbarring * @param aCallback() = function called (if non null) to draw each segment. * used to draw 3D texts or for plotting, NULL for normal drawings */ -void DrawGraphicText( WinEDA_DrawPanel* aPanel, - wxDC* aDC, - const wxPoint& aPos, - enum EDA_Colors aColor, - const wxString& aText, - int aOrient, - const wxSize& aSize, - enum GRTextHorizJustifyType aH_justify, - enum GRTextVertJustifyType aV_justify, - int aWidth = 0, - bool aItalic = false, - void (*aCallback)(int x0, int y0, int xf, int yf) = NULL); +void DrawGraphicText( WinEDA_DrawPanel * aPanel, + wxDC * aDC, + const wxPoint &aPos, + enum EDA_Colors aColor, + const wxString &aText, + int aOrient, + const wxSize &aSize, + enum GRTextHorizJustifyType aH_justify, + enum GRTextVertJustifyType aV_justify, + int aWidth = 0, + bool aItalic = false, + bool aNegable = false, + void (*aCallback)( int x0, int y0, int xf, int yf ) = NULL ); /** Function PlotGraphicText * same as DrawGraphicText, but plot graphic text insteed of draw it @@ -53,18 +60,19 @@ void DrawGraphicText( WinEDA_DrawPanel* aPanel, * @param aWidth = line width (pen width) (default = 0) * if width < 0 : draw segments in sketch mode, width = abs(width) * @param aItalic = true to simulate an italic font + * @param aNegable = true to enable the ~ char for overbarring */ -void PlotGraphicText( int aFormat_plot, - const wxPoint& aPos, - enum EDA_Colors aColor, - const wxString& aText, - int aOrient, - const wxSize& aSize, - enum GRTextHorizJustifyType aH_justify, - enum GRTextVertJustifyType aV_justify, - int aWidth, - bool aItalic = false ); +void PlotGraphicText( int aFormat_plot, + const wxPoint& aPos, + enum EDA_Colors aColor, + const wxString& aText, + int aOrient, + const wxSize& aSize, + enum GRTextHorizJustifyType aH_justify, + enum GRTextVertJustifyType aV_justify, + int aWidth, + bool aItalic = false, + bool aNegable = false ); #endif /* __INCLUDE__DRAWTXT_H__ */ - diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 4857e7f97f86b91fef0c22695f6bccda06dcf646..fddb1f271d96d86ed2450bb7bd0e058f1fbef629 100644 GIT binary patch delta 57633 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 OG_Sci9aXuT#{UEP)2^2Q delta 56815 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%0AP3RFicU!xI2NrpK?CV9h4XKOC(~ex2cxgr8E8sx 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�e?W^fw17cN5wT!^N8SzKR< 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 diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index ba1b2849ec..d5c44114ca 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,9 +2,9 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-03-26 20:06+0100\n" -"PO-Revision-Date: 2009-03-27 08:26+0100\n" -"Last-Translator: jp charras \n" +"POT-Creation-Date: 2009-04-02 20:09+0100\n" +"PO-Revision-Date: 2009-04-02 20:09+0100\n" +"Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -23,26 +23,10 @@ msgstr "" "X-Poedit-SearchPath-7: share\n" #: pcbnew/plothpgl.cpp:68 -#: pcbnew/gen_modules_placefile.cpp:147 -#: pcbnew/gen_modules_placefile.cpp:163 -#: pcbnew/gen_modules_placefile.cpp:331 -#: pcbnew/librairi.cpp:306 -#: pcbnew/librairi.cpp:452 -#: pcbnew/librairi.cpp:604 -#: pcbnew/librairi.cpp:807 -#: pcbnew/files.cpp:363 -#: pcbnew/export_gencad.cpp:86 -#: eeschema/plotps.cpp:471 -#: eeschema/plothpgl.cpp:678 -#: cvpcb/genequiv.cpp:45 -#: gerbview/export_to_pcbnew.cpp:78 -#: common/hotkeys_basic.cpp:389 msgid "Unable to create " msgstr "Impossible de créer " #: pcbnew/plothpgl.cpp:75 -#: pcbnew/plotgerb.cpp:112 -#: pcbnew/plotps.cpp:53 msgid "File" msgstr "Fichier" @@ -59,72 +43,34 @@ msgid "PCB Text" msgstr "Texte Pcb" #: pcbnew/class_pcb_text.cpp:181 -#: pcbnew/class_track.cpp:950 -#: pcbnew/class_drawsegment.cpp:302 -#: pcbnew/class_pad.cpp:554 -#: pcbnew/dialog_print_using_printer.cpp:179 -#: pcbnew/sel_layer.cpp:147 -#: pcbnew/class_module.cpp:937 -#: pcbnew/class_zone.cpp:904 -#: pcbnew/dialog_edit_module.cpp:263 -#: pcbnew/class_text_mod.cpp:496 msgid "Layer" msgstr "Couche" #: pcbnew/class_pcb_text.cpp:185 -#: pcbnew/cotation.cpp:112 -#: pcbnew/modedit_onclick.cpp:245 -#: pcbnew/class_text_mod.cpp:502 -#: pcbnew/dialog_print_using_printer_base.cpp:94 -#: pcbnew/dialog_pcb_text_properties.cpp:165 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:54 msgid "Mirror" msgstr "Miroir" #: pcbnew/class_pcb_text.cpp:187 -#: pcbnew/dialog_display_options_base.cpp:120 -#: pcbnew/class_text_mod.cpp:486 -#: eeschema/dialog_options.cpp:269 msgid "No" msgstr "Non" #: pcbnew/class_pcb_text.cpp:189 -#: pcbnew/dialog_display_options_base.cpp:120 -#: pcbnew/class_text_mod.cpp:488 -#: eeschema/dialog_options.cpp:268 msgid "Yes" msgstr "Oui" #: pcbnew/class_pcb_text.cpp:192 -#: pcbnew/class_pad.cpp:597 -#: pcbnew/class_module.cpp:961 -#: pcbnew/dialog_edit_module.cpp:274 -#: pcbnew/class_text_mod.cpp:505 -#: eeschema/affiche.cpp:118 msgid "Orient" msgstr "Orient" #: pcbnew/class_pcb_text.cpp:195 -#: pcbnew/class_track.cpp:973 -#: pcbnew/cotation.cpp:128 -#: pcbnew/mirepcb.cpp:113 -#: pcbnew/class_drawsegment.cpp:307 -#: pcbnew/class_edge_mod.cpp:252 -#: pcbnew/class_text_mod.cpp:508 -#: pcbnew/dialog_pcb_text_properties.cpp:118 -#: eeschema/dialog_cmp_graphic_properties.cpp:189 msgid "Width" msgstr "Epaisseur" #: pcbnew/class_pcb_text.cpp:198 -#: pcbnew/class_pad.cpp:568 -#: pcbnew/class_text_mod.cpp:511 msgid "H Size" msgstr "Taille H" #: pcbnew/class_pcb_text.cpp:201 -#: pcbnew/class_pad.cpp:572 -#: pcbnew/class_text_mod.cpp:514 msgid "V Size" msgstr "Taille V" @@ -133,14 +79,11 @@ msgid "Read Config File" msgstr "Lire Fichier Config" #: pcbnew/pcbcfg.cpp:86 -#: cvpcb/menucfg.cpp:168 #, c-format msgid "File %s not found" msgstr "Fichier %s non trouvé" #: pcbnew/pcbcfg.cpp:211 -#: eeschema/eeconfig.cpp:214 -#: cvpcb/cfg.cpp:75 msgid "Save preferences" msgstr "Sauver préférences" @@ -215,8 +158,6 @@ msgid "Component [%s]: footprint <%s> not found" msgstr "Composant [%s]: Module <%s> non trouvé en librairie" #: pcbnew/modules.cpp:83 -#: pcbnew/librairi.cpp:527 -#: common/get_component_dialog.cpp:99 msgid "Name:" msgstr "Nom:" @@ -225,19 +166,15 @@ msgid "Search footprint" msgstr "Cherche Module" #: pcbnew/modules.cpp:311 -#: pcbnew/onrightclick.cpp:740 msgid "Delete Module" msgstr "Supprimer Module" #: pcbnew/modules.cpp:312 -#: eeschema/find.cpp:219 -#: eeschema/onrightclick.cpp:306 msgid "Value " msgstr "Valeur " #: pcbnew/pcbplot.cpp:151 #: pcbnew/pcbplot.cpp:287 -#: gerbview/tool_gerber.cpp:71 msgid "Plot" msgstr "Tracer" @@ -294,7 +231,6 @@ msgid "X scale adjust" msgstr "Ajustage Echelle X" #: pcbnew/pcbplot.cpp:274 -#: pcbnew/dialog_print_using_printer_base.cpp:57 msgid "Set X scale adjust for exact scale plotting" msgstr "Ajuster échelle X pour traçage à l'échelle exacte" @@ -303,7 +239,6 @@ msgid "Y scale adjust" msgstr "Ajustage Echelle Y" #: pcbnew/pcbplot.cpp:279 -#: pcbnew/dialog_print_using_printer_base.cpp:66 msgid "Set Y scale adjust for exact scale plotting" msgstr "Ajuster échelle Y pour traçage à l'échelle exacte" @@ -320,13 +255,6 @@ msgid "Generate drill file" msgstr "Créer Fichier de perçage" #: pcbnew/pcbplot.cpp:299 -#: pcbnew/xchgmod.cpp:140 -#: pcbnew/dialog_netlist.cpp:232 -#: pcbnew/dialog_print_using_printer_base.cpp:128 -#: eeschema/dialog_build_BOM_base.cpp:137 -#: eeschema/annotate_dialog.cpp:220 -#: eeschema/dialog_print_using_printer_base.cpp:72 -#: common/zoom.cpp:277 msgid "Close" msgstr "Fermer" @@ -335,7 +263,6 @@ msgid "Exclude Edges_Pcb layer" msgstr "Exclure Couche Contours PCB" #: pcbnew/pcbplot.cpp:347 -#: pcbnew/dialog_print_using_printer_base.cpp:37 msgid "Exclude contents of Edges_Pcb layer from all other layers" msgstr "Exclure les tracés contour PCB des autres couches" @@ -420,12 +347,10 @@ msgid "Scale 1.5" msgstr "Echelle 1,5" #: pcbnew/pcbplot.cpp:421 -#: pcbnew/dialog_print_using_printer_base.cpp:46 msgid "Scale 2" msgstr "Echelle 2" #: pcbnew/pcbplot.cpp:421 -#: pcbnew/dialog_print_using_printer_base.cpp:46 msgid "Scale 3" msgstr "Echelle 3" @@ -434,36 +359,14 @@ msgid "Scale Opt" msgstr "Echelle" #: pcbnew/pcbplot.cpp:430 -#: pcbnew/class_board_item.cpp:23 -#: pcbnew/dialog_display_options_base.cpp:67 -#: pcbnew/dialog_display_options_base.cpp:73 -#: pcbnew/dialog_display_options_base.cpp:114 -#: pcbnew/dialog_non_copper_zones_properties_base.cpp:28 -#: pcbnew/dialog_copper_zones_base.cpp:107 -#: gerbview/options.cpp:335 msgid "Line" msgstr "Ligne" #: pcbnew/pcbplot.cpp:430 -#: pcbnew/dialog_display_options_base.cpp:22 -#: pcbnew/dialog_display_options_base.cpp:67 -#: pcbnew/dialog_display_options_base.cpp:73 -#: pcbnew/dialog_display_options_base.cpp:84 -#: pcbnew/dialog_display_options_base.cpp:114 -#: eeschema/dialog_cmp_graphic_properties.cpp:169 -#: gerbview/options.cpp:312 -#: gerbview/options.cpp:335 msgid "Filled" msgstr "Plein" #: pcbnew/pcbplot.cpp:430 -#: pcbnew/dialog_display_options_base.cpp:22 -#: pcbnew/dialog_display_options_base.cpp:67 -#: pcbnew/dialog_display_options_base.cpp:73 -#: pcbnew/dialog_display_options_base.cpp:84 -#: pcbnew/dialog_display_options_base.cpp:114 -#: gerbview/options.cpp:312 -#: gerbview/options.cpp:335 msgid "Sketch" msgstr "Contour" @@ -492,19 +395,14 @@ msgid "Draw origin ( 0,0 ) in sheet center" msgstr "Origine des tracés au centre de la feuille" #: pcbnew/pcbplot.cpp:701 -#: pcbnew/dialog_print_using_printer.cpp:650 msgid "Warning: Scale option set to a very small value" msgstr "Attention: option d'échelle ajustée à une valeur très petite" #: pcbnew/pcbplot.cpp:703 -#: pcbnew/dialog_print_using_printer.cpp:646 msgid "Warning: Scale option set to a very large value" msgstr "Attention: option d'échelle ajustée à une valeur très grande" #: pcbnew/pcbplot.cpp:738 -#: pcbnew/dialog_print_using_printer.cpp:417 -#: pcbnew/dialog_print_using_printer.cpp:457 -#: gerbview/edit.cpp:244 msgid "No layer selected" msgstr "Pas de couche sélectionnée" @@ -597,10 +495,6 @@ msgid "Merge" msgstr "Fusionner" #: pcbnew/clean.cpp:508 -#: pcbnew/dialog_pad_properties_base.cpp:64 -#: eeschema/dialog_erc.cpp:193 -#: eeschema/dialog_erc.cpp:197 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:39 msgid "0" msgstr "0" @@ -636,12 +530,11 @@ msgstr "Max" msgid "Segm" msgstr "Segm" -#: pcbnew/pcbnew.cpp:46 +#: pcbnew/pcbnew.cpp:47 msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est en cours d'exécution. Continuer ?" #: pcbnew/editmod.cpp:47 -#: pcbnew/edit.cpp:183 msgid "Module Editor" msgstr "Ouvrir Editeur de modules" @@ -658,7 +551,6 @@ msgid "Error: Unexpected end of file !" msgstr "Erreur: Fin de fichier inattendue !" #: pcbnew/modedit.cpp:78 -#: pcbnew/controle.cpp:172 msgid "Selection Clarification" msgstr "Clarification de la Sélection" @@ -691,30 +583,22 @@ msgid "Add Pad" msgstr "Ajouter Pastilles" #: pcbnew/modedit.cpp:397 -#: pcbnew/menubarmodedit.cpp:45 -#: pcbnew/tool_modedit.cpp:127 msgid "Pad Settings" msgstr "Caract pads" #: pcbnew/modedit.cpp:407 -#: eeschema/schedit.cpp:200 msgid "Add Drawing" msgstr "Ajout d'éléments graphiques" #: pcbnew/modedit.cpp:411 -#: pcbnew/tool_modedit.cpp:180 msgid "Place anchor" msgstr "Place Ancre" #: pcbnew/modedit.cpp:425 -#: pcbnew/edit.cpp:599 -#: eeschema/libframe.cpp:582 -#: eeschema/schedit.cpp:370 msgid "Delete item" msgstr "Suppression d'éléments" #: pcbnew/class_drc_item.cpp:39 -#: pcbnew/dialog_drc.cpp:486 msgid "Unconnected pads" msgstr "Pads non connectés" @@ -783,32 +667,22 @@ msgid "Hole near track" msgstr "Trou près d'une piste" #: pcbnew/class_board_item.cpp:24 -#: pcbnew/dialog_pad_properties_base.cpp:44 msgid "Rect" msgstr "Rect" #: pcbnew/class_board_item.cpp:25 -#: pcbnew/class_drawsegment.cpp:286 msgid "Arc" msgstr "Arc" #: pcbnew/class_board_item.cpp:26 -#: pcbnew/class_track.cpp:911 -#: pcbnew/class_drawsegment.cpp:282 -#: pcbnew/dialog_pad_properties_base.cpp:44 -#: pcbnew/dialog_pad_properties_base.cpp:53 msgid "Circle" msgstr "Cercle" #: pcbnew/class_board_item.cpp:59 -#: pcbnew/class_pad.cpp:470 msgid "Net" msgstr "Net" #: pcbnew/class_board_item.cpp:64 -#: eeschema/dialog_build_BOM_base.cpp:79 -#: eeschema/edit_component_in_schematic.cpp:428 -#: eeschema/class_libentry_fields.cpp:131 msgid "Footprint" msgstr "Module" @@ -852,23 +726,10 @@ msgid "Pcb Text" msgstr "Texte Pcb" #: pcbnew/class_board_item.cpp:102 -#: pcbnew/dialog_netlist.cpp:162 -#: eeschema/onrightclick.cpp:309 -#: eeschema/dialog_create_component.cpp:156 -#: eeschema/edit_component_in_schematic.cpp:349 -#: eeschema/class_libentry_fields.cpp:129 -#: eeschema/eelayer.h:152 msgid "Reference" msgstr "Référence" #: pcbnew/class_board_item.cpp:106 -#: pcbnew/class_edge_mod.cpp:242 -#: pcbnew/class_text_mod.cpp:468 -#: eeschema/edit_component_in_schematic.cpp:387 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:154 -#: eeschema/class_libentry_fields.cpp:130 -#: eeschema/dialog_edit_component_in_schematic.cpp:89 -#: eeschema/eelayer.h:158 msgid "Value" msgstr "Valeur" @@ -879,9 +740,6 @@ msgid " of " msgstr " de " #: pcbnew/class_board_item.cpp:111 -#: pcbnew/class_text_mod.cpp:468 -#: pcbnew/class_text_mod.cpp:477 -#: eeschema/dialog_edit_label_base.cpp:22 msgid "Text" msgstr "Texte" @@ -890,24 +748,19 @@ msgid "Graphic" msgstr "Graphique" #: pcbnew/class_board_item.cpp:129 -#: pcbnew/pcbframe.cpp:510 -#: pcbnew/class_track.cpp:869 msgid "Track" msgstr "Piste" #: pcbnew/class_board_item.cpp:136 #: pcbnew/class_board_item.cpp:207 -#: pcbnew/dialog_copper_zones_base.cpp:199 msgid "Net:" msgstr "Net:" #: pcbnew/class_board_item.cpp:141 -#: pcbnew/class_zone.cpp:863 msgid "Zone Outline" msgstr "Contour de Zone" #: pcbnew/class_board_item.cpp:146 -#: pcbnew/class_zone.cpp:867 msgid "(Cutout)" msgstr "(Cutout)" @@ -916,17 +769,14 @@ msgid "Not on copper layer" msgstr "Pas sur Couches Cuivre" #: pcbnew/class_board_item.cpp:169 -#: pcbnew/class_zone.cpp:889 msgid "Not Found" msgstr " Non Trouvé" #: pcbnew/class_board_item.cpp:175 -#: pcbnew/class_track.cpp:873 msgid "Zone" msgstr "Zone" #: pcbnew/class_board_item.cpp:193 -#: pcbnew/pcbframe.cpp:542 msgid "Via" msgstr "Via" @@ -935,12 +785,10 @@ msgid "Blind/Buried" msgstr "Borgne/Aveugle" #: pcbnew/class_board_item.cpp:199 -#: pcbnew/pcbnew.h:286 msgid "Micro Via" msgstr "Micro Via" #: pcbnew/class_board_item.cpp:222 -#: pcbnew/class_marker.cpp:134 msgid "Marker" msgstr "Marqueur" @@ -967,39 +815,10 @@ msgid "No Change" msgstr "Garder" #: pcbnew/swap_layers.cpp:225 -#: pcbnew/set_grid.cpp:178 -#: pcbnew/dialog_graphic_items_options.cpp:263 -#: pcbnew/dialog_initpcb.cpp:161 -#: pcbnew/dialog_drc.cpp:552 -#: eeschema/dialog_cmp_graphic_properties.cpp:178 -#: eeschema/pinedit-dialog.cpp:232 -#: eeschema/dialog_edit_component_in_lib.cpp:218 -#: eeschema/sheet.cpp:190 -#: eeschema/dialog_create_component.cpp:187 -#: eeschema/dialog_options.cpp:277 -#: cvpcb/dialog_cvpcb_config.cpp:138 -#: cvpcb/dialog_display_options.cpp:178 -#: gerbview/select_layers_to_pcb.cpp:285 -#: share/setpage.cpp:437 msgid "&OK" msgstr "&OK" #: pcbnew/swap_layers.cpp:229 -#: pcbnew/set_grid.cpp:183 -#: pcbnew/dialog_graphic_items_options.cpp:267 -#: pcbnew/dialog_initpcb.cpp:164 -#: pcbnew/dialog_drc.cpp:548 -#: eeschema/dialog_cmp_graphic_properties.cpp:183 -#: eeschema/pinedit-dialog.cpp:228 -#: eeschema/dialog_edit_component_in_lib.cpp:214 -#: eeschema/netlist_control.cpp:151 -#: eeschema/netlist_control.cpp:281 -#: eeschema/sheet.cpp:186 -#: eeschema/dialog_create_component.cpp:192 -#: eeschema/dialog_options.cpp:282 -#: cvpcb/dialog_display_options.cpp:183 -#: gerbview/select_layers_to_pcb.cpp:289 -#: share/setpage.cpp:441 msgid "&Cancel" msgstr "&Annuler" @@ -1051,7 +870,6 @@ msgid "<%s> Not Found" msgstr "<%s> Non trouvé" #: pcbnew/find.cpp:240 -#: eeschema/dialog_find.cpp:117 msgid "Item to find:" msgstr "Elément à chercher:" @@ -1092,130 +910,111 @@ msgstr "%s pin %s non trouvée" msgid "%s pin %s found" msgstr "%s pin %s trouvée" -#: pcbnew/pcbframe.cpp:323 +#: pcbnew/pcbframe.cpp:326 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" -#: pcbnew/pcbframe.cpp:324 -#: eeschema/schframe.cpp:316 -#: cvpcb/cvframe.cpp:216 -#: common/confirm.cpp:118 +#: pcbnew/pcbframe.cpp:327 msgid "Confirmation" msgstr "Confirmation" -#: pcbnew/pcbframe.cpp:432 +#: pcbnew/pcbframe.cpp:435 msgid "DRC Off (Disable !!!), Currently: DRC is active" msgstr "DRC off (désactivée !!!), actuellement DRC active" -#: pcbnew/pcbframe.cpp:433 +#: pcbnew/pcbframe.cpp:436 msgid "DRC On (Currently: DRC is inactive !!!)" msgstr "DRC On (Actuellement, DRC désactivée !!!)" -#: pcbnew/pcbframe.cpp:444 +#: pcbnew/pcbframe.cpp:447 msgid "Polar Coords not show" msgstr "Coord Polaires non affichées" -#: pcbnew/pcbframe.cpp:445 +#: pcbnew/pcbframe.cpp:448 msgid "Display Polar Coords" msgstr "Affichage coord Polaires" -#: pcbnew/pcbframe.cpp:450 -#: eeschema/schframe.cpp:415 +#: pcbnew/pcbframe.cpp:453 msgid "Grid not show" msgstr "Grille non montrée" -#: pcbnew/pcbframe.cpp:450 -#: eeschema/schframe.cpp:415 +#: pcbnew/pcbframe.cpp:453 msgid "Show Grid" msgstr "Afficher grille" -#: pcbnew/pcbframe.cpp:459 +#: pcbnew/pcbframe.cpp:462 msgid "Hide General ratsnest" msgstr "Ne pas afficher le chevelu général" -#: pcbnew/pcbframe.cpp:460 +#: pcbnew/pcbframe.cpp:463 msgid "Show General ratsnest" msgstr "Afficher le chevelu général" -#: pcbnew/pcbframe.cpp:466 +#: pcbnew/pcbframe.cpp:469 msgid "Hide Module ratsnest" msgstr "Ne pas montrer le chevelu du module" -#: pcbnew/pcbframe.cpp:467 +#: pcbnew/pcbframe.cpp:470 msgid "Show Module ratsnest" msgstr "Montrer le chevelu du module" -#: pcbnew/pcbframe.cpp:474 +#: pcbnew/pcbframe.cpp:477 msgid "Disable Auto Delete old Track" msgstr "Ne pas Autoriser l'effacement automatique des pistes" -#: pcbnew/pcbframe.cpp:475 +#: pcbnew/pcbframe.cpp:478 msgid "Enable Auto Delete old Track" msgstr "Autoriser l'effacement automatique des pistes" -#: pcbnew/pcbframe.cpp:482 +#: pcbnew/pcbframe.cpp:485 msgid "Show Pads Sketch mode" msgstr "Afficher pastilles en contour" -#: pcbnew/pcbframe.cpp:483 +#: pcbnew/pcbframe.cpp:486 msgid "Show pads filled mode" msgstr "Afficher pastilles en mode plein" -#: pcbnew/pcbframe.cpp:489 +#: pcbnew/pcbframe.cpp:492 msgid "Show Tracks Sketch mode" msgstr "Afficher pistes en contour" -#: pcbnew/pcbframe.cpp:490 +#: pcbnew/pcbframe.cpp:493 msgid "Show Tracks filled mode" msgstr "Afficher pistes en mode plein" -#: pcbnew/pcbframe.cpp:496 +#: pcbnew/pcbframe.cpp:499 msgid "Normal Contrast Mode Display" msgstr "Mode d'affichage Contraste normal" -#: pcbnew/pcbframe.cpp:497 -#: pcbnew/tool_pcb.cpp:374 +#: pcbnew/pcbframe.cpp:500 msgid "Hight Contrast Mode Display" msgstr "Mode d'affichage Haut Contraste" -#: pcbnew/pcbframe.cpp:614 -#: pcbnew/moduleframe.cpp:392 -#: cvpcb/displayframe.cpp:323 +#: pcbnew/pcbframe.cpp:617 msgid "3D Frame already opened" msgstr "Fenêtre 3D déjà ouverte" -#: pcbnew/pcbframe.cpp:618 -#: pcbnew/moduleframe.cpp:396 -#: cvpcb/displayframe.cpp:327 +#: pcbnew/pcbframe.cpp:621 msgid "3D Viewer" msgstr "Visu 3D" #: pcbnew/class_track.cpp:881 -#: pcbnew/class_drawsegment.cpp:277 -#: pcbnew/class_zone.cpp:870 -#: pcbnew/class_marker.cpp:134 -#: pcbnew/class_text_mod.cpp:483 msgid "Type" msgstr "Type" #: pcbnew/class_track.cpp:898 -#: pcbnew/zones_by_polygon.cpp:899 -#: pcbnew/class_zone.cpp:892 msgid "NetName" msgstr "NetName" #: pcbnew/class_track.cpp:904 -#: pcbnew/class_zone.cpp:900 msgid "NetCode" msgstr "NetCode" #: pcbnew/class_track.cpp:909 -#: pcbnew/class_drawsegment.cpp:292 msgid "Segment" msgstr "Segment" #: pcbnew/class_track.cpp:913 -#: pcbnew/dialog_pad_properties_base.cpp:80 msgid "Standard" msgstr "Standard" @@ -1224,7 +1023,6 @@ msgid "Flags" msgstr "Flags" #: pcbnew/class_track.cpp:934 -#: pcbnew/class_module.cpp:957 msgid "Stat" msgstr "Stat" @@ -1234,19 +1032,14 @@ msgstr "Diam" #: pcbnew/class_track.cpp:965 #: pcbnew/class_track.cpp:970 -#: pcbnew/class_pad.cpp:578 msgid "Drill" msgstr "Perçage" #: pcbnew/dialog_SVG_print.cpp:206 -#: eeschema/dialog_SVG_print.cpp:171 -#: eeschema/dialog_SVG_print.cpp:190 msgid "Create file " msgstr "Créer Fichier " #: pcbnew/dialog_SVG_print.cpp:208 -#: eeschema/dialog_SVG_print.cpp:173 -#: eeschema/dialog_SVG_print.cpp:192 msgid " error" msgstr " erreur" @@ -1272,18 +1065,14 @@ msgstr "Fichier de perçage" #: pcbnew/gendrill.cpp:326 #: pcbnew/gendrill.cpp:814 -#: pcbnew/plotps.cpp:46 -#: pcbnew/xchgmod.cpp:640 msgid "Unable to create file " msgstr "Impossible de créer le fichier " #: pcbnew/gendrill.cpp:382 -#: pcbnew/dialog_gendrill.cpp:184 msgid "2:3" msgstr "2:3" #: pcbnew/gendrill.cpp:383 -#: pcbnew/dialog_gendrill.cpp:185 msgid "2:4" msgstr "2:4" @@ -1313,7 +1102,6 @@ msgstr "Longueur (pouces):" #: pcbnew/muonde.cpp:237 #: pcbnew/muonde.cpp:243 -#: eeschema/affiche.cpp:97 msgid "Length" msgstr "Longueur" @@ -1353,7 +1141,6 @@ msgid "Arc Stub" msgstr "Arc Stub" #: pcbnew/muonde.cpp:695 -#: common/common.cpp:150 msgid " (mm):" msgstr " (mm):" @@ -1375,74 +1162,10 @@ msgid "Complex shape" msgstr "Forme complexe" #: pcbnew/muonde.cpp:866 -#: pcbnew/block.cpp:160 -#: pcbnew/cotation.cpp:104 -#: pcbnew/dialog_display_options_base.cpp:131 -#: pcbnew/mirepcb.cpp:99 -#: pcbnew/dialog_track_options_base.cpp:132 -#: pcbnew/sel_layer.cpp:160 -#: pcbnew/sel_layer.cpp:319 -#: pcbnew/dialog_gendrill.cpp:292 -#: pcbnew/set_color.cpp:344 -#: pcbnew/dialog_non_copper_zones_properties_base.cpp:43 -#: pcbnew/dialog_edit_module.cpp:119 -#: pcbnew/dialog_orient_footprints.cpp:164 -#: pcbnew/dialog_edit_module_text_base.cpp:105 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:144 -#: pcbnew/dialog_pcb_text_properties.cpp:99 -#: eeschema/eelayer.cpp:239 -#: eeschema/dialog_edit_label_base.cpp:69 -#: eeschema/sheetlab.cpp:95 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:71 -#: gerbview/options.cpp:172 -#: gerbview/options.cpp:303 -#: gerbview/reglage.cpp:107 -#: gerbview/set_color.cpp:315 -#: common/displlst.cpp:106 -#: common/get_component_dialog.cpp:113 msgid "OK" msgstr "OK" #: pcbnew/muonde.cpp:870 -#: pcbnew/block.cpp:157 -#: pcbnew/cotation.cpp:108 -#: pcbnew/dialog_display_options_base.cpp:136 -#: pcbnew/mirepcb.cpp:103 -#: pcbnew/globaleditpad.cpp:110 -#: pcbnew/dialog_track_options_base.cpp:138 -#: pcbnew/onrightclick.cpp:123 -#: pcbnew/onrightclick.cpp:137 -#: pcbnew/sel_layer.cpp:164 -#: pcbnew/sel_layer.cpp:323 -#: pcbnew/dialog_gendrill.cpp:297 -#: pcbnew/set_color.cpp:348 -#: pcbnew/modedit_onclick.cpp:194 -#: pcbnew/modedit_onclick.cpp:226 -#: pcbnew/dialog_non_copper_zones_properties_base.cpp:47 -#: pcbnew/dialog_copper_zones_base.cpp:162 -#: pcbnew/dialog_edit_module.cpp:123 -#: pcbnew/dialog_pad_properties_base.cpp:97 -#: pcbnew/dialog_orient_footprints.cpp:167 -#: pcbnew/dialog_edit_module_text_base.cpp:111 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:150 -#: pcbnew/dialog_pcb_text_properties.cpp:104 -#: eeschema/eelayer.cpp:243 -#: eeschema/dialog_edit_label_base.cpp:74 -#: eeschema/onrightclick.cpp:100 -#: eeschema/onrightclick.cpp:112 -#: eeschema/libedit_onrightclick.cpp:42 -#: eeschema/libedit_onrightclick.cpp:57 -#: eeschema/sheetlab.cpp:99 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:74 -#: gerbview/options.cpp:176 -#: gerbview/options.cpp:307 -#: gerbview/reglage.cpp:111 -#: gerbview/set_color.cpp:319 -#: gerbview/onrightclick.cpp:39 -#: gerbview/onrightclick.cpp:58 -#: common/selcolor.cpp:171 -#: common/displlst.cpp:111 -#: common/get_component_dialog.cpp:122 msgid "Cancel" msgstr "Annuler" @@ -1451,20 +1174,6 @@ msgid "Read Shape Descr File..." msgstr "Lire fichier de description de forme..." #: pcbnew/muonde.cpp:878 -#: pcbnew/cotation.cpp:112 -#: pcbnew/dialog_edit_module.cpp:271 -#: pcbnew/dialog_edit_module.cpp:317 -#: pcbnew/dialog_edit_module_text_base.cpp:96 -#: pcbnew/dialog_pcb_text_properties.cpp:165 -#: pcbnew/dialog_pcb_text_properties.cpp:176 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:52 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:134 -#: eeschema/dialog_edit_label_base.cpp:40 -#: eeschema/onrightclick.cpp:295 -#: eeschema/dialog_options.cpp:236 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:60 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:99 -#: eeschema/component_wizard/component_setup_frame.cpp:50 msgid "Normal" msgstr "Normal" @@ -1481,17 +1190,6 @@ msgid "Shape Option" msgstr "Option Forme" #: pcbnew/muonde.cpp:885 -#: pcbnew/cotation.cpp:124 -#: pcbnew/mirepcb.cpp:108 -#: pcbnew/dialog_pcb_text_properties.cpp:114 -#: eeschema/pinedit-dialog.cpp:198 -#: eeschema/pinedit-dialog.cpp:204 -#: eeschema/dialog_edit_label_base.cpp:59 -#: eeschema/sheet.cpp:169 -#: eeschema/sheet.cpp:175 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:157 -#: eeschema/dialog_edit_component_in_schematic.cpp:92 -#: common/wxwineda.cpp:104 msgid "Size" msgstr "Taille " @@ -1557,10 +1255,6 @@ msgid "Add Graphic" msgstr "Addition éléments graphiques" #: pcbnew/edit.cpp:293 -#: pcbnew/tool_modedit.cpp:175 -#: eeschema/libframe.cpp:506 -#: eeschema/schedit.cpp:220 -#: gerbview/tool_gerber.cpp:344 msgid "Add Text" msgstr "Ajout de Texte" @@ -1629,7 +1323,6 @@ msgid "Abort routing?" msgstr "Arrêter le routage?" #: pcbnew/automove.cpp:209 -#: pcbnew/xchgmod.cpp:615 msgid "No Modules!" msgstr "Pas de Modules!" @@ -1654,14 +1347,10 @@ msgid "Net Code" msgstr "Net Code" #: pcbnew/affiche.cpp:53 -#: pcbnew/menubarpcb.cpp:233 -#: pcbnew/class_module.cpp:949 -#: pcbnew/class_board.cpp:530 msgid "Pads" msgstr "Pads" #: pcbnew/affiche.cpp:67 -#: pcbnew/class_board.cpp:540 msgid "Vias" msgstr "Vias" @@ -1694,9 +1383,6 @@ msgid "Include board outline layer" msgstr "Inclure couche contour pcb" #: pcbnew/block.cpp:453 -#: pcbnew/onrightclick.cpp:464 -#: eeschema/onrightclick.cpp:632 -#: eeschema/libedit_onrightclick.cpp:247 msgid "Delete Block" msgstr "Effacer Bloc" @@ -1705,7 +1391,6 @@ msgid "Delete zones" msgstr "SuppressionZones" #: pcbnew/block.cpp:605 -#: pcbnew/onrightclick.cpp:462 msgid "Rotate Block" msgstr "Rotation Bloc" @@ -1722,9 +1407,6 @@ msgid "Move Block" msgstr "Déplacer Bloc" #: pcbnew/block.cpp:1099 -#: pcbnew/onrightclick.cpp:458 -#: eeschema/onrightclick.cpp:628 -#: eeschema/libedit_onrightclick.cpp:244 msgid "Copy Block" msgstr "Copie Bloc" @@ -1733,30 +1415,18 @@ msgid "Dimension properties" msgstr "Propriétés des Cotes" #: pcbnew/cotation.cpp:113 -#: pcbnew/class_text_mod.cpp:489 -#: pcbnew/dialog_edit_module_text_base.cpp:87 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 -#: pcbnew/dialog_pcb_text_properties.cpp:166 -#: eeschema/affiche.cpp:93 -#: gerbview/options.cpp:184 -#: gerbview/tool_gerber.cpp:89 msgid "Display" msgstr "Affichage" #: pcbnew/cotation.cpp:132 -#: pcbnew/dialog_copper_zones_base.cpp:206 msgid "Layer:" msgstr "Couche:" #: pcbnew/set_grid.cpp:154 -#: pcbnew/dialog_gendrill.cpp:167 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:30 -#: gerbview/options.cpp:195 msgid "Inches" msgstr "Pouces" #: pcbnew/set_grid.cpp:155 -#: common/drawframe.cpp:366 msgid "mm" msgstr "mm" @@ -1786,8 +1456,6 @@ msgstr "Sélectionner comment les pistes sont affichées" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:128 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 msgid "Always" msgstr "Toujours" @@ -1797,8 +1465,6 @@ msgstr "Nouvelle piste" #: pcbnew/dialog_display_options_base.cpp:30 #: pcbnew/dialog_display_options_base.cpp:38 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:128 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 msgid "Never" msgstr "Jamais" @@ -1867,7 +1533,6 @@ msgid "Module Edges:" msgstr "Contours modules:" #: pcbnew/dialog_display_options_base.cpp:75 -#: cvpcb/dialog_display_options.cpp:150 msgid "Texts:" msgstr "Textes:" @@ -1896,12 +1561,10 @@ msgid "Others:" msgstr "Autres:" #: pcbnew/dialog_display_options_base.cpp:116 -#: gerbview/options.cpp:336 msgid "Display other items:" msgstr "Afficher autres éléments" #: pcbnew/dialog_display_options_base.cpp:122 -#: eeschema/dialog_options.cpp:270 msgid "Show page limits" msgstr " Afficher limites de page" @@ -2010,17 +1673,10 @@ msgid "Delete Layer " msgstr "Effacer Couche" #: pcbnew/dialog_drc.cpp:432 -#: pcbnew/dialog_netlist.cpp:193 -#: eeschema/dialog_erc.cpp:239 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:23 -#: eeschema/dialog_edit_component_in_lib.cpp:166 -#: eeschema/dialog_create_component.cpp:168 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:49 msgid "Options" msgstr "Options" #: pcbnew/dialog_drc.cpp:442 -#: pcbnew/dialog_track_options_base.cpp:106 msgid "Clearance" msgstr "Isolation" @@ -2061,7 +1717,6 @@ msgid "Include tests for clearances between pad to pads" msgstr "Inclure test de l'isolation entre pads" #: pcbnew/dialog_drc.cpp:480 -#: pcbnew/onrightclick.cpp:650 msgid "Zones" msgstr "Zones" @@ -2189,7 +1844,6 @@ msgid "Current Value" msgstr "Valeur courante" #: pcbnew/xchgmod.cpp:159 -#: pcbnew/tool_modedit.cpp:60 msgid "New Module" msgstr "Nouveau Module" @@ -2222,7 +1876,7 @@ msgstr "Change TOUS les modules ?" msgid "Change module %s (%s) " msgstr "Change module %s (%s) " -#: pcbnew/xchgmod.cpp:624 +#: pcbnew/xchgmod.cpp:630 msgid "Cmp files:" msgstr "Fichiers Cmp: " @@ -2231,7 +1885,6 @@ msgid "Place module" msgstr "Place module" #: pcbnew/loadcmp.cpp:209 -#: eeschema/eelibs_read_libraryfiles.cpp:67 #, c-format msgid "Library <%s> not found" msgstr "Librairie %s non trouvée" @@ -2251,13 +1904,10 @@ msgid "Module <%s> not found" msgstr "Module <%s> non trouvé" #: pcbnew/loadcmp.cpp:355 -#: pcbnew/librairi.cpp:254 -#: eeschema/eelibs_read_libraryfiles.cpp:147 msgid "Library " msgstr "Librairie " #: pcbnew/loadcmp.cpp:355 -#: eeschema/eelibs_read_libraryfiles.cpp:151 msgid " loaded" msgstr " chargé" @@ -2403,10 +2053,6 @@ msgid "Unknown Pad shape" msgstr "Forme Pad inconnue" #: pcbnew/class_pad.cpp:464 -#: pcbnew/class_edge_mod.cpp:241 -#: pcbnew/class_module.cpp:964 -#: pcbnew/class_text_mod.cpp:474 -#: cvpcb/setvisu.cpp:33 msgid "Module" msgstr "Module" @@ -2491,8 +2137,6 @@ msgid "Save current board as.." msgstr "Sauver le Circuit Imprimé courant sous.." #: pcbnew/menubarpcb.cpp:76 -#: eeschema/menubar.cpp:71 -#: gerbview/tool_gerber.cpp:70 msgid "P&rint" msgstr "Imp&rimer" @@ -2509,7 +2153,6 @@ msgid "Plot pcb board in SVG format" msgstr "Tracer le circuit imprimé en format SVG" #: pcbnew/menubarpcb.cpp:87 -#: eeschema/menubar.cpp:104 msgid "&Plot" msgstr "&Tracer" @@ -2558,7 +2201,6 @@ msgid "Import a routed \"Specctra Session\" (*.ses) file" msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " #: pcbnew/menubarpcb.cpp:135 -#: eeschema/libframe.cpp:530 msgid "Import" msgstr "Importer" @@ -2591,10 +2233,6 @@ msgid "Archive or add footprints in a library file" msgstr "Archiver ou ajouter les modules dans un fichier librairie" #: pcbnew/menubarpcb.cpp:161 -#: eeschema/menubar.cpp:108 -#: cvpcb/tool_cvpcb.cpp:125 -#: kicad/buildmnu.cpp:162 -#: gerbview/tool_gerber.cpp:75 msgid "E&xit" msgstr "&Quitter" @@ -2603,7 +2241,6 @@ msgid "Quit PCBNEW" msgstr "Quitter PCBNEW" #: pcbnew/menubarpcb.cpp:172 -#: eeschema/menubar.cpp:285 msgid "&Library" msgstr "&Librairie" @@ -2640,8 +2277,6 @@ msgid "&Save Preferences" msgstr "&Sauver Préférences" #: pcbnew/menubarpcb.cpp:199 -#: eeschema/menubar.cpp:308 -#: gerbview/tool_gerber.cpp:100 msgid "Save application preferences" msgstr "Sauver les préférences de l'application" @@ -2650,7 +2285,6 @@ msgid "&Read Preferences" msgstr "&Lire Préférences" #: pcbnew/menubarpcb.cpp:204 -#: eeschema/menubar.cpp:313 msgid "Read application preferences" msgstr "Lire les préférences de l'application" @@ -2663,26 +2297,18 @@ msgid "Adjust size and width for tracks and vias" msgstr "Ajuster largeur des pistes et diamètre de vias" #: pcbnew/menubarpcb.cpp:222 -#: pcbnew/tool_pcb.cpp:614 -#: eeschema/eelayer.cpp:211 -#: pcbnew/set_color.h:414 -#: eeschema/eelayer.h:214 -#: gerbview/set_color.h:324 msgid "Grid" msgstr "Grille" #: pcbnew/menubarpcb.cpp:223 -#: pcbnew/menubarmodedit.cpp:51 msgid "Adjust User Grid" msgstr "Ajuster Grille utilisateur" #: pcbnew/menubarpcb.cpp:228 -#: pcbnew/dialog_graphic_items_options.h:47 msgid "Texts and Drawings" msgstr "Textes et Tracés" #: pcbnew/menubarpcb.cpp:229 -#: pcbnew/menubarmodedit.cpp:41 msgid "Adjust width for texts and drawings" msgstr "Ajuster dims pour textes et graphiques" @@ -2691,7 +2317,6 @@ msgid "Adjust size,shape,layers... for pads" msgstr "Ajuster taille, forme, couches... pour pads" #: pcbnew/menubarpcb.cpp:239 -#: gerbview/tool_gerber.cpp:99 msgid "&Save Setup" msgstr "&Sauver Options" @@ -2723,112 +2348,95 @@ msgstr "Créer &Fichier Cmp" msgid "Recreate .cmp file for CvPcb" msgstr "Recréer le fichier .cmp pour CvPcb" -#: pcbnew/menubarpcb.cpp:271 +#: pcbnew/menubarpcb.cpp:267 +msgid "Create &BOM File" +msgstr "Créer Fichier Liste du &Matériel" + +#: pcbnew/menubarpcb.cpp:268 +msgid "Recreate .csv file for CvPcb" +msgstr "Recréer le fichier .csv pour CvPcb" + +#: pcbnew/menubarpcb.cpp:277 msgid "Global &Deletions" msgstr "Effacements &Généraux" -#: pcbnew/menubarpcb.cpp:272 +#: pcbnew/menubarpcb.cpp:278 msgid "Delete tracks, modules, texts... on board" msgstr "Effacer pistes, modules, textes... sur le C.I." -#: pcbnew/menubarpcb.cpp:277 +#: pcbnew/menubarpcb.cpp:283 msgid "&List Nets" msgstr "Liste Equipots" -#: pcbnew/menubarpcb.cpp:278 +#: pcbnew/menubarpcb.cpp:284 msgid "List nets (names and id)" msgstr "Lister équipotentielles (noms et numéros d'identification)" -#: pcbnew/menubarpcb.cpp:283 +#: pcbnew/menubarpcb.cpp:289 msgid "&Track Operations" msgstr "Opéra&tions sur Pistes" -#: pcbnew/menubarpcb.cpp:284 +#: pcbnew/menubarpcb.cpp:290 msgid "Clean stubs, vias, delete break points, or connect dangling tracks to pads and vias" msgstr "Nettoyer bouts de pistes, vias, points inutiles, ou connecter extrémités de pistes mal connectées au centre de pads ou vias" -#: pcbnew/menubarpcb.cpp:289 +#: pcbnew/menubarpcb.cpp:295 msgid "&Swap Layers" msgstr "&Permutte Couches" -#: pcbnew/menubarpcb.cpp:290 +#: pcbnew/menubarpcb.cpp:296 msgid "Swap tracks on copper layers or drawings on others layers" msgstr "Permutation de couches" -#: pcbnew/menubarpcb.cpp:298 -#: pcbnew/menubarmodedit.cpp:64 -#: eeschema/menubar.cpp:322 -#: cvpcb/tool_cvpcb.cpp:154 -#: kicad/buildmnu.cpp:257 -#: gerbview/tool_gerber.cpp:129 +#: pcbnew/menubarpcb.cpp:304 msgid "&Contents" msgstr "&Contenu" -#: pcbnew/menubarpcb.cpp:299 +#: pcbnew/menubarpcb.cpp:305 msgid "Open the PCBNEW manual" msgstr "Ouvrir la Documentation de PCBNEW" -#: pcbnew/menubarpcb.cpp:303 +#: pcbnew/menubarpcb.cpp:309 msgid "&About PCBNEW" msgstr "&Au Sujet de PCBNEW" -#: pcbnew/menubarpcb.cpp:304 +#: pcbnew/menubarpcb.cpp:310 msgid "About PCBNEW printed circuit board designer" msgstr "Au Sujet de PCBNEW outil de conception de C.I." -#: pcbnew/menubarpcb.cpp:313 -#: pcbnew/menubarmodedit.cpp:82 +#: pcbnew/menubarpcb.cpp:319 msgid "3D Display" msgstr "3D Visu" -#: pcbnew/menubarpcb.cpp:313 -#: pcbnew/menubarmodedit.cpp:82 +#: pcbnew/menubarpcb.cpp:319 msgid "Show board in 3D viewer" msgstr "Visualisation du circuit en 3D" -#: pcbnew/menubarpcb.cpp:317 -#: eeschema/menubar.cpp:333 -#: cvpcb/tool_cvpcb.cpp:164 -#: kicad/buildmnu.cpp:269 -#: gerbview/tool_gerber.cpp:135 -#: 3d-viewer/3d_toolbar.cpp:116 +#: pcbnew/menubarpcb.cpp:323 msgid "&File" msgstr "&Fichiers" -#: pcbnew/menubarpcb.cpp:318 -#: eeschema/menubar.cpp:337 -#: cvpcb/tool_cvpcb.cpp:165 -#: kicad/buildmnu.cpp:271 -#: gerbview/tool_gerber.cpp:136 -#: 3d-viewer/3d_toolbar.cpp:124 +#: pcbnew/menubarpcb.cpp:324 msgid "&Preferences" msgstr "&Préférences" -#: pcbnew/menubarpcb.cpp:319 -#: pcbnew/menubarmodedit.cpp:86 +#: pcbnew/menubarpcb.cpp:325 msgid "&Dimensions" msgstr "&Dimensions" -#: pcbnew/menubarpcb.cpp:320 -#: gerbview/tool_gerber.cpp:137 +#: pcbnew/menubarpcb.cpp:326 msgid "&Miscellaneous" msgstr "&Divers" -#: pcbnew/menubarpcb.cpp:321 +#: pcbnew/menubarpcb.cpp:327 msgid "P&ostprocess" msgstr "P&ostprocesseurs" -#: pcbnew/menubarpcb.cpp:322 -#: pcbnew/menubarmodedit.cpp:87 +#: pcbnew/menubarpcb.cpp:328 msgid "&3D Display" msgstr "&3D Visu" -#: pcbnew/menubarpcb.cpp:323 -#: pcbnew/menubarmodedit.cpp:88 -#: eeschema/menubar.cpp:338 -#: cvpcb/tool_cvpcb.cpp:166 -#: kicad/buildmnu.cpp:272 -#: gerbview/tool_gerber.cpp:140 +#: pcbnew/menubarpcb.cpp:329 msgid "&Help" msgstr "&Aide" @@ -2849,7 +2457,6 @@ msgid "Delete draw items?" msgstr "Suppression éléments graphiques?" #: pcbnew/initpcb.cpp:256 -#: gerbview/initpcb.cpp:136 msgid "Delete Tracks?" msgstr "Effacer Pistes ?" @@ -2858,25 +2465,18 @@ msgid "Delete Modules?" msgstr "Effacement des Modules?" #: pcbnew/initpcb.cpp:300 -#: gerbview/initpcb.cpp:159 msgid "Delete Pcb Texts" msgstr "Effacer Textes Pcb" #: pcbnew/dialog_print_using_printer.cpp:131 -#: eeschema/dialog_print_using_printer.cpp:106 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" #: pcbnew/dialog_print_using_printer.cpp:166 -#: pcbnew/dialog_SVG_print_base.cpp:23 -#: pcbnew/dialog_pad_properties_base.cpp:106 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:53 -#: pcbnew/dialog_print_using_printer_base.cpp:20 msgid "Layers:" msgstr "Couches:" #: pcbnew/dialog_print_using_printer.cpp:377 -#: eeschema/dialog_print_using_printer.cpp:217 msgid "Printer Problem!" msgstr "Problème d'imprimante" @@ -2885,20 +2485,14 @@ msgid "Print Preview" msgstr "Prévisualisation" #: pcbnew/dialog_print_using_printer.cpp:468 -#: pcbnew/dialog_print_using_printer_base.cpp:125 -#: eeschema/dialog_print_using_printer_base.cpp:69 -#: pcbnew/dialog_print_using_printer_base.h:76 -#: eeschema/dialog_print_using_printer_base.h:66 msgid "Print" msgstr "Imprimer" #: pcbnew/dialog_print_using_printer.cpp:479 -#: eeschema/dialog_print_using_printer.cpp:289 msgid "There was a problem printing" msgstr "Il y a un problème d'impression" #: pcbnew/dialog_print_using_printer.cpp:495 -#: eeschema/dialog_print_using_printer.cpp:305 #, c-format msgid "Print page %d" msgstr "Imprimer page %d" @@ -2924,8 +2518,6 @@ msgid "Import Module:" msgstr "Importer Module:" #: pcbnew/librairi.cpp:80 -#: pcbnew/files.cpp:199 -#: cvpcb/readschematicnetlist.cpp:112 #, c-format msgid "File <%s> not found" msgstr " fichier %s non trouvé" @@ -2949,7 +2541,6 @@ msgid "File %s exists, OK to replace ?" msgstr "Fichier %s existant, OK pour remplacer ?" #: pcbnew/librairi.cpp:201 -#: eeschema/symbedit.cpp:178 #, c-format msgid "Unable to create <%s>" msgstr "Incapable de créer <%s>" @@ -2965,13 +2556,6 @@ msgid "Ok to delete module %s in library %s" msgstr "Ok pour effacer module %s en librairie %s" #: pcbnew/librairi.cpp:254 -#: pcbnew/files.cpp:83 -#: eeschema/find.cpp:240 -#: eeschema/find.cpp:248 -#: eeschema/find.cpp:688 -#: gerbview/dcode.cpp:289 -#: gerbview/readgerb.cpp:146 -#: common/eda_doc.cpp:142 msgid " not found" msgstr " non trouvé" @@ -3144,10 +2728,6 @@ msgid "The URL of the FreeRouting.net website" msgstr "L' URL du site FreeRouting.net" #: pcbnew/dialog_freeroute_exchange.cpp:213 -#: pcbnew/dialog_netlist.cpp:253 -#: eeschema/plotps.cpp:245 -#: eeschema/dialog_erc.cpp:219 -#: eeschema/plothpgl.cpp:339 msgid "&Close" msgstr "&Fermer" @@ -3188,7 +2768,6 @@ msgstr "" "et mettre le trou de la via à cette valeur spécifique en utilisant le menu popup." #: pcbnew/dialog_track_options_base.cpp:56 -#: pcbnew/pcbnew.h:288 msgid "Through Via" msgstr "Via Traversante" @@ -3209,7 +2788,6 @@ msgstr "" "Via traversante est la sélection usuelle." #: pcbnew/dialog_track_options_base.cpp:67 -#: pcbnew/dialog_gendrill.cpp:284 msgid "Micro Vias:" msgstr "Micro Vias:" @@ -3334,10 +2912,6 @@ msgid "Via %.3f" msgstr "Via %.3f" #: pcbnew/onrightclick.cpp:128 -#: pcbnew/modedit_onclick.cpp:198 -#: eeschema/onrightclick.cpp:104 -#: eeschema/libedit_onrightclick.cpp:47 -#: gerbview/onrightclick.cpp:41 msgid "End Tool" msgstr "Fin Outil" @@ -3362,7 +2936,6 @@ msgid "Move Drawing" msgstr "Déplace Tracé" #: pcbnew/onrightclick.cpp:239 -#: eeschema/onrightclick.cpp:210 msgid "End Drawing" msgstr "Fin tracé" @@ -3371,7 +2944,6 @@ msgid "Edit Drawing" msgstr "Edit Tracé" #: pcbnew/onrightclick.cpp:244 -#: eeschema/onrightclick.cpp:212 msgid "Delete Drawing" msgstr "Supprimer Tracé" @@ -3388,7 +2960,6 @@ msgid "Delete Last Corner" msgstr "Supprimer Dernier Sommet" #: pcbnew/onrightclick.cpp:276 -#: eeschema/onrightclick.cpp:157 msgid "Delete Marker" msgstr "Effacer Marqueur" @@ -3505,23 +3076,14 @@ msgid "Read Global AutoRouter Data" msgstr "Lire Données de L'autorouteur global" #: pcbnew/onrightclick.cpp:451 -#: pcbnew/modedit_onclick.cpp:208 -#: eeschema/onrightclick.cpp:611 -#: eeschema/libedit_onrightclick.cpp:231 -#: gerbview/onrightclick.cpp:50 msgid "Cancel Block" msgstr "Annuler Bloc" #: pcbnew/onrightclick.cpp:453 -#: eeschema/onrightclick.cpp:617 msgid "Zoom Block" msgstr "Zoom Bloc" #: pcbnew/onrightclick.cpp:456 -#: pcbnew/modedit_onclick.cpp:213 -#: eeschema/onrightclick.cpp:619 -#: eeschema/libedit_onrightclick.cpp:238 -#: gerbview/onrightclick.cpp:53 msgid "Place Block" msgstr "Place Bloc" @@ -3641,10 +3203,6 @@ msgstr "Changer TOUTES Pistes (Pas les Vias)" #: pcbnew/onrightclick.cpp:772 #: pcbnew/onrightclick.cpp:827 #: pcbnew/onrightclick.cpp:876 -#: pcbnew/dialog_netlist.cpp:186 -#: eeschema/edit_component_in_lib.cpp:129 -#: eeschema/edit_component_in_lib.cpp:210 -#: eeschema/menubar.cpp:133 msgid "Delete" msgstr "Supprimer" @@ -3769,7 +3327,6 @@ msgid "Rotate +" msgstr "Rotation +" #: pcbnew/onrightclick.cpp:729 -#: eeschema/onrightclick.cpp:290 msgid "Rotate -" msgstr "Rotation -" @@ -3780,26 +3337,19 @@ msgstr "Change côté" #: pcbnew/onrightclick.cpp:734 #: pcbnew/onrightclick.cpp:768 #: pcbnew/onrightclick.cpp:872 -#: pcbnew/modedit_onclick.cpp:308 -#: eeschema/onrightclick.cpp:302 msgid "Edit" msgstr "Editer" #: pcbnew/onrightclick.cpp:766 #: pcbnew/onrightclick.cpp:870 -#: pcbnew/modedit_onclick.cpp:243 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:126 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:91 msgid "Rotate" msgstr "Rotation" #: pcbnew/onrightclick.cpp:805 -#: pcbnew/modedit_onclick.cpp:265 msgid "Edit Pad" msgstr "Edit Pad" #: pcbnew/onrightclick.cpp:809 -#: pcbnew/modedit_onclick.cpp:267 msgid "New Pad Settings" msgstr "Nouvelles Caract. Pads" @@ -3808,7 +3358,6 @@ msgid "Copy current pad settings to this pad" msgstr "Copier les réglages courants pour ce pad" #: pcbnew/onrightclick.cpp:813 -#: pcbnew/modedit_onclick.cpp:269 msgid "Export Pad Settings" msgstr "Exporte Caract. Pads" @@ -3817,7 +3366,6 @@ msgid "Copy this pad settings to current pad settings" msgstr "Copier les caractéristiques de ce pad vers les caractéristiques courantes" #: pcbnew/onrightclick.cpp:820 -#: pcbnew/modedit_onclick.cpp:276 msgid "Global Pad Settings" msgstr "Edition Globale des pads" @@ -3862,25 +3410,18 @@ msgid "Open module editor" msgstr "Ouvrir Editeur de modules" #: pcbnew/tool_pcb.cpp:221 -#: eeschema/tool_sch.cpp:62 -#: gerbview/tool_gerber.cpp:202 msgid "Cut selected item" msgstr "Suppression des éléments sélectionnés" #: pcbnew/tool_pcb.cpp:225 -#: eeschema/tool_sch.cpp:65 -#: gerbview/tool_gerber.cpp:207 msgid "Copy selected item" msgstr "Copie des éléments sélectionnés" #: pcbnew/tool_pcb.cpp:228 -#: eeschema/tool_sch.cpp:68 -#: gerbview/tool_gerber.cpp:213 msgid "Paste" msgstr "Copie des éléments sauvegardés" #: pcbnew/tool_pcb.cpp:232 -#: gerbview/tool_gerber.cpp:220 msgid "Undelete" msgstr "Annulation du dernier effacement" @@ -3893,59 +3434,22 @@ msgid "Plot (HPGL, PostScript, or GERBER format)" msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER" #: pcbnew/tool_pcb.cpp:241 -#: pcbnew/tool_modedit.cpp:105 -#: eeschema/menubar.cpp:154 -#: eeschema/menubar.cpp:155 -#: eeschema/tool_lib.cpp:170 -#: eeschema/tool_sch.cpp:89 -#: eeschema/tool_viewlib.cpp:70 -#: gerbview/tool_gerber.cpp:230 -#: common/zoom.cpp:211 -#: 3d-viewer/3d_toolbar.cpp:43 msgid "Zoom in" msgstr "Zoom +" #: pcbnew/tool_pcb.cpp:246 -#: pcbnew/tool_modedit.cpp:110 -#: eeschema/menubar.cpp:160 -#: eeschema/menubar.cpp:162 -#: eeschema/tool_lib.cpp:174 -#: eeschema/tool_sch.cpp:93 -#: eeschema/tool_viewlib.cpp:74 -#: gerbview/tool_gerber.cpp:237 -#: common/zoom.cpp:212 -#: 3d-viewer/3d_toolbar.cpp:46 msgid "Zoom out" msgstr "Zoom -" #: pcbnew/tool_pcb.cpp:251 -#: pcbnew/tool_modedit.cpp:115 -#: eeschema/menubar.cpp:174 -#: eeschema/tool_lib.cpp:178 -#: eeschema/tool_sch.cpp:97 -#: eeschema/tool_viewlib.cpp:78 -#: gerbview/tool_gerber.cpp:244 -#: common/zoom.cpp:220 -#: 3d-viewer/3d_toolbar.cpp:49 msgid "Redraw view" msgstr "Redessin de l'écran" #: pcbnew/tool_pcb.cpp:258 -#: pcbnew/tool_modedit.cpp:122 -#: eeschema/menubar.cpp:167 -#: eeschema/menubar.cpp:168 -#: eeschema/menubar.cpp:176 -#: eeschema/tool_lib.cpp:184 -#: eeschema/tool_sch.cpp:102 -#: gerbview/tool_gerber.cpp:255 -#: common/zoom.cpp:213 -#: 3d-viewer/3d_toolbar.cpp:52 msgid "Zoom auto" msgstr "Zoom Automatique" #: pcbnew/tool_pcb.cpp:261 -#: eeschema/menubar.cpp:140 -#: eeschema/tool_sch.cpp:106 msgid "Find components and texts" msgstr "Recherche de composants et textes" @@ -3974,36 +3478,22 @@ msgid "Drc OFF" msgstr "Drc DESACTIVEE" #: pcbnew/tool_pcb.cpp:323 -#: pcbnew/tool_modedit.cpp:208 -#: eeschema/tool_sch.cpp:247 -#: gerbview/tool_gerber.cpp:376 msgid "Display Grid OFF" msgstr "Suppression de l'affichage de la grille" #: pcbnew/tool_pcb.cpp:326 -#: pcbnew/tool_modedit.cpp:212 -#: gerbview/tool_gerber.cpp:382 msgid "Display Polar Coord ON" msgstr "Activer affichage coord Polaires" #: pcbnew/tool_pcb.cpp:329 -#: pcbnew/tool_modedit.cpp:216 -#: eeschema/tool_sch.cpp:251 -#: gerbview/tool_gerber.cpp:386 msgid "Units in inches" msgstr "Unités en pouces" #: pcbnew/tool_pcb.cpp:332 -#: pcbnew/tool_modedit.cpp:220 -#: eeschema/tool_sch.cpp:255 -#: gerbview/tool_gerber.cpp:390 msgid "Units in millimeters" msgstr "Unités en millimètres" #: pcbnew/tool_pcb.cpp:335 -#: pcbnew/tool_modedit.cpp:227 -#: eeschema/tool_sch.cpp:259 -#: gerbview/tool_gerber.cpp:396 msgid "Change Cursor Shape" msgstr "Sélection de la forme du curseur" @@ -4032,7 +3522,6 @@ msgid "Show outlines of filled areas only in zones" msgstr "Afficher uniquement les contours des surfaces remplies dans les zones" #: pcbnew/tool_pcb.cpp:365 -#: pcbnew/tool_modedit.cpp:235 msgid "Show Pads Sketch" msgstr "Afficher pastilles en contour" @@ -4069,17 +3558,14 @@ msgid "Add zones" msgstr "Addition de Zones" #: pcbnew/tool_pcb.cpp:438 -#: pcbnew/tool_modedit.cpp:163 msgid "Add graphic line or polygon" msgstr "Addition de lignes ou polygones graphiques" #: pcbnew/tool_pcb.cpp:442 -#: pcbnew/tool_modedit.cpp:167 msgid "Add graphic circle" msgstr "Addition de graphiques (Cercle)" #: pcbnew/tool_pcb.cpp:446 -#: pcbnew/tool_modedit.cpp:171 msgid "Add graphic arc" msgstr "Addition de graphiques (Arc de Cercle)" @@ -4092,16 +3578,10 @@ msgid "Add dimension" msgstr "Ajout des cotes" #: pcbnew/tool_pcb.cpp:459 -#: gerbview/tool_gerber.cpp:337 msgid "Add layer alignment target" msgstr "Ajouter Mire de superposition" #: pcbnew/tool_pcb.cpp:464 -#: pcbnew/tool_modedit.cpp:185 -#: eeschema/menubar.cpp:133 -#: eeschema/tool_lib.cpp:87 -#: eeschema/tool_sch.cpp:225 -#: gerbview/tool_gerber.cpp:352 msgid "Delete items" msgstr "Suppression d'éléments" @@ -4138,19 +3618,14 @@ msgstr "" " sinon utiliser la largeur courante" #: pcbnew/tool_pcb.cpp:590 -#: pcbnew/tool_modedit.cpp:285 -#: eeschema/plotps.cpp:192 msgid "Auto" msgstr "Auto" #: pcbnew/tool_pcb.cpp:594 -#: pcbnew/tool_modedit.cpp:289 msgid "Zoom " msgstr "Zoom " #: pcbnew/tool_pcb.cpp:632 -#: pcbnew/tool_modedit.cpp:324 -#: common/zoom.cpp:260 msgid "User Grid" msgstr "Grille perso" @@ -4164,8 +3639,6 @@ msgid "Delete Pad (module %s %s) " msgstr "Effacer Pad (module %s %s) " #: pcbnew/files.cpp:21 -#: kicad/files-io.cpp:36 -#: gerbview/files.cpp:25 msgid "Printed circuit board" msgstr "Circuit imprimé" @@ -4177,39 +3650,39 @@ msgstr "Fichier de secours " msgid "Ok to load Recovery file " msgstr "Ok pour charger le fichier de secours" -#: pcbnew/files.cpp:152 +#: pcbnew/files.cpp:148 msgid "Board Modified: Continue ?" msgstr "Circuit imprimé modifié, Continuer ?" -#: pcbnew/files.cpp:172 +#: pcbnew/files.cpp:168 msgid "Open Board File:" msgstr "Ouvrir Fichier C.I.:" -#: pcbnew/files.cpp:218 +#: pcbnew/files.cpp:214 msgid "This file was created by a more recent version of PCBnew and may not load correctly. Please consider updating!" msgstr "Ce fichier a été créé par une version plus récente de PCBnew et peut être incorrectement chargé. SVP penser à une mise à jour!" -#: pcbnew/files.cpp:222 +#: pcbnew/files.cpp:218 msgid "This file was created by an older version of PCBnew. It will be stored in the new file format when you save this file again." msgstr "Ce fichier a été créé par une version plus ancienne de Eeschema. Il sera enregistré au nouveau format après la prochaine sauvegarde." -#: pcbnew/files.cpp:309 +#: pcbnew/files.cpp:305 msgid "Save board files:" msgstr "Sauver Fichiers C.I.:" -#: pcbnew/files.cpp:348 +#: pcbnew/files.cpp:344 msgid "Warning: unable to create bakfile " msgstr "Attention: Impossible de créer fichier backup " -#: pcbnew/files.cpp:382 +#: pcbnew/files.cpp:378 msgid "Backup file: " msgstr "Fichier backup: " -#: pcbnew/files.cpp:386 +#: pcbnew/files.cpp:382 msgid "Wrote board file: " msgstr "Ecriture fichier CI: " -#: pcbnew/files.cpp:388 +#: pcbnew/files.cpp:384 msgid "Failed to create " msgstr "Impossible de créer fichier " @@ -4335,7 +3808,6 @@ msgid "Error writing to STRINGFORMATTER" msgstr "Erreur d'écriture à STRINGFORMATTER" #: pcbnew/dialog_gendrill.cpp:166 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:30 msgid "Millimeters" msgstr "Millimètres" @@ -4393,7 +3865,6 @@ msgstr "Choisir l'origine des coordonnées: absolue ou relative à l'axe auxilia #: pcbnew/dialog_gendrill.cpp:205 #: pcbnew/dialog_gendrill.cpp:215 -#: eeschema/libedit.cpp:38 msgid "None" msgstr "Aucun" @@ -4434,17 +3905,10 @@ msgid "Speed (cm/s)" msgstr "Vitesse plume ( cm/s )" #: pcbnew/dialog_gendrill.cpp:233 -#: eeschema/plothpgl.cpp:270 msgid "Pen Number" msgstr "Numéro de plume" #: pcbnew/dialog_gendrill.cpp:239 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:80 -#: pcbnew/dialog_print_using_printer_base.cpp:76 -#: eeschema/dialog_build_BOM_base.cpp:20 -#: eeschema/dialog_build_BOM_base.cpp:60 -#: eeschema/netlist_control.cpp:127 -#: eeschema/dialog_print_using_printer_base.cpp:23 msgid "Options:" msgstr "Options :" @@ -4461,7 +3925,6 @@ msgid "If checked, the excellon header is minimal" msgstr "Si activé, l'entête du fichier EXELLON est minimale" #: pcbnew/dialog_gendrill.cpp:256 -#: common/confirm.cpp:105 msgid "Info:" msgstr "Infos:" @@ -4523,7 +3986,6 @@ msgid "Connect" msgstr "Connect" #: pcbnew/class_board.cpp:555 -#: eeschema/eelayer.h:115 msgid "NoConn" msgstr "Non Conn" @@ -4536,7 +3998,6 @@ msgid "Adjust size,shape,layers... for Pads" msgstr "Ajuster taille, forme, couches... pour pads" #: pcbnew/menubarmodedit.cpp:50 -#: pcbnew/set_grid.h:39 msgid "User Grid Size" msgstr "Dim Grille utilisteur" @@ -4552,43 +4013,40 @@ msgstr "&Au sujet de Pcbnew" msgid "About pcbnew PCB designer" msgstr "Au sujet de Pcbnew, concption de PCB" -#: pcbnew/class_zone.cpp:895 +#: pcbnew/class_zone.cpp:903 msgid "Non Copper Zone" msgstr "Zone non Cuivre" -#: pcbnew/class_zone.cpp:908 +#: pcbnew/class_zone.cpp:916 msgid "Corners" msgstr "Sommets" -#: pcbnew/class_zone.cpp:912 +#: pcbnew/class_zone.cpp:920 msgid "Segments" msgstr "Segments" -#: pcbnew/class_zone.cpp:914 +#: pcbnew/class_zone.cpp:922 msgid "Polygons" msgstr "Polygones" -#: pcbnew/class_zone.cpp:915 +#: pcbnew/class_zone.cpp:923 msgid "Fill mode" msgstr "Mode de remplissage" -#: pcbnew/class_zone.cpp:920 +#: pcbnew/class_zone.cpp:928 msgid "Hatch lines" msgstr "Lignes de Hachure" -#: pcbnew/class_zone.cpp:926 +#: pcbnew/class_zone.cpp:934 msgid "Corners in DrawList" msgstr "Sommets en Liste de dessin" #: pcbnew/set_color.cpp:260 #: pcbnew/set_color.cpp:287 -#: gerbview/set_color.cpp:248 -#: gerbview/set_color.cpp:275 msgid "Show None" msgstr "Rien Afficher" #: pcbnew/set_color.cpp:269 -#: gerbview/set_color.cpp:257 msgid "Show All" msgstr "Tout Afficher" @@ -4601,14 +4059,10 @@ msgid "Switch off all of the copper layers" msgstr "N'affiche pas les couches cuivre" #: pcbnew/set_color.cpp:352 -#: eeschema/eelayer.cpp:248 -#: gerbview/set_color.cpp:323 msgid "Apply" msgstr "Appliquer" #: pcbnew/modedit_onclick.cpp:210 -#: eeschema/libedit_onrightclick.cpp:234 -#: gerbview/onrightclick.cpp:51 msgid "Zoom Block (drag middle mouse)" msgstr "Zoom Bloc (drag bouton du milieu souris)" @@ -4641,7 +4095,6 @@ msgid "Scale Y" msgstr "Echelle Y" #: pcbnew/modedit_onclick.cpp:252 -#: pcbnew/dialog_edit_module.cpp:192 msgid "Edit Module" msgstr "Edit Module" @@ -4739,7 +4192,6 @@ msgstr "Aspect des Contours" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:34 #: pcbnew/dialog_copper_zones_base.cpp:101 -#: eeschema/dialog_options.cpp:262 msgid "Any" msgstr "Tout" @@ -4752,7 +4204,6 @@ msgid "Zone Edges Orient" msgstr "Direction contours zone" #: pcbnew/dialog_non_copper_zones_properties_base.cpp:54 -#: gerbview/select_layers_to_pcb.cpp:91 msgid "Layer selection:" msgstr "Sélection couche:" @@ -5028,9 +4479,6 @@ msgid "Export this zone setup to all other copper zones" msgstr "Exporter ces options vers les autres zones de cuivre" #: pcbnew/dialog_copper_zones_base.cpp:156 -#: pcbnew/dialog_pad_properties_base.cpp:91 -#: eeschema/dialog_build_BOM_base.cpp:131 -#: eeschema/lib_export.cpp:146 msgid "Ok" msgstr "Ok" @@ -5095,16 +4543,10 @@ msgid "3D settings" msgstr "3D Caract" #: pcbnew/dialog_edit_module.cpp:185 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:161 -#: eeschema/dialog_edit_component_in_schematic.cpp:96 -#: common/wxwineda.cpp:223 msgid "X" msgstr "X" #: pcbnew/dialog_edit_module.cpp:186 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:166 -#: eeschema/dialog_edit_component_in_schematic.cpp:101 -#: common/wxwineda.cpp:236 msgid "Y" msgstr "Y" @@ -5113,13 +4555,10 @@ msgid "Change module(s)" msgstr "Change module(s)" #: pcbnew/dialog_edit_module.cpp:196 -#: pcbnew/dialog_pcb_text_properties.cpp:122 msgid "Position" msgstr "Position" #: pcbnew/dialog_edit_module.cpp:221 -#: eeschema/dialog_edit_component_in_lib.cpp:203 -#: eeschema/onrightclick.cpp:345 msgid "Doc" msgstr "Doc" @@ -5132,24 +4571,18 @@ msgid "Fields:" msgstr "Champs:" #: pcbnew/dialog_edit_module.cpp:245 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:94 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:28 msgid "Add Field" msgstr "Ajouter Champ" #: pcbnew/dialog_edit_module.cpp:250 -#: eeschema/onrightclick.cpp:250 msgid "Edit Field" msgstr "Editer Champ" #: pcbnew/dialog_edit_module.cpp:255 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:99 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:33 msgid "Delete Field" msgstr "Supprimer Champ" #: pcbnew/dialog_edit_module.cpp:262 -#: common/common.cpp:481 msgid "Component" msgstr "Composant" @@ -5227,7 +4660,6 @@ msgid "3D Shape Name" msgstr "3D forme" #: pcbnew/dialog_edit_module.cpp:423 -#: eeschema/dialog_eeschema_config.cpp:223 msgid "Browse" msgstr "Examiner" @@ -5265,54 +4697,38 @@ msgid "Delete [%s]" msgstr "Supprimer [%s]" #: pcbnew/dialog_SVG_print_base.cpp:25 -#: pcbnew/dialog_print_using_printer_base.cpp:25 msgid "Copper Layers:" msgstr "Couches Cuivre:" #: pcbnew/dialog_SVG_print_base.cpp:29 -#: pcbnew/dialog_print_using_printer_base.cpp:29 msgid "Technical Layers:" msgstr "Couches Techniques:" #: pcbnew/dialog_SVG_print_base.cpp:36 -#: eeschema/dialog_SVG_print_base.cpp:23 msgid "Print SVG options:" msgstr "Options d'impression SVG :" #: pcbnew/dialog_SVG_print_base.cpp:38 -#: eeschema/dialog_SVG_print_base.cpp:25 msgid "Pen width mini" msgstr "Epaiss plume mini" #: pcbnew/dialog_SVG_print_base.cpp:43 -#: pcbnew/dialog_print_using_printer_base.cpp:83 -#: eeschema/dialog_SVG_print_base.cpp:30 -#: eeschema/dialog_print_using_printer_base.cpp:30 msgid "Selection of the minimum pen thickness used to draw items." msgstr "Valeur de l'épaisseur minimum de plume pour tracer les éléments" #: pcbnew/dialog_SVG_print_base.cpp:47 -#: pcbnew/dialog_print_using_printer_base.cpp:100 -#: eeschema/plotps.cpp:212 -#: eeschema/dialog_SVG_print_base.cpp:34 -#: eeschema/dialog_print_using_printer_base.cpp:44 msgid "Color" msgstr "Couleur" #: pcbnew/dialog_SVG_print_base.cpp:47 -#: eeschema/dialog_SVG_print_base.cpp:34 msgid "Black and White" msgstr "Noir et Blanc" #: pcbnew/dialog_SVG_print_base.cpp:49 -#: eeschema/dialog_SVG_print_base.cpp:36 msgid "Print mode" msgstr "Mode d'impression" #: pcbnew/dialog_SVG_print_base.cpp:51 -#: pcbnew/dialog_print_using_printer_base.cpp:104 -#: eeschema/dialog_SVG_print_base.cpp:38 -#: eeschema/dialog_print_using_printer_base.cpp:48 msgid "" "Choose if you wand to draw the sheet like it appears on screen,\n" "or in black and white mode, better to print it when using black and white printers" @@ -5321,14 +4737,10 @@ msgstr "" "ou en noir et blanc, préférable pour l'imprimer lorsque l'on utilise des imprimantes monochromes" #: pcbnew/dialog_SVG_print_base.cpp:55 -#: eeschema/dialog_SVG_print_base.cpp:42 msgid "Print Frame Ref" msgstr "Imprimer cartouche" #: pcbnew/dialog_SVG_print_base.cpp:58 -#: pcbnew/dialog_print_using_printer_base.cpp:90 -#: eeschema/dialog_SVG_print_base.cpp:44 -#: eeschema/dialog_print_using_printer_base.cpp:38 msgid "Print (or not) the Frame references." msgstr "Imprimer (ou non) le cartouche" @@ -5349,18 +4761,14 @@ msgid "Print Board" msgstr "Imprimer le C.I." #: pcbnew/dialog_SVG_print_base.cpp:80 -#: eeschema/dialog_SVG_print_base.cpp:59 msgid "Quit" msgstr "Quitter" #: pcbnew/dialog_SVG_print_base.cpp:87 -#: eeschema/sheet.cpp:154 -#: eeschema/dialog_SVG_print_base.cpp:66 msgid "Filename:" msgstr "Nom Fichier:" #: pcbnew/dialog_SVG_print_base.cpp:92 -#: eeschema/dialog_SVG_print_base.cpp:71 msgid "" "Enter a filename if you do not want to use default file names\n" "Can be used only when printing the current sheet" @@ -5369,7 +4777,6 @@ msgstr "" "Ne peut être utilisé que pour imprimer la feuille courante" #: pcbnew/dialog_SVG_print_base.cpp:97 -#: eeschema/dialog_SVG_print_base.cpp:76 msgid "Messages:" msgstr "Messages:" @@ -5448,12 +4855,10 @@ msgid "90" msgstr "90" #: pcbnew/dialog_pad_properties_base.cpp:64 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:39 msgid "-90" msgstr "-90" #: pcbnew/dialog_pad_properties_base.cpp:64 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:39 msgid "180" msgstr "180" @@ -5470,7 +4875,6 @@ msgid "SMD" msgstr "CMS" #: pcbnew/dialog_pad_properties_base.cpp:80 -#: eeschema/netlist.cpp:246 msgid "Conn" msgstr "Conn" @@ -5531,7 +4935,6 @@ msgid "Draft layer" msgstr "Couche dessin" #: pcbnew/muwave_command.cpp:51 -#: eeschema/libframe.cpp:522 msgid "Add Line" msgstr "Addition de lignes" @@ -5552,50 +4955,30 @@ msgid "Add Polynomial Shape" msgstr "Ajout Forme polynomiale" #: pcbnew/dialog_setup_libs.cpp:89 -#: eeschema/dialog_eeschema_config.cpp:97 -#: cvpcb/dialog_cvpcb_config.cpp:75 -#: gerbview/reglage.cpp:89 msgid "from " msgstr "De " #: pcbnew/dialog_setup_libs.cpp:145 -#: eeschema/dialog_eeschema_config.cpp:153 -#: cvpcb/dialog_cvpcb_config.cpp:128 -#: cvpcb/dialog_display_options.cpp:169 msgid "Save Cfg" msgstr "Sauver config" #: pcbnew/dialog_setup_libs.cpp:151 -#: eeschema/dialog_eeschema_config.cpp:170 -#: cvpcb/dialog_cvpcb_config.cpp:143 msgid "Files ext:" msgstr "Ext. Fichiers" #: pcbnew/dialog_setup_libs.cpp:167 -#: cvpcb/dialog_cvpcb_config.cpp:162 -#: cvpcb/dialog_cvpcb_config.cpp:194 msgid "Del" msgstr "Supprimer" #: pcbnew/dialog_setup_libs.cpp:171 -#: eeschema/edit_component_in_lib.cpp:123 -#: eeschema/edit_component_in_lib.cpp:202 -#: eeschema/dialog_eeschema_config.cpp:189 -#: cvpcb/dialog_cvpcb_config.cpp:166 -#: cvpcb/dialog_cvpcb_config.cpp:198 msgid "Add" msgstr "Ajouter" #: pcbnew/dialog_setup_libs.cpp:175 -#: eeschema/dialog_eeschema_config.cpp:195 -#: cvpcb/dialog_cvpcb_config.cpp:170 -#: cvpcb/dialog_cvpcb_config.cpp:202 msgid "Ins" msgstr "Insérer" #: pcbnew/dialog_setup_libs.cpp:183 -#: eeschema/dialog_eeschema_config.cpp:205 -#: cvpcb/dialog_cvpcb_config.cpp:177 msgid "Libraries" msgstr "Librairies" @@ -5604,7 +4987,6 @@ msgid "Lib Modules Dir:" msgstr "Répertoire Lib Modules:" #: pcbnew/dialog_setup_libs.cpp:198 -#: cvpcb/menucfg.cpp:55 msgid "Module Doc File:" msgstr "Fichiers Doc des Modules" @@ -5625,15 +5007,10 @@ msgid "Net ext: " msgstr "Net ext: " #: pcbnew/dialog_setup_libs.cpp:359 -#: eeschema/dialog_eeschema_config.cpp:360 -#: cvpcb/menucfg.cpp:220 msgid "Library files:" msgstr "Fichiers Librairies:" #: pcbnew/dialog_setup_libs.cpp:387 -#: eeschema/dialog_eeschema_config.cpp:389 -#: cvpcb/menucfg.cpp:248 -#: cvpcb/menucfg.cpp:322 msgid "Library already in use" msgstr "Librairie déjà en usage" @@ -5700,7 +5077,6 @@ msgid "Offset Y" msgstr "Offset Y" #: pcbnew/dialog_edit_module_text_base.cpp:72 -#: eeschema/affiche.cpp:196 msgid "Thickness" msgstr "Epaisseur" @@ -5713,7 +5089,6 @@ msgid "vertical" msgstr "Vertical" #: pcbnew/dialog_edit_module_text_base.cpp:81 -#: pcbnew/dialog_pcb_text_properties.cpp:141 msgid "Orientation" msgstr "Orientation" @@ -5726,27 +5101,18 @@ msgid "Invisible" msgstr "Invisible" #: pcbnew/dialog_edit_module_text_base.cpp:96 -#: pcbnew/dialog_pcb_text_properties.cpp:176 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:134 -#: eeschema/dialog_edit_label_base.cpp:40 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:60 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:99 msgid "Italic" msgstr "Italique" #: pcbnew/dialog_edit_module_text_base.cpp:98 -#: pcbnew/dialog_pcb_text_properties.cpp:177 -#: eeschema/dialog_edit_label_base.cpp:42 msgid "Style" msgstr "Style" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:22 -#: gerbview/options.cpp:183 msgid "No Display" msgstr "Pas d'affichage" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:24 -#: gerbview/options.cpp:186 msgid "Display Polar Coord" msgstr "Affichage coord Polaires" @@ -5759,8 +5125,6 @@ msgstr "" "au curseur, en coordonnées polaires (angle et distance)" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:32 -#: eeschema/dialog_options.cpp:253 -#: gerbview/options.cpp:198 msgid "Units" msgstr "Unités" @@ -5777,7 +5141,6 @@ msgid "Full screen cursor" msgstr "Curseur plein écran" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:40 -#: gerbview/options.cpp:206 msgid "Cursor" msgstr "Curseur" @@ -5786,48 +5149,38 @@ msgid "Main cursor shape selection (small cross or large cursor)" msgstr "Sélection de l'aspect du curseur principal (petite croix ou grand curseur)" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 -#: eeschema/component_wizard/dialog_component_setup.cpp:164 msgid "1" msgstr "1" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "2" msgstr "2" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "4" msgstr "4" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "6" msgstr "6" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "8" msgstr "8" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "10" msgstr "10" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "12" msgstr "12" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "14" msgstr "14" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 -#: eeschema/dialog_edit_component_in_schematic_fbp.cpp:28 msgid "16" msgstr "16" @@ -5908,7 +5261,6 @@ msgid "If enabled, force segments directions to H, V or 45 degrees, when creatin msgstr "Si activé, frorce la direction des segments à H, V ou 45° en création de segments sur couches techniques" #: pcbnew/dialog_general_options_BoardEditor_base.cpp:113 -#: eeschema/dialog_options.cpp:245 msgid "Auto PAN" msgstr "Auto PAN" @@ -5946,7 +5298,6 @@ msgid "Control the capture of the pcb cursor when the mouse cursor enters a trac msgstr "Contrôle la capture du curseur pcb quand le curseur souris passe sur une piste" #: pcbnew/tool_modedit.cpp:41 -#: eeschema/tool_lib.cpp:117 msgid "Select working library" msgstr "Sélection de la librairie de travail" @@ -5987,16 +5338,10 @@ msgid "export module" msgstr "Exporter Module" #: pcbnew/tool_modedit.cpp:91 -#: eeschema/menubar.cpp:120 -#: eeschema/tool_lib.cpp:144 -#: eeschema/tool_sch.cpp:71 msgid "Undo last edition" msgstr "Défait dernière édition" #: pcbnew/tool_modedit.cpp:93 -#: eeschema/menubar.cpp:126 -#: eeschema/tool_lib.cpp:146 -#: eeschema/tool_sch.cpp:74 msgid "Redo the last undo command" msgstr "Refait la dernière commande defaite" @@ -6040,8 +5385,6 @@ msgstr "Valeur:" #: pcbnew/dialog_edit_module_text.cpp:98 #: pcbnew/dialog_pcb_text_properties.cpp:108 -#: eeschema/sheetlab.cpp:103 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:22 msgid "Text:" msgstr "Texte:" @@ -6090,22 +5433,18 @@ msgid "Y Scale Adjust" msgstr "Ajustage Echelle Y" #: pcbnew/dialog_print_using_printer_base.cpp:78 -#: eeschema/dialog_print_using_printer_base.cpp:25 msgid "Pen Width Mini" msgstr "Epaiss Plume Mini" #: pcbnew/dialog_print_using_printer_base.cpp:87 -#: eeschema/dialog_print_using_printer_base.cpp:35 msgid "Print frame ref" msgstr "Imprimer cartouche" #: pcbnew/dialog_print_using_printer_base.cpp:100 -#: eeschema/dialog_print_using_printer_base.cpp:44 msgid "Black and white" msgstr "Noir et blanc" #: pcbnew/dialog_print_using_printer_base.cpp:102 -#: eeschema/dialog_print_using_printer_base.cpp:46 msgid "Print Mode" msgstr "Mode d'impression" @@ -6118,22 +5457,45 @@ msgid "Single page" msgstr "Page unique" #: pcbnew/dialog_print_using_printer_base.cpp:110 -#: eeschema/dialog_print_using_printer_base.cpp:54 msgid "Page Print" msgstr "Imprimer Page" #: pcbnew/dialog_print_using_printer_base.cpp:119 -#: eeschema/dialog_print_using_printer_base.cpp:63 msgid "Page Options" msgstr "Options Pages" #: pcbnew/dialog_print_using_printer_base.cpp:122 -#: eeschema/dialog_print_using_printer_base.cpp:66 -#: eeschema/dialog_print_using_printer.cpp:238 -#: eeschema/dialog_print_using_printer.cpp:278 msgid "Preview" msgstr "Prévisualisation" +#: pcbnew/build_BOM_from_board.cpp:64 +msgid "Bom files:" +msgstr "Fichiers Liste de Matériel: " + +#: pcbnew/build_BOM_from_board.cpp:87 +msgid "Id" +msgstr "Id" + +#: pcbnew/build_BOM_from_board.cpp:88 +msgid "Designator" +msgstr "Reference" + +#: pcbnew/build_BOM_from_board.cpp:89 +msgid "Package" +msgstr "Boitier" + +#: pcbnew/build_BOM_from_board.cpp:90 +msgid "Number" +msgstr "Nombre" + +#: pcbnew/build_BOM_from_board.cpp:91 +msgid "Designation" +msgstr "Designation" + +#: pcbnew/build_BOM_from_board.cpp:92 +msgid "Supplier and ref" +msgstr "Fournisseur et ref" + #: pcbnew/dialog_pcb_text_properties.cpp:74 msgid "TextPCB properties" msgstr "Propriétés des textes PCB" @@ -6173,7 +5535,6 @@ msgid "Start Point Y" msgstr "Start Point Y" #: eeschema/netlist.cpp:198 -#: eeschema/dialog_build_BOM_base.cpp:47 msgid "List" msgstr "Liste" @@ -6213,7 +5574,6 @@ msgid "Clear Schematic Hierarchy (modified!)?" msgstr "Effacer la hiérarchie schématique (modifiée!)?" #: eeschema/files-io.cpp:84 -#: eeschema/save_schemas.cpp:63 msgid "Schematic files:" msgstr "Fichiers schématiques:" @@ -6263,12 +5623,10 @@ msgid "Warning More than 1 Pin connected to UnConnect symbol" msgstr "Attention: plus de 1 Pin connectée à un symbole de non connexion" #: eeschema/erc.cpp:599 -#: common/confirm.cpp:83 msgid "Warning" msgstr "Avertissement" #: eeschema/erc.cpp:602 -#: common/confirm.cpp:87 msgid "Error" msgstr "Erreur" @@ -6356,7 +5714,6 @@ msgid "Failed to open Stuff File <%s>" msgstr "Ne peut pas ouvrir fichier d'échange <%s>" #: eeschema/selpart.cpp:39 -#: eeschema/find.cpp:646 msgid "No libraries are loaded" msgstr "Pas de librairies chargées" @@ -6371,22 +5728,18 @@ msgstr "Sélection composant (%d items)" #: eeschema/netform.cpp:62 #: eeschema/netform.cpp:280 -#: eeschema/save_schemas.cpp:88 msgid "Failed to create file " msgstr "Impossible de créer le fichier " #: eeschema/plotps.cpp:193 -#: eeschema/plothpgl.cpp:214 msgid "Page Size A4" msgstr "Feuille A4" #: eeschema/plotps.cpp:194 -#: eeschema/plothpgl.cpp:219 msgid "Page Size A" msgstr "Feuille A" #: eeschema/plotps.cpp:196 -#: eeschema/plothpgl.cpp:225 msgid "Plot page size:" msgstr "Format de la feuille:" @@ -6407,12 +5760,10 @@ msgid "Print Sheet Ref" msgstr "Imprimer cartouche" #: eeschema/plotps.cpp:233 -#: eeschema/plothpgl.cpp:328 msgid "&Plot page" msgstr "&Tracer Page" #: eeschema/plotps.cpp:240 -#: eeschema/plothpgl.cpp:334 msgid "Plot a&ll" msgstr "&Tout tracer" @@ -6421,7 +5772,6 @@ msgid "Messages :" msgstr "Messages :" #: eeschema/plotps.cpp:273 -#: eeschema/dialog_options.cpp:315 msgid "Default Line Width" msgstr "Epaiss. ligne par défaut" @@ -6431,37 +5781,30 @@ msgid "Plot: %s\n" msgstr "Trace: %s\n" #: eeschema/pinedit.cpp:22 -#: eeschema/pinedit-dialog.cpp:241 msgid "line" msgstr "Ligne" #: eeschema/pinedit.cpp:22 -#: eeschema/pinedit-dialog.cpp:242 msgid "invert" msgstr "invert" #: eeschema/pinedit.cpp:22 -#: eeschema/pinedit-dialog.cpp:243 msgid "clock" msgstr "clock" #: eeschema/pinedit.cpp:22 -#: eeschema/pinedit-dialog.cpp:244 msgid "clock inv" msgstr "clock inv" #: eeschema/pinedit.cpp:23 -#: eeschema/pinedit-dialog.cpp:245 msgid "low in" msgstr "low in" #: eeschema/pinedit.cpp:23 -#: eeschema/pinedit-dialog.cpp:246 msgid "low clock" msgstr "low clock" #: eeschema/pinedit.cpp:23 -#: eeschema/pinedit-dialog.cpp:247 msgid "low out" msgstr "low out" @@ -6492,13 +5835,10 @@ msgid "Options :" msgstr "Options :" #: eeschema/dialog_cmp_graphic_properties.cpp:156 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:34 msgid "Common to Units" msgstr "Commun aux Unités" #: eeschema/dialog_cmp_graphic_properties.cpp:160 -#: eeschema/pinedit-dialog.cpp:187 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:38 msgid "Common to convert" msgstr "Commun à converti" @@ -6514,28 +5854,27 @@ msgstr "Fond Plein" msgid "Fill:" msgstr "Remplissage:" -#: eeschema/schframe.cpp:315 +#: eeschema/schframe.cpp:318 msgid "Schematic modified, Save before exit ?" msgstr "Schématique modifiée, Sauver avant de quitter ?" -#: eeschema/schframe.cpp:426 +#: eeschema/schframe.cpp:429 msgid "No show Hidden Pins" msgstr "N'affichage pas les pins invisibles" -#: eeschema/schframe.cpp:427 -#: eeschema/tool_sch.cpp:264 +#: eeschema/schframe.cpp:430 msgid "Show Hidden Pins" msgstr "Force affichage des pins invisibles" -#: eeschema/schframe.cpp:431 +#: eeschema/schframe.cpp:434 msgid "Allows any direction for wires and busses" msgstr "Autorise les directions quelconques pour les fils et bus" -#: eeschema/schframe.cpp:432 +#: eeschema/schframe.cpp:435 msgid "Allows horizontal and vertical wires and busses only" msgstr "Autoriser fils et bus verticaux et horizontaux seulement" -#: eeschema/schframe.cpp:567 +#: eeschema/schframe.cpp:570 msgid "Schematic" msgstr "Schématique" @@ -6625,7 +5964,6 @@ msgid "Text Properties" msgstr "Propriétés du Texte" #: eeschema/edit_component_in_lib.cpp:68 -#: eeschema/dialog_edit_component_in_lib.h:56 msgid "Lib Component Properties" msgstr "Propriétés du composant librairie" @@ -6638,7 +5976,6 @@ msgid "(alias of " msgstr "(alias de " #: eeschema/edit_component_in_lib.cpp:106 -#: eeschema/dialog_edit_component_in_lib.cpp:207 msgid "Alias" msgstr "Alias" @@ -6657,7 +5994,6 @@ msgid "Footprints" msgstr "Modules" #: eeschema/edit_component_in_lib.cpp:291 -#: eeschema/dialog_create_component.cpp:172 msgid "As Convert" msgstr "A une forme \"convertie\"" @@ -6666,12 +6002,10 @@ msgid "Show Pin Num" msgstr "Montre Numéro de Pin" #: eeschema/edit_component_in_lib.cpp:308 -#: eeschema/dialog_create_component.cpp:243 msgid "Show Pin Name" msgstr "Montre Nom de Pin" #: eeschema/edit_component_in_lib.cpp:319 -#: eeschema/dialog_create_component.cpp:247 msgid "Pin Name Inside" msgstr "Nom de pin à l'intérieur" @@ -6717,7 +6051,6 @@ msgid "Delete Convert items" msgstr "Suppression des éléments convertis" #: eeschema/edit_component_in_lib.cpp:760 -#: common/eda_doc.cpp:126 msgid "Doc Files" msgstr "Fichiers de Doc" @@ -7085,7 +6418,6 @@ msgid "Add NoConnect Flag" msgstr "Ajoutde symboles de non connexion" #: eeschema/schedit.cpp:192 -#: eeschema/hotkeys.cpp:310 msgid "Add Wire" msgstr "Ajouter Fils" @@ -7094,14 +6426,10 @@ msgid "Add Bus" msgstr "Addition de Bus" #: eeschema/schedit.cpp:204 -#: eeschema/onrightclick.cpp:515 -#: eeschema/onrightclick.cpp:547 msgid "Add Junction" msgstr "Ajout jonctions" #: eeschema/schedit.cpp:208 -#: eeschema/onrightclick.cpp:516 -#: eeschema/onrightclick.cpp:548 msgid "Add Label" msgstr "Ajout Label" @@ -7134,7 +6462,6 @@ msgid "Import PinSheet" msgstr "Importer Connecteur de hiérarchie" #: eeschema/schedit.cpp:244 -#: eeschema/hotkeys.cpp:285 msgid "Add Component" msgstr "Ajout Composant" @@ -7143,19 +6470,14 @@ msgid "Add Power" msgstr "Ajouter Alims" #: eeschema/menubar.cpp:42 -#: kicad/buildmnu.cpp:128 -#: gerbview/tool_gerber.cpp:52 msgid "&New" msgstr "&Nouveau" #: eeschema/menubar.cpp:43 -#: eeschema/tool_sch.cpp:36 msgid "New schematic project" msgstr "Nouveau Projet schématique" #: eeschema/menubar.cpp:47 -#: cvpcb/tool_cvpcb.cpp:112 -#: kicad/buildmnu.cpp:122 msgid "&Open" msgstr "&Ouvrir " @@ -7172,7 +6494,6 @@ msgid "Save all sheets in the schematic project" msgstr "Sauver toutes les feuilles du projet schématique" #: eeschema/menubar.cpp:59 -#: kicad/buildmnu.cpp:135 msgid "&Save" msgstr "&Sauver" @@ -7241,7 +6562,6 @@ msgid "&Redo\t" msgstr "&Redo\t" #: eeschema/menubar.cpp:139 -#: pcbnew/find.h:38 msgid "Find" msgstr "Chercher" @@ -7290,7 +6610,6 @@ msgid "W&ire to bus entry" msgstr "Entrées de bus (type fil vers bus)" #: eeschema/menubar.cpp:207 -#: eeschema/tool_sch.cpp:170 msgid "Place a wire to bus entry" msgstr "Placer une Entrée de Bus (type fil vers bus)" @@ -7299,7 +6618,6 @@ msgid "B&us to bus entry" msgstr "Entrées de bus (type bus vers bus)" #: eeschema/menubar.cpp:213 -#: eeschema/tool_sch.cpp:174 msgid "Place a bus to bus entry" msgstr "Placer une Entrée de Bus (type bus vers bus)" @@ -7316,7 +6634,6 @@ msgid "Net name" msgstr "Net Name" #: eeschema/menubar.cpp:223 -#: eeschema/tool_sch.cpp:183 msgid "Place net name" msgstr "Place nom de net" @@ -7329,7 +6646,6 @@ msgid "Place a global label. Warning: all global labels with the same name are c msgstr "Placer un label global. Attention: tous les labels globaux avec le même nom sont connectés dans toute la hiérarchie" #: eeschema/menubar.cpp:233 -#: eeschema/eelayer.h:85 msgid "Junction" msgstr "Jonction" @@ -7342,7 +6658,6 @@ msgid "Hierarchical label" msgstr "Label Hiérarchique" #: eeschema/menubar.cpp:242 -#: eeschema/tool_sch.cpp:197 msgid "Place a hierarchical label. This label will be seen as a pin sheet in the sheet symbol" msgstr "Placer un label hiérachique. Ce label sera vu comme une pin dans la feuille mère symbole" @@ -7383,7 +6698,6 @@ msgid "Graphic text (comment)" msgstr "Textes graphiques (commentaires)" #: eeschema/menubar.cpp:278 -#: eeschema/tool_sch.cpp:220 msgid "Place graphic text (comment)" msgstr "Placer textes graphiques (commentaires)" @@ -7392,7 +6706,6 @@ msgid "Library preferences" msgstr "Préférences pour Librairie" #: eeschema/menubar.cpp:290 -#: gerbview/tool_gerber.cpp:83 msgid "&Colors" msgstr "&Couleurs" @@ -7401,7 +6714,6 @@ msgid "Color preferences" msgstr "Préférences de couleurs" #: eeschema/menubar.cpp:296 -#: gerbview/tool_gerber.cpp:86 msgid "&Options" msgstr "&Options" @@ -7422,7 +6734,6 @@ msgid "Open the eeschema manual" msgstr "Ouvrir la documentation de eeschema" #: eeschema/menubar.cpp:327 -#: kicad/buildmnu.cpp:263 msgid "&About" msgstr "&Au Sujet de" @@ -7452,7 +6763,6 @@ msgstr "Sélection" #: eeschema/viewlibs.cpp:122 #: eeschema/tool_sch.cpp:53 -#: eeschema/viewlib_frame.cpp:59 msgid "Library browser" msgstr "Visualisateur des librairies" @@ -7576,7 +6886,6 @@ msgid "Edit pins part per part (Carefully use!)" msgstr "Editer pins unité par unité (Utiliser en connaissance de cause)" #: eeschema/tool_lib.cpp:241 -#: eeschema/tool_viewlib.cpp:137 #, c-format msgid "Part %c" msgstr "Composant %c" @@ -7606,26 +6915,18 @@ msgid "No Draw" msgstr "Invisible" #: eeschema/pinedit-dialog.cpp:213 -#: eeschema/affiche.cpp:112 -#: eeschema/dialog_edit_label_base.cpp:34 msgid "Right" msgstr "Droite" #: eeschema/pinedit-dialog.cpp:214 -#: eeschema/affiche.cpp:109 -#: eeschema/dialog_edit_label_base.cpp:34 msgid "Left" msgstr "Gauche" #: eeschema/pinedit-dialog.cpp:215 -#: eeschema/affiche.cpp:103 -#: eeschema/dialog_edit_label_base.cpp:34 msgid "Up" msgstr "Haut" #: eeschema/pinedit-dialog.cpp:216 -#: eeschema/affiche.cpp:106 -#: eeschema/dialog_edit_label_base.cpp:34 msgid "Down" msgstr "Bas" @@ -7638,19 +6939,14 @@ msgid "Pin Shape:" msgstr "Forme Pin:" #: eeschema/pinedit-dialog.cpp:254 -#: eeschema/dialog_edit_label_base.cpp:46 -#: eeschema/component_wizard/dialog_component_setup.cpp:201 msgid "Input" msgstr "Entrée" #: eeschema/pinedit-dialog.cpp:255 -#: eeschema/dialog_edit_label_base.cpp:46 -#: eeschema/component_wizard/dialog_component_setup.cpp:202 msgid "Output" msgstr "Sortie" #: eeschema/pinedit-dialog.cpp:256 -#: eeschema/dialog_edit_label_base.cpp:46 msgid "Bidi" msgstr "Bidi" @@ -7659,13 +6955,10 @@ msgid "3 States" msgstr "3 Etats" #: eeschema/pinedit-dialog.cpp:258 -#: eeschema/dialog_edit_label_base.cpp:46 -#: eeschema/component_wizard/dialog_component_setup.cpp:205 msgid "Passive" msgstr "Passive" #: eeschema/pinedit-dialog.cpp:259 -#: eeschema/component_wizard/dialog_component_setup.cpp:206 msgid "Unspecified" msgstr "Non specifié" @@ -7690,7 +6983,6 @@ msgid "Electrical Type:" msgstr "Type électrique:" #: eeschema/component_class.cpp:56 -#: eeschema/dialog_create_component.cpp:160 msgid "U" msgstr "U" @@ -7854,8 +7146,6 @@ msgid "Done Loading " msgstr "Chargement terminé" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:26 -#: eeschema/affiche.cpp:180 -#: eeschema/onrightclick.cpp:330 msgid "Unit" msgstr "Unité" @@ -7936,7 +7226,6 @@ msgid "Orientation (Degrees)" msgstr "Orientation (Degrés)" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:43 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:58 msgid "Select if the component is to be rotated when drawn" msgstr "Sélectionner si le composant doit être tourné lors de l'affichage." @@ -7949,12 +7238,10 @@ msgid "Mirror |" msgstr "Miroir |" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:56 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:71 msgid "Pick the graphical transformation to be used when displaying the component, if any" msgstr "Ajuster la transformation graphique à utiliser pour afficher le composant" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:63 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:446 msgid "Chip Name" msgstr "Nom en librairie" @@ -7963,8 +7250,6 @@ msgid "The name of the symbol in the library from which this component came" msgstr "Le nom du symbole dans la librairie d'où vient le composant." #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:73 -#: eeschema/affiche.cpp:190 -#: eeschema/onrightclick.cpp:317 msgid "Convert" msgstr "Convert" @@ -7977,73 +7262,54 @@ msgstr "" "Pour les portes, ceci est la conversion \"De Morgan\"" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:79 -#: eeschema/dialog_edit_component_in_lib.cpp:162 -#: eeschema/dialog_create_component.cpp:180 msgid "Parts are locked" msgstr "Les parts sont verrouillées" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:86 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:20 -#: eeschema/eelayer.h:164 msgid "Fields" msgstr "Champs" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:95 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:29 msgid "Add a new custom field" msgstr "Ajouter un nouveau champ utilisateur" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:100 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:34 msgid "Delete one of the optional fields" msgstr "Supprimer un des champs optionnels." #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:104 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:38 msgid "Move Up" msgstr "Vers le haut ^" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:105 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:39 msgid "Move the selected optional fields up one position" msgstr "Déplacer le champ optionnel sélectionné de une position vers le haut" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:115 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:80 msgid "Visibility" msgstr "Visibilité" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:120 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:85 msgid "Show" msgstr "Visible" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:122 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:87 msgid "Check if you want this field visible" msgstr "Activer si vous voulez avoir ce champ visible" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:128 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:93 msgid "Check if you want this field's text rotated 90 degrees" msgstr "Activer si vous voulez avoir le texte de ce champ tourné à 90°" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:134 -#: eeschema/dialog_edit_label_base.cpp:40 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:60 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:99 msgid "Bold" msgstr "Gras" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:134 -#: eeschema/dialog_edit_label_base.cpp:40 -#: eeschema/dialog_bodygraphictext_properties_base.cpp:60 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:99 msgid "Bold Italic" msgstr "Gras Italique" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:136 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:101 msgid "Style:" msgstr "Style:" @@ -8052,7 +7318,6 @@ msgid "The style of the currently selected field's text in the schemati" msgstr "Le style du texte du champ actuellement sélectionné" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:147 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:110 msgid "Field Name" msgstr "Nom Champ" @@ -8065,18 +7330,14 @@ msgstr "" "Quelques noms de champs fixés ne sont pas modifiables." #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:161 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:124 msgid "Field Value" msgstr "Texte Champ" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:166 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:115 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:129 msgid "The text (or value) of the currently selected field" msgstr "Le texte (ou la valeur) du champ actuellement sélectionné" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:175 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:138 msgid "Size(\")" msgstr "Taille(\")" @@ -8085,7 +7346,6 @@ msgid "The size of the currently selected field's text in the schematic" msgstr "La taille du texte du champ actuellement sélectionné" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:192 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:155 msgid "PosX(\")" msgstr "PosX" @@ -8094,12 +7354,10 @@ msgid "The X coordinate of the text relative to the component" msgstr "La position X du texte relativement au composant" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:206 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:167 msgid "PosY(\")" msgstr "PosY" #: eeschema/dialog_edit_component_in_schematic_fbp.cpp:211 -#: eeschema/dialog_edit_libentry_fields_in_lib_base.cpp:172 msgid "The Y coordinate of the text relative to the component" msgstr "La position Y du texte relativement au composant" @@ -8232,9 +7490,6 @@ msgid "Root" msgstr "Racine" #: eeschema/affiche.cpp:23 -#: eeschema/dialog_create_component.cpp:149 -#: eeschema/dialog_edit_libentry_fields_in_lib.cpp:151 -#: eeschema/dialog_edit_component_in_schematic.cpp:86 msgid "Name" msgstr "Nom" @@ -8267,7 +7522,6 @@ msgid "PinName" msgstr "Nom Pin" #: eeschema/affiche.cpp:81 -#: eeschema/eelayer.h:140 msgid "PinNum" msgstr "Num Pin" @@ -8287,7 +7541,6 @@ msgstr "oui" #: eeschema/affiche.cpp:177 #: eeschema/affiche.cpp:183 -#: eeschema/dialog_print_using_printer_base.cpp:52 msgid "All" msgstr "Tout" @@ -8304,12 +7557,10 @@ msgid "Number of units:" msgstr "Nombre de Parts:" #: eeschema/dialog_edit_component_in_lib.cpp:152 -#: eeschema/dialog_create_component.cpp:251 msgid "Skew:" msgstr "Décalage:" #: eeschema/dialog_edit_component_in_lib.cpp:158 -#: eeschema/dialog_create_component.cpp:176 msgid "Power symbol" msgstr "Symbole alimentation" @@ -8359,7 +7610,6 @@ msgstr "Eeschema est en cours d'exécution. Continuer ?" #: eeschema/netlist_control.cpp:131 #: eeschema/netlist_control.cpp:253 -#: gerbview/options.cpp:214 msgid "Default format" msgstr "Format par défaut" @@ -8381,7 +7631,6 @@ msgstr "&Supprimer" #: eeschema/netlist_control.cpp:175 #: eeschema/netlist_control.cpp:273 -#: cvpcb/cvframe.cpp:403 msgid "Netlist" msgstr "Netliste" @@ -8414,7 +7663,6 @@ msgid "Netlist command:" msgstr "Commande netliste:" #: eeschema/netlist_control.cpp:338 -#: share/setpage.cpp:347 msgid "Title:" msgstr "Titre:" @@ -8780,7 +8028,6 @@ msgid "Move Text " msgstr "Déplacer Texte" #: eeschema/libedit_onrightclick.cpp:126 -#: eeschema/dialog_edit_label_base.h:59 msgid "Text Editor" msgstr "Editeur de Texte" @@ -9118,81 +8365,15 @@ msgstr "Montrer Numéro de Pin" msgid "You must provide a name for this component" msgstr "Vous devez fournir un nom pour ce composant" -#: eeschema/dialog_eeschema_config.cpp:155 -msgid "save current configuration setting in the local .pro file" -msgstr "Sauve configuration courante dans le fichier .pro local" - -#: eeschema/dialog_eeschema_config.cpp:161 -msgid "NetList Formats:" -msgstr " Formats NetListe:" - -#: eeschema/dialog_eeschema_config.cpp:183 -msgid "Remove" -msgstr "Enlever" - -#: eeschema/dialog_eeschema_config.cpp:185 -msgid "Unload the selected library" -msgstr "Décharger la librairie sélectionnée" - -#: eeschema/dialog_eeschema_config.cpp:191 -msgid "Add a new library after the selected library, and load it" -msgstr "Ajouter une nouvelle librairie après la librairie sélectionnée, et la charger" - -#: eeschema/dialog_eeschema_config.cpp:196 -msgid "Add a new library before the selected library, and load it" -msgstr "Ajouter une nouvelle librairie avant la librairie sélectionnée, et la charger" - -#: eeschema/dialog_eeschema_config.cpp:198 -msgid "Add a new library beforer the selected library, add load it" -msgstr "Ajouter une nouvelle librairie avant la librairie sélectionnée, et la charger" - -#: eeschema/dialog_eeschema_config.cpp:213 -msgid "Default library file path:" -msgstr "Chemin par Défaut des Fichiers Librairies:" - -#: eeschema/dialog_eeschema_config.cpp:220 -msgid "" -"Default path to search libraries which have no absolute path in name,\n" -"or a name which does not start by ./ or ../\n" -"If void, the default path is kicad/library" -msgstr "" -"Chemin par défaut pour chercher les librairies qui n'ont pas de chemin absolu dans leur nom,\n" -"ou un nom qui ne commence pas par ./ ou ../ .\n" -"Si vide, le chemin par défaut est kicad/library" - -#: eeschema/dialog_eeschema_config.cpp:228 -msgid "Cmp file Ext: " -msgstr "Ext fichier Cmp: " - -#: eeschema/dialog_eeschema_config.cpp:232 -msgid "Net file Ext: " -msgstr "Ext fichier Netliste: " - -#: eeschema/dialog_eeschema_config.cpp:236 -msgid "Library file Ext: " -msgstr "Ext fichier Librairie: " - -#: eeschema/dialog_eeschema_config.cpp:240 -msgid "Symbol file Ext: " -msgstr "Ext fichier Symbole: " - -#: eeschema/dialog_eeschema_config.cpp:244 -msgid "Schematic file Ext: " -msgstr "Ext fichier Schéma: " - -#: eeschema/dialog_eeschema_config.cpp:465 +#: eeschema/dialog_eeschema_config.cpp:278 msgid " Default Path for libraries" msgstr "Chemin par défaut des librairies" #: eeschema/eeconfig.cpp:65 -#: cvpcb/menucfg.cpp:155 msgid "Read config file" msgstr "Lire config" #: eeschema/eeconfig.cpp:78 -#: kicad/files-io.cpp:132 -#: gerbview/dcode.cpp:289 -#: gerbview/readgerb.cpp:146 msgid "File " msgstr "Fichier " @@ -9238,7 +8419,6 @@ msgstr "" "#End List\n" #: eeschema/build_BOM.cpp:627 -#: eeschema/class_libentry_fields.cpp:140 msgid "Field" msgstr "Champ" @@ -9283,7 +8463,6 @@ msgid "#End labels\n" msgstr "#End labels\n" #: eeschema/eeredraw.cpp:130 -#: eeschema/eelayer.h:171 msgid "Sheet" msgstr "Feuille" @@ -9463,10 +8642,6 @@ msgstr "Aspect Texte:" #: eeschema/dialog_edit_libentry_fields_in_lib.cpp:160 #: eeschema/dialog_edit_libentry_fields_in_lib.cpp:165 -#: eeschema/dialog_edit_component_in_schematic.cpp:95 -#: eeschema/dialog_edit_component_in_schematic.cpp:100 -#: common/wxwineda.cpp:220 -#: common/wxwineda.cpp:233 msgid "Pos " msgstr "Pos " @@ -9609,6 +8784,79 @@ msgstr "Pas de nom de composant!" msgid "Component [%s] not found!" msgstr "Composant [%s] non trouvé!" +#: eeschema/dialog_eeschema_config_fbp.cpp:25 +msgid "NetList Formats:" +msgstr " Formats NetListe:" + +#: eeschema/dialog_eeschema_config_fbp.cpp:38 +msgid "Cmp file Ext: " +msgstr "Ext fichier Cmp: " + +#: eeschema/dialog_eeschema_config_fbp.cpp:42 +msgid "Net file Ext: " +msgstr "Ext fichier Netliste: " + +#: eeschema/dialog_eeschema_config_fbp.cpp:46 +msgid "Library file Ext: " +msgstr "Ext fichier Librairie: " + +#: eeschema/dialog_eeschema_config_fbp.cpp:50 +msgid "Symbol file Ext: " +msgstr "Ext fichier Symbole: " + +#: eeschema/dialog_eeschema_config_fbp.cpp:54 +msgid "Schematic file Ext: " +msgstr "Ext fichier Schéma: " + +#: eeschema/dialog_eeschema_config_fbp.cpp:70 +msgid "Active Libraries:" +msgstr "Librairies Actives:" + +#: eeschema/dialog_eeschema_config_fbp.cpp:75 +msgid "" +"List of active library files.\n" +"Only library files in this list are loaded by Eeschema.\n" +"The order of this list is important:\n" +"Eeschema searchs for a given component using this list order priority." +msgstr "" +"Liste des librairies actives.\n" +"Seuls les fichiers librairie dans cette liste sont chargés par eeschema.\n" +"L'ordre de cette liste est important:Eeschema cherche un composant donné en utilisant cette liste par ordre de priorité." + +#: eeschema/dialog_eeschema_config_fbp.cpp:85 +msgid "Remove" +msgstr "Enlever" + +#: eeschema/dialog_eeschema_config_fbp.cpp:87 +msgid "Unload the selected library" +msgstr "Décharger la librairie sélectionnée" + +#: eeschema/dialog_eeschema_config_fbp.cpp:93 +msgid "Add a new library after the selected library, and load it" +msgstr "Ajouter une nouvelle librairie après la librairie sélectionnée, et la charger" + +#: eeschema/dialog_eeschema_config_fbp.cpp:99 +msgid "Add a new library before the selected library, and load it" +msgstr "Ajouter une nouvelle librairie avant la librairie sélectionnée, et la charger" + +#: eeschema/dialog_eeschema_config_fbp.cpp:115 +msgid "Accept and save current configuration setting in the local .pro file" +msgstr "Acepter et sauver la configuration courante dans le fichier .pro local" + +#: eeschema/dialog_eeschema_config_fbp.cpp:127 +msgid "Default library file path:" +msgstr "Chemin par Défaut des Fichiers Librairies:" + +#: eeschema/dialog_eeschema_config_fbp.cpp:130 +msgid "" +"Default path to search libraries which have no absolute path in name,\n" +"or a name which does not start by ./ or ../\n" +"If void, the default path is kicad/share/library" +msgstr "" +"Chemin par défaut pour chercher les librairies qui n'ont pas de chemin absolu dans leur nom,\n" +"ou un nom qui ne commence pas par ./ ou ../ .\n" +"Si vide, le chemin par défaut est kicad/share/library" + #: eeschema/component_wizard/dialog_component_setup.cpp:137 msgid "Quick KICAD Library Component Builder" msgstr "" @@ -9791,7 +9039,6 @@ msgid "Equiv" msgstr "Equiv" #: cvpcb/genorcad.cpp:134 -#: cvpcb/writenetlistpcbnew.cpp:187 #, c-format msgid "%s %s pin %s : Different Nets" msgstr "%s %s pin %s : Nets Differents" @@ -9924,7 +9171,6 @@ msgid "Component %s: Footprint %s not found in libraries" msgstr "Composant %s: Module %s non trouvé en librairies" #: cvpcb/displayframe.cpp:121 -#: cvpcb/dialog_display_options.h:51 msgid "Display Options" msgstr "Options d'Affichage" @@ -9962,22 +9208,18 @@ msgid "Delete selections" msgstr "Effacement des associations existantes" #: cvpcb/cvframe.cpp:461 -#: common/drawframe.cpp:123 msgid "Dialog boxes" msgstr "Fenêtres de dialogue" #: cvpcb/cvframe.cpp:466 -#: common/drawframe.cpp:128 msgid "Lists" msgstr "Listes" #: cvpcb/cvframe.cpp:471 -#: common/drawframe.cpp:133 msgid "Status box" msgstr "Fenêtre d'état" #: cvpcb/cvframe.cpp:477 -#: common/drawframe.cpp:139 msgid "&Font" msgstr "&Fonte" @@ -10050,7 +9292,6 @@ msgid "&Apply" msgstr "&Appliquer" #: kicad/kicad.cpp:388 -#: kicad/treeprj_frame.cpp:534 msgid "noname" msgstr "noname" @@ -10297,7 +9538,6 @@ msgid "You must choose a PDF viewer before use this option" msgstr "Vous devez choisir un Visualisateur PDF avant d'utiliser cette option" #: kicad/preferences.cpp:105 -#: common/gestfich.cpp:677 msgid "Prefered Editor:" msgstr "Editeur préféré:" @@ -10355,101 +9595,101 @@ msgstr "Executer le Script Python:" msgid "Load file:" msgstr "Charger Fichier:" -#: kicad/treeprj_frame.cpp:110 +#: kicad/treeprj_frame.cpp:113 msgid "&Run" msgstr "Exécute&r" -#: kicad/treeprj_frame.cpp:111 +#: kicad/treeprj_frame.cpp:114 msgid "Run the Python Script" msgstr "Exécuter le Script Python" -#: kicad/treeprj_frame.cpp:120 -#: kicad/treeprj_frame.cpp:195 +#: kicad/treeprj_frame.cpp:123 +#: kicad/treeprj_frame.cpp:198 msgid "&Edit in a text editor" msgstr "Editer avec un éditeur de Texte" -#: kicad/treeprj_frame.cpp:121 +#: kicad/treeprj_frame.cpp:124 msgid "&Open the file in a Text Editor" msgstr "&Ouvrir le fichier avec un Editeur de texte" -#: kicad/treeprj_frame.cpp:138 +#: kicad/treeprj_frame.cpp:141 msgid "New D&irectory" msgstr "&Nouveau Répertoire" -#: kicad/treeprj_frame.cpp:139 +#: kicad/treeprj_frame.cpp:142 msgid "Create a New Directory" msgstr "Créer un nouveau Répertoire" -#: kicad/treeprj_frame.cpp:148 +#: kicad/treeprj_frame.cpp:151 msgid "New P&ython Script" msgstr "Nouveau Script P&ython" -#: kicad/treeprj_frame.cpp:149 +#: kicad/treeprj_frame.cpp:152 msgid "Create a New Python Script" msgstr "Créer un nouveau script Python" -#: kicad/treeprj_frame.cpp:158 +#: kicad/treeprj_frame.cpp:161 msgid "New &Text File" msgstr "Nouveau Fichier &Texte" -#: kicad/treeprj_frame.cpp:159 +#: kicad/treeprj_frame.cpp:162 msgid "Create a New Txt File" msgstr "Créer un nouveau Fichier texte" -#: kicad/treeprj_frame.cpp:167 +#: kicad/treeprj_frame.cpp:170 msgid "New &File" msgstr "Nouveau &Fichier" -#: kicad/treeprj_frame.cpp:168 +#: kicad/treeprj_frame.cpp:171 msgid "Create a New File" msgstr "Créer un nouveau Fichier" -#: kicad/treeprj_frame.cpp:182 +#: kicad/treeprj_frame.cpp:185 msgid "&Rename file" msgstr "&Renommer fichier" -#: kicad/treeprj_frame.cpp:183 -#: kicad/treeprj_frame.cpp:185 +#: kicad/treeprj_frame.cpp:186 +#: kicad/treeprj_frame.cpp:188 msgid "&Rename directory" msgstr "&Renommer répertoire" -#: kicad/treeprj_frame.cpp:184 +#: kicad/treeprj_frame.cpp:187 msgid "Rename file" msgstr "Renommer fichier" -#: kicad/treeprj_frame.cpp:196 +#: kicad/treeprj_frame.cpp:199 msgid "Open the file in a Text Editor" msgstr "Ouvrir le fichier avec un Editeur de texte" -#: kicad/treeprj_frame.cpp:204 +#: kicad/treeprj_frame.cpp:207 msgid "&Delete File" msgstr "&Supprimer Fichier" -#: kicad/treeprj_frame.cpp:205 +#: kicad/treeprj_frame.cpp:208 msgid "&Delete Directory" msgstr "&Supprimer le Répertoire" -#: kicad/treeprj_frame.cpp:206 +#: kicad/treeprj_frame.cpp:209 msgid "Delete the File" msgstr "Supprimer le fichier" -#: kicad/treeprj_frame.cpp:207 +#: kicad/treeprj_frame.cpp:210 msgid "&Delete the Directory and its content" msgstr "Effacer le Répertoire et son contenu" -#: kicad/treeprj_frame.cpp:531 +#: kicad/treeprj_frame.cpp:534 msgid "Create New File:" msgstr "Créer un nouveau Fichier" -#: kicad/treeprj_frame.cpp:532 +#: kicad/treeprj_frame.cpp:535 msgid "Create New Directory" msgstr "Créer un nouveau Répertoire" -#: kicad/treeprj_frame.cpp:1018 +#: kicad/treeprj_frame.cpp:1021 msgid "Change filename: " msgstr "Changer Nom Fichier: " -#: kicad/treeprj_frame.cpp:1020 +#: kicad/treeprj_frame.cpp:1023 msgid "Change filename" msgstr "Changer Nom Fichier" @@ -10530,7 +9770,7 @@ msgstr "Effacer Zones ?" msgid "Delete Layer %d" msgstr "Effacer Couche %d" -#: gerbview/gerbview.cpp:43 +#: gerbview/gerbview.cpp:45 msgid "GerbView is already running. Continue?" msgstr "Gerbview est en cours d'exécution. Continuer ?" @@ -10569,7 +9809,7 @@ msgstr "Commande <%c%c> ignorée par Gerbview" msgid "Too many include files!!" msgstr "Trop de fichiers inclus!!" -#: gerbview/gerberframe.cpp:185 +#: gerbview/gerberframe.cpp:189 msgid "Layer modified, Continue ?" msgstr "Couche modifiée, Continuer ?" @@ -10845,71 +10085,71 @@ msgstr "Fichier d'aide %s non trouvé" msgid "Help file %s could not be found." msgstr "Fichier d'aide %s non trouvé." -#: common/edaappl.cpp:91 +#: common/edaappl.cpp:92 msgid "Default" msgstr "Défaut" -#: common/edaappl.cpp:108 +#: common/edaappl.cpp:109 msgid "French" msgstr "Français" -#: common/edaappl.cpp:116 +#: common/edaappl.cpp:117 msgid "Spanish" msgstr "Espagnol" -#: common/edaappl.cpp:124 +#: common/edaappl.cpp:125 msgid "Portuguese" msgstr "Portugais" -#: common/edaappl.cpp:132 +#: common/edaappl.cpp:133 msgid "Italian" msgstr "Italien" -#: common/edaappl.cpp:140 +#: common/edaappl.cpp:141 msgid "German" msgstr "Allemand" -#: common/edaappl.cpp:148 +#: common/edaappl.cpp:149 msgid "Slovenian" msgstr "Slovène" -#: common/edaappl.cpp:156 +#: common/edaappl.cpp:157 msgid "Hungarian" msgstr "Hongrois" -#: common/edaappl.cpp:164 +#: common/edaappl.cpp:165 msgid "Polish" msgstr "Polonais" -#: common/edaappl.cpp:172 +#: common/edaappl.cpp:173 msgid "Czech" msgstr "Tchèque" -#: common/edaappl.cpp:180 +#: common/edaappl.cpp:181 msgid "Russian" msgstr "Russe" -#: common/edaappl.cpp:188 +#: common/edaappl.cpp:189 msgid "Korean" msgstr "Coréen" -#: common/edaappl.cpp:196 +#: common/edaappl.cpp:197 msgid "Chinese simplified" msgstr "Chinois Simplifié" -#: common/edaappl.cpp:204 +#: common/edaappl.cpp:205 msgid "Catalan" msgstr "Catalan" -#: common/edaappl.cpp:212 +#: common/edaappl.cpp:213 msgid "Dutch" msgstr "Hollandais" -#: common/edaappl.cpp:818 +#: common/edaappl.cpp:819 msgid "Language" msgstr "Langue" -#: common/edaappl.cpp:819 +#: common/edaappl.cpp:820 msgid "Select application language (only for testing!)" msgstr "Choisir la langue (seulement pour tests!)" @@ -11508,7 +10748,6 @@ msgid "Footprints Orientation" msgstr "Orientation des Modules" #: pcbnew/dialog_setup_libs.h:43 -#: eeschema/dialog_eeschema_config.h:50 msgid "Dialog" msgstr "Dialog" @@ -11525,7 +10764,6 @@ msgid "Tracks and Vias Sizes" msgstr "Dims Pistes et Vias" #: pcbnew/dialog_SVG_print_base.h:68 -#: eeschema/dialog_SVG_print_base.h:65 msgid "Create SVG file" msgstr "Créer Fichier SVG" @@ -11568,7 +10806,6 @@ msgid "Tech Layers" msgstr "Couches Tech." #: pcbnew/set_color.h:327 -#: gerbview/set_color.h:318 msgid "Others" msgstr "Autres" @@ -11920,3 +11157,8 @@ msgstr "DCodes id." msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "Add a new library beforer the selected library, add load it" +#~ msgstr "" +#~ "Ajouter une nouvelle librairie avant la librairie sélectionnée, et la " +#~ "charger" + diff --git a/kicad/makefile.g95 b/kicad/makefile.mingw similarity index 100% rename from kicad/makefile.g95 rename to kicad/makefile.mingw diff --git a/makefile.g95 b/makefile.mingw similarity index 78% rename from makefile.g95 rename to makefile.mingw index 275b9de662..61db54f4bd 100644 --- a/makefile.g95 +++ b/makefile.mingw @@ -1,9 +1,9 @@ KICAD_SUBDIRS = common bitmaps 3d-viewer polygon polygon/kbool/src eeschema eeschema/plugins pcbnew kicad cvpcb gerbview KICAD_SUBDIRS_BIN = eeschema eeschema/plugins pcbnew cvpcb kicad gerbview # How to invoke make: -MAKE = make -k -f makefile.g95 -MAKE_INSTALL = make -f makefile.g95 install -MAKE_CLEAN = make -f makefile.g95 clean +MAKE = make -k -f makefile.mingw +MAKE_INSTALL = make -f makefile.mingw install +MAKE_CLEAN = make -f makefile.mingw clean all: @for d in $(KICAD_SUBDIRS); do (cd $$d && $(MAKE)); done diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index 3325af6dc6..d2fa1a4496 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -70,11 +70,19 @@ void ZONE_CONTAINER::SetNet( int anet_code ) if( m_Parent ) { - EQUIPOT* net = ( (BOARD*) m_Parent )->FindNet( anet_code ); + BOARD* board = (BOARD*) m_Parent; + EQUIPOT* net = board->FindNet( anet_code ); if( net ) m_Netname = net->GetNetname(); else m_Netname.Empty(); + + // Set corresponding SEGZONE items if this zone uses fill areas by segments + for( SEGZONE* zseg = board->m_Zone; zseg; zseg = zseg->Next() ) + { + if ( zseg->m_TimeStamp == m_TimeStamp ) + zseg->SetNet(GetNet()); + } } else m_Netname.Empty(); diff --git a/pcbnew/librairi.cpp b/pcbnew/librairi.cpp index 74d3ea40e1..849c167397 100644 --- a/pcbnew/librairi.cpp +++ b/pcbnew/librairi.cpp @@ -77,7 +77,7 @@ MODULE* WinEDA_ModuleEditFrame::Import_Module( wxDC* DC ) if( file == NULL ) { wxString msg; - msg.Printf( _( "File <%s> not found" ), dlg.GetPath() ); + msg.Printf( _( "File <%s> not found" ), dlg.GetPath().GetData() ); DisplayError( this, msg ); return NULL; } diff --git a/pcbnew/makefile.include b/pcbnew/makefile.include index 16128502b0..010b988a44 100644 --- a/pcbnew/makefile.include +++ b/pcbnew/makefile.include @@ -1,5 +1,5 @@ -EXTRALIBS = ../common/common.a ../bitmaps/libbitmaps.a\ +EXTRALIBS = ../common/common.a ../common/pcbcommon.a ../bitmaps/libbitmaps.a\ ../polygon/lib_polygon.a\ ../polygon/kbool/src/libkbool.a @@ -49,14 +49,7 @@ OBJECTS= $(TARGET).o\ setpage.o \ tool_pcb.o \ pcbframe.o \ - class_drawsegment.o \ - class_track.o \ class_cotation.o\ - class_equipot.o \ - class_module.o \ - class_edge_mod.o \ - class_text_mod.o\ - class_board_item.o\ track.o \ set_color.o \ set_grid.o \ @@ -65,7 +58,6 @@ OBJECTS= $(TARGET).o\ affiche.o \ swap_layers.o \ tracepcb.o \ - tracemod.o \ trpiste.o \ surbrill.o \ edit_pcb_text.o \ @@ -154,16 +146,6 @@ export_gencad.o: export_gencad.cpp print_board_functions.o: print_board_functions.cpp -class_track.o: class_track.cpp class_track.h - -class_equipot.o: class_equipot.cpp - -class_module.o: class_module.cpp - -class_edge_mod.o: class_edge_mod.cpp - -class_text_mod.o: class_text_mod.cpp - pcbnew.o: pcbnew.cpp pcbnew.h pcbplot.h drag.h \ autorout.h ../include/eda_dde.h @@ -179,8 +161,6 @@ swap_layers.o: swap_layers.cpp tracepcb.o: tracepcb.cpp -tracemod.o: tracemod.cpp ../include/grfonte.h - trpiste.o: trpiste.cpp surbrill.o: surbrill.cpp diff --git a/pcbnew/makefile.g95 b/pcbnew/makefile.mingw similarity index 93% rename from pcbnew/makefile.g95 rename to pcbnew/makefile.mingw index bc07fb9471..4a59c42e39 100644 --- a/pcbnew/makefile.g95 +++ b/pcbnew/makefile.mingw @@ -11,7 +11,7 @@ all: $(TARGET).exe include makefile.include $(TARGET).exe: $(OBJECTS) $(TARGET)_resources.o\ - $(EDALIBS) $(LIBVIEWER3D) makefile.g95 + $(EDALIBS) $(LIBVIEWER3D) makefile.mingw $(CXX) $(ALL_LDFLAGS) -o $(TARGET).exe\ $(OBJECTS) $(LIBVIEWER3D) $(TARGET)_resources.o $(EDALIBS) $(SYSWXLIB) diff --git a/polygon/kbool/src/makefile.g95 b/polygon/kbool/src/makefile.mingw similarity index 100% rename from polygon/kbool/src/makefile.g95 rename to polygon/kbool/src/makefile.mingw diff --git a/polygon/makefile.g95 b/polygon/makefile.mingw similarity index 100% rename from polygon/makefile.g95 rename to polygon/makefile.mingw