diff --git a/common/common.cpp b/common/common.cpp index d7dfe30301..9dc1d5d106 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -265,7 +265,8 @@ wxString ReturnUnitSymbol( int Units ) void AddUnitSymbol( wxStaticText& Stext, int Units ) /**************************************************/ { - wxString msg = Stext.GetLabel() + ReturnUnitSymbol( Units ); + wxString msg = Stext.GetLabel(); + msg += ReturnUnitSymbol( Units ); Stext.SetLabel( msg ); } diff --git a/eeschema/schematic_undo_redo.cpp b/eeschema/schematic_undo_redo.cpp index 8e2426f3df..92d85bfbf5 100644 --- a/eeschema/schematic_undo_redo.cpp +++ b/eeschema/schematic_undo_redo.cpp @@ -271,7 +271,6 @@ void WinEDA_SchematicFrame::SaveCopyInUndoList( PICKED_ITEMS_LIST& aItemsList, UndoRedoOpType aTypeCommand, const wxPoint& aTransformPoint ) { - SCH_ITEM* CopyOfItem; PICKED_ITEMS_LIST* commandToUndo = new PICKED_ITEMS_LIST(); commandToUndo->m_TransformPoint = aTransformPoint; // Copy picker list: @@ -342,7 +341,9 @@ void WinEDA_SchematicFrame::PutDataInPreviousState( PICKED_ITEMS_LIST* aList, bo SCH_ITEM* item; SCH_ITEM* alt_item; - for( unsigned ii = 0; ii < aList->GetCount(); ii++ ) + // Undo in the reverse order of list creation: (this can allow stacked changes + // like the same item can be changes and deleted in the same complex command + for( int ii = aList->GetCount()-1; ii >= 0 ; ii-- ) { ITEM_PICKER itemWrapper = aList->GetItemWrapper( ii ); item = (SCH_ITEM*) itemWrapper.m_PickedItem; @@ -420,12 +421,16 @@ void WinEDA_SchematicFrame::GetSchematicFromUndoList(wxCommandEvent& event) if( GetScreen()->GetUndoCommandCount() <= 0 ) return; - /* Get the old wrapper and put it in RedoList */ + /* Get the old list */ PICKED_ITEMS_LIST* List = GetScreen()->PopCommandFromUndoList(); - GetScreen()->PushCommandToRedoList( List ); + /* Undo the command */ PutDataInPreviousState( List, false ); + /* Put the old list in RedoList */ + List->ReversePickersListOrder(); + GetScreen()->PushCommandToRedoList( List ); + CurrentDrawItem = NULL; GetScreen()->SetModify(); SetSheetNumberAndCount(); @@ -451,13 +456,16 @@ void WinEDA_SchematicFrame::GetSchematicFromRedoList(wxCommandEvent& event) return; - /* Get the old wrapper and put it in UndoList */ + /* Get the old list */ PICKED_ITEMS_LIST* List = GetScreen()->PopCommandFromRedoList(); - GetScreen()->PushCommandToUndoList( List ); /* Redo the command: */ PutDataInPreviousState( List, true ); + /* Put the old list in UndoList */ + List->ReversePickersListOrder(); + GetScreen()->PushCommandToUndoList( List ); + CurrentDrawItem = NULL; GetScreen()->SetModify(); SetSheetNumberAndCount(); diff --git a/include/base_struct.h b/include/base_struct.h index 74bd376007..f97dbfcdcd 100644 --- a/include/base_struct.h +++ b/include/base_struct.h @@ -36,7 +36,7 @@ enum KICAD_T { TYPE_TRACK, // a track segment (segment on a copper layer) TYPE_VIA, // a via (like atrack segment on a copper layer) TYPE_ZONE, // a segment used to fill a zome area (segment on a copper layer) - TYPE_MARKER_PCB, // a marker used to show something + TYPE_MARKER_PCB, // a marker used to show something TYPE_COTATION, // a dimension (graphic item) TYPE_MIRE, // a target (graphic item) TYPE_ZONE_EDGE_CORNER, // in zone outline: a point to define an outline diff --git a/include/wxBasePcbFrame.h b/include/wxBasePcbFrame.h index 4917019ae8..89f41f45b7 100644 --- a/include/wxBasePcbFrame.h +++ b/include/wxBasePcbFrame.h @@ -173,7 +173,6 @@ public: int DrawMode, int color, int type ); // Gestion des modules - void InstallModuleOptionsFrame( MODULE* Module, wxDC * DC ); MODULE* Copie_Module( MODULE* module ); /** Function Save_Module_In_Library @@ -202,9 +201,6 @@ public: bool incremental ); void Place_Module( MODULE* module, wxDC* DC, bool aDoNotRecreateRatsnest = false ); - // Graphic items edition: - void InstallGraphicItemPropertiesDialog( DRAWSEGMENT* aItem, wxDC* aDC ); - // module texts void RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ); void DeleteTextModule( TEXTE_MODULE* Text ); @@ -213,8 +209,7 @@ public: TEXTE_MODULE* CreateTextModule( MODULE* Module, wxDC* DC ); void InstallPadOptionsFrame( D_PAD* pad, wxDC* DC, const wxPoint& pos ); - void InstallTextModOptionsFrame( TEXTE_MODULE* TextMod, - wxDC* DC, const wxPoint& pos ); + void InstallTextModOptionsFrame( TEXTE_MODULE* TextMod, wxDC* DC ); // Pads sur modules void AddPad( MODULE* Module, bool draw ); diff --git a/include/wxPcbStruct.h b/include/wxPcbStruct.h index e9934fac6f..377539be4b 100644 --- a/include/wxPcbStruct.h +++ b/include/wxPcbStruct.h @@ -333,11 +333,13 @@ public: // Graphic Segments type DRAWSEGMENT void Start_Move_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC ); void Place_DrawItem( DRAWSEGMENT* drawitem, wxDC* DC ); + void InstallGraphicItemPropertiesDialog( DRAWSEGMENT* aItem, wxDC* aDC ); // Graphic items edition // Footprint edition (see also WinEDA_BasePcbFrame) + void InstallModuleOptionsFrame( MODULE* Module, wxDC * DC ); void StartMove_Module( MODULE* module, wxDC* DC ); bool Delete_Module( MODULE* module, wxDC* DC, bool aAskBeforeDeleting ); - void Change_Side_Module( MODULE* Module, wxDC* DC ); + void Change_Side_Module( MODULE* Module, wxDC* DC ); void InstallExchangeModuleFrame( MODULE* ExchangeModuleModule ); /** function Exchange_Module @@ -578,7 +580,7 @@ public: DRAWSEGMENT* Begin_DrawSegment( DRAWSEGMENT* Segment, int shape, wxDC* DC ); void End_Edge( DRAWSEGMENT* Segment, wxDC* DC ); void Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC ); - void Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC ); + void Delete_Drawings_All_Layer( int aLayer ); // Dimension handling: void Install_Edit_Cotation( COTATION* Cotation, wxDC* DC, const wxPoint& pos ); diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index a69b620c0d..55af790508 100644 Binary files a/internat/fr/kicad.mo and b/internat/fr/kicad.mo differ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 9f24b890d6..fef606b70f 100644 --- a/internat/fr/kicad.po +++ b/internat/fr/kicad.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: kicad\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-07-20 20:16+0100\n" -"PO-Revision-Date: 2009-07-20 20:16+0100\n" +"POT-Creation-Date: 2009-08-10 08:15+0100\n" +"PO-Revision-Date: 2009-08-10 08:18+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -22,57 +22,57 @@ msgstr "" "X-Poedit-SearchPath-6: 3d-viewer\n" "X-Poedit-SearchPath-7: share\n" -#: pcbnew/xchgmod.cpp:172 +#: pcbnew/xchgmod.cpp:174 #, c-format msgid "file %s not found" msgstr "fichier %s non trouvé" -#: pcbnew/xchgmod.cpp:186 +#: pcbnew/xchgmod.cpp:188 #, c-format msgid "Unable to create file %s" msgstr "Impossible de créerle fichier <%s>" -#: pcbnew/xchgmod.cpp:291 +#: pcbnew/xchgmod.cpp:298 #, c-format msgid "Change modules <%s> -> <%s> (val = %s)?" msgstr "Change modules <%s> -> <%s> (val = %s)?" -#: pcbnew/xchgmod.cpp:298 +#: pcbnew/xchgmod.cpp:305 #, c-format msgid "Change modules <%s> -> <%s> ?" msgstr "Change modules <%s> -> <%s> ?" -#: pcbnew/xchgmod.cpp:355 +#: pcbnew/xchgmod.cpp:364 msgid "Change ALL modules ?" msgstr "Change TOUS les modules ?" -#: pcbnew/xchgmod.cpp:412 +#: pcbnew/xchgmod.cpp:426 #, c-format msgid "Change module %s (%s) " msgstr "Change module %s (%s) " -#: pcbnew/xchgmod.cpp:555 +#: pcbnew/xchgmod.cpp:577 msgid "No Modules!" msgstr "Pas de Modules!" -#: pcbnew/xchgmod.cpp:562 +#: pcbnew/xchgmod.cpp:584 msgid "Component files (." msgstr "Fichiers de composant (." -#: pcbnew/xchgmod.cpp:565 +#: pcbnew/xchgmod.cpp:587 msgid "Save Component Files" msgstr "Sauver Fichier Composant" -#: pcbnew/xchgmod.cpp:577 +#: pcbnew/xchgmod.cpp:599 #: pcbnew/plotdxf.cpp:27 msgid "Unable to create file " msgstr "Impossible de créer le fichier " -#: pcbnew/pcbnew.cpp:81 +#: pcbnew/pcbnew.cpp:82 msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est en cours d'exécution. Continuer ?" -#: pcbnew/via_edit.cpp:54 +#: pcbnew/via_edit.cpp:64 msgid "Incorrect value for Via drill. No via drill change" msgstr "Valeur incorrecte pour perçage. Pas de changement pour la via" @@ -263,6 +263,18 @@ msgstr "OK" msgid "Cancel" msgstr "Annuler" +#: pcbnew/class_marker_pcb.cpp:67 +msgid "Type" +msgstr "Type" + +#: pcbnew/class_marker_pcb.cpp:67 +msgid "Marker" +msgstr "Marqueur" + +#: pcbnew/class_marker_pcb.cpp:71 +msgid "ErrType" +msgstr "Type Err" + #: pcbnew/plotdxf.cpp:33 msgid "File" msgstr "Fichier" @@ -295,121 +307,121 @@ msgstr "Epaisseur" msgid "Layer:" msgstr "Couche:" -#: pcbnew/muonde.cpp:237 +#: pcbnew/muonde.cpp:238 msgid "Length(inch):" msgstr "Longueur (pouces):" -#: pcbnew/muonde.cpp:237 -#: pcbnew/muonde.cpp:243 +#: pcbnew/muonde.cpp:238 +#: pcbnew/muonde.cpp:244 msgid "Length" msgstr "Longueur" -#: pcbnew/muonde.cpp:243 +#: pcbnew/muonde.cpp:244 msgid "Length(mm):" msgstr "Long. (mm):" -#: pcbnew/muonde.cpp:251 -#: pcbnew/muonde.cpp:708 -#: pcbnew/muonde.cpp:721 +#: pcbnew/muonde.cpp:252 +#: pcbnew/muonde.cpp:709 +#: pcbnew/muonde.cpp:722 msgid "Incorrect number, abort" msgstr "Nombre incorrect, arrêt" -#: pcbnew/muonde.cpp:259 +#: pcbnew/muonde.cpp:260 msgid "Requested length < minimum length" msgstr "Longueur demandée < longueur minimum" -#: pcbnew/muonde.cpp:280 +#: pcbnew/muonde.cpp:281 msgid "Unable to create line: Requested length is too big" msgstr "Incapable de créer la ligne: longueur demandée trop grande" -#: pcbnew/muonde.cpp:291 +#: pcbnew/muonde.cpp:292 #, c-format msgid "Segm count = %d, Length = " msgstr "Nbr segm = %d, Longueur = " -#: pcbnew/muonde.cpp:669 +#: pcbnew/muonde.cpp:670 msgid "Gap" msgstr "Gap" -#: pcbnew/muonde.cpp:674 +#: pcbnew/muonde.cpp:675 msgid "Stub" msgstr "Stub" -#: pcbnew/muonde.cpp:680 +#: pcbnew/muonde.cpp:681 msgid "Arc Stub" msgstr "Arc Stub" -#: pcbnew/muonde.cpp:695 +#: pcbnew/muonde.cpp:696 msgid " (mm):" msgstr " (mm):" -#: pcbnew/muonde.cpp:701 +#: pcbnew/muonde.cpp:702 msgid " (inch):" msgstr " (pouce):" -#: pcbnew/muonde.cpp:703 -#: pcbnew/muonde.cpp:718 +#: pcbnew/muonde.cpp:704 +#: pcbnew/muonde.cpp:719 msgid "Create microwave module" msgstr "Créer Module MicroOnde" -#: pcbnew/muonde.cpp:717 +#: pcbnew/muonde.cpp:718 msgid "Angle (0.1deg):" msgstr "Angle (0.1deg):" -#: pcbnew/muonde.cpp:848 +#: pcbnew/muonde.cpp:849 msgid "Complex shape" msgstr "Forme complexe" -#: pcbnew/muonde.cpp:871 +#: pcbnew/muonde.cpp:872 msgid "Read Shape Descr File..." msgstr "Lire fichier de description de forme..." -#: pcbnew/muonde.cpp:874 +#: pcbnew/muonde.cpp:875 msgid "Symmetrical" msgstr "Symétrique" -#: pcbnew/muonde.cpp:874 +#: pcbnew/muonde.cpp:875 msgid "Mirrored" msgstr "Miroir" -#: pcbnew/muonde.cpp:876 +#: pcbnew/muonde.cpp:877 msgid "Shape Option" msgstr "Option Forme" -#: pcbnew/muonde.cpp:942 +#: pcbnew/muonde.cpp:943 msgid "Read descr shape file" msgstr "Lire fichier de description de forme" -#: pcbnew/muonde.cpp:958 +#: pcbnew/muonde.cpp:959 msgid "File not found" msgstr "fichier non trouvé" -#: pcbnew/muonde.cpp:1065 +#: pcbnew/muonde.cpp:1066 msgid "Shape has a null size!" msgstr "La forme a une taille nulle" -#: pcbnew/muonde.cpp:1070 +#: pcbnew/muonde.cpp:1071 msgid "Shape has no points!" msgstr "La forme n'a pas de points" -#: pcbnew/muonde.cpp:1177 +#: pcbnew/muonde.cpp:1178 msgid "No pad for this module" msgstr "Pas de pad dans ce module" -#: pcbnew/muonde.cpp:1182 +#: pcbnew/muonde.cpp:1183 msgid "Only one pad for this module" msgstr "Seulement un pad dans ce module" -#: pcbnew/muonde.cpp:1196 +#: pcbnew/muonde.cpp:1197 msgid "Gap (mm):" msgstr "Gap (mm):" -#: pcbnew/muonde.cpp:1196 -#: pcbnew/muonde.cpp:1202 +#: pcbnew/muonde.cpp:1197 +#: pcbnew/muonde.cpp:1203 msgid "Create Microwave Gap" msgstr "Créer Gap MicroOnde " -#: pcbnew/muonde.cpp:1202 +#: pcbnew/muonde.cpp:1203 msgid "Gap (inch):" msgstr "Gap (inch):" @@ -417,38 +429,38 @@ msgstr "Gap (inch):" msgid "unable to create file " msgstr "Impossible de créer fichier " -#: pcbnew/hotkeys.cpp:477 +#: pcbnew/hotkeys.cpp:478 #, c-format msgid "Footprint %s found, but locked" msgstr "Module %s trouvé, mais verrouillé" -#: pcbnew/hotkeys.cpp:639 +#: pcbnew/hotkeys.cpp:640 msgid "Delete module?" msgstr "Effacer Module?" #: pcbnew/editmod.cpp:41 -#: pcbnew/edit.cpp:340 +#: pcbnew/edit.cpp:253 msgid "Module Editor" msgstr "Ouvrir Editeur de modules" -#: pcbnew/editmod.cpp:135 +#: pcbnew/editmod.cpp:134 msgid "Text is REFERENCE!" msgstr "Le texte est la REFERENCE!" -#: pcbnew/editmod.cpp:140 +#: pcbnew/editmod.cpp:139 msgid "Text is VALUE!" msgstr "Le texte est la VALEUR!" -#: pcbnew/modedit.cpp:78 -#: pcbnew/controle.cpp:172 +#: pcbnew/modedit.cpp:74 +#: pcbnew/controle.cpp:173 msgid "Selection Clarification" msgstr "Clarification de la Sélection" -#: pcbnew/modedit.cpp:273 +#: pcbnew/modedit.cpp:269 msgid "Unable to find the footprint source on the main board" msgstr "Impossible de trouver le module source sur le PCB principal" -#: pcbnew/modedit.cpp:274 +#: pcbnew/modedit.cpp:270 msgid "" "\n" "Cannot update the footprint" @@ -456,11 +468,11 @@ msgstr "" "\n" "Ne peut mettre à jour le module" -#: pcbnew/modedit.cpp:282 +#: pcbnew/modedit.cpp:278 msgid "A footprint source was found on the main board" msgstr "Un module source a été trouvé sur le PCB principal" -#: pcbnew/modedit.cpp:283 +#: pcbnew/modedit.cpp:279 msgid "" "\n" "Cannot insert this footprint" @@ -485,37 +497,21 @@ msgid "Place anchor" msgstr "Place Ancre" #: pcbnew/modedit.cpp:439 -#: pcbnew/edit.cpp:773 +#: pcbnew/edit.cpp:679 msgid "Delete item" msgstr "Suppression d'éléments" -#: pcbnew/initpcb.cpp:133 -msgid "Current Board will be lost ?" -msgstr "Le C.I. courant sera perdu ?" +#: pcbnew/initpcb.cpp:46 +msgid "Ok to delete selected items ?" +msgstr "Ok pour effacer les éléments sélectionnés ?" -#: pcbnew/initpcb.cpp:187 -msgid "Delete Zones ?" -msgstr "Effacer Zones ?" +#: pcbnew/initpcb.cpp:155 +msgid "Current Board will be lost and this operation and cannot be undone. Continue ?" +msgstr "Le circuit actuel sera perdu et cette opération ne pourra pas être annulée. Continuer ?" -#: pcbnew/initpcb.cpp:208 -msgid "Delete Board edges ?" -msgstr "Effacement contour PCB" - -#: pcbnew/initpcb.cpp:213 -msgid "Delete draw items?" -msgstr "Suppression éléments graphiques?" - -#: pcbnew/initpcb.cpp:255 -msgid "Delete Tracks?" -msgstr "Effacer Pistes ?" - -#: pcbnew/initpcb.cpp:278 -msgid "Delete Modules?" -msgstr "Effacement des Modules?" - -#: pcbnew/initpcb.cpp:300 -msgid "Delete Pcb Texts" -msgstr "Effacer Textes Pcb" +#: pcbnew/initpcb.cpp:212 +msgid "Current Footprint will be lost and this operation and cannot be undone. Continue ?" +msgstr "Le module actuel sera perdu et cette opération ne pourra pas être annulée. Continuer ?" #: pcbnew/class_drc_item.cpp:39 msgid "Unconnected pads" @@ -597,47 +593,51 @@ msgstr "Trop petite dimension de via" msgid "Too small micro via size" msgstr "Trop petite dimension de microvia" -#: pcbnew/class_module.cpp:931 +#: pcbnew/class_module.cpp:824 msgid "Last Change" msgstr "Last Change" -#: pcbnew/class_module.cpp:937 +#: pcbnew/class_module.cpp:830 msgid "Netlist path" msgstr "Chemin Netliste " -#: pcbnew/class_module.cpp:941 +#: pcbnew/class_module.cpp:834 msgid "Layer" msgstr "Couche" -#: pcbnew/class_module.cpp:954 +#: pcbnew/class_module.cpp:847 msgid "Pads" msgstr "Pads" -#: pcbnew/class_module.cpp:962 +#: pcbnew/class_module.cpp:855 msgid "Stat" msgstr "Stat" -#: pcbnew/class_module.cpp:966 +#: pcbnew/class_module.cpp:859 msgid "Orient" msgstr "Orient" -#: pcbnew/class_module.cpp:969 +#: pcbnew/class_module.cpp:862 msgid "Module" msgstr "Module" -#: pcbnew/class_module.cpp:972 +#: pcbnew/class_module.cpp:868 +msgid "No 3D shape" +msgstr "Pas de forme 3D" + +#: pcbnew/class_module.cpp:869 msgid "3D-Shape" msgstr "Forme 3D" -#: pcbnew/class_module.cpp:976 +#: pcbnew/class_module.cpp:872 msgid "Doc: " msgstr "Doc: " -#: pcbnew/class_module.cpp:977 +#: pcbnew/class_module.cpp:873 msgid "KeyW: " msgstr "KeyW: " -#: pcbnew/tool_pcb.cpp:30 +#: pcbnew/tool_pcb.cpp:29 msgid "" "Show active layer selections\n" "and select layer pair for route and place via" @@ -645,155 +645,159 @@ msgstr "" "Affiche sélections couche active\n" "et sélection paire de couches pour routage et placement via" -#: pcbnew/tool_pcb.cpp:204 +#: pcbnew/tool_pcb.cpp:203 msgid "New board" msgstr "Nouveau Circuit Imprimé" -#: pcbnew/tool_pcb.cpp:206 +#: pcbnew/tool_pcb.cpp:205 msgid "Open existing board" msgstr "Ouvrir C.I. existant" -#: pcbnew/tool_pcb.cpp:208 +#: pcbnew/tool_pcb.cpp:207 msgid "Save board" msgstr "Sauver Circuit Imprimé" -#: pcbnew/tool_pcb.cpp:212 +#: pcbnew/tool_pcb.cpp:211 msgid "Page settings (size, texts)" msgstr "Ajustage de la feuille de dessin (dimensions, textes)" -#: pcbnew/tool_pcb.cpp:217 +#: pcbnew/tool_pcb.cpp:216 msgid "Open module editor" msgstr "Ouvrir Editeur de modules" -#: pcbnew/tool_pcb.cpp:221 +#: pcbnew/tool_pcb.cpp:220 msgid "Cut selected item" msgstr "Suppression des éléments sélectionnés" -#: pcbnew/tool_pcb.cpp:225 +#: pcbnew/tool_pcb.cpp:224 msgid "Copy selected item" msgstr "Copie des éléments sélectionnés" -#: pcbnew/tool_pcb.cpp:228 +#: pcbnew/tool_pcb.cpp:227 msgid "Paste" msgstr "Copie des éléments sauvegardés" #: pcbnew/tool_pcb.cpp:232 -msgid "Undelete" -msgstr "Annulation du dernier effacement" +msgid "Undo last edition" +msgstr "Défait dernière édition" -#: pcbnew/tool_pcb.cpp:236 +#: pcbnew/tool_pcb.cpp:234 +msgid "Redo the last undo command" +msgstr "Refait la dernière commande defaite" + +#: pcbnew/tool_pcb.cpp:238 msgid "Print board" msgstr "Imprimer C.I." -#: pcbnew/tool_pcb.cpp:238 +#: pcbnew/tool_pcb.cpp:240 msgid "Plot (HPGL, PostScript, or GERBER format)" msgstr "Tracer en format HPGL, POSTSCRIPT ou GERBER" -#: pcbnew/tool_pcb.cpp:241 +#: pcbnew/tool_pcb.cpp:243 msgid "Zoom in" msgstr "Zoom +" -#: pcbnew/tool_pcb.cpp:246 +#: pcbnew/tool_pcb.cpp:248 msgid "Zoom out" msgstr "Zoom -" -#: pcbnew/tool_pcb.cpp:251 +#: pcbnew/tool_pcb.cpp:253 msgid "Redraw view" msgstr "Redessin de l'écran" -#: pcbnew/tool_pcb.cpp:258 +#: pcbnew/tool_pcb.cpp:260 msgid "Zoom auto" msgstr "Zoom Automatique" -#: pcbnew/tool_pcb.cpp:261 +#: pcbnew/tool_pcb.cpp:263 msgid "Find components and texts" msgstr "Recherche de composants et textes" -#: pcbnew/tool_pcb.cpp:269 +#: pcbnew/tool_pcb.cpp:271 msgid "Read netlist" msgstr "Lire Netliste" -#: pcbnew/tool_pcb.cpp:271 +#: pcbnew/tool_pcb.cpp:273 msgid "Pcb Design Rules Check" msgstr "Contrôle des règles de conception" -#: pcbnew/tool_pcb.cpp:283 +#: pcbnew/tool_pcb.cpp:285 msgid "Mode Module: Manual and Automatic Move or Place for modules" msgstr "Mode Module: Déplacements ou Placement Manuel ou Automatique des modules" -#: pcbnew/tool_pcb.cpp:287 +#: pcbnew/tool_pcb.cpp:289 msgid "Mode Track and Autorouting" msgstr "Mode Pistes et Autoroutage" -#: pcbnew/tool_pcb.cpp:293 +#: pcbnew/tool_pcb.cpp:295 msgid "Fast access to theWeb Based FreeROUTE advanced router" msgstr "Acces rapide au routeur avancé FreeROUTE sur le Web" -#: pcbnew/tool_pcb.cpp:320 +#: pcbnew/tool_pcb.cpp:322 msgid "Drc OFF" msgstr "Drc DESACTIVEE" -#: pcbnew/tool_pcb.cpp:323 +#: pcbnew/tool_pcb.cpp:325 msgid "Display Grid OFF" msgstr "Suppression de l'affichage de la grille" -#: pcbnew/tool_pcb.cpp:326 +#: pcbnew/tool_pcb.cpp:328 msgid "Display Polar Coord ON" msgstr "Activer affichage coord Polaires" -#: pcbnew/tool_pcb.cpp:329 +#: pcbnew/tool_pcb.cpp:331 msgid "Units in inches" msgstr "Unités en pouces" -#: pcbnew/tool_pcb.cpp:332 +#: pcbnew/tool_pcb.cpp:334 msgid "Units in millimeters" msgstr "Unités en millimètres" -#: pcbnew/tool_pcb.cpp:335 +#: pcbnew/tool_pcb.cpp:337 msgid "Change Cursor Shape" msgstr "Sélection de la forme du curseur" -#: pcbnew/tool_pcb.cpp:340 +#: pcbnew/tool_pcb.cpp:342 msgid "Show General Ratsnest" msgstr "Montrer le chevelu général" -#: pcbnew/tool_pcb.cpp:343 +#: pcbnew/tool_pcb.cpp:345 msgid "Show Module Ratsnest when moving" msgstr "Montrer le chevelu du module pendant déplacement" -#: pcbnew/tool_pcb.cpp:349 +#: pcbnew/tool_pcb.cpp:351 msgid "Enable Auto Del Track" msgstr "Autoriser l'effacement automatique des pistes" -#: pcbnew/tool_pcb.cpp:354 +#: pcbnew/tool_pcb.cpp:356 msgid "Show filled areas in zones" msgstr "Afficher les surfaces remplies dans les zones" -#: pcbnew/tool_pcb.cpp:357 +#: pcbnew/tool_pcb.cpp:359 msgid "Do not show filled areas in zones" msgstr "Ne pas afficher les surfaces remplies dans les zones" -#: pcbnew/tool_pcb.cpp:360 +#: pcbnew/tool_pcb.cpp:362 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_pcb.cpp:367 msgid "Show Pads Sketch" msgstr "Afficher pastilles en contour" -#: pcbnew/tool_pcb.cpp:369 +#: pcbnew/tool_pcb.cpp:371 msgid "Show Tracks Sketch" msgstr "Afficher Pistes en Contour" -#: pcbnew/tool_pcb.cpp:374 +#: pcbnew/tool_pcb.cpp:376 msgid "High Contrast Mode Display" msgstr "Mode d'affichage Haut Contraste" -#: pcbnew/tool_pcb.cpp:381 +#: pcbnew/tool_pcb.cpp:383 msgid "Show Invisible Text" msgstr "Montrer textes invisibles" -#: pcbnew/tool_pcb.cpp:392 +#: pcbnew/tool_pcb.cpp:394 msgid "" "Display/remove auxiliary vertical toolbar (tools for micro wave applications)\n" " This is a experimental feature (under development)" @@ -801,79 +805,79 @@ msgstr "" "Affiche/supprime le toolbar vertical auxiliaire (outils pour applications micro-ondes)\n" "C'est un outil expérimental (en cours de développement)" -#: pcbnew/tool_pcb.cpp:422 +#: pcbnew/tool_pcb.cpp:424 msgid "Net highlight" msgstr "Surbrillance des équipotentielles" -#: pcbnew/tool_pcb.cpp:427 +#: pcbnew/tool_pcb.cpp:429 msgid "Display local ratsnest (pad or module)" msgstr "Afficher le chevelu local (pastilles ou modules)" -#: pcbnew/tool_pcb.cpp:433 +#: pcbnew/tool_pcb.cpp:435 msgid "Add modules" msgstr "Addition de Modules" -#: pcbnew/tool_pcb.cpp:437 +#: pcbnew/tool_pcb.cpp:439 msgid "Add tracks and vias" msgstr "Ajouter pistes et vias" -#: pcbnew/tool_pcb.cpp:441 +#: pcbnew/tool_pcb.cpp:443 msgid "Add zones" msgstr "Addition de Zones" -#: pcbnew/tool_pcb.cpp:446 +#: pcbnew/tool_pcb.cpp:448 msgid "Add graphic line or polygon" msgstr "Addition de lignes ou polygones graphiques" -#: pcbnew/tool_pcb.cpp:450 +#: pcbnew/tool_pcb.cpp:452 msgid "Add graphic circle" msgstr "Addition de graphiques (Cercle)" -#: pcbnew/tool_pcb.cpp:454 +#: pcbnew/tool_pcb.cpp:456 msgid "Add graphic arc" msgstr "Addition de graphiques (Arc de Cercle)" -#: pcbnew/tool_pcb.cpp:458 +#: pcbnew/tool_pcb.cpp:460 msgid "Add text" msgstr "Ajout de Texte" -#: pcbnew/tool_pcb.cpp:463 +#: pcbnew/tool_pcb.cpp:465 msgid "Add dimension" msgstr "Ajout des cotes" -#: pcbnew/tool_pcb.cpp:467 +#: pcbnew/tool_pcb.cpp:469 msgid "Add layer alignment target" msgstr "Ajouter Mire de superposition" -#: pcbnew/tool_pcb.cpp:472 +#: pcbnew/tool_pcb.cpp:474 msgid "Delete items" msgstr "Suppression d'éléments" -#: pcbnew/tool_pcb.cpp:477 +#: pcbnew/tool_pcb.cpp:479 msgid "Offset adjust for drill and place files" msgstr "Ajuste offset pour fichier de perçage et placement" -#: pcbnew/tool_pcb.cpp:503 +#: pcbnew/tool_pcb.cpp:505 msgid "Create line of specified length for microwave applications" msgstr "Création de lignes de longueur spécifiée (pour applications micro-ondes)" -#: pcbnew/tool_pcb.cpp:507 +#: pcbnew/tool_pcb.cpp:509 msgid "Create gap of specified length for microwave applications" msgstr "Création de gaps de longueur spécifiée (pour applications micro-ondes)" -#: pcbnew/tool_pcb.cpp:513 +#: pcbnew/tool_pcb.cpp:515 msgid "Create stub of specified length for microwave applications" msgstr "Création de stub de longueur spécifiée (pour applications micro-ondes)" -#: pcbnew/tool_pcb.cpp:517 +#: pcbnew/tool_pcb.cpp:519 msgid "Create stub (arc) of specified length for microwave applications" msgstr "Création de stub (arc) de longueur spécifiée (pour applications micro-ondes)" -#: pcbnew/tool_pcb.cpp:522 +#: pcbnew/tool_pcb.cpp:524 msgid "Create a polynomial shape for microwave applications" msgstr "Création de formes polynomiales (pour applications micro-ondes)" -#: pcbnew/tool_pcb.cpp:569 +#: pcbnew/tool_pcb.cpp:571 msgid "" "Auto track width: when starting on an existing track use its width\n" "otherwise, use current width setting" @@ -881,47 +885,47 @@ msgstr "" "Largeur de piste automatique: si on démarre sur une piste existante, utiliser sa largeur\n" " sinon utiliser la largeur courante" -#: pcbnew/tool_pcb.cpp:594 +#: pcbnew/tool_pcb.cpp:596 msgid "Auto" msgstr "Auto" -#: pcbnew/tool_pcb.cpp:598 +#: pcbnew/tool_pcb.cpp:600 msgid "Zoom " msgstr "Zoom " -#: pcbnew/tool_pcb.cpp:618 +#: pcbnew/tool_pcb.cpp:620 msgid "Grid" msgstr "Grille" -#: pcbnew/tool_pcb.cpp:636 +#: pcbnew/tool_pcb.cpp:638 msgid "User Grid" msgstr "Grille perso" -#: pcbnew/tool_pcb.cpp:748 +#: pcbnew/tool_pcb.cpp:750 msgid "+/- to switch" msgstr "+/- pour commuter" -#: pcbnew/deltrack.cpp:141 +#: pcbnew/deltrack.cpp:146 msgid "Delete NET ?" msgstr "Supprimer Net ?" -#: pcbnew/cross-probing.cpp:59 +#: pcbnew/cross-probing.cpp:60 #, c-format msgid "%s found" msgstr "%s trouvé" -#: pcbnew/cross-probing.cpp:61 -#: pcbnew/cross-probing.cpp:105 +#: pcbnew/cross-probing.cpp:62 +#: pcbnew/cross-probing.cpp:106 #, c-format msgid "%s not found" msgstr "%s non trouvé" -#: pcbnew/cross-probing.cpp:108 +#: pcbnew/cross-probing.cpp:109 #, c-format msgid "%s pin %s not found" msgstr "%s pin %s non trouvée" -#: pcbnew/cross-probing.cpp:114 +#: pcbnew/cross-probing.cpp:115 #, c-format msgid "%s pin %s found" msgstr "%s pin %s trouvée" @@ -934,192 +938,164 @@ msgstr "" "Plan de perçage: trop de diamètres différents pour tracer 1 symbole par diamètre (max 13)\n" "Le tracé utilise des cercles pour quelques valeurs " -#: pcbnew/edit.cpp:419 +#: pcbnew/edit.cpp:323 msgid "Add Tracks" msgstr "Addition de Pistes" -#: pcbnew/edit.cpp:428 +#: pcbnew/edit.cpp:332 msgid "Add Zones" msgstr "Addition de Zones" -#: pcbnew/edit.cpp:430 +#: pcbnew/edit.cpp:334 msgid "Warning: Display Zone is OFF!!!" msgstr "Attention: Affichage zones désactivé !!!" -#: pcbnew/edit.cpp:436 +#: pcbnew/edit.cpp:340 msgid "Add Layer Alignment Target" msgstr "Ajouter Mire de superposition" -#: pcbnew/edit.cpp:440 +#: pcbnew/edit.cpp:344 msgid "Adjust Zero" msgstr "Ajuster Zéro" -#: pcbnew/edit.cpp:446 +#: pcbnew/edit.cpp:350 msgid "Add Graphic" msgstr "Addition éléments graphiques" -#: pcbnew/edit.cpp:450 +#: pcbnew/edit.cpp:354 msgid "Add Text" msgstr "Ajout de Texte" -#: pcbnew/edit.cpp:454 +#: pcbnew/edit.cpp:358 msgid "Add Modules" msgstr "Addition de Modules" -#: pcbnew/edit.cpp:458 +#: pcbnew/edit.cpp:362 msgid "Add Dimension" msgstr "Ajout de cotes" -#: pcbnew/edit.cpp:466 +#: pcbnew/edit.cpp:370 msgid "Net Highlight" msgstr "Surbrillance des équipotentielles" -#: pcbnew/edit.cpp:470 +#: pcbnew/edit.cpp:374 msgid "Local Ratsnest" msgstr "Montrer le chevelu général" -#: pcbnew/move_or_drag_track.cpp:829 +#: pcbnew/move_or_drag_track.cpp:838 msgid "Unable to drag this segment: too many segments connected" msgstr "Impossible de dragger ce segment: trop de segments connectés" -#: pcbnew/move_or_drag_track.cpp:883 +#: pcbnew/move_or_drag_track.cpp:906 msgid "Unable to drag this segment: two collinear segments" msgstr "Impossible de dragger ce segment: 2 segments alignés" -#: pcbnew/block.cpp:125 +#: pcbnew/block.cpp:127 msgid "Include Modules" msgstr "Inclure Modules" -#: pcbnew/block.cpp:129 +#: pcbnew/block.cpp:133 msgid "Include tracks" msgstr "Inclure Pistes" -#: pcbnew/block.cpp:133 +#: pcbnew/block.cpp:138 msgid "Include zones" msgstr "Inclure zones" -#: pcbnew/block.cpp:138 +#: pcbnew/block.cpp:144 msgid "Include Text on copper layers" msgstr "Inclure Texte sur couches cuivre" -#: pcbnew/block.cpp:142 +#: pcbnew/block.cpp:150 msgid "Include drawings" msgstr "Inclure tracés" -#: pcbnew/block.cpp:146 +#: pcbnew/block.cpp:156 msgid "Include board outline layer" msgstr "Inclure couche contour pcb" -#: pcbnew/block.cpp:451 +#: pcbnew/block.cpp:600 msgid "Delete Block" msgstr "Effacer Bloc" -#: pcbnew/block.cpp:555 -msgid "Delete zones" -msgstr "SuppressionZones" - -#: pcbnew/block.cpp:596 +#: pcbnew/block.cpp:676 msgid "Rotate Block" msgstr "Rotation Bloc" -#: pcbnew/block.cpp:653 -msgid "Zone rotation" -msgstr "Rotation Zones" - -#: pcbnew/block.cpp:758 -msgid "Block mirroring" -msgstr "Bloc Miroir" - -#: pcbnew/block.cpp:942 +#: pcbnew/block.cpp:815 msgid "Move Block" msgstr "Déplacer Bloc" -#: pcbnew/block.cpp:1087 +#: pcbnew/block.cpp:884 msgid "Copy Block" msgstr "Copie Bloc" -#: pcbnew/pcbcfg.cpp:73 +#: pcbnew/pcbcfg.cpp:74 msgid "Read Project File" msgstr "Lire Fichier Projet" -#: pcbnew/pcbcfg.cpp:83 +#: pcbnew/pcbcfg.cpp:84 #, c-format msgid "File %s not found" msgstr "Fichier %s non trouvé" -#: pcbnew/pcbcfg.cpp:226 +#: pcbnew/pcbcfg.cpp:227 msgid "Save Project File" msgstr "Sauver Fichier Projet" -#: pcbnew/loadcmp.cpp:105 +#: pcbnew/loadcmp.cpp:106 msgid "Place module" msgstr "Place module" -#: pcbnew/loadcmp.cpp:219 -#: pcbnew/loadcmp.cpp:371 +#: pcbnew/loadcmp.cpp:220 +#: pcbnew/loadcmp.cpp:372 #, c-format msgid "PCB footprint library file <%s> not found in search paths." msgstr "Librairie modules PCB %s non trouvée dans les chemins de recherche" -#: pcbnew/loadcmp.cpp:221 -#: pcbnew/loadcmp.cpp:233 -#: pcbnew/loadcmp.cpp:249 -#: pcbnew/loadcmp.cpp:373 -#: pcbnew/loadcmp.cpp:409 +#: pcbnew/loadcmp.cpp:222 +#: pcbnew/loadcmp.cpp:234 +#: pcbnew/loadcmp.cpp:250 +#: pcbnew/loadcmp.cpp:374 +#: pcbnew/loadcmp.cpp:410 msgid "Library Load Error" msgstr "Erreur en Chargement de librairie" -#: pcbnew/loadcmp.cpp:231 +#: pcbnew/loadcmp.cpp:232 #, c-format msgid "Could not open PCB footprint library file <%s>." msgstr "Ne peut ouvrir le fichier librairie de modules PCB <%s>." -#: pcbnew/loadcmp.cpp:238 +#: pcbnew/loadcmp.cpp:239 #, c-format msgid "Scan Lib: %s" msgstr "Examen Lib: %s" -#: pcbnew/loadcmp.cpp:247 -#: pcbnew/loadcmp.cpp:407 +#: pcbnew/loadcmp.cpp:248 +#: pcbnew/loadcmp.cpp:408 #, c-format msgid "<%s> is not a valid Kicad PCB footprint library file." msgstr "<%s> n'est pas un fichier librarire de modules Kicad PCB valide." -#: pcbnew/loadcmp.cpp:314 +#: pcbnew/loadcmp.cpp:315 #, c-format msgid "Module <%s> not found" msgstr "Module <%s> non trouvé" -#: pcbnew/loadcmp.cpp:398 +#: pcbnew/loadcmp.cpp:399 msgid "Library " msgstr "Librairie " -#: pcbnew/loadcmp.cpp:398 +#: pcbnew/loadcmp.cpp:399 msgid " loaded" msgstr " chargé" -#: pcbnew/loadcmp.cpp:469 -#: pcbnew/loadcmp.cpp:621 +#: pcbnew/loadcmp.cpp:470 +#: pcbnew/loadcmp.cpp:622 #, c-format msgid "Modules [%d items]" msgstr "Modules [%d éléments]" -#: pcbnew/edgemod.cpp:205 -msgid "The graphic item will be on a copper layer.It is very dangerous. Are you sure" -msgstr "L'élément graphique sera sur une couche cuivre. C'est très dangereux. Etes vous sûr" - -#: pcbnew/edgemod.cpp:247 -msgid "New Width (1/10000\"):" -msgstr "Nouvelle largeur (1/10000\"):" - -#: pcbnew/edgemod.cpp:247 -msgid "Edge Width" -msgstr "Epaisseur Contour" - -#: pcbnew/edgemod.cpp:254 -msgid "Incorrect number, no change" -msgstr "Nombre incorrect, pas de changement" - #: pcbnew/surbrill.cpp:34 msgid "Filter for net names:" msgstr "Filtre pour nets:" @@ -1132,38 +1108,38 @@ msgstr "Filtre Equipot" msgid "List Nets" msgstr "Liste équipots" -#: pcbnew/drc.cpp:200 +#: pcbnew/drc.cpp:201 msgid "Compile Ratsnest" msgstr "Calcul du chevelu" -#: pcbnew/drc.cpp:203 -#: pcbnew/drc.cpp:227 +#: pcbnew/drc.cpp:204 +#: pcbnew/drc.cpp:228 msgid " Ok\n" msgstr " Ok\n" -#: pcbnew/drc.cpp:212 +#: pcbnew/drc.cpp:213 msgid "Test pads to pads clearance" msgstr "Test isolation pad a pad" -#: pcbnew/drc.cpp:215 -#: pcbnew/drc.cpp:234 -#: pcbnew/drc.cpp:243 +#: pcbnew/drc.cpp:216 +#: pcbnew/drc.cpp:235 +#: pcbnew/drc.cpp:244 msgid "\n" msgstr "\n" -#: pcbnew/drc.cpp:224 +#: pcbnew/drc.cpp:225 msgid "Fill zones" msgstr "Remplissage Zones" -#: pcbnew/drc.cpp:231 +#: pcbnew/drc.cpp:232 msgid "Test zones" msgstr "Test zones" -#: pcbnew/drc.cpp:240 +#: pcbnew/drc.cpp:241 msgid "List unconnected pads" msgstr "Liste pads non connectés" -#: pcbnew/drc.cpp:249 +#: pcbnew/drc.cpp:250 msgid "Finished\n" msgstr "Fini\n" @@ -1207,38 +1183,22 @@ msgstr "Connecte une extrémité de piste en l'air, lorsque elle couvre un pad o msgid "Clean pcb" msgstr "Nettoyage PCB" -#: pcbnew/mirepcb.cpp:78 +#: pcbnew/mirepcb.cpp:81 msgid "Target Properties" msgstr "Propriétés de la mire" -#: pcbnew/mirepcb.cpp:115 +#: pcbnew/mirepcb.cpp:118 msgid "shape +" msgstr "Forme +" -#: pcbnew/mirepcb.cpp:115 +#: pcbnew/mirepcb.cpp:118 msgid "shape X" msgstr "Forme X" -#: pcbnew/mirepcb.cpp:117 +#: pcbnew/mirepcb.cpp:120 msgid "Target Shape:" msgstr "Forme Mire:" -#: pcbnew/modules.cpp:82 -msgid "Name:" -msgstr "Nom:" - -#: pcbnew/modules.cpp:82 -msgid "Search footprint" -msgstr "Cherche Module" - -#: pcbnew/modules.cpp:306 -msgid "Delete Module" -msgstr "Supprimer Module" - -#: pcbnew/modules.cpp:307 -msgid "Value " -msgstr "Valeur " - #: pcbnew/set_grid.cpp:120 msgid "mm" msgstr "mm" @@ -1256,26 +1216,28 @@ msgid "User Grid Size Y" msgstr "Grille perso dim Y" #: pcbnew/set_grid.cpp:142 +#: pcbnew/dialog_initpcb.cpp:159 msgid "&OK" msgstr "&OK" #: pcbnew/set_grid.cpp:146 +#: pcbnew/dialog_initpcb.cpp:162 msgid "&Cancel" msgstr "&Annuler" -#: pcbnew/router.cpp:65 +#: pcbnew/router.cpp:66 msgid "Unable to create temporary file " msgstr "Impossible de créer le fichier temporaire " -#: pcbnew/router.cpp:70 +#: pcbnew/router.cpp:71 msgid "Create temporary file " msgstr "Création fichier temporaire " -#: pcbnew/router.cpp:572 +#: pcbnew/router.cpp:573 msgid "Unable to find data file " msgstr "Impossible de trouver le fichier de données " -#: pcbnew/router.cpp:578 +#: pcbnew/router.cpp:579 msgid "Reading autorouter data file " msgstr "Lecture fichier données de l'autorouteur" @@ -1327,77 +1289,73 @@ msgstr "Inclure Pistes Autoroutées" msgid "Include Locked Tracks" msgstr "Inclure Pistes Verrouillées" -#: pcbnew/class_drawsegment.cpp:341 -msgid "Type" -msgstr "Type" - -#: pcbnew/class_drawsegment.cpp:343 +#: pcbnew/class_drawsegment.cpp:372 msgid "Shape" msgstr "Forme" -#: pcbnew/class_drawsegment.cpp:347 +#: pcbnew/class_drawsegment.cpp:376 msgid "Circle" msgstr "Cercle" -#: pcbnew/class_drawsegment.cpp:351 +#: pcbnew/class_drawsegment.cpp:380 msgid "Arc" msgstr "Arc" -#: pcbnew/class_drawsegment.cpp:354 +#: pcbnew/class_drawsegment.cpp:383 msgid "Angle" msgstr "Angle" -#: pcbnew/class_drawsegment.cpp:357 +#: pcbnew/class_drawsegment.cpp:386 msgid "Curve" msgstr "Courbe" -#: pcbnew/class_drawsegment.cpp:361 +#: pcbnew/class_drawsegment.cpp:390 msgid "Segment" msgstr "Segment" -#: pcbnew/automove.cpp:213 +#: pcbnew/automove.cpp:214 msgid "Move Modules ?" msgstr "Déplacer Modules ?" -#: pcbnew/automove.cpp:221 +#: pcbnew/automove.cpp:222 msgid "Autoplace modules: No board edges detected. Unable to place modules" msgstr "Autoplace modules: Pas de contours sur pcb. Impossible de placer les modules" -#: pcbnew/find.cpp:116 +#: pcbnew/find.cpp:117 msgid "Marker found" msgstr "Marqueur trouvé" -#: pcbnew/find.cpp:118 +#: pcbnew/find.cpp:119 #, c-format msgid "<%s> Found" msgstr "<%s> trouvé" -#: pcbnew/find.cpp:131 +#: pcbnew/find.cpp:132 msgid "Marker not found" msgstr "Marqueur non trouvé" -#: pcbnew/find.cpp:133 +#: pcbnew/find.cpp:134 #, c-format msgid "<%s> Not Found" msgstr "<%s> Non trouvé" -#: pcbnew/find.cpp:236 +#: pcbnew/find.cpp:237 msgid "Item to find:" msgstr "Elément à chercher:" -#: pcbnew/find.cpp:248 +#: pcbnew/find.cpp:249 msgid "Find Item" msgstr "Chercher Item" -#: pcbnew/find.cpp:252 +#: pcbnew/find.cpp:253 msgid "Find Next Item" msgstr "Chercher Item Suivant" -#: pcbnew/find.cpp:258 +#: pcbnew/find.cpp:259 msgid "Find Marker" msgstr "Chercher Marqueur" -#: pcbnew/find.cpp:261 +#: pcbnew/find.cpp:262 msgid "Find Next Marker" msgstr "Marqueur Suivant" @@ -1417,155 +1375,159 @@ msgstr "Segment en cours d'édition" msgid "Delete Layer " msgstr "Effacer Couche" -#: pcbnew/files.cpp:21 +#: pcbnew/files.cpp:22 msgid "Printed circuit board" msgstr "Circuit imprimé" -#: pcbnew/files.cpp:85 +#: pcbnew/files.cpp:86 msgid "Recovery file " msgstr "Fichier de secours " -#: pcbnew/files.cpp:85 -#: pcbnew/librairi.cpp:243 +#: pcbnew/files.cpp:86 +#: pcbnew/librairi.cpp:244 msgid " not found" msgstr " non trouvé" -#: pcbnew/files.cpp:91 +#: pcbnew/files.cpp:92 msgid "Ok to load Recovery file " msgstr "Ok pour charger le fichier de secours" -#: pcbnew/files.cpp:152 +#: pcbnew/files.cpp:153 msgid "Board Modified: Continue ?" msgstr "Circuit imprimé modifié, Continuer ?" -#: pcbnew/files.cpp:173 +#: pcbnew/files.cpp:174 msgid "Open Board File:" msgstr "Ouvrir Fichier C.I.:" -#: pcbnew/files.cpp:200 -#: pcbnew/librairi.cpp:79 +#: pcbnew/files.cpp:201 +#: pcbnew/librairi.cpp:80 #, c-format msgid "File <%s> not found" msgstr " fichier %s non trouvé" -#: pcbnew/files.cpp:219 +#: pcbnew/files.cpp:220 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:223 +#: pcbnew/files.cpp:224 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:313 +#: pcbnew/files.cpp:314 msgid "Save Board File" msgstr "Sauver Fichier C.I." -#: pcbnew/files.cpp:347 +#: pcbnew/files.cpp:348 msgid "Warning: unable to create backup file " msgstr "Attention: impossible de créer un fichier backup " -#: pcbnew/files.cpp:364 -#: pcbnew/librairi.cpp:296 -#: pcbnew/librairi.cpp:445 -#: pcbnew/librairi.cpp:600 -#: pcbnew/librairi.cpp:803 +#: pcbnew/files.cpp:365 +#: pcbnew/librairi.cpp:297 +#: pcbnew/librairi.cpp:446 +#: pcbnew/librairi.cpp:601 +#: pcbnew/librairi.cpp:804 msgid "Unable to create " msgstr "Impossible de créer " -#: pcbnew/files.cpp:383 +#: pcbnew/files.cpp:384 msgid "Backup file: " msgstr "Fichier backup: " -#: pcbnew/files.cpp:387 +#: pcbnew/files.cpp:388 msgid "Wrote board file: " msgstr "Ecriture fichier CI: " -#: pcbnew/files.cpp:389 +#: pcbnew/files.cpp:390 msgid "Failed to create " msgstr "Impossible de créer fichier " -#: pcbnew/librairi.cpp:33 +#: pcbnew/librairi.cpp:34 msgid "Kicad foot print export files (*.emp)|*.emp" msgstr "Kicad fichiers export modules (*.emp)|*.emp" -#: pcbnew/librairi.cpp:67 +#: pcbnew/librairi.cpp:68 msgid "Import Footprint Module" msgstr "Importer Module" -#: pcbnew/librairi.cpp:99 +#: pcbnew/librairi.cpp:100 msgid "Not a module file" msgstr "N'est pas un fichier de Modules" -#: pcbnew/librairi.cpp:175 +#: pcbnew/librairi.cpp:176 msgid "Create New Library" msgstr "Créer un Nouvelle Librairie" -#: pcbnew/librairi.cpp:175 +#: pcbnew/librairi.cpp:176 msgid "Export Module" msgstr "Exporter Module" -#: pcbnew/librairi.cpp:189 +#: pcbnew/librairi.cpp:190 #, c-format msgid "Unable to create <%s>" msgstr "Incapable de créer <%s>" -#: pcbnew/librairi.cpp:209 +#: pcbnew/librairi.cpp:210 #, c-format msgid "Module exported in file <%s>" msgstr "Module exporté en fichier <%s>" -#: pcbnew/librairi.cpp:232 +#: pcbnew/librairi.cpp:233 #, c-format msgid "Ok to delete module %s in library %s" msgstr "Ok pour effacer module %s en librairie %s" -#: pcbnew/librairi.cpp:254 +#: pcbnew/librairi.cpp:255 msgid "Not a Library file" msgstr "N'est pas un fichier Librairie" -#: pcbnew/librairi.cpp:283 +#: pcbnew/librairi.cpp:284 #, c-format msgid "Module [%s] not found" msgstr "Module [%s] non trouvé" -#: pcbnew/librairi.cpp:381 +#: pcbnew/librairi.cpp:382 #, c-format msgid "Component %s deleted in library %s" msgstr "Composant %s supprimé en librairie %s" -#: pcbnew/librairi.cpp:408 +#: pcbnew/librairi.cpp:409 msgid " No modules to archive!" msgstr "Pas de Modules à archiver" -#: pcbnew/librairi.cpp:415 +#: pcbnew/librairi.cpp:416 msgid "Library" msgstr "Librairie" -#: pcbnew/librairi.cpp:432 +#: pcbnew/librairi.cpp:433 #, c-format msgid "File %s exists, OK to replace ?" msgstr "Fichier %s existant, OK pour remplacer ?" -#: pcbnew/librairi.cpp:511 +#: pcbnew/librairi.cpp:512 #, c-format msgid "Library %s not found" msgstr "Librairie %s non trouvée" -#: pcbnew/librairi.cpp:522 +#: pcbnew/librairi.cpp:523 +msgid "Name:" +msgstr "Nom:" + +#: pcbnew/librairi.cpp:523 msgid "Save module" msgstr "Sauver Module" -#: pcbnew/librairi.cpp:532 +#: pcbnew/librairi.cpp:533 #, c-format msgid "Unable to open %s" msgstr "Ne peut pas ouvrir \"%s\"" -#: pcbnew/librairi.cpp:542 +#: pcbnew/librairi.cpp:543 #, c-format msgid "File %s is not a eeschema library" msgstr "Fichier %s n'est pas une librairie eeschema" -#: pcbnew/librairi.cpp:571 +#: pcbnew/librairi.cpp:572 msgid "" "Module exists\n" " Line: " @@ -1573,84 +1535,120 @@ msgstr "" "Module existe\n" " Ligne " -#: pcbnew/librairi.cpp:693 +#: pcbnew/librairi.cpp:694 msgid "Component " msgstr "Composant" -#: pcbnew/librairi.cpp:694 +#: pcbnew/librairi.cpp:695 msgid " added in " msgstr " ajouté dans " -#: pcbnew/librairi.cpp:694 +#: pcbnew/librairi.cpp:695 msgid " replaced in " msgstr " remplacé dans " -#: pcbnew/librairi.cpp:721 +#: pcbnew/librairi.cpp:722 msgid "Module Reference:" msgstr "Référence Module" -#: pcbnew/librairi.cpp:721 +#: pcbnew/librairi.cpp:722 msgid "Module Creation" msgstr "Création de Module" -#: pcbnew/librairi.cpp:723 +#: pcbnew/librairi.cpp:724 msgid "No reference, aborted" msgstr "Pas de référence, abandon" -#: pcbnew/librairi.cpp:769 +#: pcbnew/librairi.cpp:770 msgid "Active Lib:" msgstr "Librairie Active:" -#: pcbnew/librairi.cpp:781 +#: pcbnew/librairi.cpp:782 msgid "Module Editor (lib: " msgstr "Editeur de modules (lib: " -#: pcbnew/librairi.cpp:796 +#: pcbnew/librairi.cpp:797 msgid "Library exists " msgstr "Librairie existante " -#: pcbnew/librairi.cpp:811 +#: pcbnew/librairi.cpp:812 msgid "Create error " msgstr "Erreur en création " -#: pcbnew/autorout.cpp:71 +#: pcbnew/moduleframe.cpp:229 +msgid "Module Editor: Module modified! Continue?" +msgstr "Editeur de Module: Module modifié! Continuer ?" + +#: pcbnew/moduleframe.cpp:338 +msgid "Polar Coords not show" +msgstr "Coord Polaires non affichées" + +#: pcbnew/moduleframe.cpp:339 +msgid "Display Polar Coords" +msgstr "Affichage coord Polaires" + +#: pcbnew/moduleframe.cpp:344 +msgid "Grid not show" +msgstr "Grille non montrée" + +#: pcbnew/moduleframe.cpp:344 +msgid "Show Grid" +msgstr "Afficher grille" + +#: pcbnew/moduleframe.cpp:354 +msgid "Show Pads Sketch mode" +msgstr "Afficher pastilles en contour" + +#: pcbnew/moduleframe.cpp:355 +msgid "Show pads filled mode" +msgstr "Afficher pastilles en mode plein" + +#: pcbnew/moduleframe.cpp:403 +msgid "3D Frame already opened" +msgstr "Fenêtre 3D déjà ouverte" + +#: pcbnew/moduleframe.cpp:407 +msgid "3D Viewer" +msgstr "Visu 3D" + +#: pcbnew/autorout.cpp:72 msgid "Net not selected" msgstr "Net non sélectionné" -#: pcbnew/autorout.cpp:79 +#: pcbnew/autorout.cpp:80 msgid "Module not selected" msgstr "Module non selectionné" -#: pcbnew/autorout.cpp:87 +#: pcbnew/autorout.cpp:88 msgid "Pad not selected" msgstr "Pad non sélectionné" -#: pcbnew/autorout.cpp:153 +#: pcbnew/autorout.cpp:154 msgid "No memory for autorouting" msgstr "Pas de mémoire pour autoroutage" -#: pcbnew/autorout.cpp:158 +#: pcbnew/autorout.cpp:159 msgid "Place Cells" msgstr "Place Cells" -#: pcbnew/set_color.cpp:263 -#: pcbnew/set_color.cpp:289 +#: pcbnew/set_color.cpp:261 +#: pcbnew/set_color.cpp:287 msgid "Show None" msgstr "Rien Afficher" -#: pcbnew/set_color.cpp:272 +#: pcbnew/set_color.cpp:270 msgid "Show All" msgstr "Tout Afficher" -#: pcbnew/set_color.cpp:284 +#: pcbnew/set_color.cpp:282 msgid "Switch on all of the copper layers" msgstr "Affiche toutes les couches cuivre" -#: pcbnew/set_color.cpp:292 +#: pcbnew/set_color.cpp:290 msgid "Switch off all of the copper layers" msgstr "N'affiche pas les couches cuivre" -#: pcbnew/set_color.cpp:351 +#: pcbnew/set_color.cpp:349 msgid "Apply" msgstr "Appliquer" @@ -1681,97 +1679,97 @@ msgstr "" "Votre PCB a un mauvais numero de couche %u pour le module\n" " %s's \"texte module\" de %s." -#: pcbnew/dialog_edit_module.cpp:50 +#: pcbnew/dialog_edit_module.cpp:51 msgid "Module properties" msgstr "Propriétés du Module" -#: pcbnew/dialog_edit_module.cpp:102 +#: pcbnew/dialog_edit_module.cpp:103 msgid "Properties" msgstr "Propriétés" -#: pcbnew/dialog_edit_module.cpp:106 -#: pcbnew/dialog_edit_module.cpp:115 -#: pcbnew/dialog_edit_module.cpp:142 +#: pcbnew/dialog_edit_module.cpp:107 +#: pcbnew/dialog_edit_module.cpp:118 +#: pcbnew/dialog_edit_module.cpp:146 msgid "3D settings" msgstr "3D Caract" -#: pcbnew/dialog_edit_module.cpp:189 +#: pcbnew/dialog_edit_module.cpp:193 msgid "X" msgstr "X" -#: pcbnew/dialog_edit_module.cpp:190 +#: pcbnew/dialog_edit_module.cpp:194 msgid "Y" msgstr "Y" -#: pcbnew/dialog_edit_module.cpp:192 +#: pcbnew/dialog_edit_module.cpp:196 msgid "Change module(s)" msgstr "Change module(s)" -#: pcbnew/dialog_edit_module.cpp:195 +#: pcbnew/dialog_edit_module.cpp:199 msgid "Edit Module" msgstr "Edit Module" -#: pcbnew/dialog_edit_module.cpp:198 +#: pcbnew/dialog_edit_module.cpp:202 msgid "Position" msgstr "Position" -#: pcbnew/dialog_edit_module.cpp:223 +#: pcbnew/dialog_edit_module.cpp:227 msgid "Doc" msgstr "Doc" -#: pcbnew/dialog_edit_module.cpp:230 +#: pcbnew/dialog_edit_module.cpp:234 msgid "Keywords" msgstr "Mots Cles" -#: pcbnew/dialog_edit_module.cpp:237 +#: pcbnew/dialog_edit_module.cpp:241 msgid "Fields:" msgstr "Champs:" -#: pcbnew/dialog_edit_module.cpp:247 +#: pcbnew/dialog_edit_module.cpp:251 msgid "Add Field" msgstr "Ajouter Champ" -#: pcbnew/dialog_edit_module.cpp:251 +#: pcbnew/dialog_edit_module.cpp:255 msgid "Edit Field" msgstr "Editer Champ" -#: pcbnew/dialog_edit_module.cpp:255 +#: pcbnew/dialog_edit_module.cpp:259 msgid "Delete Field" msgstr "Supprimer Champ" -#: pcbnew/dialog_edit_module.cpp:261 +#: pcbnew/dialog_edit_module.cpp:265 msgid "Component" msgstr "Composant" -#: pcbnew/dialog_edit_module.cpp:261 +#: pcbnew/dialog_edit_module.cpp:265 msgid "Copper" msgstr "Cuivre" -#: pcbnew/dialog_edit_module.cpp:270 +#: pcbnew/dialog_edit_module.cpp:274 msgid "User" msgstr "Utilisateur" -#: pcbnew/dialog_edit_module.cpp:306 +#: pcbnew/dialog_edit_module.cpp:310 msgid "Orientation (in 0.1 degrees)" msgstr "Orientation (en 0.1 degrés)" -#: pcbnew/dialog_edit_module.cpp:316 +#: pcbnew/dialog_edit_module.cpp:320 msgid "Normal+Insert" msgstr "Normal+Insert" -#: pcbnew/dialog_edit_module.cpp:316 +#: pcbnew/dialog_edit_module.cpp:320 msgid "Virtual" msgstr "Virtuel" -#: pcbnew/dialog_edit_module.cpp:317 +#: pcbnew/dialog_edit_module.cpp:321 msgid "Attributes" msgstr "Attributs" -#: pcbnew/dialog_edit_module.cpp:320 +#: pcbnew/dialog_edit_module.cpp:324 msgid "Use this attribute for most non smd components" msgstr "Utiliser cet attribut pour la plupart des composants" -#: pcbnew/dialog_edit_module.cpp:322 +#: pcbnew/dialog_edit_module.cpp:326 msgid "" "Use this attribute for smd components.\n" "Only components with this option are put in the footprint position list file" @@ -1779,84 +1777,84 @@ msgstr "" "Uiliser cet attribut pour les composants CMS.\n" "Seuls les composants avec cette option sont mis dans le fichier de position des composants" -#: pcbnew/dialog_edit_module.cpp:324 +#: pcbnew/dialog_edit_module.cpp:328 msgid "Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" msgstr "Uiliser cet attribut pour les composants \"virtuels\" directement dessinés sur le PCB (tel que les vieux connecteurs ISA de PC)" -#: pcbnew/dialog_edit_module.cpp:348 +#: pcbnew/dialog_edit_module.cpp:352 msgid "Free" msgstr "Libre" -#: pcbnew/dialog_edit_module.cpp:348 +#: pcbnew/dialog_edit_module.cpp:352 msgid "Locked" msgstr "Verrouillé" -#: pcbnew/dialog_edit_module.cpp:350 +#: pcbnew/dialog_edit_module.cpp:354 msgid "Move and Auto Place" msgstr "Déplacement et Placement Automatique" -#: pcbnew/dialog_edit_module.cpp:355 +#: pcbnew/dialog_edit_module.cpp:359 msgid "Enable hotkey move commands and Auto Placement" msgstr "Autoriser les commandes clavier de déplacement et l'auto placement" -#: pcbnew/dialog_edit_module.cpp:356 +#: pcbnew/dialog_edit_module.cpp:360 msgid "Disable hotkey move commands and Auto Placement" msgstr "Interdire les commandes clavier de déplacement et l'auto placement" -#: pcbnew/dialog_edit_module.cpp:360 +#: pcbnew/dialog_edit_module.cpp:364 msgid "Rotation 90 degree" msgstr "Rotation 90 degrés" -#: pcbnew/dialog_edit_module.cpp:368 +#: pcbnew/dialog_edit_module.cpp:372 msgid "Rotation 180 degree" msgstr "Rotation 180 degrés" -#: pcbnew/dialog_edit_module.cpp:404 +#: pcbnew/dialog_edit_module.cpp:408 msgid "3D Shape Name" msgstr "3D forme" -#: pcbnew/dialog_edit_module.cpp:421 +#: pcbnew/dialog_edit_module.cpp:425 msgid "Browse" msgstr "Examiner" -#: pcbnew/dialog_edit_module.cpp:424 +#: pcbnew/dialog_edit_module.cpp:428 msgid "Add 3D Shape" msgstr "Ajout Forme 3D" -#: pcbnew/dialog_edit_module.cpp:429 +#: pcbnew/dialog_edit_module.cpp:433 msgid "Remove 3D Shape" msgstr "Suppr. Forme 3D:" -#: pcbnew/dialog_edit_module.cpp:434 +#: pcbnew/dialog_edit_module.cpp:438 msgid "Shape Scale:" msgstr "Echelle de la forme:" -#: pcbnew/dialog_edit_module.cpp:441 +#: pcbnew/dialog_edit_module.cpp:445 msgid "Shape Offset:" msgstr "Offset forme:" -#: pcbnew/dialog_edit_module.cpp:450 +#: pcbnew/dialog_edit_module.cpp:454 msgid "Shape Rotation:" msgstr "Rot de la forme" -#: pcbnew/dialog_edit_module.cpp:490 +#: pcbnew/dialog_edit_module.cpp:494 msgid "3D Shape:" msgstr "Forme 3D:" -#: pcbnew/dialog_edit_module.cpp:816 +#: pcbnew/dialog_edit_module.cpp:832 msgid "Reference or Value cannot be deleted" msgstr "Référence ou Valeur ne peut être effacée" -#: pcbnew/dialog_edit_module.cpp:820 +#: pcbnew/dialog_edit_module.cpp:836 #, c-format msgid "Delete [%s]" msgstr "Supprimer [%s]" -#: pcbnew/dialog_copper_zones.cpp:274 +#: pcbnew/dialog_copper_zones.cpp:275 msgid "Error : Zone clearance is set to an unreasonnable value" msgstr "Erreur: l'isolation de zone est réglée à une valeur déraisonnable." -#: pcbnew/dialog_copper_zones.cpp:285 +#: pcbnew/dialog_copper_zones.cpp:286 msgid "" "Error :\n" "you must choose a copper min thickness value bigger than 0.001 inch (or 0.0254 mm)" @@ -1864,7 +1862,7 @@ msgstr "" "Erreur :\n" "vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que 0,001 pouce (ou 0,0254 mm)" -#: pcbnew/dialog_copper_zones.cpp:310 +#: pcbnew/dialog_copper_zones.cpp:311 msgid "" "Error :\n" "you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness" @@ -1872,487 +1870,487 @@ msgstr "" "Erreur :\n" "vous devez choisir une valeur pour l'épaisseur de cuivre dans les freins thermiques plus grande que l'épaisseur de cuivre minimum des zones" -#: pcbnew/dialog_copper_zones.cpp:322 +#: pcbnew/dialog_copper_zones.cpp:323 msgid "Error : you must choose a layer" msgstr "Erreur. Vous devez choisir une couche" -#: pcbnew/dialog_copper_zones.cpp:334 +#: pcbnew/dialog_copper_zones.cpp:335 msgid "Error : you must choose a net name" msgstr "Erreur. Vous devez choisir une équipotentielle" -#: pcbnew/dialog_copper_zones.cpp:341 +#: pcbnew/dialog_copper_zones.cpp:342 msgid "You have chosen the \"not connected\" option. This will create insulated copper islands. Are you sure ?" msgstr "Vous avez choisi l'option \"non connecté\". Cela créera des blocs non connectés. Etes vous sûr ?" -#: pcbnew/class_edge_mod.cpp:234 +#: pcbnew/class_edge_mod.cpp:235 msgid "Seg" msgstr "Seg" -#: pcbnew/class_edge_mod.cpp:237 +#: pcbnew/class_edge_mod.cpp:238 msgid "Value" msgstr "Valeur" -#: pcbnew/class_edge_mod.cpp:240 +#: pcbnew/class_edge_mod.cpp:241 msgid "TimeStamp" msgstr "TimeStamp" -#: pcbnew/class_edge_mod.cpp:242 +#: pcbnew/class_edge_mod.cpp:243 msgid "Mod Layer" msgstr "Couche Mod." -#: pcbnew/class_edge_mod.cpp:244 +#: pcbnew/class_edge_mod.cpp:245 msgid "Seg Layer" msgstr "Couche Seg." -#: pcbnew/swap_layers.cpp:71 +#: pcbnew/swap_layers.cpp:72 msgid "Swap Layers:" msgstr "Permutte couches" -#: pcbnew/swap_layers.cpp:219 -#: pcbnew/swap_layers.cpp:224 -#: pcbnew/swap_layers.cpp:310 +#: pcbnew/swap_layers.cpp:220 +#: pcbnew/swap_layers.cpp:225 +#: pcbnew/swap_layers.cpp:311 msgid "No Change" msgstr "Garder" -#: pcbnew/swap_layers.cpp:300 +#: pcbnew/swap_layers.cpp:301 msgid "Deselect this layer to select the No Change state" msgstr "Désélectionner cette couche pour restorer l'option Pas de Changement" -#: pcbnew/menubarpcb.cpp:32 +#: pcbnew/menubarpcb.cpp:33 msgid "&New Board" msgstr "&Nouveau Circuit Imprimé" -#: pcbnew/menubarpcb.cpp:33 +#: pcbnew/menubarpcb.cpp:34 msgid "Clear old board and initialize a new one" msgstr "Effacer ancien C.I. et créer un nouveau" -#: pcbnew/menubarpcb.cpp:38 +#: pcbnew/menubarpcb.cpp:39 msgid "&Load Board" msgstr "Charger Circuit Imprimé" -#: pcbnew/menubarpcb.cpp:39 +#: pcbnew/menubarpcb.cpp:40 msgid "Delete old board and load new board" msgstr "Effacer ancien C.I. et charger un nouveau" -#: pcbnew/menubarpcb.cpp:44 +#: pcbnew/menubarpcb.cpp:45 msgid "Append Board" msgstr "Ajouter Circuit Imprimé" -#: pcbnew/menubarpcb.cpp:45 +#: pcbnew/menubarpcb.cpp:46 msgid "Add board to old board" msgstr "Ajouter un C.I. au C.I. actuel" -#: pcbnew/menubarpcb.cpp:50 +#: pcbnew/menubarpcb.cpp:51 msgid "&Rescue" msgstr "&Secours" -#: pcbnew/menubarpcb.cpp:51 +#: pcbnew/menubarpcb.cpp:52 msgid "Clear old board and get last rescue file" msgstr "Effacer C.I. actuel et reprendre le dernier fichier secours" -#: pcbnew/menubarpcb.cpp:56 +#: pcbnew/menubarpcb.cpp:57 msgid "&Previous Version" msgstr "&Précédente Version" -#: pcbnew/menubarpcb.cpp:57 +#: pcbnew/menubarpcb.cpp:58 msgid "Clear old board and get old version of board" msgstr "Effacer le C.I. actuel et reprendre l'ancienne version" -#: pcbnew/menubarpcb.cpp:64 +#: pcbnew/menubarpcb.cpp:65 msgid "&Save Board\tCtrl-S" msgstr "&Sauver Circuit Imprimé (Ctrl S)" -#: pcbnew/menubarpcb.cpp:64 +#: pcbnew/menubarpcb.cpp:65 msgid "Save current board" msgstr "Sauver le C.I. actuel" -#: pcbnew/menubarpcb.cpp:69 +#: pcbnew/menubarpcb.cpp:70 msgid "Save Board as..." msgstr "Sauver C.I. sous.." -#: pcbnew/menubarpcb.cpp:70 +#: pcbnew/menubarpcb.cpp:71 msgid "Save current board as.." msgstr "Sauver le Circuit Imprimé courant sous.." -#: pcbnew/menubarpcb.cpp:76 +#: pcbnew/menubarpcb.cpp:77 msgid "P&rint" msgstr "Imp&rimer" -#: pcbnew/menubarpcb.cpp:77 +#: pcbnew/menubarpcb.cpp:78 msgid "Print pcb board" msgstr "Imprimer C.I." -#: pcbnew/menubarpcb.cpp:81 +#: pcbnew/menubarpcb.cpp:82 msgid "Print S&VG" msgstr "Impression S&VG" -#: pcbnew/menubarpcb.cpp:82 +#: pcbnew/menubarpcb.cpp:83 msgid "Plot pcb board in SVG format" msgstr "Tracer le circuit imprimé en format SVG" -#: pcbnew/menubarpcb.cpp:87 +#: pcbnew/menubarpcb.cpp:88 msgid "&Plot" msgstr "&Tracer" -#: pcbnew/menubarpcb.cpp:88 +#: pcbnew/menubarpcb.cpp:89 msgid "Plot (HPGL, PostScript, or Gerber format)" msgstr "Tracer ( format HPGL, POSTSCRIPT ou GERBER)" -#: pcbnew/menubarpcb.cpp:97 +#: pcbnew/menubarpcb.cpp:98 msgid "&Specctra DSN" msgstr "&Specctra DSN" -#: pcbnew/menubarpcb.cpp:98 +#: pcbnew/menubarpcb.cpp:99 msgid "Export the current board to a \"Specctra DSN\" file" msgstr "Exporte le CI courant dans un fichier au format \"Specctra DSN\"" -#: pcbnew/menubarpcb.cpp:103 +#: pcbnew/menubarpcb.cpp:104 msgid "&GenCAD" msgstr "&GenCAD" -#: pcbnew/menubarpcb.cpp:103 +#: pcbnew/menubarpcb.cpp:104 msgid "Export GenCAD Format" msgstr "Exporter en Format GenCAD" -#: pcbnew/menubarpcb.cpp:108 +#: pcbnew/menubarpcb.cpp:109 msgid "&Module Report" msgstr "Rapport &Modules" -#: pcbnew/menubarpcb.cpp:109 +#: pcbnew/menubarpcb.cpp:110 msgid "Create a board report (footprint report)" msgstr "Créer un fichier rapport (rapport sur modules)" -#: pcbnew/menubarpcb.cpp:113 +#: pcbnew/menubarpcb.cpp:114 msgid "&Export" msgstr "&Exporter" -#: pcbnew/menubarpcb.cpp:114 +#: pcbnew/menubarpcb.cpp:115 msgid "Export board" msgstr "Exporter le C.I." -#: pcbnew/menubarpcb.cpp:122 +#: pcbnew/menubarpcb.cpp:123 msgid "&Specctra Session" msgstr "&Specctra Session" -#: pcbnew/menubarpcb.cpp:123 +#: pcbnew/menubarpcb.cpp:124 msgid "Import a routed \"Specctra Session\" (*.ses) file" msgstr "Importer un fichier de routage \"Specctra Session\" (*.ses) " -#: pcbnew/menubarpcb.cpp:135 +#: pcbnew/menubarpcb.cpp:136 msgid "Import" msgstr "Importer" -#: pcbnew/menubarpcb.cpp:136 +#: pcbnew/menubarpcb.cpp:137 msgid "Import files" msgstr "Importer fichiers" -#: pcbnew/menubarpcb.cpp:144 +#: pcbnew/menubarpcb.cpp:145 msgid "Add New Footprints" msgstr "Ajouter Nouveaux Modules" -#: pcbnew/menubarpcb.cpp:145 +#: pcbnew/menubarpcb.cpp:146 msgid "Archive new footprints only in a library (keep other footprints in this lib)" msgstr "Archiver nouveaux modules seuls dans une librairie (garder les autres modules de cette librairie)" -#: pcbnew/menubarpcb.cpp:149 +#: pcbnew/menubarpcb.cpp:150 msgid "Create Footprint Archive" msgstr "Créer Archive des Modules" -#: pcbnew/menubarpcb.cpp:150 +#: pcbnew/menubarpcb.cpp:151 msgid "Archive all footprints in a library(old lib will be deleted)" msgstr "Archiver tous les modules dans une librairie (ancienne librairie supprimée)" -#: pcbnew/menubarpcb.cpp:155 +#: pcbnew/menubarpcb.cpp:156 msgid "Archive Footprints" msgstr "Archiver Modules" -#: pcbnew/menubarpcb.cpp:156 +#: pcbnew/menubarpcb.cpp:157 msgid "Archive or add footprints in a library file" msgstr "Archiver ou ajouter les modules dans un fichier librairie" -#: pcbnew/menubarpcb.cpp:161 +#: pcbnew/menubarpcb.cpp:162 msgid "E&xit" msgstr "&Quitter" -#: pcbnew/menubarpcb.cpp:162 +#: pcbnew/menubarpcb.cpp:163 msgid "Quit PCBNEW" msgstr "Quitter PCBNEW" -#: pcbnew/menubarpcb.cpp:172 +#: pcbnew/menubarpcb.cpp:173 msgid "&Library" msgstr "&Librairie" -#: pcbnew/menubarpcb.cpp:173 +#: pcbnew/menubarpcb.cpp:174 msgid "Setting libraries, directories and others..." msgstr "Sélectionner les librairies , répertoires et autres" -#: pcbnew/menubarpcb.cpp:177 +#: pcbnew/menubarpcb.cpp:178 msgid "&Colors and Visibility" msgstr "&Couleurs et Visibilité" -#: pcbnew/menubarpcb.cpp:178 +#: pcbnew/menubarpcb.cpp:179 msgid "Select colors and visibilty of layers and some items" msgstr "Sélection les couleurs et l' affichage des couches et de certains éléments du C.I." -#: pcbnew/menubarpcb.cpp:182 +#: pcbnew/menubarpcb.cpp:183 msgid "&General" msgstr " &Général " -#: pcbnew/menubarpcb.cpp:183 +#: pcbnew/menubarpcb.cpp:184 msgid "Select general options for PCBNEW" msgstr " Sélection options générales pour PCBNEW" -#: pcbnew/menubarpcb.cpp:187 +#: pcbnew/menubarpcb.cpp:188 msgid "&Display" msgstr "&Affichage" -#: pcbnew/menubarpcb.cpp:188 +#: pcbnew/menubarpcb.cpp:189 msgid "Select how items (pads, tracks texts ... ) are displayed" msgstr "Sélectionner comment les éléments (pads, pistes, textes ...) sont affichés" -#: pcbnew/menubarpcb.cpp:195 +#: pcbnew/menubarpcb.cpp:196 msgid "&Save Preferences" msgstr "&Sauver Préférences" -#: pcbnew/menubarpcb.cpp:196 +#: pcbnew/menubarpcb.cpp:197 msgid "Save application preferences" msgstr "Sauver les préférences de l'application" -#: pcbnew/menubarpcb.cpp:200 +#: pcbnew/menubarpcb.cpp:201 msgid "&Read Preferences" msgstr "&Lire Préférences" -#: pcbnew/menubarpcb.cpp:201 +#: pcbnew/menubarpcb.cpp:202 msgid "Read application preferences" msgstr "Lire les préférences de l'application" -#: pcbnew/menubarpcb.cpp:211 +#: pcbnew/menubarpcb.cpp:212 msgid "Design Rules" msgstr "Règles de Conception" -#: pcbnew/menubarpcb.cpp:211 +#: pcbnew/menubarpcb.cpp:212 msgid "Open the design rules dialog editor" msgstr "Ouvrir la fenêtre de dialogue de l'éditeur de règles de conception" -#: pcbnew/menubarpcb.cpp:221 +#: pcbnew/menubarpcb.cpp:222 msgid "Tracks and Vias" msgstr "Pistes et Vias" -#: pcbnew/menubarpcb.cpp:222 +#: pcbnew/menubarpcb.cpp:223 msgid "Adjust size and width for tracks and vias" msgstr "Ajuster largeur des pistes et diamètre de vias" -#: pcbnew/menubarpcb.cpp:227 +#: pcbnew/menubarpcb.cpp:228 msgid "Adjust User Grid" msgstr "Ajuster Grille utilisateur" -#: pcbnew/menubarpcb.cpp:232 +#: pcbnew/menubarpcb.cpp:233 msgid "Texts and Drawings" msgstr "Textes et Tracés" -#: pcbnew/menubarpcb.cpp:233 +#: pcbnew/menubarpcb.cpp:234 msgid "Adjust width for texts and drawings" msgstr "Ajuster dims pour textes et graphiques" -#: pcbnew/menubarpcb.cpp:238 +#: pcbnew/menubarpcb.cpp:239 msgid "Adjust size,shape,layers... for pads" msgstr "Ajuster taille, forme, couches... pour pads" -#: pcbnew/menubarpcb.cpp:243 +#: pcbnew/menubarpcb.cpp:244 msgid "&Save Setup" msgstr "&Sauver Options" -#: pcbnew/menubarpcb.cpp:244 +#: pcbnew/menubarpcb.cpp:245 msgid "Save options in current directory" msgstr "Sauver les options en répertoire de travail" -#: pcbnew/menubarpcb.cpp:253 +#: pcbnew/menubarpcb.cpp:254 msgid "Generate &Modules Position" msgstr "Créer &Modules Position" -#: pcbnew/menubarpcb.cpp:254 +#: pcbnew/menubarpcb.cpp:255 msgid "Generate modules position file" msgstr "Gen fichier Position des Modules" -#: pcbnew/menubarpcb.cpp:259 +#: pcbnew/menubarpcb.cpp:260 msgid "Create &Drill File" msgstr "Créer &Fichier de Perçage" -#: pcbnew/menubarpcb.cpp:260 +#: pcbnew/menubarpcb.cpp:261 msgid "Generate excellon2 drill file" msgstr "Créer Fichier de perçage Excellon2" -#: pcbnew/menubarpcb.cpp:265 +#: pcbnew/menubarpcb.cpp:266 msgid "Create &Component File" msgstr "Créer &Fichier Cmp" -#: pcbnew/menubarpcb.cpp:266 +#: pcbnew/menubarpcb.cpp:267 msgid "Recreate .cmp file for CvPcb" msgstr "Recréer le fichier .cmp pour CvPcb" -#: pcbnew/menubarpcb.cpp:271 +#: pcbnew/menubarpcb.cpp:272 msgid "Create &BOM File" msgstr "Créer Fichier Liste du &Matériel" -#: pcbnew/menubarpcb.cpp:272 +#: pcbnew/menubarpcb.cpp:273 msgid "Recreate .csv file for CvPcb" msgstr "Recréer le fichier .csv pour CvPcb" -#: pcbnew/menubarpcb.cpp:281 +#: pcbnew/menubarpcb.cpp:282 msgid "Global &Deletions" msgstr "Effacements &Généraux" -#: pcbnew/menubarpcb.cpp:282 +#: pcbnew/menubarpcb.cpp:283 msgid "Delete tracks, modules, texts... on board" msgstr "Effacer pistes, modules, textes... sur le C.I." -#: pcbnew/menubarpcb.cpp:287 +#: pcbnew/menubarpcb.cpp:288 msgid "&List Nets" msgstr "Liste Equipots" -#: pcbnew/menubarpcb.cpp:288 +#: pcbnew/menubarpcb.cpp:289 msgid "List nets (names and id)" msgstr "Lister équipotentielles (noms et numéros d'identification)" -#: pcbnew/menubarpcb.cpp:293 +#: pcbnew/menubarpcb.cpp:294 msgid "&Track Operations" msgstr "Opéra&tions sur Pistes" -#: pcbnew/menubarpcb.cpp:294 +#: pcbnew/menubarpcb.cpp:295 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:299 +#: pcbnew/menubarpcb.cpp:300 msgid "&Swap Layers" msgstr "&Permutte Couches" -#: pcbnew/menubarpcb.cpp:300 +#: pcbnew/menubarpcb.cpp:301 msgid "Swap tracks on copper layers or drawings on others layers" msgstr "Permutation de couches" -#: pcbnew/menubarpcb.cpp:308 +#: pcbnew/menubarpcb.cpp:309 msgid "&Contents" msgstr "&Contenu" -#: pcbnew/menubarpcb.cpp:309 +#: pcbnew/menubarpcb.cpp:310 msgid "Open the PCBNEW manual" msgstr "Ouvrir la Documentation de PCBNEW" -#: pcbnew/menubarpcb.cpp:313 +#: pcbnew/menubarpcb.cpp:314 msgid "&About PCBNEW" msgstr "&Au Sujet de PCBNEW" -#: pcbnew/menubarpcb.cpp:314 +#: pcbnew/menubarpcb.cpp:315 msgid "About PCBNEW printed circuit board designer" msgstr "Au Sujet de PCBNEW outil de conception de C.I." -#: pcbnew/menubarpcb.cpp:323 +#: pcbnew/menubarpcb.cpp:324 msgid "3D Display" msgstr "3D Visu" -#: pcbnew/menubarpcb.cpp:323 +#: pcbnew/menubarpcb.cpp:324 msgid "Show board in 3D viewer" msgstr "Visualisation du circuit en 3D" -#: pcbnew/menubarpcb.cpp:327 +#: pcbnew/menubarpcb.cpp:328 msgid "&File" msgstr "&Fichiers" -#: pcbnew/menubarpcb.cpp:328 +#: pcbnew/menubarpcb.cpp:329 msgid "&Preferences" msgstr "&Préférences" -#: pcbnew/menubarpcb.cpp:329 +#: pcbnew/menubarpcb.cpp:330 msgid "&Design Rules" msgstr "&Règles de Conception" -#: pcbnew/menubarpcb.cpp:330 +#: pcbnew/menubarpcb.cpp:331 msgid "&Dimensions" msgstr "&Dimensions" -#: pcbnew/menubarpcb.cpp:331 +#: pcbnew/menubarpcb.cpp:332 msgid "&Miscellaneous" msgstr "&Divers" -#: pcbnew/menubarpcb.cpp:332 +#: pcbnew/menubarpcb.cpp:333 msgid "P&ostprocess" msgstr "P&ostprocesseurs" -#: pcbnew/menubarpcb.cpp:333 +#: pcbnew/menubarpcb.cpp:334 msgid "&3D Display" msgstr "&3D Visu" -#: pcbnew/menubarpcb.cpp:334 +#: pcbnew/menubarpcb.cpp:335 msgid "&Help" msgstr "&Aide" -#: pcbnew/netlist.cpp:116 +#: pcbnew/netlist.cpp:117 #, c-format msgid "Netlist file %s not found" msgstr "Netliste %s non trouvée" -#: pcbnew/netlist.cpp:171 +#: pcbnew/netlist.cpp:172 #, c-format msgid "Reading Netlist \"%s\"" msgstr "Lire Netliste \"%s\"" -#: pcbnew/netlist.cpp:335 +#: pcbnew/netlist.cpp:340 msgid "Ok to delete footprints not in netlist ?" msgstr "Ok pour effacer les empreintes non en netliste ?" -#: pcbnew/netlist.cpp:480 +#: pcbnew/netlist.cpp:488 #, c-format msgid "Component \"%s\": Mismatch! module is [%s] and netlist said [%s]\n" msgstr "Composant [%s] différence: le module est <%s> et la netliste dit <%s>\n" -#: pcbnew/netlist.cpp:515 +#: pcbnew/netlist.cpp:523 #, c-format msgid "Component [%s] not found" msgstr "Composant [%s] non trouvé" -#: pcbnew/netlist.cpp:580 +#: pcbnew/netlist.cpp:588 #, c-format msgid "Module [%s]: Pad [%s] not found" msgstr "Module [%s]: Pad [%s] non trouvé" -#: pcbnew/netlist.cpp:605 +#: pcbnew/netlist.cpp:613 msgid "No Modules" msgstr "Pas de Modules" -#: pcbnew/netlist.cpp:608 +#: pcbnew/netlist.cpp:616 msgid "Components" msgstr "Composants" -#: pcbnew/netlist.cpp:661 +#: pcbnew/netlist.cpp:669 msgid "No modules" msgstr "Pas de Modules" -#: pcbnew/netlist.cpp:672 +#: pcbnew/netlist.cpp:680 msgid "No modules in NetList" msgstr "Pas de modules en Netliste" -#: pcbnew/netlist.cpp:675 +#: pcbnew/netlist.cpp:683 msgid "Check Modules" msgstr "Contrôle Modules" -#: pcbnew/netlist.cpp:678 +#: pcbnew/netlist.cpp:686 msgid "Duplicates" msgstr "Doubles" -#: pcbnew/netlist.cpp:696 +#: pcbnew/netlist.cpp:704 msgid "Lack:" msgstr "Manque:" -#: pcbnew/netlist.cpp:718 +#: pcbnew/netlist.cpp:726 msgid "Not in Netlist:" msgstr "Pas en Netliste:" -#: pcbnew/netlist.cpp:864 +#: pcbnew/netlist.cpp:872 #, c-format msgid "File <%s> not found, use Netlist for lib module selection" msgstr "Fichier <%s> non trouvé, Netliste utilisée pour sélection des modules en lib." -#: pcbnew/netlist.cpp:999 +#: pcbnew/netlist.cpp:1007 #, c-format msgid "Component [%s]: footprint <%s> not found" msgstr "Composant [%s]: Module <%s> non trouvé en librairie" @@ -2389,440 +2387,418 @@ msgstr "Valeur incorrecte pour offset du pad" msgid "Unknown netname, no change" msgstr "Net inconnu, pas de changement" -#: pcbnew/pcbframe.cpp:314 +#: pcbnew/pcbframe.cpp:319 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" -#: pcbnew/pcbframe.cpp:315 +#: pcbnew/pcbframe.cpp:320 msgid "Confirmation" msgstr "Confirmation" -#: pcbnew/pcbframe.cpp:420 +#: pcbnew/pcbframe.cpp:411 msgid "DRC Off (Disable !!!), Currently: DRC is active" msgstr "DRC off (désactivée !!!), actuellement DRC active" -#: pcbnew/pcbframe.cpp:421 +#: pcbnew/pcbframe.cpp:412 msgid "DRC On (Currently: DRC is inactive !!!)" msgstr "DRC On (Actuellement, DRC désactivée !!!)" -#: pcbnew/pcbframe.cpp:432 -msgid "Polar Coords not show" -msgstr "Coord Polaires non affichées" - -#: pcbnew/pcbframe.cpp:433 -msgid "Display Polar Coords" -msgstr "Affichage coord Polaires" - #: pcbnew/pcbframe.cpp:438 -msgid "Grid not show" -msgstr "Grille non montrée" - -#: pcbnew/pcbframe.cpp:438 -msgid "Show Grid" -msgstr "Afficher grille" - -#: pcbnew/pcbframe.cpp:447 msgid "Hide General ratsnest" msgstr "Ne pas afficher le chevelu général" -#: pcbnew/pcbframe.cpp:448 +#: pcbnew/pcbframe.cpp:439 msgid "Show General ratsnest" msgstr "Afficher le chevelu général" -#: pcbnew/pcbframe.cpp:454 +#: pcbnew/pcbframe.cpp:445 msgid "Hide Module ratsnest" msgstr "Ne pas montrer le chevelu du module" -#: pcbnew/pcbframe.cpp:455 +#: pcbnew/pcbframe.cpp:446 msgid "Show Module ratsnest" msgstr "Montrer le chevelu du module" -#: pcbnew/pcbframe.cpp:462 +#: pcbnew/pcbframe.cpp:453 msgid "Disable Auto Delete old Track" msgstr "Ne pas Autoriser l'effacement automatique des pistes" -#: pcbnew/pcbframe.cpp:463 +#: pcbnew/pcbframe.cpp:454 msgid "Enable Auto Delete old Track" msgstr "Autoriser l'effacement automatique des pistes" -#: pcbnew/pcbframe.cpp:470 -msgid "Show Pads Sketch mode" -msgstr "Afficher pastilles en contour" - -#: pcbnew/pcbframe.cpp:471 -msgid "Show pads filled mode" -msgstr "Afficher pastilles en mode plein" - -#: pcbnew/pcbframe.cpp:477 +#: pcbnew/pcbframe.cpp:468 msgid "Show Tracks Sketch mode" msgstr "Afficher pistes en contour" -#: pcbnew/pcbframe.cpp:478 +#: pcbnew/pcbframe.cpp:469 msgid "Show Tracks filled mode" msgstr "Afficher pistes en mode plein" -#: pcbnew/pcbframe.cpp:484 +#: pcbnew/pcbframe.cpp:475 msgid "Normal Contrast Mode Display" msgstr "Mode d'affichage Contraste normal" -#: pcbnew/pcbframe.cpp:491 +#: pcbnew/pcbframe.cpp:482 msgid "Hide Invisible Text" msgstr "Cacher textes invisibles" -#: pcbnew/pcbframe.cpp:504 +#: pcbnew/pcbframe.cpp:495 msgid "Track" msgstr "Piste" -#: pcbnew/pcbframe.cpp:536 -#: pcbnew/dialog_drc_base.cpp:35 -#: pcbnew/dialog_track_options_base.cpp:106 +#: pcbnew/pcbframe.cpp:527 msgid "Clearance" msgstr "Isolation" -#: pcbnew/pcbframe.cpp:568 +#: pcbnew/pcbframe.cpp:559 msgid "Via" msgstr "Via" -#: pcbnew/pcbframe.cpp:640 -msgid "3D Frame already opened" -msgstr "Fenêtre 3D déjà ouverte" - -#: pcbnew/pcbframe.cpp:644 -msgid "3D Viewer" -msgstr "Visu 3D" - -#: pcbnew/clean.cpp:179 +#: pcbnew/clean.cpp:183 msgid "Delete unconnected tracks:" msgstr "Suppression Pistes non connectées:" -#: pcbnew/clean.cpp:196 +#: pcbnew/clean.cpp:200 msgid "ViaDef" msgstr "ViaDef" -#: pcbnew/clean.cpp:413 +#: pcbnew/clean.cpp:417 msgid "Clean Null Segments" msgstr "Nettoyage segments nulls" -#: pcbnew/clean.cpp:505 +#: pcbnew/clean.cpp:509 msgid "Merging Segments:" msgstr "Fusion des Segments:" -#: pcbnew/clean.cpp:507 +#: pcbnew/clean.cpp:511 msgid "Merge" msgstr "Fusion" -#: pcbnew/clean.cpp:507 +#: pcbnew/clean.cpp:511 msgid "0" msgstr "0" -#: pcbnew/clean.cpp:522 +#: pcbnew/clean.cpp:526 msgid "Merge: " msgstr "Fusionner: " -#: pcbnew/clean.cpp:752 +#: pcbnew/clean.cpp:756 msgid "DRC Control:" msgstr "Contrôle DRC:" -#: pcbnew/clean.cpp:757 +#: pcbnew/clean.cpp:761 msgid "NetCtr" msgstr "NetCtr" -#: pcbnew/clean.cpp:1102 +#: pcbnew/clean.cpp:1106 msgid "Centre" msgstr "Centre" -#: pcbnew/clean.cpp:1102 +#: pcbnew/clean.cpp:1106 msgid "0 " msgstr "0" -#: pcbnew/clean.cpp:1113 +#: pcbnew/clean.cpp:1117 msgid "Pads: " msgstr "Pastilles: " -#: pcbnew/clean.cpp:1117 +#: pcbnew/clean.cpp:1121 msgid "Max" msgstr "Max" -#: pcbnew/clean.cpp:1120 +#: pcbnew/clean.cpp:1124 msgid "Segm" msgstr "Segm" -#: pcbnew/autoplac.cpp:104 +#: pcbnew/autoplac.cpp:105 msgid "Footprints NOT LOCKED will be moved" msgstr "Les modules NON FIXES vont être déplacés" -#: pcbnew/autoplac.cpp:109 +#: pcbnew/autoplac.cpp:110 msgid "Footprints NOT PLACED will be moved" msgstr "Les modules NON PLACES vont être déplacés" -#: pcbnew/autoplac.cpp:400 +#: pcbnew/autoplac.cpp:401 msgid "No edge PCB, Unknown board size!" msgstr "Pas de contour PCB, la taille du PCB est inconnue!" -#: pcbnew/autoplac.cpp:421 +#: pcbnew/autoplac.cpp:422 msgid "Cols" msgstr "Cols" -#: pcbnew/autoplac.cpp:423 +#: pcbnew/autoplac.cpp:424 msgid "Lines" msgstr "Lignes" -#: pcbnew/autoplac.cpp:425 +#: pcbnew/autoplac.cpp:426 msgid "Cells." msgstr "Cells." -#: pcbnew/autoplac.cpp:486 +#: pcbnew/autoplac.cpp:487 msgid "Loop" msgstr "Itération" -#: pcbnew/autoplac.cpp:638 +#: pcbnew/autoplac.cpp:639 msgid "Ok to abort ?" msgstr "Ok pour arrêter ?" -#: pcbnew/pcbplot.cpp:164 -#: pcbnew/pcbplot.cpp:314 +#: pcbnew/pcbplot.cpp:165 +#: pcbnew/pcbplot.cpp:315 msgid "Plot" msgstr "Tracer" -#: pcbnew/pcbplot.cpp:212 +#: pcbnew/pcbplot.cpp:213 msgid "Plot Format" msgstr "Format de tracé" -#: pcbnew/pcbplot.cpp:227 +#: pcbnew/pcbplot.cpp:228 msgid "HPGL Options:" msgstr "Options HPGL:" -#: pcbnew/pcbplot.cpp:232 +#: pcbnew/pcbplot.cpp:233 msgid "Pen Size" msgstr "Diam Plume" -#: pcbnew/pcbplot.cpp:239 +#: pcbnew/pcbplot.cpp:240 msgid "Pen Speed (cm/s)" msgstr "Vitesse Plume ( cm/s )" -#: pcbnew/pcbplot.cpp:243 +#: pcbnew/pcbplot.cpp:244 msgid "Set pen speed in cm/s" msgstr "Ajuster Vitesse plume en centimètres par seconde" -#: pcbnew/pcbplot.cpp:245 +#: pcbnew/pcbplot.cpp:246 msgid "Pen ovr" msgstr "Recouvrement" -#: pcbnew/pcbplot.cpp:251 +#: pcbnew/pcbplot.cpp:252 msgid "Set plot overlay for filling" msgstr "Ajuste recouvrement des tracés pour les remplissages" -#: pcbnew/pcbplot.cpp:253 +#: pcbnew/pcbplot.cpp:254 msgid "Lines Width" msgstr "Epaiss. Lignes" -#: pcbnew/pcbplot.cpp:259 +#: pcbnew/pcbplot.cpp:260 msgid "Set lines width used to plot in sketch mode and plot pads outlines on silk screen layers" msgstr "Ajuste l'épaisseur des lignes utilisées pour tracer en mode contour et pour les contours des pads sur les couches de sérigraphie" -#: pcbnew/pcbplot.cpp:264 +#: pcbnew/pcbplot.cpp:265 msgid "Absolute" msgstr "Absolu" -#: pcbnew/pcbplot.cpp:264 +#: pcbnew/pcbplot.cpp:265 msgid "Auxiliary axis" msgstr "Axe Auxiliaire" -#: pcbnew/pcbplot.cpp:267 +#: pcbnew/pcbplot.cpp:268 msgid "Plot Origin" msgstr "Origine des Coord de Tracé" -#: pcbnew/pcbplot.cpp:295 +#: pcbnew/pcbplot.cpp:296 msgid "X scale adjust" msgstr "Ajustage Echelle X" -#: pcbnew/pcbplot.cpp:298 +#: pcbnew/pcbplot.cpp:299 msgid "Set X scale adjust for exact scale plotting" msgstr "Ajuster échelle X pour traçage à l'échelle exacte" -#: pcbnew/pcbplot.cpp:302 +#: pcbnew/pcbplot.cpp:303 msgid "Y scale adjust" msgstr "Ajustage Echelle Y" -#: pcbnew/pcbplot.cpp:305 +#: pcbnew/pcbplot.cpp:306 msgid "Set Y scale adjust for exact scale plotting" msgstr "Ajuster échelle Y pour traçage à l'échelle exacte" -#: pcbnew/pcbplot.cpp:308 +#: pcbnew/pcbplot.cpp:309 msgid "Plot negative" msgstr "Tracé en Négatif" -#: pcbnew/pcbplot.cpp:317 +#: pcbnew/pcbplot.cpp:318 msgid "Save Options" msgstr "Sauver Options" -#: pcbnew/pcbplot.cpp:321 +#: pcbnew/pcbplot.cpp:322 msgid "Generate drill file" msgstr "Créer Fichier de perçage" -#: pcbnew/pcbplot.cpp:324 +#: pcbnew/pcbplot.cpp:325 msgid "Close" msgstr "Fermer" -#: pcbnew/pcbplot.cpp:370 +#: pcbnew/pcbplot.cpp:371 msgid "Exclude Edges_Pcb layer" msgstr "Exclure Couche Contours PCB" -#: pcbnew/pcbplot.cpp:374 +#: pcbnew/pcbplot.cpp:375 msgid "Exclude contents of Edges_Pcb layer from all other layers" msgstr "Exclure les tracés contour PCB des autres couches" -#: pcbnew/pcbplot.cpp:381 +#: pcbnew/pcbplot.cpp:382 msgid "Print sheet ref" msgstr "Imprimer cartouche" -#: pcbnew/pcbplot.cpp:392 +#: pcbnew/pcbplot.cpp:393 msgid "Print pads on silkscreen" msgstr "Pads sur Sérigraphie" -#: pcbnew/pcbplot.cpp:399 +#: pcbnew/pcbplot.cpp:400 msgid "Enable/disable print/plot pads on silkscreen layers" msgstr "Active/désactive tracé des pastilles sur les couches de sérigraphie" -#: pcbnew/pcbplot.cpp:403 +#: pcbnew/pcbplot.cpp:404 msgid "Always print pads" msgstr "Toujours tracer pads" -#: pcbnew/pcbplot.cpp:408 +#: pcbnew/pcbplot.cpp:409 msgid "Force print/plot pads on ALL layers" msgstr "Force le tracé des pastilles sur TOUTES les couches" -#: pcbnew/pcbplot.cpp:413 +#: pcbnew/pcbplot.cpp:414 msgid "Print module value" msgstr "Imprimer Valeur Module" -#: pcbnew/pcbplot.cpp:417 +#: pcbnew/pcbplot.cpp:418 msgid "Enable/disable print/plot module value on silkscreen layers" msgstr "Active/désactive le tracé des textes valeurs des modules sur couches de sérigraphie" -#: pcbnew/pcbplot.cpp:421 +#: pcbnew/pcbplot.cpp:422 msgid "Print module reference" msgstr "Imprimer Référence Module" -#: pcbnew/pcbplot.cpp:425 +#: pcbnew/pcbplot.cpp:426 msgid "Enable/disable print/plot module reference on silkscreen layers" msgstr "Active/désactive le tracé des textes référence des modules sur couches de sérigraphie" -#: pcbnew/pcbplot.cpp:429 +#: pcbnew/pcbplot.cpp:430 msgid "Print other module texts" msgstr "Imprimer autres textes module" -#: pcbnew/pcbplot.cpp:433 +#: pcbnew/pcbplot.cpp:434 msgid "Enable/disable print/plot module field texts on silkscreen layers" msgstr "Active/désactive le tracé des textes des champs des modules sur couches de sérigraphie" -#: pcbnew/pcbplot.cpp:438 +#: pcbnew/pcbplot.cpp:439 msgid "Force print invisible texts" msgstr "Force tracé textes invisibles" -#: pcbnew/pcbplot.cpp:442 +#: pcbnew/pcbplot.cpp:443 msgid "Force print/plot module invisible texts on silkscreen layers" msgstr "Force le tracé des textes invisibles sur couches de sérigraphie" -#: pcbnew/pcbplot.cpp:447 +#: pcbnew/pcbplot.cpp:448 msgid "No drill mark" msgstr "Pas de marque" -#: pcbnew/pcbplot.cpp:448 +#: pcbnew/pcbplot.cpp:449 msgid "Small mark" msgstr "Petite marque" -#: pcbnew/pcbplot.cpp:449 +#: pcbnew/pcbplot.cpp:450 msgid "Real drill" msgstr "Perçage réel" -#: pcbnew/pcbplot.cpp:453 +#: pcbnew/pcbplot.cpp:454 msgid "Pads Drill Opt" msgstr "Options Perçage Pads" -#: pcbnew/pcbplot.cpp:462 +#: pcbnew/pcbplot.cpp:463 msgid "Auto scale" msgstr "Ech. auto" -#: pcbnew/pcbplot.cpp:463 +#: pcbnew/pcbplot.cpp:464 msgid "Scale 1" msgstr "Echelle 1" -#: pcbnew/pcbplot.cpp:464 +#: pcbnew/pcbplot.cpp:465 msgid "Scale 1.5" msgstr "Echelle 1,5" -#: pcbnew/pcbplot.cpp:465 +#: pcbnew/pcbplot.cpp:466 msgid "Scale 2" msgstr "Echelle 2" -#: pcbnew/pcbplot.cpp:466 +#: pcbnew/pcbplot.cpp:467 msgid "Scale 3" msgstr "Echelle 3" -#: pcbnew/pcbplot.cpp:470 +#: pcbnew/pcbplot.cpp:471 msgid "Scale Opt" msgstr "Echelle" -#: pcbnew/pcbplot.cpp:477 +#: pcbnew/pcbplot.cpp:478 msgid "Line" msgstr "Ligne" -#: pcbnew/pcbplot.cpp:477 +#: pcbnew/pcbplot.cpp:478 msgid "Filled" msgstr "Plein" -#: pcbnew/pcbplot.cpp:478 +#: pcbnew/pcbplot.cpp:479 msgid "Sketch" msgstr "Contour" -#: pcbnew/pcbplot.cpp:480 +#: pcbnew/pcbplot.cpp:481 msgid "Plot Mode" msgstr "Mode de Tracé" -#: pcbnew/pcbplot.cpp:488 +#: pcbnew/pcbplot.cpp:489 msgid "Plot mirror" msgstr "Tracé Miroir" -#: pcbnew/pcbplot.cpp:494 +#: pcbnew/pcbplot.cpp:495 msgid "Vias on mask" msgstr "Vias sur masque" -#: pcbnew/pcbplot.cpp:498 +#: pcbnew/pcbplot.cpp:499 msgid "Print/plot vias on mask layers. They are in this case not protected" msgstr "Trace vias sur vernis épargne. Elles seront non protégées" -#: pcbnew/pcbplot.cpp:745 +#: pcbnew/pcbplot.cpp:746 msgid "Adobe post script files (.ps)|*.ps" msgstr "Fichiers Adobe post script (.ps)|*.ps" -#: pcbnew/pcbplot.cpp:751 +#: pcbnew/pcbplot.cpp:752 msgid "GERBER photo plot files (.pho)|*.pho" msgstr "Fichiers phottraçage GERBER (.pho)|*.pho" -#: pcbnew/pcbplot.cpp:756 +#: pcbnew/pcbplot.cpp:757 msgid "HPGL plot files (.plt)|*.plt" msgstr "Fichiers Tracé HPGL (.plt)|*.plt" -#: pcbnew/pcbplot.cpp:762 +#: pcbnew/pcbplot.cpp:763 msgid "DXF files (.dxf)|*.dxf" msgstr "Fichiers DXF (.dxf)|*.dxf" -#: pcbnew/pcbplot.cpp:769 +#: pcbnew/pcbplot.cpp:770 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:772 +#: pcbnew/pcbplot.cpp:773 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:821 +#: pcbnew/pcbplot.cpp:822 msgid "No layer selected" msgstr "Pas de couche sélectionnée" -#: pcbnew/ioascii.cpp:174 -msgid "Error: Unexpected end of file !" -msgstr "Erreur: Fin de fichier inattendue !" +#: pcbnew/edgemod.cpp:191 +msgid "The graphic item will be on a copper layer.It is very dangerous. Are you sure" +msgstr "L'élément graphique sera sur une couche cuivre. C'est très dangereux. Etes vous sûr" + +#: pcbnew/edgemod.cpp:233 +msgid "New Width (1/10000\"):" +msgstr "Nouvelle largeur (1/10000\"):" + +#: pcbnew/edgemod.cpp:233 +msgid "Edge Width" +msgstr "Epaisseur Contour" + +#: pcbnew/edgemod.cpp:240 +msgid "Incorrect number, no change" +msgstr "Nombre incorrect, pas de changement" #: pcbnew/specctra.cpp:133 #: pcbnew/specctra.cpp:140 @@ -2851,51 +2827,51 @@ msgstr "Erreur système sur écriture fichier \"%s\"" msgid "Error writing to STRINGFORMATTER" msgstr "Erreur d'écriture à STRINGFORMATTER" -#: pcbnew/class_zone.cpp:871 +#: pcbnew/class_zone.cpp:915 msgid "Zone Outline" msgstr "Contour de Zone" -#: pcbnew/class_zone.cpp:875 +#: pcbnew/class_zone.cpp:919 msgid "(Cutout)" msgstr "(Cutout)" -#: pcbnew/class_zone.cpp:897 +#: pcbnew/class_zone.cpp:941 msgid "Not Found" msgstr " Non Trouvé" -#: pcbnew/class_zone.cpp:900 +#: pcbnew/class_zone.cpp:944 msgid "NetName" msgstr "NetName" -#: pcbnew/class_zone.cpp:903 +#: pcbnew/class_zone.cpp:947 msgid "Non Copper Zone" msgstr "Zone non Cuivre" -#: pcbnew/class_zone.cpp:908 +#: pcbnew/class_zone.cpp:952 msgid "NetCode" msgstr "NetCode" -#: pcbnew/class_zone.cpp:916 +#: pcbnew/class_zone.cpp:960 msgid "Corners" msgstr "Sommets" -#: pcbnew/class_zone.cpp:920 +#: pcbnew/class_zone.cpp:964 msgid "Segments" msgstr "Segments" -#: pcbnew/class_zone.cpp:922 +#: pcbnew/class_zone.cpp:966 msgid "Polygons" msgstr "Polygones" -#: pcbnew/class_zone.cpp:923 +#: pcbnew/class_zone.cpp:967 msgid "Fill mode" msgstr "Mode de remplissage" -#: pcbnew/class_zone.cpp:928 +#: pcbnew/class_zone.cpp:972 msgid "Hatch lines" msgstr "Lignes de Hachure" -#: pcbnew/class_zone.cpp:934 +#: pcbnew/class_zone.cpp:978 msgid "Corners in DrawList" msgstr "Sommets en Liste de dessin" @@ -3134,47 +3110,47 @@ msgstr "Retrait Masque" msgid "This is the clearance between pads and the mask" msgstr "Ceci est l'espace entre pads et le masque" -#: pcbnew/dialog_freeroute_exchange.cpp:178 +#: pcbnew/dialog_freeroute_exchange.cpp:179 msgid "Export a Specctra Design (*.dsn) File" msgstr "Exporter un fichier de conception Specctra (*.dsn)" -#: pcbnew/dialog_freeroute_exchange.cpp:180 +#: pcbnew/dialog_freeroute_exchange.cpp:181 msgid "Export a Specctra DSN file (to FreeRouter)" msgstr "Exporter un fichier Specctra DSN (pour FreeRoute)" -#: pcbnew/dialog_freeroute_exchange.cpp:183 +#: pcbnew/dialog_freeroute_exchange.cpp:184 msgid "Launch FreeRouter via Java Web Start" msgstr "Lancer FreeRouter via Java Web Start" -#: pcbnew/dialog_freeroute_exchange.cpp:185 +#: pcbnew/dialog_freeroute_exchange.cpp:186 msgid "Use Java Web Start function to run FreeRouter via Internet (or your Browser if not found)" msgstr "Utiliser Java Web Start function pour lancer FreeRouter via Internet (ou votre Navigateur si non trouvé)" -#: pcbnew/dialog_freeroute_exchange.cpp:188 +#: pcbnew/dialog_freeroute_exchange.cpp:189 msgid "Back Import the Specctra Session (*.ses) File" msgstr "Importer un Fichier Specctra Session (*.ses)" -#: pcbnew/dialog_freeroute_exchange.cpp:190 +#: pcbnew/dialog_freeroute_exchange.cpp:191 msgid "Merge a session file created by FreeRouter with the current board." msgstr "Importer un fichier session créé par FreeRouter dans le C.I. courant." -#: pcbnew/dialog_freeroute_exchange.cpp:197 +#: pcbnew/dialog_freeroute_exchange.cpp:198 msgid "Visit FreeRouting.net website" msgstr "Visiter le site FreeRouting.net" -#: pcbnew/dialog_freeroute_exchange.cpp:199 +#: pcbnew/dialog_freeroute_exchange.cpp:200 msgid "Launch your browser and go to the FreeRouting.net website" msgstr "Lancer votre navigateur pour aller sur FreeRouting.net" -#: pcbnew/dialog_freeroute_exchange.cpp:202 +#: pcbnew/dialog_freeroute_exchange.cpp:203 msgid "FreeRouting.net URL" msgstr "URL FreeRouting.net" -#: pcbnew/dialog_freeroute_exchange.cpp:207 +#: pcbnew/dialog_freeroute_exchange.cpp:208 msgid "The URL of the FreeRouting.net website" msgstr "L' URL du site FreeRouting.net" -#: pcbnew/dialog_freeroute_exchange.cpp:213 +#: pcbnew/dialog_freeroute_exchange.cpp:214 msgid "&Close" msgstr "&Fermer" @@ -3213,65 +3189,69 @@ msgstr "Le composant avec valeur \"%s\" a une référence vide." msgid "Multiple components have identical reference IDs of \"%s\"." msgstr "Multiple composants ont une reference identique \"%s\"." -#: pcbnew/gendrill.cpp:27 +#: pcbnew/gendrill.cpp:26 msgid "Drill files (*.drl)|*.drl" msgstr "Fichiers de Perçage (*.drl)|*.drl" -#: pcbnew/gendrill.cpp:319 +#: pcbnew/gendrill.cpp:318 msgid "Save Drill File" msgstr "Sauver Fichier de Perçage" -#: pcbnew/gendrill.cpp:404 +#: pcbnew/gendrill.cpp:403 msgid "3:2" msgstr "3:2" -#: pcbnew/gendrill.cpp:405 +#: pcbnew/gendrill.cpp:404 msgid "3:3" msgstr "3:3" -#: pcbnew/gendrill.cpp:756 +#: pcbnew/gendrill.cpp:755 msgid "PostScript files (.ps)|*.ps" msgstr "Fichiers PostScript (.ps)|*.ps" -#: pcbnew/gendrill.cpp:761 +#: pcbnew/gendrill.cpp:760 msgid "Gerber files (.pho)|*.pho" msgstr "Fichiers Gerber (*.pho)|*.pho" -#: pcbnew/gendrill.cpp:779 +#: pcbnew/gendrill.cpp:778 msgid "Save Drill Plot File" msgstr "Sauver Plan de Perçage" -#: pcbnew/gendrill.cpp:790 +#: pcbnew/gendrill.cpp:789 msgid "Unable to create file" msgstr "Impossible de créer le fichier" -#: pcbnew/gendrill.cpp:817 +#: pcbnew/gendrill.cpp:816 msgid "Drill report files (.rpt)|*.rpt" msgstr "Fichiers rapport de perçage (.rpt)*.rpt" -#: pcbnew/gendrill.cpp:823 +#: pcbnew/gendrill.cpp:822 msgid "Save Drill Report File" msgstr "Sauver Fichier Rapport de Perçage" -#: pcbnew/dialog_drc.cpp:129 -#: pcbnew/dialog_drc.cpp:210 +#: pcbnew/dialog_drc.cpp:130 +#: pcbnew/dialog_drc.cpp:211 #, c-format msgid "Report file \"%s\" created" msgstr "Fichier rapport \"%s\" créé" -#: pcbnew/dialog_drc.cpp:131 -#: pcbnew/dialog_drc.cpp:211 +#: pcbnew/dialog_drc.cpp:132 +#: pcbnew/dialog_drc.cpp:212 msgid "Disk File Report Completed" msgstr "Fichier rapport terminé" -#: pcbnew/dialog_drc.cpp:231 +#: pcbnew/dialog_drc.cpp:232 msgid "DRC report files (.rpt)|*.rpt" msgstr "Fichier rapport DRC (.rpt)|*.rpt" -#: pcbnew/dialog_drc.cpp:237 +#: pcbnew/dialog_drc.cpp:238 msgid "Save DRC Report File" msgstr "Sauver Fichier Rapport DRC:" +#: pcbnew/ioascii.cpp:175 +msgid "Error: Unexpected end of file !" +msgstr "Erreur: Fin de fichier inattendue !" + #: pcbnew/dsn.cpp:502 msgid "Line length exceeded" msgstr "Longueur de ligne dépassée" @@ -3296,276 +3276,229 @@ msgstr "Le caractère de délimitation de ligne doit être un seul caractère ' msgid "Un-terminated delimited string" msgstr "Ligne délimitée non terminée" -#: pcbnew/specctra_import.cpp:76 -msgid "Merge Specctra Session file:" -msgstr "Fichier Specctra Session à Fusionner:" - -#: pcbnew/specctra_import.cpp:103 -msgid "BOARD may be corrupted, do not save it." -msgstr "Le PCB peut être corrompu. Ne pas le sauver" - -#: pcbnew/specctra_import.cpp:105 -msgid "Fix problem and try again." -msgstr "Fixer le problème et recommencer." - -#: pcbnew/specctra_import.cpp:129 -msgid "Session file imported and merged OK." -msgstr "Fichier Session importé et fusionné correctement." - -#: pcbnew/specctra_import.cpp:204 -#: pcbnew/specctra_import.cpp:312 -#, c-format -msgid "Session file uses invalid layer id \"%s\"" -msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" - -#: pcbnew/specctra_import.cpp:254 -msgid "Session via padstack has no shapes" -msgstr "Dans le fichier Session une via n'a pas de forme" - -#: pcbnew/specctra_import.cpp:261 -#: pcbnew/specctra_import.cpp:279 -#: pcbnew/specctra_import.cpp:303 -#, c-format -msgid "Unsupported via shape: \"%s\"" -msgstr "Forme via non supportée: \"%s\"" - -#: pcbnew/specctra_import.cpp:360 -msgid "Session file is missing the \"session\" section" -msgstr "Manque dans le Fichier Session file la section \"session\"" - -#: pcbnew/specctra_import.cpp:363 -msgid "Session file is missing the \"placement\" section" -msgstr "Manque dans le Fichier Session file la section \"placement\"" - -#: pcbnew/specctra_import.cpp:366 -msgid "Session file is missing the \"routes\" section" -msgstr "Manque dans le Fichier Session file la section \"routes\"" - -#: pcbnew/specctra_import.cpp:369 -msgid "Session file is missing the \"library_out\" section" -msgstr "Manque dans le Fichier Session file la section \"library_out\"" - -#: pcbnew/specctra_import.cpp:395 -#, c-format -msgid "Session file has 'reference' to non-existent component \"%s\"" -msgstr "Le fichier Session a une 'reference' à un composant non existant \"%s\"" - -#: pcbnew/specctra_import.cpp:539 -#, c-format -msgid "A wire_via references a missing padstack \"%s\"" -msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" - -#: pcbnew/modedit_onclick.cpp:198 +#: pcbnew/modedit_onclick.cpp:201 msgid "End Tool" msgstr "Fin Outil" -#: pcbnew/modedit_onclick.cpp:208 +#: pcbnew/modedit_onclick.cpp:211 msgid "Cancel Block" msgstr "Annuler Bloc" -#: pcbnew/modedit_onclick.cpp:210 +#: pcbnew/modedit_onclick.cpp:213 msgid "Zoom Block (drag middle mouse)" msgstr "Zoom Bloc (drag bouton du milieu souris)" -#: pcbnew/modedit_onclick.cpp:213 +#: pcbnew/modedit_onclick.cpp:216 msgid "Place Block" msgstr "Place Bloc" -#: pcbnew/modedit_onclick.cpp:215 +#: pcbnew/modedit_onclick.cpp:218 msgid "Copy Block (shift + drag mouse)" msgstr "Copie Bloc (shift + drag souris)" -#: pcbnew/modedit_onclick.cpp:217 +#: pcbnew/modedit_onclick.cpp:220 msgid "Mirror Block (alt + drag mouse)" msgstr "Bloc Miroir (alt + drag souris)" -#: pcbnew/modedit_onclick.cpp:219 +#: pcbnew/modedit_onclick.cpp:222 msgid "Rotate Block (ctrl + drag mouse)" msgstr "Rotation Bloc (ctrl + drag souris)" -#: pcbnew/modedit_onclick.cpp:221 +#: pcbnew/modedit_onclick.cpp:224 msgid "Delete Block (shift+ctrl + drag mouse)" msgstr "Effacement Bloc (shift+ctrl + drag souris)" -#: pcbnew/modedit_onclick.cpp:243 +#: pcbnew/modedit_onclick.cpp:246 msgid "Rotate" msgstr "Rotation" -#: pcbnew/modedit_onclick.cpp:247 +#: pcbnew/modedit_onclick.cpp:250 msgid "Scale" msgstr "Echelle" -#: pcbnew/modedit_onclick.cpp:248 +#: pcbnew/modedit_onclick.cpp:251 msgid "Scale X" msgstr "Echelle X" -#: pcbnew/modedit_onclick.cpp:249 +#: pcbnew/modedit_onclick.cpp:252 msgid "Scale Y" msgstr "Echelle Y" -#: pcbnew/modedit_onclick.cpp:255 +#: pcbnew/modedit_onclick.cpp:258 msgid "Transform Module" msgstr "Transforme Module" -#: pcbnew/modedit_onclick.cpp:263 +#: pcbnew/modedit_onclick.cpp:266 msgid "Move Pad" msgstr "Déplace Pad" -#: pcbnew/modedit_onclick.cpp:265 +#: pcbnew/modedit_onclick.cpp:268 msgid "Edit Pad" msgstr "Edit Pad" -#: pcbnew/modedit_onclick.cpp:267 +#: pcbnew/modedit_onclick.cpp:270 msgid "New Pad Settings" msgstr "Nouvelles Caract. Pads" -#: pcbnew/modedit_onclick.cpp:269 +#: pcbnew/modedit_onclick.cpp:272 msgid "Export Pad Settings" msgstr "Exporte Caract. Pads" -#: pcbnew/modedit_onclick.cpp:271 +#: pcbnew/modedit_onclick.cpp:274 msgid "delete Pad" msgstr "Supprimer Pad" -#: pcbnew/modedit_onclick.cpp:276 +#: pcbnew/modedit_onclick.cpp:279 msgid "Global Pad Settings" msgstr "Edition Globale des pads" -#: pcbnew/modedit_onclick.cpp:284 +#: pcbnew/modedit_onclick.cpp:287 msgid "Move Text Mod." msgstr "Déplacer Texte Mod." -#: pcbnew/modedit_onclick.cpp:287 +#: pcbnew/modedit_onclick.cpp:290 msgid "Rotate Text Mod." msgstr "Rot. Texte Mod." -#: pcbnew/modedit_onclick.cpp:289 +#: pcbnew/modedit_onclick.cpp:292 msgid "Edit Text Mod." msgstr "Edit Texte Mod." -#: pcbnew/modedit_onclick.cpp:292 +#: pcbnew/modedit_onclick.cpp:295 msgid "Delete Text Mod." msgstr "Supprimer Texte Mod." -#: pcbnew/modedit_onclick.cpp:299 +#: pcbnew/modedit_onclick.cpp:302 msgid "End edge" msgstr "Fin contour" -#: pcbnew/modedit_onclick.cpp:302 +#: pcbnew/modedit_onclick.cpp:305 msgid "Move edge" msgstr "Déplace contour" -#: pcbnew/modedit_onclick.cpp:305 +#: pcbnew/modedit_onclick.cpp:308 msgid "Place edge" msgstr "Place contour" -#: pcbnew/modedit_onclick.cpp:308 +#: pcbnew/modedit_onclick.cpp:311 msgid "Edit" msgstr "Editer" -#: pcbnew/modedit_onclick.cpp:310 +#: pcbnew/modedit_onclick.cpp:313 msgid "Edit Width (Current)" msgstr "Edit Epaisseur (Courant)" -#: pcbnew/modedit_onclick.cpp:312 +#: pcbnew/modedit_onclick.cpp:315 msgid "Edit Width (All)" msgstr "Edit Epaisseur (Tous)" -#: pcbnew/modedit_onclick.cpp:314 +#: pcbnew/modedit_onclick.cpp:317 msgid "Edit Layer (Current)" msgstr "Edit Couche (Courant)" -#: pcbnew/modedit_onclick.cpp:316 +#: pcbnew/modedit_onclick.cpp:319 msgid "Edit Layer (All)" msgstr "Edit Couche (Tous)" -#: pcbnew/modedit_onclick.cpp:318 +#: pcbnew/modedit_onclick.cpp:321 msgid "Delete edge" msgstr "Effacement contour" -#: pcbnew/modedit_onclick.cpp:358 +#: pcbnew/modedit_onclick.cpp:361 msgid "Set Width" msgstr "Ajuste Epaiss" -#: pcbnew/build_BOM_from_board.cpp:32 +#: pcbnew/build_BOM_from_board.cpp:33 msgid "Comma separated value files (*.csv)|*.csv" msgstr "Fichiers \"Comma separated value\" (*.csv)|*.csv" -#: pcbnew/build_BOM_from_board.cpp:66 +#: pcbnew/build_BOM_from_board.cpp:67 msgid "Save Bill of Materials" msgstr "Sauver Liste du Materiel" -#: pcbnew/build_BOM_from_board.cpp:86 +#: pcbnew/build_BOM_from_board.cpp:87 msgid "Id" msgstr "Id" -#: pcbnew/build_BOM_from_board.cpp:87 +#: pcbnew/build_BOM_from_board.cpp:88 msgid "Designator" msgstr "Reference" -#: pcbnew/build_BOM_from_board.cpp:88 +#: pcbnew/build_BOM_from_board.cpp:89 msgid "Package" msgstr "Boitier" -#: pcbnew/build_BOM_from_board.cpp:89 +#: pcbnew/build_BOM_from_board.cpp:90 msgid "Number" msgstr "Nombre" -#: pcbnew/build_BOM_from_board.cpp:90 +#: pcbnew/build_BOM_from_board.cpp:91 msgid "Designation" msgstr "Designation" -#: pcbnew/build_BOM_from_board.cpp:91 +#: pcbnew/build_BOM_from_board.cpp:92 msgid "Supplier and ref" msgstr "Fournisseur et ref" -#: pcbnew/menubarmodedit.cpp:40 +#: pcbnew/menubarmodedit.cpp:37 msgid "Sizes and Widths" msgstr "Dims. et Epaiss." -#: pcbnew/menubarmodedit.cpp:46 +#: pcbnew/menubarmodedit.cpp:43 msgid "Adjust size,shape,layers... for Pads" msgstr "Ajuster taille, forme, couches... pour pads" -#: pcbnew/menubarmodedit.cpp:50 +#: pcbnew/menubarmodedit.cpp:47 msgid "User Grid Size" msgstr "Dim Grille utilisteur" -#: pcbnew/menubarmodedit.cpp:65 +#: pcbnew/menubarmodedit.cpp:62 msgid "Open the pcbnew manual" msgstr "Ouvrir la documentation de pcbnew" -#: pcbnew/menubarmodedit.cpp:73 +#: pcbnew/menubarmodedit.cpp:70 msgid "&About pcbnew" msgstr "&Au sujet de Pcbnew" -#: pcbnew/menubarmodedit.cpp:74 +#: pcbnew/menubarmodedit.cpp:71 msgid "About pcbnew PCB designer" msgstr "Au sujet de Pcbnew, concption de PCB" -#: pcbnew/zones_by_polygon.cpp:329 -#: pcbnew/zones_by_polygon.cpp:385 -#: pcbnew/zones_by_polygon.cpp:715 +#: pcbnew/zones_by_polygon.cpp:332 +#: pcbnew/zones_by_polygon.cpp:388 +#: pcbnew/zones_by_polygon.cpp:718 msgid "Area: DRC outline error" msgstr "Zone; Erreur DRC sur contour" -#: pcbnew/zones_by_polygon.cpp:598 +#: pcbnew/zones_by_polygon.cpp:601 msgid "DRC error: this start point is inside or too close an other area" msgstr "Erreur DRC: ce point de départ est à l'intérieur d'une autre zone ou trop proche" -#: pcbnew/zones_by_polygon.cpp:660 +#: pcbnew/zones_by_polygon.cpp:663 msgid "DRC error: closing this area creates a drc error with an other area" msgstr "Erreur DRC: la fermeture de cette zone crée une erreur DRC avec une autre zone" -#: pcbnew/zones_by_polygon.cpp:897 +#: pcbnew/zones_by_polygon.cpp:903 msgid "No Net" msgstr "No Net" -#: pcbnew/move-drag_pads.cpp:258 +#: pcbnew/move-drag_pads.cpp:259 #, c-format msgid "Delete Pad (module %s %s) " msgstr "Effacer Pad (module %s %s) " +#: pcbnew/modules.cpp:82 +msgid "Search footprint" +msgstr "Cherche Module" + +#: pcbnew/modules.cpp:330 +msgid "Delete Module" +msgstr "Supprimer Module" + +#: pcbnew/modules.cpp:331 +msgid "Value " +msgstr "Valeur " + #: pcbnew/class_text_mod.cpp:464 msgid "Ref." msgstr "Ref." @@ -3599,31 +3532,31 @@ msgstr "Taille H" msgid "V Size" msgstr "Taille V" -#: pcbnew/onleftclick.cpp:183 +#: pcbnew/onleftclick.cpp:180 msgid "Graphic not authorized on Copper layers" msgstr "Graphique non autorisé sur Couches Cuivre" -#: pcbnew/onleftclick.cpp:206 +#: pcbnew/onleftclick.cpp:203 msgid "Tracks on Copper layers only " msgstr "Pistes sur Couches Cuivre seulement" -#: pcbnew/onleftclick.cpp:287 +#: pcbnew/onleftclick.cpp:284 msgid "Cotation not authorized on Copper layers" msgstr "Cotation non autorisée sur Couches Cuivre" -#: pcbnew/edit_track_width.cpp:97 +#: pcbnew/edit_track_width.cpp:152 msgid "Change track width (entire NET) ?" msgstr "Change largeur piste ( NET complet) ?" -#: pcbnew/edit_track_width.cpp:131 +#: pcbnew/edit_track_width.cpp:202 msgid "Edit All Tracks and Vias Sizes" msgstr "Editer TOUTES Pistes et Vias" -#: pcbnew/edit_track_width.cpp:136 +#: pcbnew/edit_track_width.cpp:207 msgid "Edit All Via Sizes" msgstr "Editer TOUTES Vias" -#: pcbnew/edit_track_width.cpp:141 +#: pcbnew/edit_track_width.cpp:212 msgid "Edit All Track Sizes" msgstr "Editer TOUTES Pistes" @@ -3686,477 +3619,477 @@ msgstr "Aspect des Contours" msgid "Layer selection:" msgstr "Sélection couche:" -#: pcbnew/onrightclick.cpp:42 +#: pcbnew/onrightclick.cpp:134 +msgid "Lock Module" +msgstr "Verrouiller Module" + +#: pcbnew/onrightclick.cpp:142 +msgid "Unlock Module" +msgstr "Déverrouiller Module" + +#: pcbnew/onrightclick.cpp:150 +msgid "Auto Place Module" +msgstr "Auto Place Module" + +#: pcbnew/onrightclick.cpp:156 +msgid "Autoroute" +msgstr "Autoroute" + +#: pcbnew/onrightclick.cpp:172 +msgid "Move Drawing" +msgstr "Déplace Tracé" + +#: pcbnew/onrightclick.cpp:177 +msgid "End Drawing" +msgstr "Fin tracé" + +#: pcbnew/onrightclick.cpp:180 +msgid "Edit Drawing" +msgstr "Edit Tracé" + +#: pcbnew/onrightclick.cpp:182 +msgid "Delete Drawing" +msgstr "Supprimer Tracé" + +#: pcbnew/onrightclick.cpp:187 +msgid "Delete Zone Filling" +msgstr "Supprimer Remplissage de Zone" + +#: pcbnew/onrightclick.cpp:194 +msgid "Close Zone Outline" +msgstr "Fermer Contour de Zone" + +#: pcbnew/onrightclick.cpp:196 +msgid "Delete Last Corner" +msgstr "Supprimer Dernier Sommet" + +#: pcbnew/onrightclick.cpp:220 +msgid "Edit Dimension" +msgstr "Edit Cote" + +#: pcbnew/onrightclick.cpp:223 +msgid "Delete Dimension" +msgstr "Suppression Cote" + +#: pcbnew/onrightclick.cpp:230 +msgid "Move Target" +msgstr "Déplacer Mire" + +#: pcbnew/onrightclick.cpp:233 +msgid "Edit Target" +msgstr "Editer Mire" + +#: pcbnew/onrightclick.cpp:235 +msgid "Delete Target" +msgstr "Supprimer Mire" + +#: pcbnew/onrightclick.cpp:266 +msgid "Get and Move Footprint" +msgstr "Sel. et Dépl. module" + +#: pcbnew/onrightclick.cpp:280 +msgid "Fill or Refill All Zones" +msgstr "Remplir ou Re-remplir Toutes les Zones" + +#: pcbnew/onrightclick.cpp:282 +msgid "Remove Filled Areas in All Zones" +msgstr "Supprimer le Remplissage de toutes les Zones" + +#: pcbnew/onrightclick.cpp:287 +#: pcbnew/onrightclick.cpp:296 +#: pcbnew/onrightclick.cpp:308 +#: pcbnew/onrightclick.cpp:369 +msgid "Select Working Layer" +msgstr "Sélection de la couche de travail" + +#: pcbnew/onrightclick.cpp:294 +#: pcbnew/onrightclick.cpp:366 +msgid "Select Track Width" +msgstr "Sélection Epais. Piste" + +#: pcbnew/onrightclick.cpp:298 +msgid "Select Layer Pair for Vias" +msgstr "Sélection Couple de Couches pour Vias" + +#: pcbnew/onrightclick.cpp:314 +msgid "Footprint Documentation" +msgstr "Documentation des Modules" + +#: pcbnew/onrightclick.cpp:324 +msgid "Glob Move and Place" +msgstr "Move et Place Globaux" + +#: pcbnew/onrightclick.cpp:326 +msgid "Unlock All Modules" +msgstr "Déverrouiller tous les Modules" + +#: pcbnew/onrightclick.cpp:328 +msgid "Lock All Modules" +msgstr "Verrouiller tous les Modules" + +#: pcbnew/onrightclick.cpp:331 +msgid "Move All Modules" +msgstr "Déplace tous les Modules" + +#: pcbnew/onrightclick.cpp:332 +msgid "Move New Modules" +msgstr "Déplace nouveaux Modules" + +#: pcbnew/onrightclick.cpp:334 +msgid "Autoplace All Modules" +msgstr "Autoplace Tous Modules" + +#: pcbnew/onrightclick.cpp:335 +msgid "Autoplace New Modules" +msgstr "AutoPlace nouveaux Modules" + +#: pcbnew/onrightclick.cpp:336 +msgid "Autoplace Next Module" +msgstr "Autoplace Module suivant" + +#: pcbnew/onrightclick.cpp:339 +msgid "Orient All Modules" +msgstr "Oriente Tous Modules" + +#: pcbnew/onrightclick.cpp:346 +msgid "Global Autoroute" +msgstr "Autoroutage global" + +#: pcbnew/onrightclick.cpp:348 +msgid "Select Layer Pair" +msgstr "Sélection Paire de Couches" + +#: pcbnew/onrightclick.cpp:350 +msgid "Autoroute All Modules" +msgstr "Autoroute Tous Modules" + +#: pcbnew/onrightclick.cpp:352 +msgid "Reset Unrouted" +msgstr "Réinit non Routés" + +#: pcbnew/onrightclick.cpp:357 +msgid "Global AutoRouter" +msgstr "Autorouteur Global" + +#: pcbnew/onrightclick.cpp:359 +msgid "Read Global AutoRouter Data" +msgstr "Lire Données de L'autorouteur global" + +#: pcbnew/onrightclick.cpp:389 +msgid "Zoom Block" +msgstr "Zoom Bloc" + +#: pcbnew/onrightclick.cpp:396 +msgid "Flip Block" +msgstr "Retourner Bloc" + +#: pcbnew/onrightclick.cpp:419 +msgid "Drag Via" +msgstr "Drag Via" + +#: pcbnew/onrightclick.cpp:423 +msgid "Edit Via Drill" +msgstr "Editer Perçage Via" + +#: pcbnew/onrightclick.cpp:425 +msgid "Set Via Hole to Default" +msgstr "Ajuste Perçage Via à Défaut" + +#: pcbnew/onrightclick.cpp:426 +msgid "Set via hole to a specific value. This specific value is currently" +msgstr "Ajuster diamètre perçage via à une valeur sécifique. Cette valeur spécifique est actuellement" + +#: pcbnew/onrightclick.cpp:431 +msgid "Set Via Hole to Specific Value" +msgstr "Ajuste Perçage Via à Valeur Spécifique" + +#: pcbnew/onrightclick.cpp:433 +msgid "Set a specific via hole value. This value is currently" +msgstr "Ajuste une valeur spécifique de perçage de la via. Cette valeur est actuellement" + +#: pcbnew/onrightclick.cpp:438 +msgid "Change the Current Specific Drill Value" +msgstr "Changer la Valeur du Perçage Spécifique Courant" + +#: pcbnew/onrightclick.cpp:440 +msgid "Use this Via Hole as Specific Value" +msgstr "Utiliser ce Perçage de Via comme Valeur Spécifique" + +#: pcbnew/onrightclick.cpp:442 +msgid "Export this Via Hole to Others id Vias" +msgstr "Exporte ce Perçage Via aux Autres Semblables." + +#: pcbnew/onrightclick.cpp:444 +msgid "Set ALL Via Holes to Default" +msgstr "Ajuste Perçage TOUTES Vias à Défaut" + +#: pcbnew/onrightclick.cpp:457 +msgid "Move Node" +msgstr "Déplace Noeud" + +#: pcbnew/onrightclick.cpp:462 +msgid "Drag Segments, Keep Slope" +msgstr "Drag Segments, Garder Direction" + +#: pcbnew/onrightclick.cpp:464 +msgid "Drag Segment" +msgstr "Drag Segment" + +#: pcbnew/onrightclick.cpp:467 +msgid "Move Segment" +msgstr "Déplace Segment" + +#: pcbnew/onrightclick.cpp:470 +msgid "Break Track" +msgstr "Briser Piste" + +#: pcbnew/onrightclick.cpp:477 +msgid "Place Node" +msgstr "Place noeud" + +#: pcbnew/onrightclick.cpp:484 +msgid "End Track" +msgstr "Terminer Piste" + +#: pcbnew/onrightclick.cpp:487 +msgid "Place Via" +msgstr "Place Via" + +#: pcbnew/onrightclick.cpp:494 +msgid "Place Micro Via" +msgstr "Place Micro Via" + +#: pcbnew/onrightclick.cpp:507 +msgid "Change Width" +msgstr "Change Largeur" + +#: pcbnew/onrightclick.cpp:509 +msgid "Change Via Size" +msgstr "Change Taille Via" + +#: pcbnew/onrightclick.cpp:510 +msgid "Change Segment Width" +msgstr "Change Largeur Segment" + +#: pcbnew/onrightclick.cpp:513 +msgid "Change Track Width" +msgstr "Change Largeur Piste" + +#: pcbnew/onrightclick.cpp:515 +msgid "Change Net" +msgstr "Change Net" + +#: pcbnew/onrightclick.cpp:517 +msgid "Change ALL Tracks and Vias" +msgstr "Changer TOUTES Pistes et Vias" + +#: pcbnew/onrightclick.cpp:519 +msgid "Change ALL Vias (No Track)" +msgstr "Changer TOUTES Vias (Pas les Pistes)" + +#: pcbnew/onrightclick.cpp:521 +msgid "Change ALL Tracks (No Via)" +msgstr "Changer TOUTES Pistes (Pas les Vias)" + +#: pcbnew/onrightclick.cpp:527 +#: pcbnew/onrightclick.cpp:714 +#: pcbnew/onrightclick.cpp:769 +#: pcbnew/onrightclick.cpp:811 +msgid "Delete" +msgstr "Supprimer" + +#: pcbnew/onrightclick.cpp:529 +msgid "Delete Via" +msgstr "Suppression Via" + +#: pcbnew/onrightclick.cpp:529 +msgid "Delete Segment" +msgstr "Supprimer Segment" + +#: pcbnew/onrightclick.cpp:536 +msgid "Delete Track" +msgstr "Effacer Piste" + +#: pcbnew/onrightclick.cpp:540 +msgid "Delete Net" +msgstr "Supprimer Net" + +#: pcbnew/onrightclick.cpp:545 +msgid "Set Flags" +msgstr "Ajust. Flags" + +#: pcbnew/onrightclick.cpp:546 +msgid "Locked: Yes" +msgstr "Verrou: Oui" + +#: pcbnew/onrightclick.cpp:547 +msgid "Locked: No" +msgstr "Verrou: Non" + +#: pcbnew/onrightclick.cpp:557 +msgid "Track Locked: Yes" +msgstr "Piste Verrouillée: Oui" + +#: pcbnew/onrightclick.cpp:558 +msgid "Track Locked: No" +msgstr "Piste Verrouillée: Non" + +#: pcbnew/onrightclick.cpp:560 +msgid "Net Locked: Yes" +msgstr "Net Verrouillé: Oui" + +#: pcbnew/onrightclick.cpp:561 +msgid "Net Locked: No" +msgstr "Net Verrouillé: Non" + +#: pcbnew/onrightclick.cpp:576 +msgid "Place Edge Outline" +msgstr "Place Segment de Contour" + +#: pcbnew/onrightclick.cpp:582 +msgid "Place Corner" +msgstr "Place Sommet" + +#: pcbnew/onrightclick.cpp:585 +msgid "Place Zone" +msgstr "Place Zone" + +#: pcbnew/onrightclick.cpp:592 +msgid "Zones" +msgstr "Zones" + +#: pcbnew/onrightclick.cpp:597 +msgid "Move Corner" +msgstr "Déplace Sommet" + +#: pcbnew/onrightclick.cpp:599 +msgid "Delete Corner" +msgstr "Supprimer Sommet" + +#: pcbnew/onrightclick.cpp:604 +msgid "Create Corner" +msgstr "Créer Sommet" + +#: pcbnew/onrightclick.cpp:606 +msgid "Drag Outline Segment" +msgstr "Drag Segment Contour" + +#: pcbnew/onrightclick.cpp:611 +msgid "Add Similar Zone" +msgstr "Addition d'une Zone Semblable" + +#: pcbnew/onrightclick.cpp:614 +msgid "Add Cutout Area" +msgstr "Addition d'une Zone Interdite" + +#: pcbnew/onrightclick.cpp:618 +msgid "Fill Zone" +msgstr "Remplir Zone" + +#: pcbnew/onrightclick.cpp:623 +msgid "Remove Filled Areas in Zone" +msgstr "Supprimer le Remplissage de la Zone" + +#: pcbnew/onrightclick.cpp:627 +msgid "Move Zone" +msgstr "Déplace Zone" + +#: pcbnew/onrightclick.cpp:630 +msgid "Edit Zone Params" +msgstr "Editer Paramètres de la Zone" + +#: pcbnew/onrightclick.cpp:635 +msgid "Delete Cutout" +msgstr "Supprimer Zone Interdite" + +#: pcbnew/onrightclick.cpp:638 +msgid "Delete Zone Outline" +msgstr "Supprimer Contour de Zone" + +#: pcbnew/onrightclick.cpp:660 +#: pcbnew/onrightclick.cpp:705 +#: pcbnew/onrightclick.cpp:745 +#: pcbnew/onrightclick.cpp:802 +msgid "Move" +msgstr "Déplacer" + +#: pcbnew/onrightclick.cpp:663 +#: pcbnew/onrightclick.cpp:747 +msgid "Drag" +msgstr "Drag" + +#: pcbnew/onrightclick.cpp:667 +msgid "Rotate +" +msgstr "Rotation +" + +#: pcbnew/onrightclick.cpp:671 +msgid "Rotate -" +msgstr "Rotation -" + +#: pcbnew/onrightclick.cpp:672 +msgid "Flip" +msgstr "Change côté" + +#: pcbnew/onrightclick.cpp:754 +msgid "Copy current pad settings to this pad" +msgstr "Copier les réglages courants pour ce pad" + +#: pcbnew/onrightclick.cpp:758 +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:764 +msgid "Copy this pad settings to all pads in this footprint (or similar footprints)" +msgstr "Copier les caractéristiques de ce pad vers tous les autres pads de ce module( ou modules similaires)" + +#: pcbnew/onrightclick.cpp:773 +msgid "Autoroute Pad" +msgstr "Autoroute Pad" + +#: pcbnew/onrightclick.cpp:774 +msgid "Autoroute Net" +msgstr "Autoroute Net" + +#: pcbnew/onrightclick.cpp:819 +msgid "Delete Marker" +msgstr "Effacer Marqueur" + +#: pcbnew/onrightclick.cpp:820 +msgid "Marker Error Info" +msgstr "Info de Marqueurd'Erreur" + +#: pcbnew/onrightclick.cpp:842 msgid "New Width/Size" msgstr "Nouvelle Largeur/Taille" -#: pcbnew/onrightclick.cpp:45 +#: pcbnew/onrightclick.cpp:845 msgid "Auto Width" msgstr "Epaisseur Automatique" -#: pcbnew/onrightclick.cpp:47 +#: pcbnew/onrightclick.cpp:847 msgid "Use the track width when starting on a track, otherwise the current track width" msgstr "Si on démarre sur une piste existante, utiliser sa largeur, sinon utiliser la largeur courante" -#: pcbnew/onrightclick.cpp:61 +#: pcbnew/onrightclick.cpp:861 #, c-format msgid "Track %.1f" msgstr "Piste %.1f" -#: pcbnew/onrightclick.cpp:63 +#: pcbnew/onrightclick.cpp:863 #, c-format msgid "Track %.3f" msgstr "Piste %.3f" -#: pcbnew/onrightclick.cpp:81 +#: pcbnew/onrightclick.cpp:881 #, c-format msgid "Via %.1f" msgstr "Via %.1f" -#: pcbnew/onrightclick.cpp:83 +#: pcbnew/onrightclick.cpp:883 #, c-format msgid "Via %.3f" msgstr "Via %.3f" -#: pcbnew/onrightclick.cpp:199 -msgid "Lock Module" -msgstr "Verrouiller Module" - -#: pcbnew/onrightclick.cpp:207 -msgid "Unlock Module" -msgstr "Déverrouiller Module" - -#: pcbnew/onrightclick.cpp:215 -msgid "Auto Place Module" -msgstr "Auto Place Module" - -#: pcbnew/onrightclick.cpp:221 -msgid "Autoroute" -msgstr "Autoroute" - -#: pcbnew/onrightclick.cpp:237 -msgid "Move Drawing" -msgstr "Déplace Tracé" - -#: pcbnew/onrightclick.cpp:242 -msgid "End Drawing" -msgstr "Fin tracé" - -#: pcbnew/onrightclick.cpp:245 -msgid "Edit Drawing" -msgstr "Edit Tracé" - -#: pcbnew/onrightclick.cpp:247 -msgid "Delete Drawing" -msgstr "Supprimer Tracé" - -#: pcbnew/onrightclick.cpp:252 -msgid "Delete Zone Filling" -msgstr "Supprimer Remplissage de Zone" - -#: pcbnew/onrightclick.cpp:259 -msgid "Close Zone Outline" -msgstr "Fermer Contour de Zone" - -#: pcbnew/onrightclick.cpp:261 -msgid "Delete Last Corner" -msgstr "Supprimer Dernier Sommet" - -#: pcbnew/onrightclick.cpp:285 -msgid "Edit Dimension" -msgstr "Edit Cote" - -#: pcbnew/onrightclick.cpp:288 -msgid "Delete Dimension" -msgstr "Suppression Cote" - -#: pcbnew/onrightclick.cpp:295 -msgid "Move Target" -msgstr "Déplacer Mire" - -#: pcbnew/onrightclick.cpp:298 -msgid "Edit Target" -msgstr "Editer Mire" - -#: pcbnew/onrightclick.cpp:300 -msgid "Delete Target" -msgstr "Supprimer Mire" - -#: pcbnew/onrightclick.cpp:331 -msgid "Get and Move Footprint" -msgstr "Sel. et Dépl. module" - -#: pcbnew/onrightclick.cpp:345 -msgid "Fill or Refill All Zones" -msgstr "Remplir ou Re-remplir Toutes les Zones" - -#: pcbnew/onrightclick.cpp:347 -msgid "Remove Filled Areas in All Zones" -msgstr "Supprimer le Remplissage de toutes les Zones" - -#: pcbnew/onrightclick.cpp:352 -#: pcbnew/onrightclick.cpp:361 -#: pcbnew/onrightclick.cpp:373 -#: pcbnew/onrightclick.cpp:434 -msgid "Select Working Layer" -msgstr "Sélection de la couche de travail" - -#: pcbnew/onrightclick.cpp:359 -#: pcbnew/onrightclick.cpp:431 -msgid "Select Track Width" -msgstr "Sélection Epais. Piste" - -#: pcbnew/onrightclick.cpp:363 -msgid "Select Layer Pair for Vias" -msgstr "Sélection Couple de Couches pour Vias" - -#: pcbnew/onrightclick.cpp:379 -msgid "Footprint Documentation" -msgstr "Documentation des Modules" - -#: pcbnew/onrightclick.cpp:389 -msgid "Glob Move and Place" -msgstr "Move et Place Globaux" - -#: pcbnew/onrightclick.cpp:391 -msgid "Unlock All Modules" -msgstr "Déverrouiller tous les Modules" - -#: pcbnew/onrightclick.cpp:393 -msgid "Lock All Modules" -msgstr "Verrouiller tous les Modules" - -#: pcbnew/onrightclick.cpp:396 -msgid "Move All Modules" -msgstr "Déplace tous les Modules" - -#: pcbnew/onrightclick.cpp:397 -msgid "Move New Modules" -msgstr "Déplace nouveaux Modules" - -#: pcbnew/onrightclick.cpp:399 -msgid "Autoplace All Modules" -msgstr "Autoplace Tous Modules" - -#: pcbnew/onrightclick.cpp:400 -msgid "Autoplace New Modules" -msgstr "AutoPlace nouveaux Modules" - -#: pcbnew/onrightclick.cpp:401 -msgid "Autoplace Next Module" -msgstr "Autoplace Module suivant" - -#: pcbnew/onrightclick.cpp:404 -msgid "Orient All Modules" -msgstr "Oriente Tous Modules" - -#: pcbnew/onrightclick.cpp:411 -msgid "Global Autoroute" -msgstr "Autoroutage global" - -#: pcbnew/onrightclick.cpp:413 -msgid "Select Layer Pair" -msgstr "Sélection Paire de Couches" - -#: pcbnew/onrightclick.cpp:415 -msgid "Autoroute All Modules" -msgstr "Autoroute Tous Modules" - -#: pcbnew/onrightclick.cpp:417 -msgid "Reset Unrouted" -msgstr "Réinit non Routés" - -#: pcbnew/onrightclick.cpp:422 -msgid "Global AutoRouter" -msgstr "Autorouteur Global" - -#: pcbnew/onrightclick.cpp:424 -msgid "Read Global AutoRouter Data" -msgstr "Lire Données de L'autorouteur global" - -#: pcbnew/onrightclick.cpp:454 -msgid "Zoom Block" -msgstr "Zoom Bloc" - -#: pcbnew/onrightclick.cpp:461 -msgid "Flip Block" -msgstr "Retourner Bloc" - -#: pcbnew/onrightclick.cpp:484 -msgid "Drag Via" -msgstr "Drag Via" - -#: pcbnew/onrightclick.cpp:488 -msgid "Edit Via Drill" -msgstr "Editer Perçage Via" - -#: pcbnew/onrightclick.cpp:490 -msgid "Set Via Hole to Default" -msgstr "Ajuste Perçage Via à Défaut" - -#: pcbnew/onrightclick.cpp:491 -msgid "Set via hole to a specific value. This specific value is currently" -msgstr "Ajuster diamètre perçage via à une valeur sécifique. Cette valeur spécifique est actuellement" - -#: pcbnew/onrightclick.cpp:494 -msgid "Set Via Hole to Specific Value" -msgstr "Ajuste Perçage Via à Valeur Spécifique" - -#: pcbnew/onrightclick.cpp:496 -msgid "Set a specific via hole value. This value is currently" -msgstr "Ajuste une valeur spécifique de perçage de la via. Cette valeur est actuellement" - -#: pcbnew/onrightclick.cpp:499 -msgid "Change the Current Specific Drill Value" -msgstr "Changer la Valeur du Perçage Spécifique Courant" - -#: pcbnew/onrightclick.cpp:501 -msgid "Use this Via Hole as Specific Value" -msgstr "Utiliser ce Perçage de Via comme Valeur Spécifique" - -#: pcbnew/onrightclick.cpp:503 -msgid "Export this Via Hole to Others id Vias" -msgstr "Exporte ce Perçage Via aux Autres Semblables." - -#: pcbnew/onrightclick.cpp:505 -msgid "Set ALL Via Holes to Default" -msgstr "Ajuste Perçage TOUTES Vias à Défaut" - -#: pcbnew/onrightclick.cpp:518 -msgid "Move Node" -msgstr "Déplace Noeud" - -#: pcbnew/onrightclick.cpp:523 -msgid "Drag Segments, Keep Slope" -msgstr "Drag Segments, Garder Direction" - -#: pcbnew/onrightclick.cpp:525 -msgid "Drag Segment" -msgstr "Drag Segment" - -#: pcbnew/onrightclick.cpp:528 -msgid "Move Segment" -msgstr "Déplace Segment" - -#: pcbnew/onrightclick.cpp:531 -msgid "Break Track" -msgstr "Briser Piste" - -#: pcbnew/onrightclick.cpp:538 -msgid "Place Node" -msgstr "Place noeud" - -#: pcbnew/onrightclick.cpp:545 -msgid "End Track" -msgstr "Terminer Piste" - -#: pcbnew/onrightclick.cpp:548 -msgid "Place Via" -msgstr "Place Via" - -#: pcbnew/onrightclick.cpp:555 -msgid "Place Micro Via" -msgstr "Place Micro Via" - -#: pcbnew/onrightclick.cpp:567 -msgid "Change Width" -msgstr "Change Largeur" - -#: pcbnew/onrightclick.cpp:569 -msgid "Change Via Size" -msgstr "Change Taille Via" - -#: pcbnew/onrightclick.cpp:569 -msgid "Change Segment Width" -msgstr "Change Largeur Segment" - -#: pcbnew/onrightclick.cpp:572 -msgid "Change Track Width" -msgstr "Change Largeur Piste" - -#: pcbnew/onrightclick.cpp:574 -msgid "Change Net" -msgstr "Change Net" - -#: pcbnew/onrightclick.cpp:576 -msgid "Change ALL Tracks and Vias" -msgstr "Changer TOUTES Pistes et Vias" - -#: pcbnew/onrightclick.cpp:578 -msgid "Change ALL Vias (No Track)" -msgstr "Changer TOUTES Vias (Pas les Pistes)" - -#: pcbnew/onrightclick.cpp:580 -msgid "Change ALL Tracks (No Via)" -msgstr "Changer TOUTES Pistes (Pas les Vias)" - -#: pcbnew/onrightclick.cpp:586 -#: pcbnew/onrightclick.cpp:773 -#: pcbnew/onrightclick.cpp:828 -#: pcbnew/onrightclick.cpp:877 -msgid "Delete" -msgstr "Supprimer" - -#: pcbnew/onrightclick.cpp:588 -msgid "Delete Via" -msgstr "Suppression Via" - -#: pcbnew/onrightclick.cpp:588 -msgid "Delete Segment" -msgstr "Supprimer Segment" - -#: pcbnew/onrightclick.cpp:595 -msgid "Delete Track" -msgstr "Effacer Piste" - -#: pcbnew/onrightclick.cpp:599 -msgid "Delete Net" -msgstr "Supprimer Net" - -#: pcbnew/onrightclick.cpp:604 -msgid "Set Flags" -msgstr "Ajust. Flags" - -#: pcbnew/onrightclick.cpp:605 -msgid "Locked: Yes" -msgstr "Verrou: Oui" - -#: pcbnew/onrightclick.cpp:606 -msgid "Locked: No" -msgstr "Verrou: Non" - -#: pcbnew/onrightclick.cpp:616 -msgid "Track Locked: Yes" -msgstr "Piste Verrouillée: Oui" - -#: pcbnew/onrightclick.cpp:617 -msgid "Track Locked: No" -msgstr "Piste Verrouillée: Non" - -#: pcbnew/onrightclick.cpp:619 -msgid "Net Locked: Yes" -msgstr "Net Verrouillé: Oui" - -#: pcbnew/onrightclick.cpp:620 -msgid "Net Locked: No" -msgstr "Net Verrouillé: Non" - -#: pcbnew/onrightclick.cpp:635 -msgid "Place Edge Outline" -msgstr "Place Segment de Contour" - -#: pcbnew/onrightclick.cpp:641 -msgid "Place Corner" -msgstr "Place Sommet" - -#: pcbnew/onrightclick.cpp:644 -msgid "Place Zone" -msgstr "Place Zone" - -#: pcbnew/onrightclick.cpp:651 -msgid "Zones" -msgstr "Zones" - -#: pcbnew/onrightclick.cpp:656 -msgid "Move Corner" -msgstr "Déplace Sommet" - -#: pcbnew/onrightclick.cpp:658 -msgid "Delete Corner" -msgstr "Supprimer Sommet" - -#: pcbnew/onrightclick.cpp:663 -msgid "Create Corner" -msgstr "Créer Sommet" - -#: pcbnew/onrightclick.cpp:665 -msgid "Drag Outline Segment" -msgstr "Drag Segment Contour" - -#: pcbnew/onrightclick.cpp:670 -msgid "Add Similar Zone" -msgstr "Addition d'une Zone Semblable" - -#: pcbnew/onrightclick.cpp:673 -msgid "Add Cutout Area" -msgstr "Addition d'une Zone Interdite" - -#: pcbnew/onrightclick.cpp:677 -msgid "Fill Zone" -msgstr "Remplir Zone" - -#: pcbnew/onrightclick.cpp:682 -msgid "Remove Filled Areas in Zone" -msgstr "Supprimer le Remplissage de la Zone" - -#: pcbnew/onrightclick.cpp:686 -msgid "Move Zone" -msgstr "Déplace Zone" - -#: pcbnew/onrightclick.cpp:689 -msgid "Edit Zone Params" -msgstr "Editer Paramètres de la Zone" - -#: pcbnew/onrightclick.cpp:694 -msgid "Delete Cutout" -msgstr "Supprimer Zone Interdite" - -#: pcbnew/onrightclick.cpp:697 -msgid "Delete Zone Outline" -msgstr "Supprimer Contour de Zone" - -#: pcbnew/onrightclick.cpp:719 -#: pcbnew/onrightclick.cpp:764 -#: pcbnew/onrightclick.cpp:802 -#: pcbnew/onrightclick.cpp:868 -msgid "Move" -msgstr "Déplacer" - -#: pcbnew/onrightclick.cpp:722 -#: pcbnew/onrightclick.cpp:804 -msgid "Drag" -msgstr "Drag" - -#: pcbnew/onrightclick.cpp:726 -msgid "Rotate +" -msgstr "Rotation +" - -#: pcbnew/onrightclick.cpp:730 -msgid "Rotate -" -msgstr "Rotation -" - -#: pcbnew/onrightclick.cpp:731 -msgid "Flip" -msgstr "Change côté" - -#: pcbnew/onrightclick.cpp:811 -msgid "Copy current pad settings to this pad" -msgstr "Copier les réglages courants pour ce pad" - -#: pcbnew/onrightclick.cpp:815 -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:823 -msgid "Copy this pad settings to all pads in this footprint (or similar footprints)" -msgstr "Copier les caractéristiques de ce pad vers tous les autres pads de ce module( ou modules similaires)" - -#: pcbnew/onrightclick.cpp:835 -msgid "Autoroute Pad" -msgstr "Autoroute Pad" - -#: pcbnew/onrightclick.cpp:836 -msgid "Autoroute Net" -msgstr "Autoroute Net" - -#: pcbnew/onrightclick.cpp:884 -msgid "Delete Marker" -msgstr "Effacer Marqueur" - -#: pcbnew/onrightclick.cpp:885 -msgid "Marker Error Info" -msgstr "Info de Marqueurd'Erreur" - #: pcbnew/dialog_copper_zones_base.cpp:32 msgid "Zone Setup:" msgstr "Options Zone:" @@ -4328,27 +4261,27 @@ msgstr "" msgid "Net:" msgstr "Net:" -#: pcbnew/dialog_pcb_text_properties.cpp:75 +#: pcbnew/dialog_pcb_text_properties.cpp:76 msgid "TextPCB properties" msgstr "Propriétés des textes PCB" -#: pcbnew/dialog_pcb_text_properties.cpp:106 +#: pcbnew/dialog_pcb_text_properties.cpp:107 msgid "Text:" msgstr "Texte:" -#: pcbnew/dialog_pcb_text_properties.cpp:144 +#: pcbnew/dialog_pcb_text_properties.cpp:145 msgid "Orientation" msgstr "Orientation" -#: pcbnew/dialog_pcb_text_properties.cpp:179 +#: pcbnew/dialog_pcb_text_properties.cpp:180 msgid "Italic" msgstr "Italique" -#: pcbnew/dialog_pcb_text_properties.cpp:180 +#: pcbnew/dialog_pcb_text_properties.cpp:181 msgid "Style" msgstr "Style" -#: pcbnew/dialog_pcb_text_properties.cpp:229 +#: pcbnew/dialog_pcb_text_properties.cpp:242 msgid "The text thickness is too large for the text size. It will be clamped" msgstr "L'épaisseur du texte est trop grande pour ses dimensions, Elle sera limitée" @@ -4474,39 +4407,55 @@ msgstr "couche E.C.O.2" msgid "Draft layer" msgstr "Couche dessin" -#: pcbnew/class_marker.cpp:74 -msgid "Marker" -msgstr "Marqueur" +#: pcbnew/class_board.cpp:536 +msgid "Vias" +msgstr "Vias" -#: pcbnew/class_marker.cpp:78 -msgid "ErrType" -msgstr "Type Err" +#: pcbnew/class_board.cpp:539 +msgid "Nodes" +msgstr "Nodes" -#: pcbnew/class_pad.cpp:381 +#: pcbnew/class_board.cpp:542 +msgid "Nets" +msgstr "Nets" + +#: pcbnew/class_board.cpp:550 +msgid "Links" +msgstr "Liens" + +#: pcbnew/class_board.cpp:553 +msgid "Connect" +msgstr "Connect" + +#: pcbnew/class_board.cpp:556 +msgid "NoConn" +msgstr "Non Conn" + +#: pcbnew/class_pad.cpp:380 msgid "Unknown Pad shape" msgstr "Forme Pad inconnue" -#: pcbnew/class_pad.cpp:467 +#: pcbnew/class_pad.cpp:466 msgid "RefP" msgstr "RefP" -#: pcbnew/class_pad.cpp:470 +#: pcbnew/class_pad.cpp:469 msgid "Net" msgstr "Net" -#: pcbnew/class_pad.cpp:578 +#: pcbnew/class_pad.cpp:577 msgid "Drill" msgstr "Perçage" -#: pcbnew/class_pad.cpp:586 +#: pcbnew/class_pad.cpp:585 msgid "Drill X / Y" msgstr "Perçage X/Y" -#: pcbnew/class_pad.cpp:601 +#: pcbnew/class_pad.cpp:600 msgid "X Pos" msgstr "X Pos" -#: pcbnew/class_pad.cpp:605 +#: pcbnew/class_pad.cpp:604 msgid "Y pos" msgstr "Y pos" @@ -4590,22 +4539,6 @@ msgstr "" "Entrez un nom de fichier si vous ne voulez pas utiliser les noms par défaut\n" "Ne peut être utilisé que pour imprimer la feuille courante" -#: pcbnew/class_netinfo_item.cpp:137 -msgid "Net Name" -msgstr "Nom Equipot" - -#: pcbnew/class_netinfo_item.cpp:140 -msgid "Net Code" -msgstr "Net Code" - -#: pcbnew/class_netinfo_item.cpp:169 -msgid "Vias" -msgstr "Vias" - -#: pcbnew/class_netinfo_item.cpp:172 -msgid "Net Length" -msgstr "Long. Net" - #: pcbnew/dialog_graphic_item_properties.cpp:82 #: pcbnew/dialog_graphic_item_properties.cpp:91 msgid "Center X" @@ -4632,43 +4565,98 @@ msgstr "Start Point X" msgid "Start Point Y" msgstr "Start Point Y" -#: pcbnew/moduleframe.cpp:228 -msgid "Module Editor: Module modified! Continue?" -msgstr "Editeur de Module: Module modifié! Continuer ?" +#: pcbnew/specctra_import.cpp:77 +msgid "Merge Specctra Session file:" +msgstr "Fichier Specctra Session à Fusionner:" -#: pcbnew/muwave_command.cpp:51 +#: pcbnew/specctra_import.cpp:104 +msgid "BOARD may be corrupted, do not save it." +msgstr "Le PCB peut être corrompu. Ne pas le sauver" + +#: pcbnew/specctra_import.cpp:106 +msgid "Fix problem and try again." +msgstr "Fixer le problème et recommencer." + +#: pcbnew/specctra_import.cpp:130 +msgid "Session file imported and merged OK." +msgstr "Fichier Session importé et fusionné correctement." + +#: pcbnew/specctra_import.cpp:205 +#: pcbnew/specctra_import.cpp:313 +#, c-format +msgid "Session file uses invalid layer id \"%s\"" +msgstr "Le Fichier Session utilise une couche invalide n° \"%s\"" + +#: pcbnew/specctra_import.cpp:255 +msgid "Session via padstack has no shapes" +msgstr "Dans le fichier Session une via n'a pas de forme" + +#: pcbnew/specctra_import.cpp:262 +#: pcbnew/specctra_import.cpp:280 +#: pcbnew/specctra_import.cpp:304 +#, c-format +msgid "Unsupported via shape: \"%s\"" +msgstr "Forme via non supportée: \"%s\"" + +#: pcbnew/specctra_import.cpp:361 +msgid "Session file is missing the \"session\" section" +msgstr "Manque dans le Fichier Session file la section \"session\"" + +#: pcbnew/specctra_import.cpp:364 +msgid "Session file is missing the \"placement\" section" +msgstr "Manque dans le Fichier Session file la section \"placement\"" + +#: pcbnew/specctra_import.cpp:367 +msgid "Session file is missing the \"routes\" section" +msgstr "Manque dans le Fichier Session file la section \"routes\"" + +#: pcbnew/specctra_import.cpp:370 +msgid "Session file is missing the \"library_out\" section" +msgstr "Manque dans le Fichier Session file la section \"library_out\"" + +#: pcbnew/specctra_import.cpp:396 +#, c-format +msgid "Session file has 'reference' to non-existent component \"%s\"" +msgstr "Le fichier Session a une 'reference' à un composant non existant \"%s\"" + +#: pcbnew/specctra_import.cpp:540 +#, c-format +msgid "A wire_via references a missing padstack \"%s\"" +msgstr "Une piste ou via a une référence vers un pad \"%s\" manquant" + +#: pcbnew/muwave_command.cpp:52 msgid "Add Line" msgstr "Addition de lignes" -#: pcbnew/muwave_command.cpp:55 +#: pcbnew/muwave_command.cpp:56 msgid "Add Gap" msgstr "Ajouter gap" -#: pcbnew/muwave_command.cpp:59 +#: pcbnew/muwave_command.cpp:60 msgid "Add Stub" msgstr "Ajout de stub" -#: pcbnew/muwave_command.cpp:63 +#: pcbnew/muwave_command.cpp:64 msgid "Add Arc Stub" msgstr "Ajout de stub (arc)" -#: pcbnew/muwave_command.cpp:67 +#: pcbnew/muwave_command.cpp:68 msgid "Add Polynomial Shape" msgstr "Ajout Forme polynomiale" -#: pcbnew/gen_modules_placefile.cpp:133 +#: pcbnew/gen_modules_placefile.cpp:134 msgid "No Modules for Automated Placement" msgstr "Pas de Module pour placement Automatisé" -#: pcbnew/gen_modules_placefile.cpp:173 +#: pcbnew/gen_modules_placefile.cpp:174 msgid "Component side place file:" msgstr "Fichier placement côté composant:" -#: pcbnew/gen_modules_placefile.cpp:177 +#: pcbnew/gen_modules_placefile.cpp:178 msgid "Copper side place file:" msgstr "Fichier placement côté cuivre:" -#: pcbnew/gen_modules_placefile.cpp:181 +#: pcbnew/gen_modules_placefile.cpp:182 msgid "Module count" msgstr "Nb Modules" @@ -4960,23 +4948,23 @@ msgstr "Hauteur Texte Module" msgid "Text Module Size H" msgstr "Largeur Texte Module" -#: pcbnew/class_pcb_text.cpp:234 +#: pcbnew/class_pcb_text.cpp:236 msgid "COTATION" msgstr "COTATION" -#: pcbnew/class_pcb_text.cpp:236 +#: pcbnew/class_pcb_text.cpp:238 msgid "PCB Text" msgstr "Texte PCB" -#: pcbnew/dialog_netlist.cpp:67 +#: pcbnew/dialog_netlist.cpp:68 msgid "Netlist Selection:" msgstr "Sélection de la netliste" -#: pcbnew/export_gencad.cpp:71 +#: pcbnew/export_gencad.cpp:68 msgid "GenCAD board files (.gcd)|*.gcd" msgstr "Fichiers PCB GenCAD (.gcd)|*.gcd" -#: pcbnew/export_gencad.cpp:74 +#: pcbnew/export_gencad.cpp:71 msgid "Save GenCAD Board File" msgstr "Sauver Fichier PCB format GenCAD" @@ -5065,7 +5053,6 @@ msgid "Print" msgstr "Imprimer" #: pcbnew/dialog_netlist_fbp.cpp:25 -#: pcbnew/class_board_item.cpp:96 msgid "Reference" msgstr "Référence" @@ -5157,47 +5144,27 @@ msgstr "Recalculer le chevelu complet ( utile après une édition manuelle de no msgid "Netlist File:" msgstr "Fichier Netliste:" -#: pcbnew/class_track.cpp:876 +#: pcbnew/class_track.cpp:904 #: pcbnew/class_board_item.cpp:169 msgid "Zone" msgstr "Zone" -#: pcbnew/class_track.cpp:924 +#: pcbnew/class_track.cpp:952 msgid "Flags" msgstr "Flags" -#: pcbnew/class_track.cpp:962 +#: pcbnew/class_track.cpp:990 msgid "Diam" msgstr "Diam" -#: pcbnew/class_track.cpp:974 +#: pcbnew/class_track.cpp:1002 msgid "(Specific)" msgstr "(Specifique)" -#: pcbnew/class_track.cpp:976 +#: pcbnew/class_track.cpp:1004 msgid "(Default)" msgstr "(Défaut)" -#: pcbnew/class_board.cpp:537 -msgid "Nodes" -msgstr "Nodes" - -#: pcbnew/class_board.cpp:540 -msgid "Nets" -msgstr "Nets" - -#: pcbnew/class_board.cpp:548 -msgid "Links" -msgstr "Liens" - -#: pcbnew/class_board.cpp:551 -msgid "Connect" -msgstr "Connect" - -#: pcbnew/class_board.cpp:554 -msgid "NoConn" -msgstr "Non Conn" - #: pcbnew/dialog_display_options_base.cpp:20 msgid "Tracks and vias:" msgstr "Pistes et vias:" @@ -5318,40 +5285,40 @@ msgstr "Afficher autres éléments" msgid "Show page limits" msgstr " Afficher limites de page" -#: pcbnew/dialog_orient_footprints.cpp:137 +#: pcbnew/dialog_orient_footprints.cpp:138 msgid "Orientation:" msgstr "Orientation:" -#: pcbnew/dialog_orient_footprints.cpp:142 +#: pcbnew/dialog_orient_footprints.cpp:143 msgid "New orientation (0.1 degree resolution)" msgstr "Nouvelle orientation (0.1 degré de resolution)" -#: pcbnew/dialog_orient_footprints.cpp:145 +#: pcbnew/dialog_orient_footprints.cpp:146 msgid "Filter:" msgstr "Filtre:" -#: pcbnew/dialog_orient_footprints.cpp:148 +#: pcbnew/dialog_orient_footprints.cpp:149 msgid "*" msgstr "*" -#: pcbnew/dialog_orient_footprints.cpp:150 +#: pcbnew/dialog_orient_footprints.cpp:151 msgid "Filter to select footprints by reference" msgstr "Filtre pour sélectionner les empreintes par leur référence" -#: pcbnew/dialog_orient_footprints.cpp:155 +#: pcbnew/dialog_orient_footprints.cpp:156 msgid "Include Locked Footprints" msgstr "Inclure Modules Verrouillés" -#: pcbnew/dialog_orient_footprints.cpp:158 +#: pcbnew/dialog_orient_footprints.cpp:159 msgid "Force locked footprints to be modified" msgstr "Force Modules Verrouillés à être modifiés" -#: pcbnew/dialog_orient_footprints.cpp:244 +#: pcbnew/dialog_orient_footprints.cpp:245 #, c-format msgid "Ok to set footprints orientation to %g degrees ?" msgstr "Ok pour ajuster l'orientation des modules à %g degrés ?" -#: pcbnew/dialog_orient_footprints.cpp:277 +#: pcbnew/dialog_orient_footprints.cpp:278 msgid "Bad value for footprints orientation" msgstr "Mauvaise valeur pour l'orientation des empreintes" @@ -5407,113 +5374,27 @@ msgstr "Change Perçage" msgid "Change Orientation" msgstr "Change Orientation" -#: pcbnew/tool_modedit.cpp:41 -msgid "Select working library" -msgstr "Sélection de la librairie de travail" - -#: pcbnew/tool_modedit.cpp:45 -msgid "Save Module in working library" -msgstr "Sauver Module en librairie de travail" - -#: pcbnew/tool_modedit.cpp:50 -msgid "Create new library and save current module" -msgstr "Créer une nouvelle librairie et y sauver le composant" - -#: pcbnew/tool_modedit.cpp:55 -msgid "Delete part in current library" -msgstr "Supprimer composant en librairie de travail" - -#: pcbnew/tool_modedit.cpp:60 -msgid "New Module" -msgstr "Nouveau Module" - -#: pcbnew/tool_modedit.cpp:64 -msgid "Load module from lib" -msgstr "Charger un module à partir d'une librairie" - -#: pcbnew/tool_modedit.cpp:69 -msgid "Load module from current board" -msgstr "Charger module à partir du C.I." - -#: pcbnew/tool_modedit.cpp:73 -msgid "Update module in current board" -msgstr "Remplacer module dans le C.I." - -#: pcbnew/tool_modedit.cpp:77 -msgid "Insert module into current board" -msgstr "Placer module dans le C.I." - -#: pcbnew/tool_modedit.cpp:82 -msgid "import module" -msgstr "Importer Module" - -#: pcbnew/tool_modedit.cpp:86 -msgid "export module" -msgstr "Exporter Module" - -#: pcbnew/tool_modedit.cpp:91 -msgid "Undo last edition" -msgstr "Défait dernière édition" - -#: pcbnew/tool_modedit.cpp:93 -msgid "Redo the last undo command" -msgstr "Refait la dernière commande defaite" - -#: pcbnew/tool_modedit.cpp:98 -msgid "Module Properties" -msgstr "Propriétés du Module" - -#: pcbnew/tool_modedit.cpp:102 -msgid "Print Module" -msgstr "Imprimer Module" - -#: pcbnew/tool_modedit.cpp:132 -msgid "Module Check" -msgstr "Test module" - -#: pcbnew/tool_modedit.cpp:158 -msgid "Add Pads" -msgstr "Addition de \"pins\"" - -#: pcbnew/tool_modedit.cpp:232 -msgid "Show Texts Sketch" -msgstr "Afficher textes en contour" - -#: pcbnew/tool_modedit.cpp:236 -msgid "Show Edges Sketch" -msgstr "Afficher Modules en contour" - -#: pcbnew/tool_modedit.cpp:305 -#, c-format -msgid "Grid %.1f" -msgstr "Grille %.1f" - -#: pcbnew/tool_modedit.cpp:307 -#, c-format -msgid "Grid %.3f" -msgstr "Grille %.3f" - -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:39 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:40 msgid "from " msgstr "De " -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:185 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:186 msgid "Footprint library files:" msgstr "Fichiers Library Modules:" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:235 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:236 msgid "Library already in use" msgstr "Librairie déjà en usage" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:248 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:249 msgid "Default Path for Libraries" msgstr "Chemin par Défaut des Librairies" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:283 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:284 msgid "Path already in use" msgstr "Chemin déjà en usage" -#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:322 +#: pcbnew/dialog_pcbnew_config_libs_and_paths.cpp:323 msgid "Footprint document file:" msgstr "Documentation des Modules:" @@ -5812,12 +5693,91 @@ msgstr "Selectionner Tout >>" msgid "Net Classes" msgstr "Classes d'Equipots." -#: pcbnew/editrack-part2.cpp:32 +#: pcbnew/tool_modedit.cpp:42 +msgid "Select working library" +msgstr "Sélection de la librairie de travail" + +#: pcbnew/tool_modedit.cpp:46 +msgid "Save Module in working library" +msgstr "Sauver Module en librairie de travail" + +#: pcbnew/tool_modedit.cpp:51 +msgid "Create new library and save current module" +msgstr "Créer une nouvelle librairie et y sauver le composant" + +#: pcbnew/tool_modedit.cpp:56 +msgid "Delete part in current library" +msgstr "Supprimer composant en librairie de travail" + +#: pcbnew/tool_modedit.cpp:61 +#: pcbnew/dialog_exchange_modules_base.cpp:39 +msgid "New Module" +msgstr "Nouveau Module" + +#: pcbnew/tool_modedit.cpp:65 +msgid "Load module from lib" +msgstr "Charger un module à partir d'une librairie" + +#: pcbnew/tool_modedit.cpp:70 +msgid "Load module from current board" +msgstr "Charger module à partir du C.I." + +#: pcbnew/tool_modedit.cpp:74 +msgid "Update module in current board" +msgstr "Remplacer module dans le C.I." + +#: pcbnew/tool_modedit.cpp:78 +msgid "Insert module into current board" +msgstr "Placer module dans le C.I." + +#: pcbnew/tool_modedit.cpp:83 +msgid "import module" +msgstr "Importer Module" + +#: pcbnew/tool_modedit.cpp:87 +msgid "export module" +msgstr "Exporter Module" + +#: pcbnew/tool_modedit.cpp:99 +msgid "Module Properties" +msgstr "Propriétés du Module" + +#: pcbnew/tool_modedit.cpp:103 +msgid "Print Module" +msgstr "Imprimer Module" + +#: pcbnew/tool_modedit.cpp:133 +msgid "Module Check" +msgstr "Test module" + +#: pcbnew/tool_modedit.cpp:159 +msgid "Add Pads" +msgstr "Addition de \"pins\"" + +#: pcbnew/tool_modedit.cpp:233 +msgid "Show Texts Sketch" +msgstr "Afficher textes en contour" + +#: pcbnew/tool_modedit.cpp:237 +msgid "Show Edges Sketch" +msgstr "Afficher Modules en contour" + +#: pcbnew/tool_modedit.cpp:306 +#, c-format +msgid "Grid %.1f" +msgstr "Grille %.1f" + +#: pcbnew/tool_modedit.cpp:308 +#, c-format +msgid "Grid %.3f" +msgstr "Grille %.3f" + +#: pcbnew/editrack-part2.cpp:33 #, c-format msgid "Track Width: %s Vias Size : %s" msgstr "Larg. piste: %s Diam Vias : %s" -#: pcbnew/editrack-part2.cpp:135 +#: pcbnew/editrack-part2.cpp:134 msgid "Drc error, cancelled" msgstr "Erreur DRC, annulation" @@ -5849,28 +5809,40 @@ msgstr "Change tous" msgid "Browse Libs modules" msgstr "Liste modules" -#: pcbnew/dialog_design_rules.cpp:311 +#: pcbnew/class_netinfo_item.cpp:137 +msgid "Net Name" +msgstr "Nom Equipot" + +#: pcbnew/class_netinfo_item.cpp:140 +msgid "Net Code" +msgstr "Net Code" + +#: pcbnew/class_netinfo_item.cpp:172 +msgid "Net Length" +msgstr "Long. Net" + +#: pcbnew/dialog_design_rules.cpp:312 msgid "Errors detected, Abort" msgstr "Erreurs detectées, Abandont" -#: pcbnew/dialog_design_rules.cpp:367 +#: pcbnew/dialog_design_rules.cpp:368 msgid "New Net Class Name:" msgstr "Nouveau Nom de Classe d'Equipotentielle:" -#: pcbnew/dialog_design_rules.cpp:380 +#: pcbnew/dialog_design_rules.cpp:381 msgid "This NetClass is already existing, cannot add it; Aborted" msgstr "Cette NetClass existe déjà, et ne peut être ajoutée; Abandon" -#: pcbnew/dialog_design_rules.cpp:561 +#: pcbnew/dialog_design_rules.cpp:562 #, c-format msgid "This layer name %s is already existing
" msgstr "Ce nom de couche %s existe déjà
" -#: pcbnew/dialog_design_rules.cpp:585 +#: pcbnew/dialog_design_rules.cpp:586 msgid "The track minimum size is bigger than the size
" msgstr "La tracktaille minimum est plus grande que la taille
" -#: pcbnew/dialog_design_rules.cpp:599 +#: pcbnew/dialog_design_rules.cpp:600 msgid "The via minimum size is bigger than the size
" msgstr "La taille minimum deviaest plus grande que la taille
" @@ -5899,7 +5871,7 @@ msgstr "" "Continuer ?" #: eeschema/libedit.cpp:125 -#: eeschema/libedit.cpp:436 +#: eeschema/libedit.cpp:437 msgid "Component \"" msgstr "Composant \"" @@ -5907,135 +5879,135 @@ msgstr "Composant \"" msgid "\" not found." msgstr "\" non trouvé" -#: eeschema/libedit.cpp:263 +#: eeschema/libedit.cpp:264 msgid "Modify Library File \"" msgstr "Ok pour modifier le fichier Librairie \"" -#: eeschema/libedit.cpp:263 +#: eeschema/libedit.cpp:264 msgid "\"?" msgstr "\"?" -#: eeschema/libedit.cpp:274 +#: eeschema/libedit.cpp:275 msgid "Error while saving Library File \"" msgstr "Erreur en sauvant le fichier Librairie \"" -#: eeschema/libedit.cpp:275 -#: eeschema/libedit.cpp:438 +#: eeschema/libedit.cpp:276 +#: eeschema/libedit.cpp:439 msgid "\"." msgstr "\"." -#: eeschema/libedit.cpp:281 +#: eeschema/libedit.cpp:282 msgid "Library File \"" msgstr "Fichier Librairie \"" -#: eeschema/libedit.cpp:283 +#: eeschema/libedit.cpp:284 msgid "Document File \"" msgstr "Fichier de Doc \"" -#: eeschema/libedit.cpp:343 +#: eeschema/libedit.cpp:344 msgid "No Active Library" msgstr "Pas de Librairie Active" -#: eeschema/libedit.cpp:362 +#: eeschema/libedit.cpp:363 #, c-format msgid "Select Component (%d items)" msgstr "Sélection composant (%d items)" -#: eeschema/libedit.cpp:386 +#: eeschema/libedit.cpp:387 msgid "Component not found" msgstr "Composant non trouvé" -#: eeschema/libedit.cpp:389 +#: eeschema/libedit.cpp:390 msgid "Delete component \"" msgstr "Suppression Composant \"" -#: eeschema/libedit.cpp:390 +#: eeschema/libedit.cpp:391 msgid "\" from library \"" msgstr "\" de la librairie \"" -#: eeschema/libedit.cpp:415 +#: eeschema/libedit.cpp:416 msgid "Clear old component from screen (changes will be lost)?" msgstr "Supprimer l'ancien composant de l'écran (les changements seront perdus)?" -#: eeschema/libedit.cpp:437 +#: eeschema/libedit.cpp:438 msgid "\" exists in library \"" msgstr "\" existe en librairie \"" -#: eeschema/libedit.cpp:623 +#: eeschema/libedit.cpp:624 msgid "No component to Save." msgstr "Pas de composant à sauver" -#: eeschema/libedit.cpp:632 +#: eeschema/libedit.cpp:633 msgid "No Library specified." msgstr "Pas de Librairie spécifiée." -#: eeschema/libedit.cpp:644 +#: eeschema/libedit.cpp:645 #, c-format msgid "Component \"%s\" exists. Change it?" msgstr "Le composant \" %s\" existe, Le changer ?" -#: eeschema/libedit.cpp:694 +#: eeschema/libedit.cpp:695 #, c-format msgid "Component %s saved in %s" msgstr "Composant %s sauvé en %s" -#: eeschema/schedit.cpp:189 +#: eeschema/schedit.cpp:188 msgid "Push/Pop Hierarchy" msgstr "Naviger dans Hiérarchie" -#: eeschema/schedit.cpp:193 +#: eeschema/schedit.cpp:192 msgid "Add NoConnect Flag" msgstr "Ajoutde symboles de non connexion" -#: eeschema/schedit.cpp:197 +#: eeschema/schedit.cpp:196 msgid "Add Wire" msgstr "Ajouter Fils" -#: eeschema/schedit.cpp:201 +#: eeschema/schedit.cpp:200 msgid "Add Bus" msgstr "Addition de Bus" -#: eeschema/schedit.cpp:209 +#: eeschema/schedit.cpp:208 msgid "Add Junction" msgstr "Ajout jonctions" -#: eeschema/schedit.cpp:213 +#: eeschema/schedit.cpp:212 msgid "Add Label" msgstr "Ajout Label" -#: eeschema/schedit.cpp:217 +#: eeschema/schedit.cpp:216 msgid "Add Global label" msgstr "Ajout de labels globaux" -#: eeschema/schedit.cpp:221 +#: eeschema/schedit.cpp:220 msgid "Add Hierarchal label" msgstr "Ajouter Label Hiérarchique" -#: eeschema/schedit.cpp:229 +#: eeschema/schedit.cpp:228 msgid "Add Wire to Bus entry" msgstr "Addition d'entrées de bus (type fil vers bus)" -#: eeschema/schedit.cpp:233 +#: eeschema/schedit.cpp:232 msgid "Add Bus to Bus entry" msgstr "Addition d'entrées de bus (type bus vers bus)" -#: eeschema/schedit.cpp:237 +#: eeschema/schedit.cpp:236 msgid "Add Sheet" msgstr "Ajout de Feuille" -#: eeschema/schedit.cpp:241 +#: eeschema/schedit.cpp:240 msgid "Add PinSheet" msgstr "Ajout Conn. hiérar." -#: eeschema/schedit.cpp:245 +#: eeschema/schedit.cpp:244 msgid "Import PinSheet" msgstr "Importer Connecteur de hiérarchie" -#: eeschema/schedit.cpp:249 +#: eeschema/schedit.cpp:248 msgid "Add Component" msgstr "Ajout Composant" -#: eeschema/schedit.cpp:253 +#: eeschema/schedit.cpp:252 msgid "Add Power" msgstr "Ajouter Alims" @@ -6179,25 +6151,25 @@ msgstr "Impossible de trouver le composant " msgid " in library" msgstr " en librairie" -#: eeschema/netlist.cpp:93 +#: eeschema/netlist.cpp:91 msgid "List" msgstr "Liste" -#: eeschema/netlist.cpp:111 +#: eeschema/netlist.cpp:109 msgid "NbItems" msgstr "NbItems" -#: eeschema/netlist.cpp:219 -#: eeschema/netlist.cpp:263 -#: eeschema/netlist.cpp:284 +#: eeschema/netlist.cpp:217 +#: eeschema/netlist.cpp:261 +#: eeschema/netlist.cpp:282 msgid "Done" msgstr "Fini" -#: eeschema/netlist.cpp:225 +#: eeschema/netlist.cpp:223 msgid "Labels" msgstr "Labels" -#: eeschema/netlist.cpp:267 +#: eeschema/netlist.cpp:265 msgid "Hierar." msgstr "Hiérar." @@ -6366,7 +6338,7 @@ msgstr "&Accepter Offset" msgid "Plot: %s\n" msgstr "Trace: %s\n" -#: eeschema/eeredraw.cpp:95 +#: eeschema/eeredraw.cpp:94 msgid "Sheet" msgstr "Feuille" @@ -6588,59 +6560,6 @@ msgstr "Couleur du Fond:" msgid "Library files:" msgstr "Fichiers Librairies:" -#: eeschema/libframe.cpp:164 -msgid "" -"Component was modified!\n" -"Discard changes?" -msgstr "" -"Le composant a été modifié\n" -"Perdre les changements" - -#: eeschema/libframe.cpp:178 -#, c-format -msgid "" -"Library \"%s\" was modified!\n" -"Discard changes?" -msgstr "" -"Librairie \"%s\" modifiée!\n" -"Perdre les changements ?" - -#: eeschema/libframe.cpp:412 -msgid "Include last component changes?" -msgstr "Inclure les dernières modifications du composant" - -#: eeschema/libframe.cpp:464 -msgid " Pins Test OK!" -msgstr " Test Pins OK!" - -#: eeschema/libframe.cpp:538 -msgid "Add Pin" -msgstr "Addition de \"pins\"" - -#: eeschema/libframe.cpp:542 -msgid "Set Pin Options" -msgstr "Choix Options des Pins" - -#: eeschema/libframe.cpp:564 -msgid "Add Rectangle" -msgstr "Addition de rectangles" - -#: eeschema/libframe.cpp:568 -msgid "Add Circle" -msgstr "Addition de cercle" - -#: eeschema/libframe.cpp:572 -msgid "Add Arc" -msgstr "Addition d' arc" - -#: eeschema/libframe.cpp:580 -msgid "Anchor" -msgstr "Ancre" - -#: eeschema/libframe.cpp:590 -msgid "Export" -msgstr "Exporter" - #: eeschema/annotate.cpp:278 #, c-format msgid "%d Duplicate Time stamps replaced" @@ -6817,294 +6736,290 @@ msgstr "Pas de composants trouvés" msgid "Selection" msgstr "Sélection" -#: eeschema/onrightclick.cpp:108 +#: eeschema/onrightclick.cpp:104 msgid "Leave Sheet" msgstr "Quitter sous-feuille" -#: eeschema/onrightclick.cpp:124 +#: eeschema/onrightclick.cpp:120 msgid "Delete Noconn" msgstr "Supprimer Non Connexion" -#: eeschema/onrightclick.cpp:134 +#: eeschema/onrightclick.cpp:130 msgid "Move Bus Entry" msgstr "Déplacer Entrée de Bus" -#: eeschema/onrightclick.cpp:136 +#: eeschema/onrightclick.cpp:132 msgid "Set Bus Entry /" msgstr "Entrée de Bus /" -#: eeschema/onrightclick.cpp:138 +#: eeschema/onrightclick.cpp:134 msgid "Set Bus Entry \\" msgstr "Entrée de Bus \\" -#: eeschema/onrightclick.cpp:140 +#: eeschema/onrightclick.cpp:136 msgid "Delete Bus Entry" msgstr "Supprimer Entrée de Bus" -#: eeschema/onrightclick.cpp:235 +#: eeschema/onrightclick.cpp:231 msgid "Move Field" msgstr "Déplace Champ" -#: eeschema/onrightclick.cpp:236 +#: eeschema/onrightclick.cpp:232 msgid "Rotate Field" msgstr "Rotation Champ" -#: eeschema/onrightclick.cpp:262 +#: eeschema/onrightclick.cpp:258 msgid "Move Component" msgstr "Déplace Composant" -#: eeschema/onrightclick.cpp:267 +#: eeschema/onrightclick.cpp:263 msgid "Drag Component" msgstr "Drag Composant" #: eeschema/onrightclick.cpp:274 -msgid "Rotate +" -msgstr "Rotation +" - -#: eeschema/onrightclick.cpp:278 msgid "Mirror --" msgstr "Miroir--" -#: eeschema/onrightclick.cpp:280 +#: eeschema/onrightclick.cpp:276 msgid "Mirror ||" msgstr "Miroir ||" -#: eeschema/onrightclick.cpp:286 +#: eeschema/onrightclick.cpp:282 msgid "Orient Component" msgstr "Oriente Composant" -#: eeschema/onrightclick.cpp:299 +#: eeschema/onrightclick.cpp:295 msgid "Footprint " msgstr "Empreinte: " -#: eeschema/onrightclick.cpp:304 +#: eeschema/onrightclick.cpp:300 msgid "Convert" msgstr "Convert" -#: eeschema/onrightclick.cpp:312 +#: eeschema/onrightclick.cpp:308 #, c-format msgid "Unit %d %c" msgstr "Unité %d %c" -#: eeschema/onrightclick.cpp:317 +#: eeschema/onrightclick.cpp:313 msgid "Unit" msgstr "Unité" -#: eeschema/onrightclick.cpp:322 +#: eeschema/onrightclick.cpp:318 msgid "Edit Component" msgstr "Edite Composant" -#: eeschema/onrightclick.cpp:326 +#: eeschema/onrightclick.cpp:322 msgid "Copy Component" msgstr "Copie Composant" -#: eeschema/onrightclick.cpp:327 +#: eeschema/onrightclick.cpp:323 msgid "Delete Component" msgstr "Suppression Composant" -#: eeschema/onrightclick.cpp:346 +#: eeschema/onrightclick.cpp:342 msgid "Move Global Label" msgstr "Déplacer Label Global" -#: eeschema/onrightclick.cpp:347 +#: eeschema/onrightclick.cpp:343 msgid "Rotate Global Label" msgstr "Rot. Label Global" -#: eeschema/onrightclick.cpp:348 +#: eeschema/onrightclick.cpp:344 msgid "Edit Global Label" msgstr "Editer Label Global" -#: eeschema/onrightclick.cpp:349 +#: eeschema/onrightclick.cpp:345 msgid "Delete Global Label" msgstr "Supprimer Label Global" -#: eeschema/onrightclick.cpp:353 -#: eeschema/onrightclick.cpp:407 -#: eeschema/onrightclick.cpp:440 +#: eeschema/onrightclick.cpp:349 +#: eeschema/onrightclick.cpp:403 +#: eeschema/onrightclick.cpp:436 msgid "Change to Hierarchical Label" msgstr "Changer en Label Hiérarchique" -#: eeschema/onrightclick.cpp:355 -#: eeschema/onrightclick.cpp:380 -#: eeschema/onrightclick.cpp:438 +#: eeschema/onrightclick.cpp:351 +#: eeschema/onrightclick.cpp:376 +#: eeschema/onrightclick.cpp:434 msgid "Change to Label" msgstr "Change en Label" -#: eeschema/onrightclick.cpp:357 -#: eeschema/onrightclick.cpp:382 -#: eeschema/onrightclick.cpp:409 +#: eeschema/onrightclick.cpp:353 +#: eeschema/onrightclick.cpp:378 +#: eeschema/onrightclick.cpp:405 msgid "Change to Text" msgstr "Change en Texte" -#: eeschema/onrightclick.cpp:359 -#: eeschema/onrightclick.cpp:386 -#: eeschema/onrightclick.cpp:413 -#: eeschema/onrightclick.cpp:444 +#: eeschema/onrightclick.cpp:355 +#: eeschema/onrightclick.cpp:382 +#: eeschema/onrightclick.cpp:409 +#: eeschema/onrightclick.cpp:440 msgid "Change Type" msgstr "Change Type" -#: eeschema/onrightclick.cpp:373 +#: eeschema/onrightclick.cpp:369 msgid "Move Hierarchical Label" msgstr "Déplacer Label Hiérarchique" -#: eeschema/onrightclick.cpp:374 +#: eeschema/onrightclick.cpp:370 msgid "Rotate Hierarchical Label" msgstr "Rot. Label Hiérarchique" -#: eeschema/onrightclick.cpp:375 +#: eeschema/onrightclick.cpp:371 msgid "Edit Hierarchical Label" msgstr "Editer Label Hiérarchique" -#: eeschema/onrightclick.cpp:376 +#: eeschema/onrightclick.cpp:372 msgid "Delete Hierarchical label" msgstr "Supprimer Label Hiérarchique" -#: eeschema/onrightclick.cpp:384 -#: eeschema/onrightclick.cpp:411 +#: eeschema/onrightclick.cpp:380 +#: eeschema/onrightclick.cpp:407 msgid "Change to Global Label" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:400 +#: eeschema/onrightclick.cpp:396 msgid "Move Label" msgstr "Déplace Label" -#: eeschema/onrightclick.cpp:401 +#: eeschema/onrightclick.cpp:397 msgid "Rotate Label" msgstr "Rot. Label" -#: eeschema/onrightclick.cpp:402 +#: eeschema/onrightclick.cpp:398 msgid "Edit Label" msgstr "Editer Label" -#: eeschema/onrightclick.cpp:403 +#: eeschema/onrightclick.cpp:399 msgid "Delete Label" msgstr "Supprimer Label" -#: eeschema/onrightclick.cpp:427 +#: eeschema/onrightclick.cpp:423 msgid "Move Text" msgstr "Déplacer Texte" -#: eeschema/onrightclick.cpp:428 +#: eeschema/onrightclick.cpp:424 msgid "Rotate Text" msgstr "Rot. Texte" -#: eeschema/onrightclick.cpp:429 +#: eeschema/onrightclick.cpp:425 msgid "Edit Text" msgstr "Editer Texte" -#: eeschema/onrightclick.cpp:430 +#: eeschema/onrightclick.cpp:426 msgid "Delete Text" msgstr "Effacer Texte" -#: eeschema/onrightclick.cpp:442 +#: eeschema/onrightclick.cpp:438 msgid "Change to Glabel" msgstr "Change en Label Global" -#: eeschema/onrightclick.cpp:463 -#: eeschema/onrightclick.cpp:503 +#: eeschema/onrightclick.cpp:459 +#: eeschema/onrightclick.cpp:499 msgid "Break Wire" msgstr "Briser Fil" -#: eeschema/onrightclick.cpp:466 +#: eeschema/onrightclick.cpp:462 msgid "Delete Junction" msgstr "Supprimer Jonction" -#: eeschema/onrightclick.cpp:471 -#: eeschema/onrightclick.cpp:497 +#: eeschema/onrightclick.cpp:467 +#: eeschema/onrightclick.cpp:493 msgid "Delete Node" msgstr "Supprimer Noeud" -#: eeschema/onrightclick.cpp:473 -#: eeschema/onrightclick.cpp:499 +#: eeschema/onrightclick.cpp:469 +#: eeschema/onrightclick.cpp:495 msgid "Delete Connection" msgstr "Supprimer Connexion" -#: eeschema/onrightclick.cpp:490 +#: eeschema/onrightclick.cpp:486 msgid "Wire End" msgstr "Terminer Fil" -#: eeschema/onrightclick.cpp:492 +#: eeschema/onrightclick.cpp:488 msgid "Delete Wire" msgstr "Supprimer Fil" -#: eeschema/onrightclick.cpp:513 -#: eeschema/onrightclick.cpp:545 +#: eeschema/onrightclick.cpp:509 +#: eeschema/onrightclick.cpp:541 msgid "Add Global Label" msgstr "Ajout Label Global" -#: eeschema/onrightclick.cpp:529 +#: eeschema/onrightclick.cpp:525 msgid "Bus End" msgstr "Terminer Bus" -#: eeschema/onrightclick.cpp:532 +#: eeschema/onrightclick.cpp:528 msgid "Delete Bus" msgstr "Supprimer Bus" -#: eeschema/onrightclick.cpp:536 +#: eeschema/onrightclick.cpp:532 msgid "Break Bus" msgstr "Briser Bus" -#: eeschema/onrightclick.cpp:558 +#: eeschema/onrightclick.cpp:554 msgid "Enter Sheet" msgstr "Entrer dans Feuille" -#: eeschema/onrightclick.cpp:560 +#: eeschema/onrightclick.cpp:556 msgid "Move Sheet" msgstr "Déplacer Feuille" -#: eeschema/onrightclick.cpp:565 +#: eeschema/onrightclick.cpp:561 msgid "Place Sheet" msgstr "Placer Feuille" -#: eeschema/onrightclick.cpp:569 +#: eeschema/onrightclick.cpp:565 msgid "Edit Sheet" msgstr "Editer Feuille" -#: eeschema/onrightclick.cpp:570 +#: eeschema/onrightclick.cpp:566 msgid "Resize Sheet" msgstr "Redimensionner Feuille" -#: eeschema/onrightclick.cpp:572 +#: eeschema/onrightclick.cpp:568 msgid "Import PinSheets" msgstr "Importer Connecteur de Hiérarchie" -#: eeschema/onrightclick.cpp:576 +#: eeschema/onrightclick.cpp:572 msgid "Cleanup PinSheets" msgstr "Nettoyage des Pins Hiérarchiques" -#: eeschema/onrightclick.cpp:578 +#: eeschema/onrightclick.cpp:574 msgid "Delete Sheet" msgstr "Supprimer Feuille" -#: eeschema/onrightclick.cpp:591 +#: eeschema/onrightclick.cpp:587 msgid "Move PinSheet" msgstr "Déplace Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:593 +#: eeschema/onrightclick.cpp:589 msgid "Edit PinSheet" msgstr "Edit Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:596 +#: eeschema/onrightclick.cpp:592 msgid "Delete PinSheet" msgstr "Supprimer Connecteur de hiérarchie" -#: eeschema/onrightclick.cpp:613 +#: eeschema/onrightclick.cpp:609 msgid "Window Zoom" msgstr "Zoom sur Fenètre" -#: eeschema/onrightclick.cpp:619 +#: eeschema/onrightclick.cpp:615 msgid "Save Block" msgstr "Sauver Bloc" -#: eeschema/onrightclick.cpp:623 +#: eeschema/onrightclick.cpp:619 msgid "Drag Block" msgstr "Drag Bloc" -#: eeschema/onrightclick.cpp:627 +#: eeschema/onrightclick.cpp:623 msgid "Mirror Block ||" msgstr "Miroir Bloc ||" -#: eeschema/onrightclick.cpp:631 +#: eeschema/onrightclick.cpp:627 msgid "Copy to Clipboard" msgstr "Copie dans Presse papier" @@ -7260,37 +7175,58 @@ msgstr "Messages :" msgid "Default Line Width" msgstr "Epaiss. ligne par défaut" -#: eeschema/schframe.cpp:318 -msgid "Schematic modified, Save before exit ?" -msgstr "Schématique modifiée, Sauver avant de quitter ?" +#: eeschema/libframe.cpp:192 +msgid "" +"Component was modified!\n" +"Discard changes?" +msgstr "" +"Le composant a été modifié\n" +"Perdre les changements" -#: eeschema/schframe.cpp:446 -msgid "Draw wires and busses in any direction" -msgstr "Tracer les fils et bus de n'importe quelle direction" +#: eeschema/libframe.cpp:206 +#, c-format +msgid "" +"Library \"%s\" was modified!\n" +"Discard changes?" +msgstr "" +"Librairie \"%s\" modifiée!\n" +"Perdre les changements ?" -#: eeschema/schframe.cpp:447 -msgid "Draw horizontal and vertical wires and busses only" -msgstr "Autoriser fils et bus verticaux et horizontaux seulement" +#: eeschema/libframe.cpp:440 +msgid "Include last component changes?" +msgstr "Inclure les dernières modifications du composant" -#: eeschema/schframe.cpp:455 -msgid "Do not show hidden pins" -msgstr "Ne pas affichager les pins invisibles" +#: eeschema/libframe.cpp:492 +msgid " Pins Test OK!" +msgstr " Test Pins OK!" -#: eeschema/schframe.cpp:456 -msgid "Show hidden pins" -msgstr "Force affichage des pins invisibles" +#: eeschema/libframe.cpp:566 +msgid "Add Pin" +msgstr "Addition de \"pins\"" -#: eeschema/schframe.cpp:476 -msgid "Hide grid" -msgstr "Ne pas afficher la grille" +#: eeschema/libframe.cpp:570 +msgid "Set Pin Options" +msgstr "Choix Options des Pins" -#: eeschema/schframe.cpp:476 -msgid "Show grid" -msgstr "Afficher grille" +#: eeschema/libframe.cpp:592 +msgid "Add Rectangle" +msgstr "Addition de rectangles" -#: eeschema/schframe.cpp:553 -msgid "Schematic" -msgstr "Schématique" +#: eeschema/libframe.cpp:596 +msgid "Add Circle" +msgstr "Addition de cercle" + +#: eeschema/libframe.cpp:600 +msgid "Add Arc" +msgstr "Addition d' arc" + +#: eeschema/libframe.cpp:608 +msgid "Anchor" +msgstr "Ancre" + +#: eeschema/libframe.cpp:618 +msgid "Export" +msgstr "Exporter" #: eeschema/symbedit.cpp:60 msgid "Import symbol drawings:" @@ -8195,6 +8131,39 @@ msgstr "le texte a seulement %d paramètres sur les 8 requis" msgid "Line width" msgstr "Epaisseur ligne" +#: eeschema/schframe.cpp:315 +msgid "Schematic modified, Save before exit ?" +msgstr "Schématique modifiée, Sauver avant de quitter ?" + +#: eeschema/schframe.cpp:443 +msgid "Draw wires and busses in any direction" +msgstr "Tracer les fils et bus de n'importe quelle direction" + +#: eeschema/schframe.cpp:444 +msgid "Draw horizontal and vertical wires and busses only" +msgstr "Autoriser fils et bus verticaux et horizontaux seulement" + +#: eeschema/schframe.cpp:452 +msgid "Do not show hidden pins" +msgstr "Ne pas affichager les pins invisibles" + +#: eeschema/schframe.cpp:453 +msgid "Show hidden pins" +msgstr "Force affichage des pins invisibles" + +#: eeschema/schframe.cpp:473 +msgid "Hide grid" +msgstr "Ne pas afficher la grille" + +#: eeschema/schframe.cpp:473 +#: eeschema/dialog_options.cpp:218 +msgid "Show grid" +msgstr "Afficher grille" + +#: eeschema/schframe.cpp:550 +msgid "Schematic" +msgstr "Schématique" + #: eeschema/dialog_options.cpp:140 #: eeschema/dialog_options.cpp:287 msgid "Delta Step X" @@ -8379,15 +8348,15 @@ msgstr "" msgid "No new text: no change" msgstr "Pas de nouveau texte: pas de changements" -#: eeschema/files-io.cpp:74 +#: eeschema/files-io.cpp:72 msgid "Clear Schematic Hierarchy (modified!)?" msgstr "Effacer la hiérarchie schématique (modifiée!)?" -#: eeschema/files-io.cpp:83 +#: eeschema/files-io.cpp:81 msgid "Open Schematic" msgstr "Ouvrir Schématique" -#: eeschema/files-io.cpp:132 +#: eeschema/files-io.cpp:130 msgid "" "Ready\n" "Working dir: \n" @@ -8395,7 +8364,7 @@ msgstr "" "Prêt\n" "Répertoire de travail: \n" -#: eeschema/files-io.cpp:198 +#: eeschema/files-io.cpp:196 #, c-format msgid "File <%s> not found." msgstr "Fichier <%s> non trouvé" @@ -8883,26 +8852,6 @@ msgstr "" "\n" "Cette opération supprimera l'annotation existante et ne peut être annulée." -#: eeschema/component_class.cpp:1074 -msgid "Ref" -msgstr "Ref" - -#: eeschema/component_class.cpp:1079 -msgid "Pwr Symb" -msgstr "Symb Alim" - -#: eeschema/component_class.cpp:1081 -msgid "Val" -msgstr "Val" - -#: eeschema/component_class.cpp:1085 -msgid "RefLib" -msgstr "RefLib" - -#: eeschema/component_class.cpp:1088 -msgid "Lib" -msgstr "Lib" - #: eeschema/dialog_SVG_print_base.cpp:25 #: eeschema/dialog_print_using_printer_base.cpp:25 msgid "Default Pen Size" @@ -9283,6 +9232,26 @@ msgstr "ERC" msgid "Reset" msgstr "Défaut" +#: eeschema/class_sch_component.cpp:1068 +msgid "Ref" +msgstr "Ref" + +#: eeschema/class_sch_component.cpp:1073 +msgid "Pwr Symb" +msgstr "Symb Alim" + +#: eeschema/class_sch_component.cpp:1075 +msgid "Val" +msgstr "Val" + +#: eeschema/class_sch_component.cpp:1079 +msgid "RefLib" +msgstr "RefLib" + +#: eeschema/class_sch_component.cpp:1082 +msgid "Lib" +msgstr "Lib" + #: eeschema/eelibs_read_libraryfiles.cpp:69 #, c-format msgid "Library <%s> not found" @@ -9476,37 +9445,12 @@ msgstr "Montre la liste filtrée des modules pour le composant courant" msgid "Display the full footprint list (without filtering)" msgstr "Montre la liste complète des modules" -#: cvpcb/cvframe.cpp:264 -msgid "" -"Net and component list modified.\n" -"Save before exit ?" -msgstr "" -"Netlist et liste composants modifiés,\n" -"Sauver avant de quitter ?" - -#: cvpcb/cvframe.cpp:287 -msgid "Problem when saving files, exit anyway ?" -msgstr "Problème en sauvant les fichiers, quitter quand même" - -#: cvpcb/cvframe.cpp:408 -msgid "Delete selections" -msgstr "Effacement des associations existantes" - -#: cvpcb/cvframe.cpp:422 #: cvpcb/init.cpp:68 #: cvpcb/init.cpp:120 #, c-format msgid "Components: %d (free: %d)" msgstr "Composants: %d (libres: %d)" -#: cvpcb/cvframe.cpp:444 -msgid "unnamed" -msgstr "non nommé" - -#: cvpcb/cvframe.cpp:446 -msgid "Open Net List" -msgstr "Ouvrir Fichier Netliste" - #: cvpcb/init.cpp:87 #, c-format msgid "File <%s> does not appear to be a valid Kicad net list file." @@ -9652,6 +9596,30 @@ msgstr "<%s> in'est pas un fichier de module PCB Kicad valide." msgid "Module %s not found" msgstr "Module %s non trouvé" +#: cvpcb/cvframe.cpp:266 +msgid "" +"Net and component list modified.\n" +"Save before exit ?" +msgstr "" +"Netlist et liste composants modifiés,\n" +"Sauver avant de quitter ?" + +#: cvpcb/cvframe.cpp:289 +msgid "Problem when saving files, exit anyway ?" +msgstr "Problème en sauvant les fichiers, quitter quand même" + +#: cvpcb/cvframe.cpp:410 +msgid "Delete selections" +msgstr "Effacement des associations existantes" + +#: cvpcb/cvframe.cpp:446 +msgid "unnamed" +msgstr "non nommé" + +#: cvpcb/cvframe.cpp:448 +msgid "Open Net List" +msgstr "Ouvrir Fichier Netliste" + #: cvpcb/listlib.cpp:62 msgid "No PCB foot print libraries are listed in the current project file." msgstr "Aucune librairie de modules PCB listée dans le fichier projet courant." @@ -9822,6 +9790,31 @@ msgstr "Fichier exécutable (" msgid "Select Prefered Editor" msgstr "Sélection Editeur Préféré" +#: kicad/mainframe.cpp:96 +#, c-format +msgid "" +"Ready\n" +"Working dir: %s\n" +msgstr "" +"Prêt\n" +"Répertoire de travail: %s\n" + +#: kicad/mainframe.cpp:308 +msgid "Execute Python Script" +msgstr "Executer un Script Python" + +#: kicad/mainframe.cpp:309 +msgid "Python script (*.py)|*.py" +msgstr "Script Python (*.py)|*.py" + +#: kicad/mainframe.cpp:327 +msgid "Text file (" +msgstr "Fichier Texte (" + +#: kicad/mainframe.cpp:329 +msgid "Load File to Edit" +msgstr "Fichier à Editer" + #: kicad/buildmnu.cpp:98 msgid "&Open\tCtrl+O" msgstr "&Ouvrir\tCtrl+O" @@ -10168,31 +10161,6 @@ msgstr "" "\n" "Projet: " -#: kicad/mainframe.cpp:95 -#, c-format -msgid "" -"Ready\n" -"Working dir: %s\n" -msgstr "" -"Prêt\n" -"Répertoire de travail: %s\n" - -#: kicad/mainframe.cpp:307 -msgid "Execute Python Script" -msgstr "Executer un Script Python" - -#: kicad/mainframe.cpp:308 -msgid "Python script (*.py)|*.py" -msgstr "Script Python (*.py)|*.py" - -#: kicad/mainframe.cpp:326 -msgid "Text file (" -msgstr "Fichier Texte (" - -#: kicad/mainframe.cpp:328 -msgid "Load File to Edit" -msgstr "Fichier à Editer" - #: kicad/commandframe.cpp:55 msgid "EESchema (Schematic editor)" msgstr "EESchema (Editeur de Schématique)" @@ -10213,7 +10181,7 @@ msgstr "GerbView (Visualisateur Gerber)" msgid "Run Python Script" msgstr "Exécuter le Script Python" -#: gerbview/block.cpp:273 +#: gerbview/block.cpp:267 msgid "Ok to delete block ?" msgstr "Ok pour effacer le bloc" @@ -10319,11 +10287,19 @@ msgstr "Sauver Fichier Gerber" msgid "Current Data will be lost ?" msgstr "Les données courante seront perdues ?" -#: gerbview/initpcb.cpp:78 +#: gerbview/initpcb.cpp:72 msgid "Delete zones ?" msgstr "Effacer Zones ?" -#: gerbview/initpcb.cpp:179 +#: gerbview/initpcb.cpp:128 +msgid "Delete Tracks?" +msgstr "Effacer Pistes ?" + +#: gerbview/initpcb.cpp:151 +msgid "Delete Pcb Texts" +msgstr "Effacer Textes Pcb" + +#: gerbview/initpcb.cpp:173 #, c-format msgid "Delete Layer %d" msgstr "Effacer Couche %d" @@ -10578,6 +10554,10 @@ msgstr "Sauver" msgid "page settings (size, texts)" msgstr "Ajustage de la feuille de dessin (dimensions, textes)" +#: gerbview/tool_gerber.cpp:206 +msgid "Undelete" +msgstr "Annulation du dernier effacement" + #: gerbview/tool_gerber.cpp:211 msgid "Print World" msgstr "Imprimer photo" @@ -10634,7 +10614,7 @@ msgstr "Affiche toutes les couches Gerber" msgid "Switch off all of the Gerber layers" msgstr "N'affiche pas les couches Gerber" -#: gerbview/gerbview.cpp:58 +#: gerbview/gerbview.cpp:59 msgid "GerbView is already running. Continue?" msgstr "Gerbview est en cours d'exécution. Continuer ?" @@ -10650,15 +10630,15 @@ msgstr "Centrer" msgid "Zoom select" msgstr "Sélection Zoom" -#: common/zoom.cpp:232 +#: common/zoom.cpp:231 msgid "Zoom: " msgstr "Zoom: " -#: common/zoom.cpp:243 +#: common/zoom.cpp:242 msgid "Grid Select" msgstr "Sélection Grille" -#: common/zoom.cpp:264 +#: common/zoom.cpp:263 msgid "Grid: " msgstr "Grille: " @@ -10678,162 +10658,6 @@ msgstr "Liste tous" msgid "By Lib Browser" msgstr "Par Visualisateur libs" -#: common/common.cpp:59 -msgid "Kicad project files (*.pro)|*.pro" -msgstr "Fichiers projet Kicad (*.pro)|*.pro" - -#: common/common.cpp:60 -msgid "Kicad PCB files (*.brd)|*.brd" -msgstr "Fichiers Kicad PCB (*.brd)|*.brd" - -#: common/common.cpp:61 -msgid "Kicad schematic files (*.sch)|*.sch" -msgstr "Fichiers schématiques Kicad (*.sch)|*.sch" - -#: common/common.cpp:62 -msgid "Kicad netlist files (*.net)|*.net" -msgstr "fichiers netlistes Kicad (*.net)|*.net" - -#: common/common.cpp:63 -msgid "Gerber files (*.pho)|*.pho" -msgstr "Fichiers Gerber (*.pho)|*.pho" - -#: common/common.cpp:64 -msgid "Portable document format files (*.pdf)|*.pdf" -msgstr "Fichiers \"Portable document format\" (*.pdf)|*.pdf" - -#: common/common.cpp:65 -msgid "All files (*)|*" -msgstr "Tous les fichiers (*)|*" - -#: common/common.cpp:245 -msgid " (\"):" -msgstr " (\"):" - -#: common/common.cpp:335 -msgid " \"" -msgstr " \"" - -#: common/common.cpp:339 -msgid " mm" -msgstr " mm" - -#: common/common.cpp:589 -msgid "Copper " -msgstr "Cuivre " - -#: common/common.cpp:589 -msgid "Inner L1 " -msgstr "Interne 1" - -#: common/common.cpp:589 -msgid "Inner L2 " -msgstr "Interne 2" - -#: common/common.cpp:589 -msgid "Inner L3 " -msgstr "Interne 3" - -#: common/common.cpp:590 -msgid "Inner L4 " -msgstr "Interne 4" - -#: common/common.cpp:590 -msgid "Inner L5 " -msgstr "Interne 5" - -#: common/common.cpp:590 -msgid "Inner L6 " -msgstr "Interne 6" - -#: common/common.cpp:590 -msgid "Inner L7 " -msgstr "Interne 7" - -#: common/common.cpp:591 -msgid "Inner L8 " -msgstr "Interne 8" - -#: common/common.cpp:591 -msgid "Inner L9 " -msgstr "Interne 9" - -#: common/common.cpp:591 -msgid "Inner L10" -msgstr "Interne 10" - -#: common/common.cpp:591 -msgid "Inner L11" -msgstr "Interne 11" - -#: common/common.cpp:592 -msgid "Inner L12" -msgstr "Interne 12" - -#: common/common.cpp:592 -msgid "Inner L13" -msgstr "Interne 13" - -#: common/common.cpp:592 -msgid "Inner L14" -msgstr "Interne 14" - -#: common/common.cpp:593 -msgid "Adhes Cop" -msgstr "Adhes Cu " - -#: common/common.cpp:593 -msgid "Adhes Cmp" -msgstr "Adhes Cmp" - -#: common/common.cpp:593 -msgid "SoldP Cop" -msgstr "SoldP Cu " - -#: common/common.cpp:593 -msgid "SoldP Cmp" -msgstr "SoldP Cmp" - -#: common/common.cpp:594 -msgid "SilkS Cop" -msgstr "Sérigr Cu " - -#: common/common.cpp:594 -msgid "SilkS Cmp" -msgstr "Sérigr Cmp" - -#: common/common.cpp:594 -msgid "Mask Cop " -msgstr "Masque Cu " - -#: common/common.cpp:594 -msgid "Mask Cmp " -msgstr "Masque Cmp" - -#: common/common.cpp:595 -msgid "Drawings " -msgstr "Drawings " - -#: common/common.cpp:595 -msgid "Comments " -msgstr "Commentaires " - -#: common/common.cpp:595 -msgid "Eco1 " -msgstr "Eco1 " - -#: common/common.cpp:595 -msgid "Eco2 " -msgstr "Eco2 " - -#: common/common.cpp:596 -msgid "Edges Pcb" -msgstr "Contour Pcb" - -#: common/common.cpp:596 -msgid "BAD INDEX" -msgstr "BAD INDEX" - #: common/edaappl.cpp:112 msgid "French" msgstr "Français" @@ -10906,6 +10730,162 @@ msgstr "Avertissement" msgid "Error" msgstr "Erreur" +#: common/common.cpp:59 +msgid "Kicad project files (*.pro)|*.pro" +msgstr "Fichiers projet Kicad (*.pro)|*.pro" + +#: common/common.cpp:60 +msgid "Kicad PCB files (*.brd)|*.brd" +msgstr "Fichiers Kicad PCB (*.brd)|*.brd" + +#: common/common.cpp:61 +msgid "Kicad schematic files (*.sch)|*.sch" +msgstr "Fichiers schématiques Kicad (*.sch)|*.sch" + +#: common/common.cpp:62 +msgid "Kicad netlist files (*.net)|*.net" +msgstr "fichiers netlistes Kicad (*.net)|*.net" + +#: common/common.cpp:63 +msgid "Gerber files (*.pho)|*.pho" +msgstr "Fichiers Gerber (*.pho)|*.pho" + +#: common/common.cpp:64 +msgid "Portable document format files (*.pdf)|*.pdf" +msgstr "Fichiers \"Portable document format\" (*.pdf)|*.pdf" + +#: common/common.cpp:65 +msgid "All files (*)|*" +msgstr "Tous les fichiers (*)|*" + +#: common/common.cpp:245 +msgid " (\"):" +msgstr " (\"):" + +#: common/common.cpp:335 +msgid " \"" +msgstr " \"" + +#: common/common.cpp:339 +msgid " mm" +msgstr " mm" + +#: common/common.cpp:563 +msgid "Copper " +msgstr "Cuivre " + +#: common/common.cpp:563 +msgid "Inner L1 " +msgstr "Interne 1" + +#: common/common.cpp:563 +msgid "Inner L2 " +msgstr "Interne 2" + +#: common/common.cpp:563 +msgid "Inner L3 " +msgstr "Interne 3" + +#: common/common.cpp:564 +msgid "Inner L4 " +msgstr "Interne 4" + +#: common/common.cpp:564 +msgid "Inner L5 " +msgstr "Interne 5" + +#: common/common.cpp:564 +msgid "Inner L6 " +msgstr "Interne 6" + +#: common/common.cpp:564 +msgid "Inner L7 " +msgstr "Interne 7" + +#: common/common.cpp:565 +msgid "Inner L8 " +msgstr "Interne 8" + +#: common/common.cpp:565 +msgid "Inner L9 " +msgstr "Interne 9" + +#: common/common.cpp:565 +msgid "Inner L10" +msgstr "Interne 10" + +#: common/common.cpp:565 +msgid "Inner L11" +msgstr "Interne 11" + +#: common/common.cpp:566 +msgid "Inner L12" +msgstr "Interne 12" + +#: common/common.cpp:566 +msgid "Inner L13" +msgstr "Interne 13" + +#: common/common.cpp:566 +msgid "Inner L14" +msgstr "Interne 14" + +#: common/common.cpp:567 +msgid "Adhes Cop" +msgstr "Adhes Cu " + +#: common/common.cpp:567 +msgid "Adhes Cmp" +msgstr "Adhes Cmp" + +#: common/common.cpp:567 +msgid "SoldP Cop" +msgstr "SoldP Cu " + +#: common/common.cpp:567 +msgid "SoldP Cmp" +msgstr "SoldP Cmp" + +#: common/common.cpp:568 +msgid "SilkS Cop" +msgstr "Sérigr Cu " + +#: common/common.cpp:568 +msgid "SilkS Cmp" +msgstr "Sérigr Cmp" + +#: common/common.cpp:568 +msgid "Mask Cop " +msgstr "Masque Cu " + +#: common/common.cpp:568 +msgid "Mask Cmp " +msgstr "Masque Cmp" + +#: common/common.cpp:569 +msgid "Drawings " +msgstr "Drawings " + +#: common/common.cpp:569 +msgid "Comments " +msgstr "Commentaires " + +#: common/common.cpp:569 +msgid "Eco1 " +msgstr "Eco1 " + +#: common/common.cpp:569 +msgid "Eco2 " +msgstr "Eco2 " + +#: common/common.cpp:570 +msgid "Edges Pcb" +msgstr "Contour Pcb" + +#: common/common.cpp:570 +msgid "BAD INDEX" +msgstr "BAD INDEX" + #: common/eda_doc.cpp:151 msgid "Doc File " msgstr "Fichier de Doc " @@ -10919,43 +10899,43 @@ msgstr "MIME type inconnu pour fichier Doc <%s>" msgid "Colors" msgstr "Couleurs" -#: common/block_commande.cpp:62 +#: common/block_commande.cpp:60 msgid "Block Move" msgstr "Déplace Bloc" -#: common/block_commande.cpp:66 +#: common/block_commande.cpp:64 msgid "Block Drag" msgstr "Drag Bloc" -#: common/block_commande.cpp:70 +#: common/block_commande.cpp:68 msgid "Block Copy" msgstr "Copie Bloc" -#: common/block_commande.cpp:74 +#: common/block_commande.cpp:72 msgid "Block Delete" msgstr "Efface Bloc" -#: common/block_commande.cpp:78 +#: common/block_commande.cpp:76 msgid "Block Save" msgstr "Sauve Bloc" -#: common/block_commande.cpp:82 +#: common/block_commande.cpp:80 msgid "Block Paste" msgstr "Duplic. Bloc" -#: common/block_commande.cpp:86 +#: common/block_commande.cpp:84 msgid "Win Zoom" msgstr "Win Zoom" -#: common/block_commande.cpp:90 +#: common/block_commande.cpp:88 msgid "Block Rotate" msgstr "Rotation Bloc" -#: common/block_commande.cpp:94 +#: common/block_commande.cpp:92 msgid "Block Invert" msgstr "Inversion Bloc" -#: common/block_commande.cpp:99 +#: common/block_commande.cpp:97 msgid "Block Mirror" msgstr "Bloc Miroir" @@ -11072,20 +11052,20 @@ msgstr "Emplacement des Fichiers des Hotkeys" msgid "Select hotkey config file location (home directory or kicad tree)" msgstr "Sélection emplacement des fichiers de config. des hotkeys(\"home\" ou répertoire kicad)" -#: common/basicframe.cpp:224 +#: common/basicframe.cpp:226 msgid " file <" msgstr " Fichier <" -#: common/basicframe.cpp:224 +#: common/basicframe.cpp:226 msgid "> was not found." msgstr "> non trouvé." -#: common/basicframe.cpp:260 +#: common/basicframe.cpp:262 #, c-format msgid "Help file %s not found" msgstr "Fichier d'aide %s non trouvé" -#: common/basicframe.cpp:268 +#: common/basicframe.cpp:270 #, c-format msgid "Help file %s could not be found." msgstr "Fichier d'aide %s non trouvé." @@ -11098,7 +11078,7 @@ msgstr "??? Via" msgid "Blind/Buried Via" msgstr "Via Aveugle/Enterrée" -#: common/pcbcommon.cpp:85 +#: common/pcbcommon.cpp:82 msgid "Kicad footprint library files (*.mod)|*.mod" msgstr "Fichiers Modules Kicad (*.mod)|*.mod" @@ -11118,7 +11098,12 @@ msgstr "??" msgid "Load Error!" msgstr "Erreur de Chargement!" -#: 3d-viewer/3d_aux.cpp:206 +#: 3d-viewer/3d_read_mesh.cpp:46 +#, c-format +msgid "3D part library <%s> could not be found." +msgstr "Le fichier 3D <%s> n'a pu être trouvé." + +#: 3d-viewer/3d_aux.cpp:205 msgid "Vertex " msgstr "Vertex " @@ -11174,7 +11159,7 @@ msgstr "Vers le haut ^" msgid "Move Down" msgstr "Vers le bas" -#: 3d-viewer/3d_canvas.cpp:634 +#: 3d-viewer/3d_canvas.cpp:624 msgid "3D Image filename:" msgstr "Nom fichier Image 3D:" @@ -11254,11 +11239,6 @@ msgstr "Couche ECO1 On/Off" msgid "Eco2 Layer On/Off" msgstr "Couche ECO2 On/Off" -#: 3d-viewer/3d_read_mesh.cpp:47 -#, c-format -msgid "3D part library <%s> could not be found." -msgstr "Le fichier 3D <%s> n'a pu être trouvé." - #: share/setpage.cpp:261 msgid "Size A4" msgstr "Format A4 " @@ -11419,59 +11399,59 @@ msgstr "Options Générales" msgid "Pad Properties" msgstr "Propriétés du Pad" -#: pcbnew/set_color.h:40 +#: pcbnew/set_color.h:36 msgid "Pcbnew Layer Colors:" msgstr "Pcbnew: Couleur des Couches" -#: pcbnew/set_color.h:83 +#: pcbnew/set_color.h:79 msgid "Copper Layers" msgstr "Couches Cuivre." -#: pcbnew/set_color.h:218 +#: pcbnew/set_color.h:214 msgid "Tech Layers" msgstr "Couches Tech." -#: pcbnew/set_color.h:329 +#: pcbnew/set_color.h:325 msgid "Others" msgstr "Autres" -#: pcbnew/set_color.h:359 +#: pcbnew/set_color.h:355 msgid "Ratsnest" msgstr "Chevelu" -#: pcbnew/set_color.h:368 +#: pcbnew/set_color.h:364 msgid "Pad Cu" msgstr "Pad Cu" -#: pcbnew/set_color.h:376 +#: pcbnew/set_color.h:372 msgid "Pad Cmp" msgstr "Pad Cmp" -#: pcbnew/set_color.h:384 +#: pcbnew/set_color.h:380 msgid "Text Module Cu" msgstr "Texte Module Cu" -#: pcbnew/set_color.h:392 +#: pcbnew/set_color.h:388 msgid "Text Module Cmp" msgstr "Texte Module Cmp" -#: pcbnew/set_color.h:400 +#: pcbnew/set_color.h:396 msgid "Text Module invisible" msgstr "Texte Module invisible" -#: pcbnew/set_color.h:408 +#: pcbnew/set_color.h:404 msgid "Anchors" msgstr "Ancres" -#: pcbnew/set_color.h:425 +#: pcbnew/set_color.h:421 msgid "Show Noconnect" msgstr "Montrer Non Conn" -#: pcbnew/set_color.h:434 +#: pcbnew/set_color.h:430 msgid "Show Modules Cmp" msgstr "Afficher Modules Cmp" -#: pcbnew/set_color.h:443 +#: pcbnew/set_color.h:439 msgid "Show Modules Cu" msgstr "Afficher Modules Cu" @@ -11779,6 +11759,24 @@ msgstr "DCodes id." msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "Current Board will be lost ?" +#~ msgstr "Le C.I. courant sera perdu ?" +#~ msgid "Delete Zones ?" +#~ msgstr "Effacer Zones ?" +#~ msgid "Delete Board edges ?" +#~ msgstr "Effacement contour PCB" +#~ msgid "Delete draw items?" +#~ msgstr "Suppression éléments graphiques?" +#~ msgid "Delete Modules?" +#~ msgstr "Effacement des Modules?" +#~ msgid "Delete zones" +#~ msgstr "SuppressionZones" +#~ msgid "Zone rotation" +#~ msgstr "Rotation Zones" +#~ msgid "Block mirroring" +#~ msgstr "Bloc Miroir" +#~ msgid "Rotate +" +#~ msgstr "Rotation +" #~ msgid "No component" #~ msgstr "Pas de composants" #~ msgid "Sorting Nets" diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index fd53ae9d9d..fdc3a2b2bf 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -39,9 +39,12 @@ set(PCBNEW_SRCS dialog_display_options_base.cpp dialog_drc_base.cpp dialog_drc.cpp + dialog_edit_module_for_BoardEditor.cpp + dialog_edit_module_for_BoardEditor_base.cpp + dialog_edit_module_for_modedit_base.cpp + dialog_edit_module_for_modedit.cpp dialog_edit_module_text.cpp dialog_edit_module_text_base.cpp - dialog_edit_module.cpp dialog_exchange_modules_base.cpp dialog_freeroute_exchange.cpp # dialog_gendrill.cpp diff --git a/pcbnew/board_undo_redo.cpp b/pcbnew/board_undo_redo.cpp index 1d0b3dbc6d..38a56e95f1 100644 --- a/pcbnew/board_undo_redo.cpp +++ b/pcbnew/board_undo_redo.cpp @@ -156,10 +156,10 @@ void SwapData( BOARD_ITEM* aItem, BOARD_ITEM* aImage ) break; case TYPE_DRAWSEGMENT: - EXCHG( ( (TRACK*) aItem )->m_Start, ( (TRACK*) aImage )->m_Start ); - EXCHG( ( (TRACK*) aItem )->m_End, ( (TRACK*) aImage )->m_End ); - EXCHG( ( (TRACK*) aItem )->m_Width, ( (TRACK*) aImage )->m_Width ); - EXCHG( ( (TRACK*) aItem )->m_Shape, ( (TRACK*) aImage )->m_Shape ); + EXCHG( ( (DRAWSEGMENT*) aItem )->m_Start, ( (DRAWSEGMENT*) aImage )->m_Start ); + EXCHG( ( (DRAWSEGMENT*) aItem )->m_End, ( (DRAWSEGMENT*) aImage )->m_End ); + EXCHG( ( (DRAWSEGMENT*) aItem )->m_Width, ( (DRAWSEGMENT*) aImage )->m_Width ); + EXCHG( ( (DRAWSEGMENT*) aItem )->m_Shape, ( (DRAWSEGMENT*) aImage )->m_Shape ); break; case TYPE_TRACK: @@ -581,8 +581,8 @@ void WinEDA_PcbFrame::GetBoardFromUndoList( wxCommandEvent& event ) /* Undo the command */ PutDataInPreviousState( List, false ); - /* Pu the old list in RedoList */ - List->ReversePickersListOrder(); + /* Put the old list in RedoList */ + List->ReversePickersListOrder(); GetScreen()->PushCommandToRedoList( List ); GetScreen()->SetModify(); diff --git a/pcbnew/class_text_mod.cpp b/pcbnew/class_text_mod.cpp index cb1449b69f..1eb7dbc90e 100644 --- a/pcbnew/class_text_mod.cpp +++ b/pcbnew/class_text_mod.cpp @@ -239,8 +239,7 @@ void TEXTE_MODULE:: SetDrawCoord() NORMALIZE_ANGLE_POS( angle ); RotatePoint( &m_Pos.x, &m_Pos.y, angle ); - m_Pos.x += Module->m_Pos.x; - m_Pos.y += Module->m_Pos.y; + m_Pos += Module->m_Pos; } @@ -250,10 +249,12 @@ void TEXTE_MODULE:: SetLocalCoord() MODULE* Module = (MODULE*) m_Parent; if( Module == NULL ) + { + m_Pos0 = m_Pos; return; + } - m_Pos0.x = m_Pos.x - Module->m_Pos.x; - m_Pos0.y = m_Pos.y - Module->m_Pos.y; + m_Pos0 = m_Pos - Module->m_Pos; int angle = Module->m_Orient; NORMALIZE_ANGLE_POS( angle ); @@ -447,18 +448,12 @@ int TEXTE_MODULE::GetDrawRotation() // see class_text_mod.h void TEXTE_MODULE::DisplayInfo( WinEDA_DrawFrame* frame ) { - wxString msg, Line; - int ii; - MODULE* module = (MODULE*) m_Parent; - - wxASSERT( module ); - - if( !module ) + if( module == NULL ) // Happens in modedit, and for new texts return; - BOARD* board = (BOARD*) module->GetParent(); - wxASSERT( board ); + wxString msg, Line; + int ii; static const wxString text_type_msg[3] = { _( "Ref." ), _( "Value" ), _( "Text" ) @@ -484,11 +479,13 @@ void TEXTE_MODULE::DisplayInfo( WinEDA_DrawFrame* frame ) msg = _( "Yes" ); Affiche_1_Parametre( frame, 25, _( "Display" ), msg, DARKGREEN ); - ii = m_Layer; - if( ii < NB_LAYERS ) - msg = board->GetLayerName( ii ); + // Display text layer (use layer name if possible) + BOARD* board = NULL; + board = (BOARD*) module->GetParent(); + if( m_Layer < NB_LAYERS && board ) + msg = board->GetLayerName( m_Layer ); else - msg.Printf( wxT( "%d" ), ii ); + msg.Printf( wxT( "%d" ), m_Layer ); Affiche_1_Parametre( frame, 31, _( "Layer" ), msg, DARKGREEN ); msg = _( " No" ); diff --git a/pcbnew/dialog_edit_module.cpp b/pcbnew/dialog_edit_module.cpp deleted file mode 100644 index 18d75b3faf..0000000000 --- a/pcbnew/dialog_edit_module.cpp +++ /dev/null @@ -1,860 +0,0 @@ -/************************************************/ -/* Module editor: Dialog box for editing module */ -/* properties and carateristics */ -/* include in modedit.cpp */ -/************************************************/ - -#include "fctsys.h" -#include "common.h" -#include "class_drawpanel.h" -#include "confirm.h" -#include "pcbnew.h" -#include "bitmaps.h" -#include "appl_wxstruct.h" -#include "gestfich.h" -#include "3d_struct.h" -#include "3d_viewer.h" -#include "wxPcbStruct.h" -#include "dialog_edit_module.h" - -extern bool GoToEditor; - -/**************************************/ -/* class WinEDA_ModulePropertiesFrame */ -/**************************************/ - -BEGIN_EVENT_TABLE( WinEDA_ModulePropertiesFrame, wxDialog ) - EVT_BUTTON( wxID_OK, WinEDA_ModulePropertiesFrame::OnOkClick ) - EVT_BUTTON( wxID_CANCEL, WinEDA_ModulePropertiesFrame::OnCancelClick ) - EVT_BUTTON( ID_MODULE_EDIT_ADD_TEXT, WinEDA_ModulePropertiesFrame::CreateTextModule ) - EVT_BUTTON( ID_MODULE_EDIT_EDIT_TEXT, WinEDA_ModulePropertiesFrame::EditOrDelTextModule ) - EVT_BUTTON( ID_MODULE_EDIT_DELETE_TEXT, WinEDA_ModulePropertiesFrame::EditOrDelTextModule ) - EVT_BUTTON( ID_MODULE_PROPERTIES_EXCHANGE, WinEDA_ModulePropertiesFrame::ExchangeModule ) - EVT_KICAD_CHOICEBOX( ID_MODULE_LISTBOX_SELECT, WinEDA_ModulePropertiesFrame::SelectTextListBox ) - EVT_RADIOBOX( ID_LISTBOX_ORIENT_SELECT, WinEDA_ModulePropertiesFrame::ModuleOrientEvent ) - EVT_BUTTON( ID_GOTO_MODULE_EDITOR, WinEDA_ModulePropertiesFrame::GotoModuleEditor ) -END_EVENT_TABLE() - -/**********************/ -/* class Panel3D_Ctrl */ -/**********************/ -BEGIN_EVENT_TABLE( Panel3D_Ctrl, wxPanel ) - EVT_BUTTON( ID_BROWSE_3D_LIB, Panel3D_Ctrl::Browse3DLib ) - EVT_BUTTON( ID_ADD_3D_SHAPE, Panel3D_Ctrl::AddOrRemove3DShape ) - EVT_BUTTON( ID_REMOVE_3D_SHAPE, Panel3D_Ctrl::AddOrRemove3DShape ) -END_EVENT_TABLE() - - -/**************************************************************************************/ -WinEDA_ModulePropertiesFrame::WinEDA_ModulePropertiesFrame( WinEDA_BasePcbFrame* parent, - MODULE* Module, wxDC* DC ) : - wxDialog( parent, -1, _( "Module properties" ), wxDefaultPosition, wxDefaultSize, DIALOG_STYLE ) -/**************************************************************************************/ -{ - wxString number; - - SetIcon( wxICON( icon_modedit ) ); // Give an icon - - m_Parent = parent; - m_DC = DC; - - m_LayerCtrl = NULL; - m_OrientCtrl = NULL; - m_OrientValue = NULL; - m_Doc = m_Keyword = NULL; - - m_CurrentModule = Module; - m_DeleteFieddButton = NULL; - - if( m_CurrentModule ) - { - } - - CreateControls(); - - GetSizer()->Fit( this ); - GetSizer()->SetSizeHints( this ); - Centre(); -} - - -/*****************************************************/ -void WinEDA_ModulePropertiesFrame::CreateControls() -/*****************************************************/ -{ - wxPoint pos; - wxButton* Button; - bool FullOptions = FALSE; - - if( m_Parent->m_Ident == PCB_FRAME ) - FullOptions = TRUE; - - m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); - SetSizer( m_GeneralBoxSizer ); - - m_NoteBook = new wxNotebook( this, ID_NOTEBOOK ); - m_GeneralBoxSizer->Add( m_NoteBook, 0, wxGROW | wxALL, 5 ); - - // Add panels - m_PanelProperties = new wxPanel( m_NoteBook, -1 ); - m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); - m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); - BuildPanelModuleProperties( FullOptions ); - m_NoteBook->AddPage( m_PanelProperties, _( "Properties" ), TRUE ); - - m_Panel3D = new Panel3D_Ctrl( this, m_NoteBook, -1, - m_CurrentModule->m_3D_Drawings ); - m_NoteBook->AddPage( m_Panel3D, _( "3D settings" ), FALSE ); - - /* creation des autres formes 3D */ - Panel3D_Ctrl* panel3D = m_Panel3D, * nextpanel3D; - S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; - if( draw3D ) - { - draw3D = (S3D_MASTER*) draw3D->Next(); - for( ; draw3D != NULL; draw3D = (S3D_MASTER*) draw3D->Next() ) - { - nextpanel3D = new Panel3D_Ctrl( this, m_NoteBook, -1, draw3D ); - m_NoteBook->AddPage( nextpanel3D, _( "3D settings" ), FALSE ); - panel3D->m_Pnext = nextpanel3D; - nextpanel3D->m_Pback = panel3D; - panel3D = nextpanel3D; - } - } - - /* Creation des boutons de commande */ - wxBoxSizer* ButtonsBoxSizer = new wxBoxSizer( wxHORIZONTAL ); - m_GeneralBoxSizer->Add( ButtonsBoxSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 ); - - Button = new wxButton( this, wxID_OK, _( "OK" ) ); - ButtonsBoxSizer->Add( Button, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); - - Button = new wxButton( this, wxID_CANCEL, _( "Cancel" ) ); - ButtonsBoxSizer->Add( Button, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); -} - - -/***********************************************************/ -void Panel3D_Ctrl::AddOrRemove3DShape( wxCommandEvent& event ) -/***********************************************************/ -{ - if( event.GetId() == ID_ADD_3D_SHAPE ) - { - Panel3D_Ctrl* panel3D = new Panel3D_Ctrl( m_ParentFrame, m_Parent, - -1, NULL ); - m_Parent->InsertPage( m_Parent->GetSelection() + 1, - panel3D, _( "3D settings" ), TRUE ); - panel3D->m_Pback = this; - panel3D->m_Pnext = m_Pnext; - if( m_Pnext ) - m_Pnext->m_Pback = panel3D; - m_Pnext = panel3D; - } - - if( event.GetId() == ID_REMOVE_3D_SHAPE ) - { - if( m_Pback ) - { - m_Pback->m_Pnext = m_Pnext; - if( m_Pnext ) - m_Pnext->m_Pback = m_Pback; - m_Parent->DeletePage( m_Parent->GetSelection() ); - m_ParentFrame->Refresh( TRUE ); - } - } -} - - -/***************************************************************************/ -void WinEDA_ModulePropertiesFrame::BuildPanelModuleProperties( bool FullOptions ) -/***************************************************************************/ - -/* creation du panel d'edition des proprietes du module - */ -{ - wxButton* Button; - wxStaticText* StaticText; - wxBoxSizer* PropLeftSizer; - wxBoxSizer* PropRightSizer; - wxString msg; - - m_ModPositionX = NULL; - m_ModPositionY = NULL; - - /* Create a sizer for controls in the left column */ - PropLeftSizer = new wxBoxSizer( wxVERTICAL ); - m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 0, wxGROW | wxALL, 5 ); - /* Create a sizer for controls in the right column */ - PropRightSizer = new wxBoxSizer( wxVERTICAL ); - m_PanelPropertiesBoxSizer->Add( PropRightSizer, 0, wxGROW | wxALL, 5 ); - - if( FullOptions ) // Module is on a board - { - wxStaticText* XPositionStatic = new wxStaticText(m_PanelProperties, -1, _("X")); - wxStaticText* YPositionStatic = new wxStaticText(m_PanelProperties, -1, _("Y")); - Button = new wxButton( m_PanelProperties, ID_MODULE_PROPERTIES_EXCHANGE, - _( "Change module(s)" ) ); - PropRightSizer->Add( Button, 0, wxGROW | wxALL, 5 ); - Button = new wxButton( m_PanelProperties, ID_GOTO_MODULE_EDITOR, - _( "Edit Module" ) ); - PropRightSizer->Add( Button, 0, wxGROW | wxALL, 5 ); - - wxStaticBox* positionBox = new wxStaticBox(m_PanelProperties, -1, _("Position") ); - wxStaticBoxSizer* positionBoxSizer = new wxStaticBoxSizer( positionBox, wxVERTICAL ); - PropRightSizer->Add(positionBoxSizer, 0, wxGROW | wxALL, 5 ); - - m_ModPositionX = new wxTextCtrl( m_PanelProperties, ID_MODULE_EDIT_X_POSITION, wxT(""), - wxDefaultPosition, wxDefaultSize, 0, - wxTextValidator(wxFILTER_NUMERIC, NULL), wxTextCtrlNameStr); - - PutValueInLocalUnits( *m_ModPositionX, m_CurrentModule->GetPosition().x, PCB_INTERNAL_UNIT ); - AddUnitSymbol( *XPositionStatic, g_UnitMetric ); - positionBoxSizer->Add( XPositionStatic, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); - positionBoxSizer->Add( m_ModPositionX, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - - m_ModPositionY = new wxTextCtrl( m_PanelProperties, ID_MODULE_EDIT_Y_POSITION, - wxT(""), wxDefaultPosition, wxDefaultSize, 0, - wxTextValidator(wxFILTER_NUMERIC, NULL), wxTextCtrlNameStr); - - PutValueInLocalUnits( *m_ModPositionY, m_CurrentModule->GetPosition().y, PCB_INTERNAL_UNIT ); - AddUnitSymbol( *YPositionStatic, g_UnitMetric ); - positionBoxSizer->Add( YPositionStatic, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); - positionBoxSizer->Add( m_ModPositionY, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - } - else // Module is edited in libedit - { - StaticText = new wxStaticText( m_PanelProperties, wxID_STATIC, _( - "Doc" ), wxDefaultPosition, wxDefaultSize, 0 ); - PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); - m_Doc = new wxTextCtrl( m_PanelProperties, -1, - m_CurrentModule->m_Doc ); - PropLeftSizer->Add( m_Doc, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - - StaticText = new wxStaticText( m_PanelProperties, wxID_STATIC, _( - "Keywords" ), wxDefaultPosition, wxDefaultSize, 0 ); - PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); - m_Keyword = new wxTextCtrl( m_PanelProperties, -1, - m_CurrentModule->m_KeyWord ); - PropLeftSizer->Add( m_Keyword, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - } - - wxStaticBox* box = new wxStaticBox( m_PanelProperties, -1, _( "Fields:" ) ); - m_TextListBox = new WinEDAChoiceBox( m_PanelProperties, ID_MODULE_LISTBOX_SELECT ); - ReCreateFieldListBox(); - m_TextListBox->SetSelection( 0 ); - - wxStaticBoxSizer* StaticBoxSizer = new wxStaticBoxSizer( box, wxVERTICAL ); - PropLeftSizer->Add( StaticBoxSizer, 0, wxALIGN_CENTER_HORIZONTAL | wxALL, 5 ); - StaticBoxSizer->Add( m_TextListBox, 0, wxGROW | wxALL, 5 ); - - Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_ADD_TEXT, - _( "Add Field" ) ); - StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); - - Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_EDIT_TEXT, - _( "Edit Field" ) ); - StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); - - m_DeleteFieddButton = Button = new wxButton( m_PanelProperties, ID_MODULE_EDIT_DELETE_TEXT, - _( "Delete Field" ) ); - m_DeleteFieddButton->Enable( FALSE ); // Enable pour fields autres que ref et valeur - StaticBoxSizer->Add( Button, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - - if( FullOptions ) - { - wxString layer_list[2] = { _( "Component" ), _( "Copper" ) }; - m_LayerCtrl = new wxRadioBox( m_PanelProperties, -1, _( "Layer" ), wxDefaultPosition, - wxSize( -1, -1 ), 2, layer_list, 1 ); - m_LayerCtrl->SetSelection( (m_CurrentModule->GetLayer() == COPPER_LAYER_N) ? 1 : 0 ); - PropLeftSizer->Add( m_LayerCtrl, 0, wxGROW | wxALL, 5 ); - - bool select = FALSE; - - wxString orient_list[5] = { - _( "Normal" ), wxT( "+ 90.0" ), wxT( "- 90.0" ), wxT( "180.0" ), _( "User" ) - }; - - m_OrientCtrl = new wxRadioBox( m_PanelProperties, ID_LISTBOX_ORIENT_SELECT, _( "Orient" ), - wxDefaultPosition, wxSize( -1, -1 ), 5, orient_list, 1 ); - PropLeftSizer->Add( m_OrientCtrl, 0, wxGROW | wxALL, 5 ); - - switch( m_CurrentModule->m_Orient ) - { - case 0: - m_OrientCtrl->SetSelection( 0 ); - break; - - case 900: - case -2700: - m_OrientCtrl->SetSelection( 1 ); - break; - - case -900: - case 2700: - m_OrientCtrl->SetSelection( 2 ); - break; - - case -1800: - case 1800: - m_OrientCtrl->SetSelection( 3 ); - break; - - default: - m_OrientCtrl->SetSelection( 4 ); - select = TRUE; - break; - } - - StaticText = new wxStaticText( m_PanelProperties, - wxID_STATIC, _( - "Orientation (in 0.1 degrees)" ), wxDefaultPosition, wxDefaultSize, - 0 ); - PropLeftSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); - msg << m_CurrentModule->m_Orient; - m_OrientValue = new wxTextCtrl( m_PanelProperties, -1, msg ); - m_OrientValue->Enable( select ); - PropLeftSizer->Add( m_OrientValue, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - } - - /* Controls on right side of the dialog */ - wxString attribut_list[3] = { _( "Normal" ), _( "Normal+Insert" ), _( "Virtual" ) }; - m_AttributsCtrl = new wxRadioBox( m_PanelProperties, -1, _( "Attributes" ), wxDefaultPosition, - wxSize( -1, -1 ), 3, attribut_list, 1 ); -#if wxCHECK_VERSION( 2, 8, 0 ) - m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); - m_AttributsCtrl->SetItemToolTip( 1, - _("Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file")); - m_AttributsCtrl->SetItemToolTip( 2, - _("Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" )); -#endif - PropRightSizer->Add( m_AttributsCtrl, 0, wxGROW | wxALL, 5 ); - - switch( m_CurrentModule->m_Attributs & 255 ) - { - case 0: - m_AttributsCtrl->SetSelection( 0 ); - break; - - case MOD_CMS: - m_AttributsCtrl->SetSelection( 1 ); - break; - - case MOD_VIRTUAL: - m_AttributsCtrl->SetSelection( 2 ); - break; - - default: - m_AttributsCtrl->SetSelection( 0 ); - break; - } - - - wxString properties_list[2] = { _( "Free" ), _( "Locked" ) }; - m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, -1, _( - "Move and Auto Place" ), wxDefaultPosition, - wxSize( -1, -1 ), 2, properties_list, 1 ); - m_AutoPlaceCtrl->SetSelection( - (m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); -#if wxCHECK_VERSION( 2, 8, 0 ) - m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); - m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); -#endif - PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxGROW | wxALL, 5 ); - - StaticText = new wxStaticText( m_PanelProperties, -1, _( "Rotation 90 degree" ) ); - PropRightSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); - m_CostRot90Ctrl = new wxSlider( m_PanelProperties, -1, - m_CurrentModule->m_CntRot90, 0, 10, wxDefaultPosition, - wxSize( 100, -1 ), - wxSL_HORIZONTAL + wxSL_AUTOTICKS + wxSL_LABELS ); - PropRightSizer->Add( m_CostRot90Ctrl, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); - - StaticText = new wxStaticText( m_PanelProperties, -1, _( "Rotation 180 degree" ) ); - PropRightSizer->Add( StaticText, 0, wxGROW | wxLEFT | wxRIGHT | wxTOP | wxADJUST_MINSIZE, 5 ); - m_CostRot180Ctrl = new wxSlider( m_PanelProperties, - -1, - m_CurrentModule->m_CntRot180, - 0, - 10, - wxDefaultPosition, - wxSize( 100, -1 ), - wxSL_HORIZONTAL + wxSL_AUTOTICKS + wxSL_LABELS ); - PropRightSizer->Add( m_CostRot180Ctrl, 0, wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, 5 ); -} - - -/**************************************************************/ -Panel3D_Ctrl::Panel3D_Ctrl( WinEDA_ModulePropertiesFrame* parentframe, - wxNotebook* parent, - int id, S3D_MASTER* struct3D ) : - wxPanel( parent, id ) -/**************************************************************/ - -/* create the dialog panel managing 3D shape infos - */ -{ - wxButton* button; - S3D_Vertex dummy_vertex; - wxBoxSizer* PropLeftSizer; - wxBoxSizer* PropRightSizer; - - m_Pnext = m_Pback = NULL; - - m_Parent = parent; - m_ParentFrame = parentframe; - wxBoxSizer* Panel3DBoxSizer = new wxBoxSizer( wxVERTICAL ); - SetSizer( Panel3DBoxSizer ); - - wxStaticText* StaticText = new wxStaticText( this, wxID_STATIC, _( "3D Shape Name" ), - wxDefaultPosition, wxDefaultSize, 0 ); - Panel3DBoxSizer->Add( StaticText, 0, wxGROW | wxALL | wxADJUST_MINSIZE, 5 ); - m_3D_ShapeName = new wxTextCtrl( this, -1, _T( "" ), wxDefaultPosition, wxDefaultSize, 0 ); - if( struct3D ) - m_3D_ShapeName->SetValue( struct3D->m_Shape3DName ); - Panel3DBoxSizer->Add( m_3D_ShapeName, 0, wxGROW | wxALL, 5 ); - - wxBoxSizer* LowerBoxSizer = new wxBoxSizer( wxHORIZONTAL ); - Panel3DBoxSizer->Add( LowerBoxSizer, 0, wxGROW | wxALL, 5 ); - /* Create a sizer for controls in the left column */ - PropLeftSizer = new wxBoxSizer( wxVERTICAL ); - LowerBoxSizer->Add( PropLeftSizer, 0, wxGROW | wxALL, 5 ); - /* Create a sizer for controls in the right column */ - PropRightSizer = new wxBoxSizer( wxVERTICAL ); - LowerBoxSizer->Add( PropRightSizer, 0, wxGROW | wxALL, 5 ); - - button = new wxButton( this, ID_BROWSE_3D_LIB, _( "Browse" ) ); - PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); - - button = new wxButton( this, ID_ADD_3D_SHAPE, _( "Add 3D Shape" ) ); - PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); - - if( (struct3D == NULL) || (struct3D->Back() != NULL) ) - { - button = new wxButton( this, ID_REMOVE_3D_SHAPE, _( "Remove 3D Shape" ) ); - PropRightSizer->Add( button, 0, wxGROW | wxLEFT | wxRIGHT, 5 ); - } - - wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); - m_3D_Scale = new WinEDA_VertexCtrl( this, _( "Shape Scale:" ), BoxSizer, - 2, 1 ); - if( struct3D ) - m_3D_Scale->SetValue( struct3D->m_MatScale ); - PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); - - BoxSizer = new wxBoxSizer( wxVERTICAL ); - m_3D_Offset = new WinEDA_VertexCtrl( this, _( "Shape Offset:" ), BoxSizer, - 2, 1 ); - if( struct3D ) - m_3D_Offset->SetValue( struct3D->m_MatPosition ); - else - m_3D_Offset->SetValue( dummy_vertex ); - PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); - - BoxSizer = new wxBoxSizer( wxVERTICAL ); - m_3D_Rotation = new WinEDA_VertexCtrl( this, _( "Shape Rotation:" ), BoxSizer, - 2, 1 ); - if( struct3D ) - m_3D_Rotation->SetValue( struct3D->m_MatRotation ); - else - m_3D_Rotation->SetValue( dummy_vertex ); - PropLeftSizer->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); - - if( struct3D == NULL ) - { - dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; - m_3D_Scale->SetValue( dummy_vertex ); - } -} - - -/********************************/ -Panel3D_Ctrl::~Panel3D_Ctrl() -/********************************/ -{ - delete m_3D_ShapeName; - delete m_3D_Scale; - delete m_3D_Offset; - delete m_3D_Rotation; -} - - -/***************************************************/ -void Panel3D_Ctrl::Browse3DLib( wxCommandEvent& event ) -/***************************************************/ -{ - wxString fullfilename, shortfilename; - wxString fullpath; - wxString mask = wxT( "*" ); - - fullpath = wxGetApp().ReturnLastVisitedLibraryPath(LIB3D_PATH); - mask += g_Shapes3DExtBuffer; -#ifdef __WINDOWS__ - fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); -#endif - fullfilename = EDA_FileSelector( _( "3D Shape:" ), - fullpath, /* Chemin par defaut */ - wxEmptyString, /* nom fichier par defaut */ - g_Shapes3DExtBuffer, /* extension par defaut */ - mask, /* Masque d'affichage */ - this, - wxFD_OPEN, - TRUE - ); - - if( fullfilename == wxEmptyString ) - return; - - wxFileName fn = fullfilename; - wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); - - /* If the file 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 or relative path. - * the relative path, when possible is preferable, - * because it preserve use of default libraries paths, when the path is a sub path of these default paths - */ - shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath(fullfilename); - m_3D_ShapeName->SetValue( shortfilename ); -} - - -/**********************************************************************/ -void WinEDA_ModulePropertiesFrame::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) -/**********************************************************************/ -{ - EndModal( -1 ); -} - - -/******************************************************************************/ -void WinEDA_ModulePropertiesFrame::OnOkClick( wxCommandEvent& event ) -/******************************************************************************/ -{ - bool change_layer = FALSE; - wxPoint modpos; - - if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we must create an undo entry - { - if( m_Parent->m_Ident == PCB_FRAME ) - m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED ); - else - m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_MODEDIT ); - } - - if( m_DC ) - { - m_Parent->DrawPanel->CursorOff( m_DC ); - m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); - } - - // Set Module Position, if the dialog is called from the board editor - // if the dialog is called from the footprint editor, do nothing because the footprint is always in position 0,0 - if ( m_ModPositionX && m_ModPositionY ) - { - modpos.x = ReturnValueFromTextCtrl( *m_ModPositionX, PCB_INTERNAL_UNIT ); - modpos.y = ReturnValueFromTextCtrl( *m_ModPositionY, PCB_INTERNAL_UNIT ); - m_CurrentModule->SetPosition(modpos); - } - - if( m_OrientValue ) - { - long orient = 0; wxString msg = m_OrientValue->GetValue(); - msg.ToLong( &orient ); - if( m_CurrentModule->m_Orient != orient ) - m_Parent->Rotate_Module( m_DC, m_CurrentModule, - orient, FALSE ); - } - - if( m_LayerCtrl ) - { - if( m_LayerCtrl->GetSelection() == 0 ) // layer req = COMPONENT - { - if( m_CurrentModule->GetLayer() == COPPER_LAYER_N ) - change_layer = TRUE; - } - else if( m_CurrentModule->GetLayer() == CMP_N ) - change_layer = TRUE; - } - - if( change_layer ) - { - ((WinEDA_PcbFrame*)m_Parent)->Change_Side_Module( m_CurrentModule, m_DC ); - } - - if( m_AutoPlaceCtrl->GetSelection() == 1 ) - m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; - else - m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; - - switch( m_AttributsCtrl->GetSelection() ) - { - case 0: - m_CurrentModule->m_Attributs = 0; - break; - - case 1: - m_CurrentModule->m_Attributs = MOD_CMS; - break; - - case 2: - m_CurrentModule->m_Attributs = MOD_VIRTUAL; - break; - } - - m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); - m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); - if( m_Doc ) - m_CurrentModule->m_Doc = m_Doc->GetValue(); - if( m_Keyword ) - m_CurrentModule->m_KeyWord = m_Keyword->GetValue(); - - /* Update 3D shape list */ - Panel3D_Ctrl* panel3D = m_Panel3D; - S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; - for( ; panel3D != NULL; panel3D = panel3D->m_Pnext ) - { - wxString name3D = panel3D->m_3D_ShapeName->GetValue();; - if( name3D.IsEmpty() ) - continue; - if( draw3D == NULL ) - { - draw3D = new S3D_MASTER( draw3D ); - m_CurrentModule->m_3D_Drawings.Append( draw3D ); - } - - draw3D->m_Shape3DName = name3D; - draw3D->m_MatScale = panel3D->m_3D_Scale->GetValue(); - draw3D->m_MatRotation = panel3D->m_3D_Rotation->GetValue(); - draw3D->m_MatPosition = panel3D->m_3D_Offset->GetValue(); - - draw3D = (S3D_MASTER*) draw3D->Next(); - } - - // Remove old extra 3D shapes - S3D_MASTER* nextdraw3D; - for( ; draw3D != NULL; draw3D = nextdraw3D ) - { - nextdraw3D = (S3D_MASTER*) draw3D->Next(); - delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); - } - - // Fill shape list with one void entry, if no entry - if( m_CurrentModule->m_3D_Drawings == NULL ) - m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); - - - - m_CurrentModule->Set_Rectangle_Encadrement(); - - m_Parent->GetScreen()->SetModify(); - - EndModal( 1 ); - - if( m_DC ) - { - m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); - m_Parent->DrawPanel->CursorOn( m_DC ); - } -} - - -/************************************************************************/ -void WinEDA_ModulePropertiesFrame::GotoModuleEditor( wxCommandEvent& event ) -/************************************************************************/ -{ - GoToEditor = TRUE; - if( m_CurrentModule->m_TimeStamp == 0 ) // Module Editor needs a non null timestamp - { - m_CurrentModule->m_TimeStamp = GetTimeStamp(); - m_Parent->GetScreen()->SetModify(); - } - - Close( TRUE ); -} - - -/**********************************************************************/ -void WinEDA_ModulePropertiesFrame::ExchangeModule( wxCommandEvent& event ) -/**********************************************************************/ -{ - ((WinEDA_PcbFrame*)m_Parent)->InstallExchangeModuleFrame( m_CurrentModule ); - - // Attention: si il y a eu echange, m_CurrentModule a été delete! - m_Parent->SetCurItem( NULL ); - Close( TRUE ); -} - - -/*************************************************************************/ -void WinEDA_ModulePropertiesFrame::ModuleOrientEvent( wxCommandEvent& event ) -/*************************************************************************/ -{ - switch( m_OrientCtrl->GetSelection() ) - { - case 0: - m_OrientValue->Enable( FALSE ); - m_OrientValue->SetValue( wxT( "0" ) ); - break; - - case 1: - m_OrientValue->Enable( FALSE ); - m_OrientValue->SetValue( wxT( "900" ) ); - break; - - case 2: - m_OrientValue->Enable( FALSE ); - m_OrientValue->SetValue( wxT( "2700" ) ); - break; - - case 3: - m_OrientValue->Enable( FALSE ); - m_OrientValue->SetValue( wxT( "1800" ) ); - break; - - default: - m_OrientValue->Enable( FALSE ); - m_OrientValue->Enable( TRUE ); - break; - } -} - - -/*************************************************************************/ -void WinEDA_ModulePropertiesFrame::SelectTextListBox( wxCommandEvent& event ) -/*************************************************************************/ -{ - SetTextListButtons(); -} - - -/*************************************************************************/ -void WinEDA_ModulePropertiesFrame::SetTextListButtons() -/*************************************************************************/ -{ - int choice = m_TextListBox->GetChoice(); - - if( m_DeleteFieddButton == NULL ) - return; - - if( choice > 1 ) // Texte autre que ref ou valeur selectionne - { - m_DeleteFieddButton->Enable( TRUE ); - } - else - m_DeleteFieddButton->Enable( FALSE ); -} - - -/***********************************************************/ -void WinEDA_ModulePropertiesFrame::ReCreateFieldListBox() -/***********************************************************/ -{ - m_TextListBox->Clear(); - - m_TextListBox->Append( m_CurrentModule->m_Reference->m_Text ); - m_TextListBox->Append( m_CurrentModule->m_Value->m_Text ); - - EDA_BaseStruct* item = m_CurrentModule->m_Drawings; - while( item ) - { - if( item->Type() == TYPE_TEXTE_MODULE ) - m_TextListBox->Append( ( (TEXTE_MODULE*) item )->m_Text ); - item = item->Next(); - } - - SetTextListButtons(); -} - - -/************************************************************************/ -void WinEDA_ModulePropertiesFrame::CreateTextModule( wxCommandEvent& event ) -/************************************************************************/ - -/* Cree un nouveau texte sur le module actif - * Le texte sera mis en fonction Move - */ -{ - TEXTE_MODULE* Text; - - /* Creation de la place en memoire : */ - Text = m_Parent->CreateTextModule( m_CurrentModule, m_DC ); - - ReCreateFieldListBox(); - m_TextListBox->SetSelection( 2 ); - SetTextListButtons(); -} - - -/****************************************************************************/ -void WinEDA_ModulePropertiesFrame::EditOrDelTextModule( wxCommandEvent& event ) -/****************************************************************************/ -{ - int TextType = m_TextListBox->GetChoice(); - TEXTE_MODULE* Text = NULL; - - if( TextType < 0 ) - return; //No selection - - - if( m_DC ) - m_Parent->DrawPanel->CursorOff( m_DC ); - - - // Get a pointer on the field - if( TextType == 0 ) - Text = m_CurrentModule->m_Reference; - else if( TextType == 1 ) - Text = m_CurrentModule->m_Value; - else // Search the field 2 or more, because field 0 and 1 are ref and value - { - EDA_BaseStruct* item = m_CurrentModule->m_Drawings; - int jj = 2; - while( item ) - { - if( item->Type() == TYPE_TEXTE_MODULE ) - { - if( jj == TextType ) // Texte trouvé - { - Text = (TEXTE_MODULE*) item; - break; - } - } - item = item->Next(); jj++; - } - } - - if( Text ) - { - if( event.GetId() == ID_MODULE_EDIT_DELETE_TEXT ) - { - if( TextType < 2 ) // Ref or Value cannot be deleted - { - DisplayError( this, _( "Reference or Value cannot be deleted" ) ); - goto out; - } - wxString Line; - Line.Printf( _( "Delete [%s]" ), Text->m_Text.GetData() ); - if( !IsOK( this, Line ) ) - goto out; - m_Parent->DeleteTextModule( Text ); - ReCreateFieldListBox(); - m_TextListBox->SetSelection( 0 ); - } - else // Edition du champ - { - m_Parent->InstallTextModOptionsFrame( Text, m_DC, wxPoint( -1, -1 ) ); - ReCreateFieldListBox(); - m_TextListBox->SetSelection( TextType ); - } - } - else - DisplayError( this, - wxT( - "WinEDA_ModulePropertiesFrame::EditOrDelTextModule() error: Field not found" ) - ); - -out: - if( m_DC ) - m_Parent->DrawPanel->CursorOn( m_DC ); - SetTextListButtons(); -} diff --git a/pcbnew/dialog_edit_module.h b/pcbnew/dialog_edit_module.h deleted file mode 100644 index ee646dd357..0000000000 --- a/pcbnew/dialog_edit_module.h +++ /dev/null @@ -1,99 +0,0 @@ - /************************************************/ - /* Module editor: Dialog box for editing module */ - /* properties and carateristics */ - /************************************************/ - -enum id_Module_properties -{ - ID_GOTO_MODULE_EDITOR =1900, - ID_MODULE_PROPERTIES_EXCHANGE, - ID_MODULE_EDIT_ADD_TEXT, - ID_MODULE_EDIT_EDIT_TEXT, - ID_MODULE_EDIT_DELETE_TEXT, - ID_MODULE_LISTBOX_SELECT, - ID_LISTBOX_ORIENT_SELECT, - ID_BROWSE_3D_LIB, - ID_ADD_3D_SHAPE, - ID_REMOVE_3D_SHAPE, - ID_NOTEBOOK, - ID_MODULE_EDIT_X_POSITION, - ID_MODULE_EDIT_Y_POSITION -}; - -class Panel3D_Ctrl; - - /**************************************/ - /* class WinEDA_ModulePropertiesFrame */ - /**************************************/ - -class WinEDA_ModulePropertiesFrame: public wxDialog -{ -private: - - WinEDA_BasePcbFrame * m_Parent; - wxDC * m_DC; - MODULE * m_CurrentModule; - wxNotebook* m_NoteBook; - wxPanel * m_PanelProperties; - Panel3D_Ctrl * m_Panel3D; - WinEDAChoiceBox * m_TextListBox; - wxRadioBox * m_LayerCtrl; - wxRadioBox * m_OrientCtrl; - wxTextCtrl * m_OrientValue; - wxRadioBox * m_AttributsCtrl; - wxRadioBox * m_AutoPlaceCtrl; - wxSlider * m_CostRot90Ctrl, * m_CostRot180Ctrl; - wxButton * m_DeleteFieddButton; - wxTextCtrl *m_Doc, *m_Keyword; - wxBoxSizer * m_GeneralBoxSizer; - wxBoxSizer* m_PanelPropertiesBoxSizer; - wxTextCtrl *m_ModPositionX, *m_ModPositionY; - wxString *m_ModPosXStr, *m_ModPosYStr; - - -public: - // Constructor and destructor - WinEDA_ModulePropertiesFrame(WinEDA_BasePcbFrame *parent, - MODULE * Module, wxDC * DC); - ~WinEDA_ModulePropertiesFrame() - { - } - -private: - void CreateControls(); - void OnCancelClick(wxCommandEvent& event); - void OnOkClick(wxCommandEvent& event); - void CreateTextModule(wxCommandEvent& event); - void EditOrDelTextModule(wxCommandEvent& event); - void SelectTextListBox(wxCommandEvent& event); - void ReCreateFieldListBox(); - void SetTextListButtons(); - void BuildPanelModuleProperties(bool FullOptions); - void ModuleOrientEvent(wxCommandEvent& event); - void ExchangeModule(wxCommandEvent& event); - void GotoModuleEditor(wxCommandEvent& event); - DECLARE_EVENT_TABLE() -}; - - -/*********************************/ -class Panel3D_Ctrl: public wxPanel -/*********************************/ -/* panel d'entree des caract 3D */ -{ -public: - Panel3D_Ctrl * m_Pnext, * m_Pback; // Chainage - wxNotebook * m_Parent; - WinEDA_ModulePropertiesFrame * m_ParentFrame; - wxBoxSizer* m_Panel3DBoxSizer; - wxTextCtrl * m_3D_ShapeName; - WinEDA_VertexCtrl *m_3D_Scale, *m_3D_Offset, *m_3D_Rotation; -public: - Panel3D_Ctrl(WinEDA_ModulePropertiesFrame * parentframe, - wxNotebook * parent, int id, S3D_MASTER * struct3D); - ~Panel3D_Ctrl(); - void Browse3DLib(wxCommandEvent& event); - void AddOrRemove3DShape(wxCommandEvent& event); - DECLARE_EVENT_TABLE() -}; - diff --git a/pcbnew/dialog_edit_module_for_BoardEditor.cpp b/pcbnew/dialog_edit_module_for_BoardEditor.cpp new file mode 100644 index 0000000000..635b1c645e --- /dev/null +++ b/pcbnew/dialog_edit_module_for_BoardEditor.cpp @@ -0,0 +1,525 @@ +/************************************************ +* Module editor: Dialog box for editing module +* properties for the Board Editor +************************************************/ + +#include "fctsys.h" +#include "common.h" +#include "class_drawpanel.h" +#include "confirm.h" +#include "pcbnew.h" +#include "bitmaps.h" +#include "appl_wxstruct.h" +#include "gestfich.h" +#include "3d_struct.h" +#include "3d_viewer.h" +#include "wxPcbStruct.h" +#include "dialog_edit_module_for_BoardEditor.h" + + +/**************************************************************************************/ +DIALOG_MODULE_BOARD_EDITOR::DIALOG_MODULE_BOARD_EDITOR( WinEDA_PcbFrame* aParent, + MODULE* aModule, wxDC* aDC ) : + DIALOG_MODULE_BOARD_EDITOR_BASE( aParent ) +/**************************************************************************************/ +{ + m_Parent = aParent; + m_DC = aDC; + m_CurrentModule = aModule; + + SetIcon( wxICON( icon_modedit ) ); // Give an icon + + InitModeditProperties(); + InitBoardProperties(); + + GetSizer()->Fit( this ); + GetSizer()->SetSizeHints( this ); + Centre(); +} + +DIALOG_MODULE_BOARD_EDITOR::~DIALOG_MODULE_BOARD_EDITOR() +{ + for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) + delete m_Shapes3D_list[ii]; + + m_Shapes3D_list.clear(); + + delete m_ReferenceCopy; + delete m_ValueCopy; + delete m_3D_Scale; + delete m_3D_Offset; + delete m_3D_Rotation; +} + + +/***************************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::InitBoardProperties( ) +/***************************************************************************/ + +/* creation du panel d'edition des proprietes du module + */ +{ + PutValueInLocalUnits( *m_ModPositionX, m_CurrentModule->GetPosition().x, PCB_INTERNAL_UNIT ); + AddUnitSymbol( *XPositionStatic, g_UnitMetric ); + + PutValueInLocalUnits( *m_ModPositionY, m_CurrentModule->GetPosition().y, PCB_INTERNAL_UNIT ); + AddUnitSymbol( *YPositionStatic, g_UnitMetric ); + + m_LayerCtrl->SetSelection( (m_CurrentModule->GetLayer() == COPPER_LAYER_N) ? 1 : 0 ); + + bool select = FALSE; + switch( m_CurrentModule->m_Orient ) + { + case 0: + m_OrientCtrl->SetSelection( 0 ); + break; + + case 900: + case -2700: + m_OrientCtrl->SetSelection( 1 ); + break; + + case -900: + case 2700: + m_OrientCtrl->SetSelection( 2 ); + break; + + case -1800: + case 1800: + m_OrientCtrl->SetSelection( 3 ); + break; + + default: + m_OrientCtrl->SetSelection( 4 ); + select = TRUE; + break; + } + wxString msg; + msg << m_CurrentModule->m_Orient; + m_OrientValue->SetValue( msg ); + m_OrientValue->Enable( select ); + } + + + +/**********************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) +/**********************************************************************/ +{ + EndModal( -1 ); +} + + +/************************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::GotoModuleEditor( wxCommandEvent& event ) +/************************************************************************/ +{ + if( m_CurrentModule->m_TimeStamp == 0 ) // Module Editor needs a non null timestamp + { + m_CurrentModule->m_TimeStamp = GetTimeStamp(); + m_Parent->GetScreen()->SetModify(); + } + + EndModal( 2 ); +} + + +/**********************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::ExchangeModule( wxCommandEvent& event ) +/**********************************************************************/ +{ + m_Parent->InstallExchangeModuleFrame( m_CurrentModule ); + + // Warning: m_CurrentModule was deleted by exchange module + m_Parent->SetCurItem( NULL ); + EndModal( 0 ); +} + + +/*************************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::ModuleOrientEvent( wxCommandEvent& event ) +/*************************************************************************/ +{ + switch( m_OrientCtrl->GetSelection() ) + { + case 0: + m_OrientValue->Enable( FALSE ); + m_OrientValue->SetValue( wxT( "0" ) ); + break; + + case 1: + m_OrientValue->Enable( FALSE ); + m_OrientValue->SetValue( wxT( "900" ) ); + break; + + case 2: + m_OrientValue->Enable( FALSE ); + m_OrientValue->SetValue( wxT( "2700" ) ); + break; + + case 3: + m_OrientValue->Enable( FALSE ); + m_OrientValue->SetValue( wxT( "1800" ) ); + break; + + default: + m_OrientValue->Enable( FALSE ); + m_OrientValue->Enable( TRUE ); + break; + } +} + + +/*******************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::InitModeditProperties() +/*******************************************************/ +{ + SetFocus(); + + m_LastSelected3DShapeIndex = -1; + + /* Init 3D shape list */ + S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; + + while( draw3D ) + { + S3D_MASTER* draw3DCopy = new S3D_MASTER(NULL); + draw3DCopy->Copy( draw3D ); + m_Shapes3D_list.push_back( draw3DCopy ); + m_3D_ShapeNameListBox->Append(draw3DCopy->m_Shape3DName); + + draw3D = (S3D_MASTER*) draw3D->Next(); + } + + m_ReferenceCopy = new TEXTE_MODULE(NULL); + m_ValueCopy = new TEXTE_MODULE(NULL); + m_ReferenceCopy->Copy(m_CurrentModule->m_Reference); + m_ValueCopy->Copy(m_CurrentModule->m_Value); + m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text ); + m_ValueCtrl->SetValue( m_ValueCopy->m_Text ); + + +#if wxCHECK_VERSION( 2, 8, 0 ) + m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); + m_AttributsCtrl->SetItemToolTip( 1, + _( + "Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file" ) ); + m_AttributsCtrl->SetItemToolTip( 2, + _( + "Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" ) ); +#endif + + /* Controls on right side of the dialog */ + switch( m_CurrentModule->m_Attributs & 255 ) + { + case 0: + m_AttributsCtrl->SetSelection( 0 ); + break; + + case MOD_CMS: + m_AttributsCtrl->SetSelection( 1 ); + break; + + case MOD_VIRTUAL: + m_AttributsCtrl->SetSelection( 2 ); + break; + + default: + m_AttributsCtrl->SetSelection( 0 ); + break; + } + + m_AutoPlaceCtrl->SetSelection( + (m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); +#if wxCHECK_VERSION( 2, 8, 0 ) + m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); + m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); +#endif + m_CostRot90Ctrl->SetValue( m_CurrentModule->m_CntRot90 ); + + m_CostRot180Ctrl->SetValue( m_CurrentModule->m_CntRot180 ); + + // Initialize 3D parameters + + wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Scale = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Scale:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); + + BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Offset = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Offset:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); + + BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Rotation = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Rotation:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); +} + + +/* Initialize 3D info displayed in dialog box from values in aStruct3DSource + */ +void DIALOG_MODULE_BOARD_EDITOR::Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ) +{ + if( aStruct3DSource ) + { + m_3D_Scale->SetValue( aStruct3DSource->m_MatScale ); + + m_3D_Offset->SetValue( aStruct3DSource->m_MatPosition ); + + m_3D_Rotation->SetValue( aStruct3DSource->m_MatRotation ); + } + else + { + S3D_Vertex dummy_vertex; + dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; + m_3D_Scale->SetValue( dummy_vertex ); + } +} + +/** Copy 3D info displayed in dialog box to values in a item in m_Shapes3D_list + * @param aIndexSelection = item index in m_Shapes3D_list + */ +void DIALOG_MODULE_BOARD_EDITOR::TransfertDisplayTo3DValues( int aIndexSelection ) +{ + if( aIndexSelection >= (int)m_Shapes3D_list.size() ) + return; + + S3D_MASTER * struct3DDest = m_Shapes3D_list[aIndexSelection]; + struct3DDest->m_MatScale = m_3D_Scale->GetValue(); + struct3DDest->m_MatRotation = m_3D_Rotation->GetValue(); + struct3DDest->m_MatPosition = m_3D_Offset->GetValue(); +} + +/***********************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::On3DShapeNameSelected(wxCommandEvent& event) +/***********************************************************/ +{ + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetSelection(); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); +} + +/***********************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::Add3DShape(wxCommandEvent& event) +/***********************************************************/ +{ + Browse3DLib( event ); +} + +/***********************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::Remove3DShape(wxCommandEvent& event) +/***********************************************************/ +{ + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + + int ii = m_3D_ShapeNameListBox->GetSelection(); + if( ii < 0 ) + return; + + m_Shapes3D_list.erase(m_Shapes3D_list.begin() + ii ); + m_3D_ShapeNameListBox->Delete(ii); + + if( m_3D_ShapeNameListBox->GetCount() == 0) + Transfert3DValuesToDisplay( NULL ); + else + { + m_LastSelected3DShapeIndex = 0; + m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); + } +} + + +/*********************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::Browse3DLib( wxCommandEvent& event ) +/*********************************************************************/ +{ + wxString fullfilename, shortfilename; + wxString fullpath; + wxString mask = wxT( "*" ); + + fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); + mask += g_Shapes3DExtBuffer; +#ifdef __WINDOWS__ + fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); +#endif + fullfilename = EDA_FileSelector( _( "3D Shape:" ), + fullpath, /* Chemin par defaut */ + wxEmptyString, /* nom fichier par defaut */ + g_Shapes3DExtBuffer, /* extension par defaut */ + mask, /* Masque d'affichage */ + this, + wxFD_OPEN, + TRUE + ); + + if( fullfilename == wxEmptyString ) + return; + + wxFileName fn = fullfilename; + wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); + + /* If the file 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 or relative path. + * the relative path, when possible is preferable, + * because it preserve use of default libraries paths, when the path is a sub path of these default paths + */ + shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); + S3D_MASTER* new3DShape = new S3D_MASTER(NULL); + new3DShape->m_Shape3DName = shortfilename; + m_Shapes3D_list.push_back( new3DShape ); + m_3D_ShapeNameListBox->Append( shortfilename ); + + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + + m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetCount() - 1; + m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); + +} + + +/******************************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::OnOkClick( wxCommandEvent& event ) +/******************************************************************************/ +{ + bool change_layer = FALSE; + wxPoint modpos; + + if( m_CurrentModule->m_Flags == 0 ) // this is a simple edition, we must create an undo entry + m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_CHANGED ); + + if( m_DC ) + { + m_Parent->DrawPanel->CursorOff( m_DC ); + m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); + } + + // Set Module Position + modpos.x = ReturnValueFromTextCtrl( *m_ModPositionX, PCB_INTERNAL_UNIT ); + modpos.y = ReturnValueFromTextCtrl( *m_ModPositionY, PCB_INTERNAL_UNIT ); + m_CurrentModule->SetPosition(modpos); + + // Set orienta tion + long orient = 0; + wxString msg = m_OrientValue->GetValue(); + msg.ToLong( &orient ); + if( m_CurrentModule->m_Orient != orient ) + m_CurrentModule->Rotate( m_CurrentModule->m_Pos, orient - m_CurrentModule->m_Orient ); + + if( m_LayerCtrl->GetSelection() == 0 ) // layer req = COMPONENT + { + if( m_CurrentModule->GetLayer() == COPPER_LAYER_N ) + change_layer = TRUE; + } + else if( m_CurrentModule->GetLayer() == CMP_N ) + change_layer = TRUE; + + if( change_layer ) + m_CurrentModule->Flip(m_CurrentModule->m_Pos); + + if( m_AutoPlaceCtrl->GetSelection() == 1 ) + m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; + else + m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; + + switch( m_AttributsCtrl->GetSelection() ) + { + case 0: + m_CurrentModule->m_Attributs = 0; + break; + + case 1: + m_CurrentModule->m_Attributs = MOD_CMS; + break; + + case 2: + m_CurrentModule->m_Attributs = MOD_VIRTUAL; + break; + } + + m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); + m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); + + // Init Fields: + m_CurrentModule->m_Reference->Copy(m_ReferenceCopy ); + m_CurrentModule->m_Value->Copy(m_ValueCopy ); + + /* Update 3D shape list */ + int ii = m_3D_ShapeNameListBox->GetSelection(); + if ( ii >= 0 ) + TransfertDisplayTo3DValues( ii ); + S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; + for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) + { + S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii]; + if( draw3DCopy->m_Shape3DName.IsEmpty() ) + continue; + if( draw3D == NULL ) + { + draw3D = new S3D_MASTER( draw3D ); + m_CurrentModule->m_3D_Drawings.Append( draw3D ); + } + + draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName; + draw3D->m_MatScale = draw3DCopy->m_MatScale; + draw3D->m_MatRotation = draw3DCopy->m_MatRotation; + draw3D->m_MatPosition = draw3DCopy->m_MatPosition; + + draw3D = draw3D->Next(); + } + + // Remove old extra 3D shapes + S3D_MASTER* nextdraw3D; + for( ; draw3D != NULL; draw3D = nextdraw3D ) + { + nextdraw3D = (S3D_MASTER*) draw3D->Next(); + delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); + } + + // Fill shape list with one void entry, if no entry + if( m_CurrentModule->m_3D_Drawings == NULL ) + m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); + + + m_CurrentModule->Set_Rectangle_Encadrement(); + + m_Parent->GetScreen()->SetModify(); + + EndModal( 1 ); + + if( m_DC ) + { + m_CurrentModule->Draw( m_Parent->DrawPanel, m_DC, GR_OR ); + m_Parent->DrawPanel->CursorOn( m_DC ); + } +} + + +/***********************************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::OnEditReference(wxCommandEvent& event) +/***********************************************************************/ +{ + wxPoint tmp = m_Parent->GetScreen()->m_Curseur; + m_Parent->GetScreen()->m_Curseur = m_ReferenceCopy->m_Pos; + m_ReferenceCopy->SetParent(m_CurrentModule); + m_Parent->InstallTextModOptionsFrame( m_ReferenceCopy, NULL ); + m_Parent->GetScreen()->m_Curseur = tmp; + m_ReferenceCtrl->SetValue(m_ReferenceCopy->m_Text); +} + +/***********************************************************/ +void DIALOG_MODULE_BOARD_EDITOR::OnEditValue(wxCommandEvent& event) +/***********************************************************/ +{ + wxPoint tmp = m_Parent->GetScreen()->m_Curseur; + m_Parent->GetScreen()->m_Curseur = m_ValueCopy->m_Pos; + m_ValueCopy->SetParent(m_CurrentModule); + m_Parent->InstallTextModOptionsFrame( m_ValueCopy, NULL ); + m_Parent->GetScreen()->m_Curseur = tmp; + m_ValueCtrl->SetValue(m_ValueCopy->m_Text); +} + diff --git a/pcbnew/dialog_edit_module_for_BoardEditor.h b/pcbnew/dialog_edit_module_for_BoardEditor.h new file mode 100644 index 0000000000..ed20ab6494 --- /dev/null +++ b/pcbnew/dialog_edit_module_for_BoardEditor.h @@ -0,0 +1,51 @@ + /************************************************/ + /* Module editor: Dialog box for editing module */ + /* properties and carateristics */ + /************************************************/ + +#include "dialog_edit_module_for_BoardEditor_base.h" + + /**************************************/ + /* class DIALOG_MODULE_BOARD_EDITOR */ + /**************************************/ + +class DIALOG_MODULE_BOARD_EDITOR: public DIALOG_MODULE_BOARD_EDITOR_BASE +{ +private: + + WinEDA_PcbFrame * m_Parent; + wxDC * m_DC; + MODULE* m_CurrentModule; + TEXTE_MODULE* m_ReferenceCopy; + TEXTE_MODULE* m_ValueCopy; + std::vector m_Shapes3D_list; + int m_LastSelected3DShapeIndex; + WinEDA_VertexCtrl * m_3D_Scale; + WinEDA_VertexCtrl * m_3D_Offset; + WinEDA_VertexCtrl * m_3D_Rotation; + +public: + + // Constructor and destructor + DIALOG_MODULE_BOARD_EDITOR( WinEDA_PcbFrame* aParent, MODULE* aModule, wxDC* aDC ); + ~DIALOG_MODULE_BOARD_EDITOR(); + +private: + void InitBoardProperties(); + void InitModeditProperties(); + void Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ); + void TransfertDisplayTo3DValues( int aIndexSelection ); + void OnEditValue( wxCommandEvent& event ); + void OnEditReference( wxCommandEvent& event ); + void On3DShapeSelection( wxCommandEvent& event ); + void On3DShapeNameSelected( wxCommandEvent& event ); + void Browse3DLib( wxCommandEvent& event ); + void Add3DShape( wxCommandEvent& event ); + void Remove3DShape( wxCommandEvent& event ); + void OnCancelClick( wxCommandEvent& event ); + void OnOkClick( wxCommandEvent& event ); + void GotoModuleEditor( wxCommandEvent& event ); + void ExchangeModule( wxCommandEvent& event ); + void ModuleOrientEvent( wxCommandEvent& event ); +}; + diff --git a/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp b/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp new file mode 100644 index 0000000000..a42cab0dab --- /dev/null +++ b/pcbnew/dialog_edit_module_for_BoardEditor_base.cpp @@ -0,0 +1,221 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_edit_module_for_BoardEditor_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_MODULE_BOARD_EDITOR_BASE::DIALOG_MODULE_BOARD_EDITOR_BASE( 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 ); + + m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); + + m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 ); + m_PanelProperties = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* m_PanelPropertiesBoxSizer; + m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* PropLeftSizer; + PropLeftSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Fields:") ), wxVERTICAL ); + + wxStaticBoxSizer* sbSizerRef; + sbSizerRef = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Reference") ), wxHORIZONTAL ); + + m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + sbSizerRef->Add( m_ReferenceCtrl, 1, 0, 5 ); + + m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizerRef->Add( m_button4, 0, 0, 5 ); + + PropLeftSizer->Add( sbSizerRef, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerValue; + sbSizerValue = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Value") ), wxHORIZONTAL ); + + m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + sbSizerValue->Add( m_ValueCtrl, 1, 0, 5 ); + + m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizerValue->Add( m_button5, 0, 0, 5 ); + + PropLeftSizer->Add( sbSizerValue, 0, wxEXPAND, 5 ); + + wxString m_LayerCtrlChoices[] = { _("Top"), _("Bottom") }; + int m_LayerCtrlNChoices = sizeof( m_LayerCtrlChoices ) / sizeof( wxString ); + m_LayerCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Side Select"), wxDefaultPosition, wxDefaultSize, m_LayerCtrlNChoices, m_LayerCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_LayerCtrl->SetSelection( 0 ); + PropLeftSizer->Add( m_LayerCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerOrientation; + sbSizerOrientation = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Orientation") ), wxVERTICAL ); + + wxString m_OrientCtrlChoices[] = { _("Normal"), _("+ 90.0"), _("- 90.0"), _("180.0"), _("User") }; + int m_OrientCtrlNChoices = sizeof( m_OrientCtrlChoices ) / sizeof( wxString ); + m_OrientCtrl = new wxRadioBox( m_PanelProperties, ID_LISTBOX_ORIENT_SELECT, _("Orientation"), wxDefaultPosition, wxDefaultSize, m_OrientCtrlNChoices, m_OrientCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_OrientCtrl->SetSelection( 0 ); + sbSizerOrientation->Add( m_OrientCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_staticText4 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Orientation (in 0.1 degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText4->Wrap( -1 ); + sbSizerOrientation->Add( m_staticText4, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OrientValue = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerOrientation->Add( m_OrientValue, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + PropLeftSizer->Add( sbSizerOrientation, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerPosition; + sbSizerPosition = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Position") ), wxVERTICAL ); + + XPositionStatic = new wxStaticText( m_PanelProperties, wxID_ANY, _("X"), wxDefaultPosition, wxDefaultSize, 0 ); + XPositionStatic->Wrap( -1 ); + sbSizerPosition->Add( XPositionStatic, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_ModPositionX = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPosition->Add( m_ModPositionX, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + YPositionStatic = new wxStaticText( m_PanelProperties, wxID_ANY, _("Y"), wxDefaultPosition, wxDefaultSize, 0 ); + YPositionStatic->Wrap( -1 ); + sbSizerPosition->Add( YPositionStatic, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_ModPositionY = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerPosition->Add( m_ModPositionY, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + PropLeftSizer->Add( sbSizerPosition, 0, wxEXPAND, 5 ); + + m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 1, wxEXPAND, 5 ); + + m_PropRightSizer = new wxBoxSizer( wxVERTICAL ); + + m_buttonExchange = new wxButton( m_PanelProperties, ID_MODULE_PROPERTIES_EXCHANGE, _("Change Module(s)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PropRightSizer->Add( m_buttonExchange, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonModuleEditor = new wxButton( m_PanelProperties, ID_GOTO_MODULE_EDITOR, _("Module Editor"), wxDefaultPosition, wxDefaultSize, 0 ); + m_PropRightSizer->Add( m_buttonModuleEditor, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + + m_PropRightSizer->Add( 0, 20, 0, 0, 5 ); + + wxString m_AttributsCtrlChoices[] = { _("Normal"), _("Normal+Insert"), _("Virtual") }; + int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString ); + m_AttributsCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Attributs:"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_AttributsCtrl->SetSelection( 0 ); + m_PropRightSizer->Add( m_AttributsCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Locked") }; + int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString ); + m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Move and Auto Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_AutoPlaceCtrl->SetSelection( 0 ); + m_PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerAutoplace; + sbSizerAutoplace = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Auto Move and Place") ), wxVERTICAL ); + + m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText11->Wrap( -1 ); + sbSizerAutoplace->Add( m_staticText11, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_CostRot90Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); + sbSizerAutoplace->Add( m_CostRot90Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12->Wrap( -1 ); + sbSizerAutoplace->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_CostRot180Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); + sbSizerAutoplace->Add( m_CostRot180Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_PropRightSizer->Add( sbSizerAutoplace, 1, wxEXPAND, 5 ); + + m_PanelPropertiesBoxSizer->Add( m_PropRightSizer, 0, 0, 5 ); + + m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); + m_PanelProperties->Layout(); + m_PanelPropertiesBoxSizer->Fit( m_PanelProperties ); + m_NoteBook->AddPage( m_PanelProperties, _("Properties"), true ); + m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* bSizerMain3D; + bSizerMain3D = new wxBoxSizer( wxVERTICAL ); + + m_staticText3Dname = new wxStaticText( m_Panel3D, wxID_ANY, _("3D Shape Name"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText3Dname->Wrap( -1 ); + bSizerMain3D->Add( m_staticText3Dname, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_3D_ShapeNameListBox = new wxListBox( m_Panel3D, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); + bSizerMain3D->Add( m_3D_ShapeNameListBox, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bLowerSizer3D; + bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL ); + + m_Sizer3DValues = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, _("3D Scale and Pos") ), wxVERTICAL ); + + bLowerSizer3D->Add( m_Sizer3DValues, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer3DButtons; + bSizer3DButtons = new wxBoxSizer( wxVERTICAL ); + + m_buttonBrowse = new wxButton( m_Panel3D, ID_BROWSE_3D_LIB, _("Browse Shapes"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonBrowse, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonAdd = new wxButton( m_Panel3D, ID_ADD_3D_SHAPE, _("Add 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonAdd, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonRemove = new wxButton( m_Panel3D, ID_REMOVE_3D_SHAPE, _("Remove 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonRemove, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + bLowerSizer3D->Add( bSizer3DButtons, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + bSizerMain3D->Add( bLowerSizer3D, 1, wxEXPAND, 5 ); + + m_Panel3D->SetSizer( bSizerMain3D ); + m_Panel3D->Layout(); + bSizerMain3D->Fit( m_Panel3D ); + m_NoteBook->AddPage( m_Panel3D, _("3D settings"), false ); + + m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 ); + + m_sdbSizerStdButtons = new wxStdDialogButtonSizer(); + m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsOK ); + m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); + m_sdbSizerStdButtons->Realize(); + m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); + + this->SetSizer( m_GeneralBoxSizer ); + this->Layout(); + + // Connect Events + m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditReference ), NULL, this ); + m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditValue ), NULL, this ); + m_OrientCtrl->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this ); + m_buttonExchange->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this ); + m_buttonModuleEditor->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::GotoModuleEditor ), NULL, this ); + m_3D_ShapeNameListBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); + m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Browse3DLib ), NULL, this ); + m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Add3DShape ), NULL, this ); + m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Remove3DShape ), NULL, this ); + m_sdbSizerStdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerStdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_MODULE_BOARD_EDITOR_BASE::~DIALOG_MODULE_BOARD_EDITOR_BASE() +{ + // Disconnect Events + m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditReference ), NULL, this ); + m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnEditValue ), NULL, this ); + m_OrientCtrl->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ModuleOrientEvent ), NULL, this ); + m_buttonExchange->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::ExchangeModule ), NULL, this ); + m_buttonModuleEditor->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::GotoModuleEditor ), NULL, this ); + m_3D_ShapeNameListBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); + m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Browse3DLib ), NULL, this ); + m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Add3DShape ), NULL, this ); + m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::Remove3DShape ), NULL, this ); + m_sdbSizerStdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerStdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_BOARD_EDITOR_BASE::OnOkClick ), NULL, this ); +} diff --git a/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp b/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp new file mode 100644 index 0000000000..49f2a1fe2a --- /dev/null +++ b/pcbnew/dialog_edit_module_for_BoardEditor_base.fbp @@ -0,0 +1,1765 @@ + + + + + + C++ + 1 + UTF-8 + connect + dialog_edit_module_for_BoardEditor_base + 1000 + none + 1 + dialog_edit_module_for_BoardEditor_base + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DIALOG_MODULE_BOARD_EDITOR_BASE + + 422,583 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Module properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_GeneralBoxSizer + wxVERTICAL + private + + 5 + wxEXPAND | wxALL + 1 + + + + + 1 + + + 0 + ID_NOTEBOOK + + + m_NoteBook + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_PanelProperties + protected + + + + + + + wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + m_PanelPropertiesBoxSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + wxID_ANY + Fields: + + PropLeftSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + wxID_ANY + Reference + + sbSizerRef + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ReferenceCtrl + protected + + + wxTE_READONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Edit + + + m_button4 + protected + + + wxBU_EXACTFIT + + + + + + OnEditReference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Value + + sbSizerValue + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ValueCtrl + protected + + + wxTE_READONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Edit + + + m_button5 + protected + + + wxBU_EXACTFIT + + + + + + OnEditValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + "Top" "Bottom" + + 1 + + + 0 + wxID_ANY + Side Select + 1 + + + m_LayerCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Orientation + + sbSizerOrientation + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + + "Normal" "+ 90.0" "- 90.0" "180.0" "User" + + 1 + + + 0 + ID_LISTBOX_ORIENT_SELECT + Orientation + 1 + + + m_OrientCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + ModuleOrientEvent + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Orientation (in 0.1 degrees) + + + m_staticText4 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OrientValue + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Position + + sbSizerPosition + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + X + + + XPositionStatic + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ModPositionX + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Y + + + YPositionStatic + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ModPositionY + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + m_PropRightSizer + wxVERTICAL + private + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_MODULE_PROPERTIES_EXCHANGE + Change Module(s) + + + m_buttonExchange + protected + + + + + + + + + ExchangeModule + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_GOTO_MODULE_EDITOR + Module Editor + + + m_buttonModuleEditor + protected + + + + + + + + + GotoModuleEditor + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + 20 + protected + 0 + + + + 5 + wxALL|wxEXPAND + 0 + + + "Normal" "Normal+Insert" "Virtual" + + 1 + + + 0 + wxID_ANY + Attributs: + 1 + + + m_AttributsCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + "Free" "Locked" + + 1 + + + 0 + wxID_ANY + Move and Auto Place + 1 + + + m_AutoPlaceCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY + Auto Move and Place + + sbSizerAutoplace + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Rotation 90 degree + + + m_staticText11 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + + 0 + + m_CostRot90Ctrl + protected + + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Rotation 180 degree + + + m_staticText12 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + + 0 + + m_CostRot180Ctrl + protected + + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D settings + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_Panel3D + protected + + + + + + + wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerMain3D + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 3D Shape Name + + + m_staticText3Dname + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + + 1 + + + 0 + wxID_ANY + + + m_3D_ShapeNameListBox + protected + + + wxLB_SINGLE + + + + + + + + + + + + + + + + On3DShapeNameSelected + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bLowerSizer3D + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + wxID_ANY + 3D Scale and Pos + + m_Sizer3DValues + wxVERTICAL + public + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer3DButtons + wxVERTICAL + none + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_BROWSE_3D_LIB + Browse Shapes + + + m_buttonBrowse + protected + + + + + + + + + Browse3DLib + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_ADD_3D_SHAPE + Add 3D Shape + + + m_buttonAdd + protected + + + + + + + + + Add3DShape + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_REMOVE_3D_SHAPE + Remove 3D Shape + + + m_buttonRemove + protected + + + + + + + + + Remove3DShape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_RIGHT + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerStdButtons + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/pcbnew/dialog_edit_module_for_BoardEditor_base.h b/pcbnew/dialog_edit_module_for_BoardEditor_base.h new file mode 100644 index 0000000000..524638533d --- /dev/null +++ b/pcbnew/dialog_edit_module_for_BoardEditor_base.h @@ -0,0 +1,107 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __dialog_edit_module_for_BoardEditor_base__ +#define __dialog_edit_module_for_BoardEditor_base__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +#define ID_NOTEBOOK 1000 +#define ID_LISTBOX_ORIENT_SELECT 1001 +#define ID_MODULE_PROPERTIES_EXCHANGE 1002 +#define ID_GOTO_MODULE_EDITOR 1003 +#define ID_BROWSE_3D_LIB 1004 +#define ID_ADD_3D_SHAPE 1005 +#define ID_REMOVE_3D_SHAPE 1006 + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_MODULE_BOARD_EDITOR_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_MODULE_BOARD_EDITOR_BASE : public wxDialog +{ + private: + wxBoxSizer* m_GeneralBoxSizer; + wxBoxSizer* m_PropRightSizer; + + protected: + wxNotebook* m_NoteBook; + wxPanel* m_PanelProperties; + wxTextCtrl* m_ReferenceCtrl; + wxButton* m_button4; + wxTextCtrl* m_ValueCtrl; + wxButton* m_button5; + wxRadioBox* m_LayerCtrl; + wxRadioBox* m_OrientCtrl; + wxStaticText* m_staticText4; + wxTextCtrl* m_OrientValue; + wxStaticText* XPositionStatic; + wxTextCtrl* m_ModPositionX; + wxStaticText* YPositionStatic; + wxTextCtrl* m_ModPositionY; + wxButton* m_buttonExchange; + wxButton* m_buttonModuleEditor; + + wxRadioBox* m_AttributsCtrl; + wxRadioBox* m_AutoPlaceCtrl; + wxStaticText* m_staticText11; + wxSlider* m_CostRot90Ctrl; + wxStaticText* m_staticText12; + wxSlider* m_CostRot180Ctrl; + wxPanel* m_Panel3D; + wxStaticText* m_staticText3Dname; + wxListBox* m_3D_ShapeNameListBox; + wxButton* m_buttonBrowse; + wxButton* m_buttonAdd; + wxButton* m_buttonRemove; + wxStdDialogButtonSizer* m_sdbSizerStdButtons; + wxButton* m_sdbSizerStdButtonsOK; + wxButton* m_sdbSizerStdButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnEditReference( wxCommandEvent& event ){ event.Skip(); } + virtual void OnEditValue( wxCommandEvent& event ){ event.Skip(); } + virtual void ModuleOrientEvent( wxCommandEvent& event ){ event.Skip(); } + virtual void ExchangeModule( wxCommandEvent& event ){ event.Skip(); } + virtual void GotoModuleEditor( wxCommandEvent& event ){ event.Skip(); } + virtual void On3DShapeNameSelected( wxCommandEvent& event ){ event.Skip(); } + virtual void Browse3DLib( wxCommandEvent& event ){ event.Skip(); } + virtual void Add3DShape( wxCommandEvent& event ){ event.Skip(); } + virtual void Remove3DShape( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + wxStaticBoxSizer* m_Sizer3DValues; + DIALOG_MODULE_BOARD_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Module properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 422,583 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_MODULE_BOARD_EDITOR_BASE(); + +}; + +#endif //__dialog_edit_module_for_BoardEditor_base__ diff --git a/pcbnew/dialog_edit_module_for_Modedit.cpp b/pcbnew/dialog_edit_module_for_Modedit.cpp new file mode 100644 index 0000000000..23db137dc0 --- /dev/null +++ b/pcbnew/dialog_edit_module_for_Modedit.cpp @@ -0,0 +1,371 @@ +/*******************************************************************************************/ +/* Dialog box for editing module properties and carateristics in module editor (modedit)*/ +/*******************************************************************************************/ + +#include "fctsys.h" +#include "common.h" +#include "class_drawpanel.h" +#include "confirm.h" +#include "pcbnew.h" +#include "bitmaps.h" +#include "appl_wxstruct.h" +#include "gestfich.h" +#include "3d_struct.h" +#include "3d_viewer.h" +#include "wxPcbStruct.h" +#include "dialog_edit_module_for_modedit.h" + +/**************************************************************************************/ +DIALOG_MODULE_MODULE_EDITOR::DIALOG_MODULE_MODULE_EDITOR( WinEDA_ModuleEditFrame* aParent, + MODULE* aModule ) : + DIALOG_MODULE_MODULE_EDITOR_BASE( aParent ) +/**************************************************************************************/ +{ + m_Parent = aParent; + m_CurrentModule = aModule; + SetIcon( wxICON( icon_modedit ) ); // Give an icon + InitModeditProperties(); + GetSizer()->Fit( this ); + GetSizer()->SetSizeHints( this ); + Centre(); +} + + +DIALOG_MODULE_MODULE_EDITOR::~DIALOG_MODULE_MODULE_EDITOR() +{ + for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) + delete m_Shapes3D_list[ii]; + + m_Shapes3D_list.clear(); + + delete m_ReferenceCopy; + delete m_ValueCopy; + delete m_3D_Scale; + delete m_3D_Offset; + delete m_3D_Rotation; +} + + +/***************************************/ +void DIALOG_MODULE_MODULE_EDITOR::InitModeditProperties() +/***************************************/ +{ + SetFocus(); + + m_LastSelected3DShapeIndex = -1; + + /* Init 3D shape list */ + S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; + + while( draw3D ) + { + S3D_MASTER* draw3DCopy = new S3D_MASTER(NULL); + draw3DCopy->Copy( draw3D ); + m_Shapes3D_list.push_back( draw3DCopy ); + m_3D_ShapeNameListBox->Append(draw3DCopy->m_Shape3DName); + + draw3D = (S3D_MASTER*) draw3D->Next(); + } + + m_DocCtrl->SetValue( m_CurrentModule->m_Doc ); + m_KeywordCtrl->SetValue( m_CurrentModule->m_KeyWord); + m_ReferenceCopy = new TEXTE_MODULE(NULL); + m_ValueCopy = new TEXTE_MODULE(NULL); + m_ReferenceCopy->Copy(m_CurrentModule->m_Reference); + m_ValueCopy->Copy(m_CurrentModule->m_Value); + m_ReferenceCtrl->SetValue( m_ReferenceCopy->m_Text ); + m_ValueCtrl->SetValue( m_ValueCopy->m_Text ); + + +#if wxCHECK_VERSION( 2, 8, 0 ) + m_AttributsCtrl->SetItemToolTip( 0, _( "Use this attribute for most non smd components" ) ); + m_AttributsCtrl->SetItemToolTip( 1, + _( + "Use this attribute for smd components.\nOnly components with this option are put in the footprint position list file" ) ); + m_AttributsCtrl->SetItemToolTip( 2, + _( + "Use this attribute for \"virtual\" components drawn on board (like a old ISA PC bus connector)" ) ); +#endif + + /* Controls on right side of the dialog */ + switch( m_CurrentModule->m_Attributs & 255 ) + { + case 0: + m_AttributsCtrl->SetSelection( 0 ); + break; + + case MOD_CMS: + m_AttributsCtrl->SetSelection( 1 ); + break; + + case MOD_VIRTUAL: + m_AttributsCtrl->SetSelection( 2 ); + break; + + default: + m_AttributsCtrl->SetSelection( 0 ); + break; + } + + m_AutoPlaceCtrl->SetSelection( + (m_CurrentModule->m_ModuleStatus & MODULE_is_LOCKED) ? 1 : 0 ); +#if wxCHECK_VERSION( 2, 8, 0 ) + m_AutoPlaceCtrl->SetItemToolTip( 0, _( "Enable hotkey move commands and Auto Placement" ) ); + m_AutoPlaceCtrl->SetItemToolTip( 1, _( "Disable hotkey move commands and Auto Placement" ) ); +#endif + m_CostRot90Ctrl->SetValue( m_CurrentModule->m_CntRot90 ); + + m_CostRot180Ctrl->SetValue( m_CurrentModule->m_CntRot180 ); + + // Initialize 3D parameters + + wxBoxSizer* BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Scale = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Scale:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); + + BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Offset = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Offset:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); + + BoxSizer = new wxBoxSizer( wxVERTICAL ); + m_3D_Rotation = new WinEDA_VertexCtrl( m_Panel3D, _( "Shape Rotation:" ), BoxSizer, 2, 1 ); + m_Sizer3DValues->Add( BoxSizer, 0, wxGROW | wxALL, 5 ); +} + + +/* Initialize 3D info displayed in dialog box from values in aStruct3DSource + */ +void DIALOG_MODULE_MODULE_EDITOR::Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ) +{ + if( aStruct3DSource ) + { + m_3D_Scale->SetValue( aStruct3DSource->m_MatScale ); + + m_3D_Offset->SetValue( aStruct3DSource->m_MatPosition ); + + m_3D_Rotation->SetValue( aStruct3DSource->m_MatRotation ); + } + else + { + S3D_Vertex dummy_vertex; + dummy_vertex.x = dummy_vertex.y = dummy_vertex.z = 1.0; + m_3D_Scale->SetValue( dummy_vertex ); + } +} + +/** Copy 3D info displayed in dialog box to values in a item in m_Shapes3D_list + * @param aIndexSelection = item index in m_Shapes3D_list + */ +void DIALOG_MODULE_MODULE_EDITOR::TransfertDisplayTo3DValues( int aIndexSelection ) +{ + if( aIndexSelection >= (int)m_Shapes3D_list.size() ) + return; + + S3D_MASTER * struct3DDest = m_Shapes3D_list[aIndexSelection]; + struct3DDest->m_MatScale = m_3D_Scale->GetValue(); + struct3DDest->m_MatRotation = m_3D_Rotation->GetValue(); + struct3DDest->m_MatPosition = m_3D_Offset->GetValue(); +} + +/***********************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::On3DShapeNameSelected(wxCommandEvent& event) +/***********************************************************/ +{ + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetSelection(); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); +} + +/***********************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::Add3DShape(wxCommandEvent& event) +/***********************************************************/ +{ + Browse3DLib( event ); +} + +/***********************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::Remove3DShape(wxCommandEvent& event) +/***********************************************************/ +{ + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + + int ii = m_3D_ShapeNameListBox->GetSelection(); + if( ii < 0 ) + return; + + m_Shapes3D_list.erase(m_Shapes3D_list.begin() + ii ); + m_3D_ShapeNameListBox->Delete(ii); + + if( m_3D_ShapeNameListBox->GetCount() == 0) + Transfert3DValuesToDisplay( NULL ); + else + { + m_LastSelected3DShapeIndex = 0; + m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); + } +} + + +/*********************************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::Browse3DLib( wxCommandEvent& event ) +/*********************************************************************/ +{ + wxString fullfilename, shortfilename; + wxString fullpath; + wxString mask = wxT( "*" ); + + fullpath = wxGetApp().ReturnLastVisitedLibraryPath( LIB3D_PATH ); + mask += g_Shapes3DExtBuffer; +#ifdef __WINDOWS__ + fullpath.Replace( wxT( "/" ), wxT( "\\" ) ); +#endif + fullfilename = EDA_FileSelector( _( "3D Shape:" ), + fullpath, /* Chemin par defaut */ + wxEmptyString, /* nom fichier par defaut */ + g_Shapes3DExtBuffer, /* extension par defaut */ + mask, /* Masque d'affichage */ + this, + wxFD_OPEN, + TRUE + ); + + if( fullfilename == wxEmptyString ) + return; + + wxFileName fn = fullfilename; + wxGetApp().SaveLastVisitedLibraryPath( fn.GetPath() ); + + /* If the file 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 or relative path. + * the relative path, when possible is preferable, + * because it preserve use of default libraries paths, when the path is a sub path of these default paths + */ + shortfilename = wxGetApp().ReturnFilenameWithRelativePathInLibPath( fullfilename ); + S3D_MASTER* new3DShape = new S3D_MASTER(NULL); + new3DShape->m_Shape3DName = shortfilename; + m_Shapes3D_list.push_back( new3DShape ); + m_3D_ShapeNameListBox->Append( shortfilename ); + + if( m_LastSelected3DShapeIndex >= 0 ) + TransfertDisplayTo3DValues( m_LastSelected3DShapeIndex ); + + m_LastSelected3DShapeIndex = m_3D_ShapeNameListBox->GetCount() - 1; + m_3D_ShapeNameListBox->SetSelection(m_LastSelected3DShapeIndex); + Transfert3DValuesToDisplay( m_Shapes3D_list[m_LastSelected3DShapeIndex] ); + +} + + +/**********************************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::OnCancelClick( wxCommandEvent& WXUNUSED (event) ) +/**********************************************************************/ +{ + EndModal( -1 ); +} + + +/******************************************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::OnOkClick( wxCommandEvent& event ) +/******************************************************************************/ +{ + m_Parent->SaveCopyInUndoList( m_CurrentModule, UR_MODEDIT ); + + if( m_AutoPlaceCtrl->GetSelection() == 1 ) + m_CurrentModule->m_ModuleStatus |= MODULE_is_LOCKED; + else + m_CurrentModule->m_ModuleStatus &= ~MODULE_is_LOCKED; + + switch( m_AttributsCtrl->GetSelection() ) + { + case 0: + m_CurrentModule->m_Attributs = 0; + break; + + case 1: + m_CurrentModule->m_Attributs = MOD_CMS; + break; + + case 2: + m_CurrentModule->m_Attributs = MOD_VIRTUAL; + break; + } + + m_CurrentModule->m_CntRot90 = m_CostRot90Ctrl->GetValue(); + m_CurrentModule->m_CntRot180 = m_CostRot180Ctrl->GetValue(); + m_CurrentModule->m_Doc = m_DocCtrl->GetValue(); + m_CurrentModule->m_KeyWord = m_KeywordCtrl->GetValue(); + + // Init Fields: + m_CurrentModule->m_Reference->Copy(m_ReferenceCopy ); + m_CurrentModule->m_Value->Copy(m_ValueCopy ); + + /* Update 3D shape list */ + int ii = m_3D_ShapeNameListBox->GetSelection(); + if ( ii >= 0 ) + TransfertDisplayTo3DValues( ii ); + S3D_MASTER* draw3D = m_CurrentModule->m_3D_Drawings; + for( unsigned ii = 0; ii < m_Shapes3D_list.size(); ii++ ) + { + S3D_MASTER* draw3DCopy = m_Shapes3D_list[ii]; + if( draw3DCopy->m_Shape3DName.IsEmpty() ) + continue; + if( draw3D == NULL ) + { + draw3D = new S3D_MASTER( draw3D ); + m_CurrentModule->m_3D_Drawings.Append( draw3D ); + } + + draw3D->m_Shape3DName = draw3DCopy->m_Shape3DName; + draw3D->m_MatScale = draw3DCopy->m_MatScale; + draw3D->m_MatRotation = draw3DCopy->m_MatRotation; + draw3D->m_MatPosition = draw3DCopy->m_MatPosition; + + draw3D = draw3D->Next(); + } + + // Remove old extra 3D shapes + S3D_MASTER* nextdraw3D; + for( ; draw3D != NULL; draw3D = nextdraw3D ) + { + nextdraw3D = (S3D_MASTER*) draw3D->Next(); + delete m_CurrentModule->m_3D_Drawings.Remove( draw3D ); + } + + // Fill shape list with one void entry, if no entry + if( m_CurrentModule->m_3D_Drawings == NULL ) + m_CurrentModule->m_3D_Drawings.PushBack( new S3D_MASTER( m_CurrentModule ) ); + + + m_CurrentModule->Set_Rectangle_Encadrement(); + + m_Parent->GetScreen()->SetModify(); + + EndModal( 1 ); +} + + +/***********************************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::OnEditReference(wxCommandEvent& event) +/***********************************************************************/ +{ + wxPoint tmp = m_Parent->GetScreen()->m_Curseur; + m_Parent->GetScreen()->m_Curseur = m_ReferenceCopy->m_Pos; + m_Parent->InstallTextModOptionsFrame( m_ReferenceCopy, NULL ); + m_Parent->GetScreen()->m_Curseur = tmp; + m_ReferenceCtrl->SetValue(m_ReferenceCopy->m_Text); +} + +/***********************************************************/ +void DIALOG_MODULE_MODULE_EDITOR::OnEditValue(wxCommandEvent& event) +/***********************************************************/ +{ + wxPoint tmp = m_Parent->GetScreen()->m_Curseur; + m_Parent->GetScreen()->m_Curseur = m_ValueCopy->m_Pos; + m_Parent->InstallTextModOptionsFrame( m_ValueCopy, NULL ); + m_Parent->GetScreen()->m_Curseur = tmp; + m_ValueCtrl->SetValue(m_ValueCopy->m_Text); +} diff --git a/pcbnew/dialog_edit_module_for_Modedit.h b/pcbnew/dialog_edit_module_for_Modedit.h new file mode 100644 index 0000000000..11f3bf2d70 --- /dev/null +++ b/pcbnew/dialog_edit_module_for_Modedit.h @@ -0,0 +1,52 @@ +/*****************************************************************************/ +/* Module editor: Dialog box for editing module properties and carateristics */ +/*****************************************************************************/ + +#ifndef __DIALOG_EDIT_MODULE_FOR_MODEDIT__ +#define __DIALOG_EDIT_MODULE_FOR_MODEDIT__ + +// Include the wxFormBuider header base: +#include +#include "dialog_edit_module_for_modedit_base.h" + +/**************************************/ +/* class DIALOG_MODULE_MODULE_EDITOR */ +/**************************************/ + +class DIALOG_MODULE_MODULE_EDITOR : public DIALOG_MODULE_MODULE_EDITOR_BASE +{ +private: + + WinEDA_ModuleEditFrame* m_Parent; + MODULE* m_CurrentModule; + TEXTE_MODULE* m_ReferenceCopy; + TEXTE_MODULE* m_ValueCopy; + std::vector m_Shapes3D_list; + int m_LastSelected3DShapeIndex; + WinEDA_VertexCtrl * m_3D_Scale; + WinEDA_VertexCtrl * m_3D_Offset; + WinEDA_VertexCtrl * m_3D_Rotation; + +public: + + // Constructor and destructor + DIALOG_MODULE_MODULE_EDITOR( WinEDA_ModuleEditFrame* aParent, MODULE* aModule ); + ~DIALOG_MODULE_MODULE_EDITOR(); + +private: + void InitModeditProperties(); + void Transfert3DValuesToDisplay( S3D_MASTER * aStruct3DSource ); + void TransfertDisplayTo3DValues( int aIndexSelection ); + void OnEditValue( wxCommandEvent& event ); + void OnEditReference( wxCommandEvent& event ); + void On3DShapeSelection( wxCommandEvent& event ); + void On3DShapeNameSelected( wxCommandEvent& event ); + void Browse3DLib( wxCommandEvent& event ); + void Add3DShape( wxCommandEvent& event ); + void Remove3DShape( wxCommandEvent& event ); + void OnCancelClick( wxCommandEvent& event ); + void OnOkClick( wxCommandEvent& event ); +}; + + +#endif // __DIALOG_EDIT_MODULE_FOR_MODEDIT__ diff --git a/pcbnew/dialog_edit_module_for_Modedit_base.cpp b/pcbnew/dialog_edit_module_for_Modedit_base.cpp new file mode 100644 index 0000000000..20f013f915 --- /dev/null +++ b/pcbnew/dialog_edit_module_for_Modedit_base.cpp @@ -0,0 +1,183 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_edit_module_for_Modedit_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_MODULE_MODULE_EDITOR_BASE::DIALOG_MODULE_MODULE_EDITOR_BASE( 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 ); + + m_GeneralBoxSizer = new wxBoxSizer( wxVERTICAL ); + + m_NoteBook = new wxNotebook( this, ID_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0 ); + m_PanelProperties = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* m_PanelPropertiesBoxSizer; + m_PanelPropertiesBoxSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* PropLeftSizer; + PropLeftSizer = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Fields:") ), wxVERTICAL ); + + wxStaticBoxSizer* sbSizerDoc; + sbSizerDoc = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Doc") ), wxHORIZONTAL ); + + sbSizerDoc->SetMinSize( wxSize( 300,-1 ) ); + m_DocCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerDoc->Add( m_DocCtrl, 1, 0, 5 ); + + PropLeftSizer->Add( sbSizerDoc, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerKeysW; + sbSizerKeysW = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Keywords") ), wxHORIZONTAL ); + + m_KeywordCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerKeysW->Add( m_KeywordCtrl, 1, 0, 5 ); + + PropLeftSizer->Add( sbSizerKeysW, 0, wxEXPAND, 5 ); + + + PropLeftSizer->Add( 0, 20, 0, 0, 5 ); + + wxStaticBoxSizer* sbSizerRef; + sbSizerRef = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Reference") ), wxHORIZONTAL ); + + m_ReferenceCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + sbSizerRef->Add( m_ReferenceCtrl, 1, 0, 5 ); + + m_button4 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizerRef->Add( m_button4, 0, 0, 5 ); + + PropLeftSizer->Add( sbSizerRef, 0, wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerValue; + sbSizerValue = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Value") ), wxHORIZONTAL ); + + m_ValueCtrl = new wxTextCtrl( m_PanelProperties, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY ); + sbSizerValue->Add( m_ValueCtrl, 1, 0, 5 ); + + m_button5 = new wxButton( m_PanelProperties, wxID_ANY, _("Edit"), wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT ); + sbSizerValue->Add( m_button5, 0, 0, 5 ); + + PropLeftSizer->Add( sbSizerValue, 0, wxEXPAND, 5 ); + + m_PanelPropertiesBoxSizer->Add( PropLeftSizer, 1, wxEXPAND, 5 ); + + m_PropRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_AttributsCtrlChoices[] = { _("Normal"), _("Normal+Insert"), _("Virtual") }; + int m_AttributsCtrlNChoices = sizeof( m_AttributsCtrlChoices ) / sizeof( wxString ); + m_AttributsCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Attributs:"), wxDefaultPosition, wxDefaultSize, m_AttributsCtrlNChoices, m_AttributsCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_AttributsCtrl->SetSelection( 0 ); + m_PropRightSizer->Add( m_AttributsCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxString m_AutoPlaceCtrlChoices[] = { _("Free"), _("Locked") }; + int m_AutoPlaceCtrlNChoices = sizeof( m_AutoPlaceCtrlChoices ) / sizeof( wxString ); + m_AutoPlaceCtrl = new wxRadioBox( m_PanelProperties, wxID_ANY, _("Move and Auto Place"), wxDefaultPosition, wxDefaultSize, m_AutoPlaceCtrlNChoices, m_AutoPlaceCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_AutoPlaceCtrl->SetSelection( 0 ); + m_PropRightSizer->Add( m_AutoPlaceCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerAutoplace; + sbSizerAutoplace = new wxStaticBoxSizer( new wxStaticBox( m_PanelProperties, wxID_ANY, _("Auto Move and Place") ), wxVERTICAL ); + + m_staticText11 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 90 degree"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText11->Wrap( -1 ); + sbSizerAutoplace->Add( m_staticText11, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_CostRot90Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); + sbSizerAutoplace->Add( m_CostRot90Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_staticText12 = new wxStaticText( m_PanelProperties, wxID_ANY, _("Rotation 180 degree"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText12->Wrap( -1 ); + sbSizerAutoplace->Add( m_staticText12, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_CostRot180Ctrl = new wxSlider( m_PanelProperties, wxID_ANY, 0, 0, 10, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); + sbSizerAutoplace->Add( m_CostRot180Ctrl, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_PropRightSizer->Add( sbSizerAutoplace, 1, wxEXPAND, 5 ); + + m_PanelPropertiesBoxSizer->Add( m_PropRightSizer, 0, 0, 5 ); + + m_PanelProperties->SetSizer( m_PanelPropertiesBoxSizer ); + m_PanelProperties->Layout(); + m_PanelPropertiesBoxSizer->Fit( m_PanelProperties ); + m_NoteBook->AddPage( m_PanelProperties, _("Properties"), true ); + m_Panel3D = new wxPanel( m_NoteBook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTAB_TRAVERSAL ); + wxBoxSizer* bSizerMain3D; + bSizerMain3D = new wxBoxSizer( wxVERTICAL ); + + m_staticText3Dname = new wxStaticText( m_Panel3D, wxID_ANY, _("3D Shape Name"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText3Dname->Wrap( -1 ); + bSizerMain3D->Add( m_staticText3Dname, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_3D_ShapeNameListBox = new wxListBox( m_Panel3D, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); + bSizerMain3D->Add( m_3D_ShapeNameListBox, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bLowerSizer3D; + bLowerSizer3D = new wxBoxSizer( wxHORIZONTAL ); + + m_Sizer3DValues = new wxStaticBoxSizer( new wxStaticBox( m_Panel3D, wxID_ANY, _("3D Scale and Pos") ), wxVERTICAL ); + + bLowerSizer3D->Add( m_Sizer3DValues, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizer3DButtons; + bSizer3DButtons = new wxBoxSizer( wxVERTICAL ); + + m_buttonBrowse = new wxButton( m_Panel3D, ID_BROWSE_3D_LIB, _("Browse Shapes"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonBrowse, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonAdd = new wxButton( m_Panel3D, ID_ADD_3D_SHAPE, _("Add 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonAdd, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + m_buttonRemove = new wxButton( m_Panel3D, ID_REMOVE_3D_SHAPE, _("Remove 3D Shape"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizer3DButtons->Add( m_buttonRemove, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); + + bLowerSizer3D->Add( bSizer3DButtons, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + bSizerMain3D->Add( bLowerSizer3D, 1, wxEXPAND, 5 ); + + m_Panel3D->SetSizer( bSizerMain3D ); + m_Panel3D->Layout(); + bSizerMain3D->Fit( m_Panel3D ); + m_NoteBook->AddPage( m_Panel3D, _("3D settings"), false ); + + m_GeneralBoxSizer->Add( m_NoteBook, 1, wxEXPAND | wxALL, 5 ); + + m_sdbSizerStdButtons = new wxStdDialogButtonSizer(); + m_sdbSizerStdButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsOK ); + m_sdbSizerStdButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerStdButtons->AddButton( m_sdbSizerStdButtonsCancel ); + m_sdbSizerStdButtons->Realize(); + m_GeneralBoxSizer->Add( m_sdbSizerStdButtons, 0, wxEXPAND|wxALIGN_RIGHT, 5 ); + + this->SetSizer( m_GeneralBoxSizer ); + this->Layout(); + + // Connect Events + m_button4->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditReference ), NULL, this ); + m_button5->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditValue ), NULL, this ); + m_3D_ShapeNameListBox->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); + m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Browse3DLib ), NULL, this ); + m_buttonAdd->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Add3DShape ), NULL, this ); + m_buttonRemove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Remove3DShape ), NULL, this ); + m_sdbSizerStdButtonsCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerStdButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_MODULE_MODULE_EDITOR_BASE::~DIALOG_MODULE_MODULE_EDITOR_BASE() +{ + // Disconnect Events + m_button4->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditReference ), NULL, this ); + m_button5->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnEditValue ), NULL, this ); + m_3D_ShapeNameListBox->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::On3DShapeNameSelected ), NULL, this ); + m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Browse3DLib ), NULL, this ); + m_buttonAdd->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Add3DShape ), NULL, this ); + m_buttonRemove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::Remove3DShape ), NULL, this ); + m_sdbSizerStdButtonsCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnCancelClick ), NULL, this ); + m_sdbSizerStdButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_MODULE_MODULE_EDITOR_BASE::OnOkClick ), NULL, this ); +} diff --git a/pcbnew/dialog_edit_module_for_Modedit_base.fbp b/pcbnew/dialog_edit_module_for_Modedit_base.fbp new file mode 100644 index 0000000000..65893dd1f6 --- /dev/null +++ b/pcbnew/dialog_edit_module_for_Modedit_base.fbp @@ -0,0 +1,1345 @@ + + + + + + C++ + 1 + UTF-8 + connect + dialog_edit_module_for_Modedit_base + 1000 + none + 1 + dialog_edit_module_for_Modedit_base + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DIALOG_MODULE_MODULE_EDITOR_BASE + + 422,422 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Module properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + m_GeneralBoxSizer + wxVERTICAL + private + + 5 + wxEXPAND | wxALL + 1 + + + + + 1 + + + 0 + ID_NOTEBOOK + + + m_NoteBook + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_PanelProperties + protected + + + + + + + wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + m_PanelPropertiesBoxSizer + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + wxID_ANY + Fields: + + PropLeftSizer + wxVERTICAL + none + + + 5 + wxEXPAND + 0 + + wxID_ANY + Doc + 300,-1 + sbSizerDoc + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_DocCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Keywords + + sbSizerKeysW + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_KeywordCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + 20 + protected + 0 + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Reference + + sbSizerRef + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ReferenceCtrl + protected + + + wxTE_READONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Edit + + + m_button4 + protected + + + wxBU_EXACTFIT + + + + + + OnEditReference + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 0 + + wxID_ANY + Value + + sbSizerValue + wxHORIZONTAL + none + + + 5 + + 1 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_ValueCtrl + protected + + + wxTE_READONLY + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + Edit + + + m_button5 + protected + + + wxBU_EXACTFIT + + + + + + OnEditValue + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + + m_PropRightSizer + wxVERTICAL + private + + 5 + wxALL|wxEXPAND + 0 + + + "Normal" "Normal+Insert" "Virtual" + + 1 + + + 0 + wxID_ANY + Attributs: + 1 + + + m_AttributsCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + "Free" "Locked" + + 1 + + + 0 + wxID_ANY + Move and Auto Place + 1 + + + m_AutoPlaceCtrl + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + wxID_ANY + Auto Move and Place + + sbSizerAutoplace + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Rotation 90 degree + + + m_staticText11 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + + 0 + + m_CostRot90Ctrl + protected + + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Rotation 180 degree + + + m_staticText12 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 10 + + 0 + + m_CostRot180Ctrl + protected + + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D settings + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_Panel3D + protected + + + + + + + wxSUNKEN_BORDER|wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerMain3D + wxVERTICAL + none + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + 3D Shape Name + + + m_staticText3Dname + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + + + + 1 + + + 0 + wxID_ANY + + + m_3D_ShapeNameListBox + protected + + + wxLB_SINGLE + + + + + + + + + + + + + + + + On3DShapeNameSelected + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bLowerSizer3D + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + wxID_ANY + 3D Scale and Pos + + m_Sizer3DValues + wxVERTICAL + public + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizer3DButtons + wxVERTICAL + none + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_BROWSE_3D_LIB + Browse Shapes + + + m_buttonBrowse + protected + + + + + + + + + Browse3DLib + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_ADD_3D_SHAPE + Add 3D Shape + + + m_buttonAdd + protected + + + + + + + + + Add3DShape + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 0 + + + + 0 + 1 + + + 0 + ID_REMOVE_3D_SHAPE + Remove 3D Shape + + + m_buttonRemove + protected + + + + + + + + + Remove3DShape + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALIGN_RIGHT + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerStdButtons + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/pcbnew/dialog_edit_module_for_Modedit_base.h b/pcbnew/dialog_edit_module_for_Modedit_base.h new file mode 100644 index 0000000000..685d76de1e --- /dev/null +++ b/pcbnew/dialog_edit_module_for_Modedit_base.h @@ -0,0 +1,93 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __dialog_edit_module_for_Modedit_base__ +#define __dialog_edit_module_for_Modedit_base__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +#define ID_NOTEBOOK 1000 +#define ID_BROWSE_3D_LIB 1001 +#define ID_ADD_3D_SHAPE 1002 +#define ID_REMOVE_3D_SHAPE 1003 + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_MODULE_MODULE_EDITOR_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_MODULE_MODULE_EDITOR_BASE : public wxDialog +{ + private: + wxBoxSizer* m_GeneralBoxSizer; + wxBoxSizer* m_PropRightSizer; + + protected: + wxNotebook* m_NoteBook; + wxPanel* m_PanelProperties; + wxTextCtrl* m_DocCtrl; + wxTextCtrl* m_KeywordCtrl; + + wxTextCtrl* m_ReferenceCtrl; + wxButton* m_button4; + wxTextCtrl* m_ValueCtrl; + wxButton* m_button5; + wxRadioBox* m_AttributsCtrl; + wxRadioBox* m_AutoPlaceCtrl; + wxStaticText* m_staticText11; + wxSlider* m_CostRot90Ctrl; + wxStaticText* m_staticText12; + wxSlider* m_CostRot180Ctrl; + wxPanel* m_Panel3D; + wxStaticText* m_staticText3Dname; + wxListBox* m_3D_ShapeNameListBox; + wxButton* m_buttonBrowse; + wxButton* m_buttonAdd; + wxButton* m_buttonRemove; + wxStdDialogButtonSizer* m_sdbSizerStdButtons; + wxButton* m_sdbSizerStdButtonsOK; + wxButton* m_sdbSizerStdButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnEditReference( wxCommandEvent& event ){ event.Skip(); } + virtual void OnEditValue( wxCommandEvent& event ){ event.Skip(); } + virtual void On3DShapeNameSelected( wxCommandEvent& event ){ event.Skip(); } + virtual void Browse3DLib( wxCommandEvent& event ){ event.Skip(); } + virtual void Add3DShape( wxCommandEvent& event ){ event.Skip(); } + virtual void Remove3DShape( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + wxStaticBoxSizer* m_Sizer3DValues; + DIALOG_MODULE_MODULE_EDITOR_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Module properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 422,422 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_MODULE_MODULE_EDITOR_BASE(); + +}; + +#endif //__dialog_edit_module_for_Modedit_base__ diff --git a/pcbnew/dialog_edit_module_text.cpp b/pcbnew/dialog_edit_module_text.cpp index 6a1724e871..fd7b8298c4 100644 --- a/pcbnew/dialog_edit_module_text.cpp +++ b/pcbnew/dialog_edit_module_text.cpp @@ -38,23 +38,18 @@ private: void OnCancelClick( wxCommandEvent& event ); }; -/***************************************************************************/ -void WinEDA_BasePcbFrame::InstallTextModOptionsFrame( TEXTE_MODULE* TextMod, - wxDC* DC, const wxPoint& pos ) -/***************************************************************************/ +/*************************************************************************************/ +void WinEDA_BasePcbFrame::InstallTextModOptionsFrame( TEXTE_MODULE* TextMod, wxDC* DC ) +/**************************************************************************************/ { DrawPanel->m_IgnoreMouseEvents = TRUE; - DialogEditModuleText* frame = new DialogEditModuleText( this, - TextMod, DC ); - frame->ShowModal(); frame->Destroy(); - DrawPanel->MouseToCursorSchema(); + DialogEditModuleText dialog( this, TextMod, DC ); + dialog.ShowModal(); DrawPanel->m_IgnoreMouseEvents = FALSE; } -DialogEditModuleText::DialogEditModuleText( WinEDA_BasePcbFrame* parent, - TEXTE_MODULE* TextMod, - wxDC* DC ) : +DialogEditModuleText::DialogEditModuleText( WinEDA_BasePcbFrame* parent, TEXTE_MODULE* TextMod, wxDC* DC ) : DialogEditModuleText_base(parent) { @@ -90,9 +85,14 @@ void DialogEditModuleText::OnInitDialog( wxInitDialogEvent& event ) m_Module->m_Reference->m_Text.GetData(), m_Module->m_Value->m_Text.GetData(), (float) (m_Module->m_Orient / 10) ); - m_ModuleInfoText->SetLabel( msg ); } + else + msg.Empty(); + + m_ModuleInfoText->SetLabel( msg ); + + if( m_CurrentTextMod->m_Type == TEXT_is_VALUE ) m_TextDataTitle->SetLabel( _( "Value:" ) ); else if( m_CurrentTextMod->m_Type == TEXT_is_DIVERS ) @@ -200,7 +200,8 @@ void DialogEditModuleText::OnOkClick( wxCommandEvent& event ) (m_CurrentTextMod->m_Flags & IS_MOVED) ? MoveVector : wxPoint( 0, 0 ) ); } m_Parent->GetScreen()->SetModify(); - ( (MODULE*) m_CurrentTextMod->GetParent() )->m_LastEdit_Time = time( NULL ); + if( m_Module ) + m_Module->m_LastEdit_Time = time( NULL ); Close( TRUE ); } diff --git a/pcbnew/dialog_graphic_item_properties.cpp b/pcbnew/dialog_graphic_item_properties.cpp index fe723e4d60..7850ddef84 100644 --- a/pcbnew/dialog_graphic_item_properties.cpp +++ b/pcbnew/dialog_graphic_item_properties.cpp @@ -16,6 +16,7 @@ #include "confirm.h" #include "class_drawpanel.h" #include "pcbnew.h" +#include "wxPcbStruct.h" #include "dialog_graphic_item_properties_base.h" @@ -24,37 +25,40 @@ class DialogGraphicItemProperties: public DialogGraphicItemProperties_base { private: - WinEDA_BasePcbFrame* m_Parent; + WinEDA_PcbFrame* m_Parent; wxDC* m_DC; DRAWSEGMENT* m_Item; public: - DialogGraphicItemProperties( WinEDA_BasePcbFrame* aParent, DRAWSEGMENT * aItem, wxDC * aDC); + DialogGraphicItemProperties( WinEDA_PcbFrame* aParent, DRAWSEGMENT * aItem, wxDC * aDC); ~DialogGraphicItemProperties() {}; private: - void OnInitDialog( wxInitDialogEvent& event ); + void Init( ); void OnOkClick( wxCommandEvent& event ); void OnCancelClick( wxCommandEvent& event ); void OnLayerChoice( wxCommandEvent& event ); }; -DialogGraphicItemProperties::DialogGraphicItemProperties( WinEDA_BasePcbFrame* aParent, DRAWSEGMENT * aItem, wxDC * aDC): +DialogGraphicItemProperties::DialogGraphicItemProperties( WinEDA_PcbFrame* aParent, DRAWSEGMENT * aItem, wxDC * aDC): DialogGraphicItemProperties_base( aParent ) { m_Parent = aParent; m_DC = aDC; m_Item = aItem; + Init(); + Layout(); + GetSizer()->SetSizeHints( this ); } /*******************************************************************************************/ -void WinEDA_BasePcbFrame::InstallGraphicItemPropertiesDialog(DRAWSEGMENT * aItem, wxDC* aDC) +void WinEDA_PcbFrame::InstallGraphicItemPropertiesDialog(DRAWSEGMENT * aItem, wxDC* aDC) /*******************************************************************************************/ { if ( aItem == NULL ) { - DisplayError(this, wxT("nstallGraphicItemPropertiesDialog() error: NULL item")); + DisplayError(this, wxT("InstallGraphicItemPropertiesDialog() error: NULL item")); return; } DrawPanel->m_IgnoreMouseEvents = TRUE; @@ -66,7 +70,7 @@ void WinEDA_BasePcbFrame::InstallGraphicItemPropertiesDialog(DRAWSEGMENT * aItem } /**************************************************************************/ -void DialogGraphicItemProperties::OnInitDialog( wxInitDialogEvent& event ) +void DialogGraphicItemProperties::Init( ) /**************************************************************************/ /* Initialize messages and values in text control, * according to the item parameters values @@ -102,6 +106,7 @@ void DialogGraphicItemProperties::OnInitDialog( wxInitDialogEvent& event ) break; } AddUnitSymbol( *m_Start_Center_XText ); + PutValueInLocalUnits( *m_Center_StartXCtrl, m_Item->m_Start.x, m_Parent->m_InternalUnits ); @@ -163,9 +168,11 @@ void DialogGraphicItemProperties::OnLayerChoice( wxCommandEvent& event ) /*******************************************************************/ void DialogGraphicItemProperties::OnOkClick( wxCommandEvent& event ) /*******************************************************************/ -/* Copy values in text contro to the item parameters +/* Copy values in text control to the item parameters */ { + m_Parent->SaveCopyInUndoList( m_Item, UR_CHANGED ); + wxString msg; if ( m_DC ) m_Item->Draw( m_Parent->DrawPanel, m_DC, GR_XOR ); diff --git a/pcbnew/dialog_graphic_item_properties_base.cpp b/pcbnew/dialog_graphic_item_properties_base.cpp index 3a738af755..967518800e 100644 --- a/pcbnew/dialog_graphic_item_properties_base.cpp +++ b/pcbnew/dialog_graphic_item_properties_base.cpp @@ -107,7 +107,6 @@ DialogGraphicItemProperties_base::DialogGraphicItemProperties_base( wxWindow* pa this->Layout(); // Connect Events - this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DialogGraphicItemProperties_base::OnInitDialog ) ); m_LayerSelection->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnLayerChoice ), NULL, this ); m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnOkClick ), NULL, this ); m_buttonCANCEL->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnCancelClick ), NULL, this ); @@ -116,7 +115,6 @@ DialogGraphicItemProperties_base::DialogGraphicItemProperties_base( wxWindow* pa DialogGraphicItemProperties_base::~DialogGraphicItemProperties_base() { // Disconnect Events - this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( DialogGraphicItemProperties_base::OnInitDialog ) ); m_LayerSelection->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnLayerChoice ), NULL, this ); m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnOkClick ), NULL, this ); m_buttonCANCEL->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGraphicItemProperties_base::OnCancelClick ), NULL, this ); diff --git a/pcbnew/dialog_graphic_item_properties_base.fbp b/pcbnew/dialog_graphic_item_properties_base.fbp index 5465158c04..801ebbb207 100644 --- a/pcbnew/dialog_graphic_item_properties_base.fbp +++ b/pcbnew/dialog_graphic_item_properties_base.fbp @@ -32,7 +32,7 @@ DialogGraphicItemProperties_base - 348,247 + 399,247 wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU Graphic item properties @@ -49,7 +49,7 @@ - OnInitDialog + diff --git a/pcbnew/dialog_graphic_item_properties_base.h b/pcbnew/dialog_graphic_item_properties_base.h index 6ac5c8037b..b1a58caa9c 100644 --- a/pcbnew/dialog_graphic_item_properties_base.h +++ b/pcbnew/dialog_graphic_item_properties_base.h @@ -58,14 +58,13 @@ class DialogGraphicItemProperties_base : public wxDialog wxButton* m_buttonCANCEL; // Virtual event handlers, overide them in your derived class - virtual void OnInitDialog( wxInitDialogEvent& event ){ event.Skip(); } virtual void OnLayerChoice( wxCommandEvent& event ){ event.Skip(); } virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } public: - DialogGraphicItemProperties_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Graphic item properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 348,247 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU ); + DialogGraphicItemProperties_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Graphic item properties"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 399,247 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER|wxSYSTEM_MENU ); ~DialogGraphicItemProperties_base(); }; diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 1dd256549c..aa45b80cb2 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -821,7 +821,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_EDIT_TEXTMODULE: - InstallTextModOptionsFrame( (TEXTE_MODULE*) GetCurItem(), &dc, pos ); + InstallTextModOptionsFrame( (TEXTE_MODULE*) GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); break; @@ -944,9 +944,12 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) break; case ID_POPUP_PCB_DELETE_DRAWING_LAYER: - Delete_Drawings_All_Layer( (DRAWSEGMENT*) GetCurItem(), &dc ); + if( GetCurItem()->m_Flags != 0 ) + break; + Delete_Drawings_All_Layer( GetCurItem()->GetLayer() ); SetCurItem( NULL ); DrawPanel->MouseToCursorSchema(); + DrawPanel->Refresh(); break; case ID_POPUP_PCB_EDIT_DRAWING: diff --git a/pcbnew/editedge.cpp b/pcbnew/editedge.cpp index f35b2bc4c8..8c4f1f6f80 100644 --- a/pcbnew/editedge.cpp +++ b/pcbnew/editedge.cpp @@ -115,7 +115,7 @@ void WinEDA_PcbFrame::Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC ) DisplayOpt.DisplayDrawItems = track_fill_copy; SetCurItem( NULL ); } - else + else if( Segment->m_Flags == 0) { Segment->Draw( DrawPanel, DC, GR_XOR ); Segment->m_Flags = 0; @@ -128,30 +128,22 @@ void WinEDA_PcbFrame::Delete_Segment_Edge( DRAWSEGMENT* Segment, wxDC* DC ) /******************************************************************************/ -void WinEDA_PcbFrame::Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC ) +void WinEDA_PcbFrame::Delete_Drawings_All_Layer( int aLayer ) /******************************************************************************/ { - int layer = Segment->GetLayer(); - - if( layer <= LAST_COPPER_LAYER ) + if( aLayer <= LAST_COPPER_LAYER ) { DisplayError( this, _( "Copper layer global delete not allowed!" ), 20 ); return; } - if( Segment->m_Flags ) - { - DisplayError( this, _( "Segment is being edited" ), 10 ); - return; - } - - wxString msg = _( "Delete Layer " ) + GetBoard()->GetLayerName( layer ); + wxString msg = _( "Delete Layer " ) + GetBoard()->GetLayerName( aLayer ); if( !IsOK( this, msg ) ) return; PICKED_ITEMS_LIST pickList; ITEM_PICKER picker(NULL, UR_DELETED); - + BOARD_ITEM* PtNext; for( BOARD_ITEM* item = GetBoard()->m_Drawings; item; item = PtNext ) { @@ -162,9 +154,9 @@ void WinEDA_PcbFrame::Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC case TYPE_DRAWSEGMENT: case TYPE_TEXTE: case TYPE_COTATION: - if( item->GetLayer() == layer ) + case TYPE_MIRE: + if( item->GetLayer() == aLayer ) { - item->Draw( DrawPanel, DC, GR_XOR ); item->UnLink(); picker.m_PickedItem = item; pickList.PushItem(picker); @@ -172,15 +164,19 @@ void WinEDA_PcbFrame::Delete_Drawings_All_Layer( DRAWSEGMENT* Segment, wxDC* DC break; default: - DisplayError( this, wxT( "Type Drawing Inconnu" ) ); + { + wxString msg; + msg.Printf( wxT("Delete_Drawings_All_Layer() error: unknown type %d"), item->Type()); + wxMessageBox( msg ); break; } + } } if( pickList.GetCount() ) { GetScreen()->SetModify(); - SaveCopyInUndoList(Segment, UR_DELETED); + SaveCopyInUndoList(pickList, UR_DELETED); } } diff --git a/pcbnew/editmod.cpp b/pcbnew/editmod.cpp index 3632bd4a41..934c3e3e0f 100644 --- a/pcbnew/editmod.cpp +++ b/pcbnew/editmod.cpp @@ -7,46 +7,47 @@ #include "common.h" #include "class_drawpanel.h" #include "confirm.h" -#include "gestfich.h" #include "pcbnew.h" #include "wxPcbStruct.h" #include "trigo.h" -#include "bitmaps.h" -#include "3d_struct.h" #include "3d_viewer.h" -#include "dialog_edit_module.h" - -#include "protos.h" - -bool GoToEditor = FALSE; +#include "dialog_edit_module_for_BoardEditor.h" /*******************************************************************/ -void WinEDA_BasePcbFrame::InstallModuleOptionsFrame( MODULE* Module, wxDC * DC ) +void WinEDA_PcbFrame::InstallModuleOptionsFrame( MODULE* Module, wxDC* DC ) /*******************************************************************/ /* Fonction relai d'installation de la frame d'édition des proprietes * du module*/ { - WinEDA_ModulePropertiesFrame* frame = - new WinEDA_ModulePropertiesFrame( this, Module, DC ); + if( Module == NULL ) + return; - frame->ShowModal(); frame->Destroy(); + DIALOG_MODULE_BOARD_EDITOR* dialog = + new DIALOG_MODULE_BOARD_EDITOR( this, Module, DC ); - if( GoToEditor && GetScreen()->GetCurItem() ) + int retvalue = dialog->ShowModal(); /* retvalue = + * -1 if abort, + * 0 if exchange module, + * 1 for normal edition + * and 2 for a goto editor command + */ + dialog->Destroy(); + + if( retvalue == 2 ) { if( m_ModuleEditFrame == NULL ) { m_ModuleEditFrame = new WinEDA_ModuleEditFrame( this, - _( "Module Editor" ), - wxPoint( -1, -1 ), - wxSize( 600, 400 ) ); + _( "Module Editor" ), + wxPoint( -1, -1 ), + wxSize( 600, 400 ) ); } - m_ModuleEditFrame->Load_Module_From_BOARD( (MODULE*) GetScreen()->GetCurItem() ); + m_ModuleEditFrame->Load_Module_From_BOARD( Module ); SetCurItem( NULL ); - GoToEditor = FALSE; m_ModuleEditFrame->Show( TRUE ); m_ModuleEditFrame->Iconize( FALSE ); } @@ -59,30 +60,29 @@ void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod ) /* * Repositionne l'ancre sous le curseur souris - * Le module doit etre d'abort selectionne */ { - wxPoint delta; + wxPoint moveVector; EDA_BaseStruct* PtStruct; D_PAD* pt_pad; if( pt_mod == NULL ) return; - delta = pt_mod->m_Pos - GetScreen()->m_Curseur; + moveVector = pt_mod->m_Pos - GetScreen()->m_Curseur; pt_mod->m_Pos = GetScreen()->m_Curseur; /* Mise a jour des coord relatives des elements: * les coordonnees relatives sont relatives a l'ancre, pour orient 0. * il faut donc recalculer deltaX et deltaY en orientation 0 */ - RotatePoint( &delta, -pt_mod->m_Orient ); + RotatePoint( &moveVector, -pt_mod->m_Orient ); /* Mise a jour des coord relatives des pads */ pt_pad = (D_PAD*) pt_mod->m_Pads; for( ; pt_pad != NULL; pt_pad = pt_pad->Next() ) { - pt_pad->m_Pos0 += delta; + pt_pad->m_Pos0 += moveVector; } /* Mise a jour des coord relatives contours .. */ @@ -94,14 +94,14 @@ void WinEDA_ModuleEditFrame::Place_Ancre( MODULE* pt_mod ) case TYPE_EDGE_MODULE: #undef STRUCT #define STRUCT ( (EDGE_MODULE*) PtStruct ) - STRUCT->m_Start0 += delta; - STRUCT->m_End0 += delta; + STRUCT->m_Start0 += moveVector; + STRUCT->m_End0 += moveVector; break; case TYPE_TEXTE_MODULE: #undef STRUCT #define STRUCT ( (TEXTE_MODULE*) PtStruct ) - STRUCT->m_Pos0 += delta; + STRUCT->m_Pos0 += moveVector; break; default: @@ -141,7 +141,7 @@ void WinEDA_ModuleEditFrame::RemoveStruct( EDA_BaseStruct* Item ) } DeleteTextModule( text ); } - break; + break; case TYPE_EDGE_MODULE: Delete_Edge_Module( (EDGE_MODULE*) Item ); @@ -155,9 +155,9 @@ void WinEDA_ModuleEditFrame::RemoveStruct( EDA_BaseStruct* Item ) { wxString Line; Line.Printf( wxT( " Remove: StructType %d Inattendu" ), - Item->Type() ); + Item->Type() ); DisplayError( this, Line ); } - break; + break; } } diff --git a/pcbnew/edtxtmod.cpp b/pcbnew/edtxtmod.cpp index 10cb3c7ad2..18264c32bc 100644 --- a/pcbnew/edtxtmod.cpp +++ b/pcbnew/edtxtmod.cpp @@ -22,7 +22,8 @@ static void ExitTextModule( WinEDA_DrawPanel* Panel, wxDC* DC ); /* local variables */ wxPoint MoveVector; // Move vector for move edge, exported to dialog_edit mod_text.cpp -static wxPoint CursorInitialPosition; // Mouse cursor inital position for move command +static wxPoint TextInitialPosition; // Mouse cursor inital position for undo/abort move command +static int TextInitialOrientation; // module text inital orientation for undo/abort move+rot command+rot /******************************************************************************/ @@ -39,7 +40,8 @@ TEXTE_MODULE* WinEDA_BasePcbFrame::CreateTextModule( MODULE* Module, wxDC* DC ) Text = new TEXTE_MODULE( Module ); /* Chainage de la nouvelle structure en tete de liste drawings */ - Module->m_Drawings.PushFront( Text ); + if( Module ) + Module->m_Drawings.PushFront( Text ); Text->m_Flags = IS_NEW; @@ -52,10 +54,12 @@ TEXTE_MODULE* WinEDA_BasePcbFrame::CreateTextModule( MODULE* Module, wxDC* DC ) Text->m_Pos = GetScreen()->m_Curseur; Text->SetLocalCoord(); - InstallTextModOptionsFrame( Text, NULL, wxPoint( -1, -1 ) ); + InstallTextModOptionsFrame( Text, NULL ); + DrawPanel->MouseToCursorSchema(); Text->m_Flags = 0; - Text->Draw( DrawPanel, DC, GR_OR ); + if( DC ) + Text->Draw( DrawPanel, DC, GR_OR ); Text->DisplayInfo( this ); @@ -73,6 +77,12 @@ void WinEDA_BasePcbFrame::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ) MODULE* module = (MODULE*) Text->GetParent(); + if( module && module->m_Flags == 0 && Text->m_Flags == 0 ) // simple rot command + { // prepare undo command + if( this->m_Ident == PCB_FRAME ) + SaveCopyInUndoList( module,UR_CHANGED ); + } + // we expect MoveVector to be (0,0) if there is no move in progress Text->Draw( DrawPanel, DC, GR_XOR, MoveVector ); @@ -85,7 +95,8 @@ void WinEDA_BasePcbFrame::RotateTextModule( TEXTE_MODULE* Text, wxDC* DC ) Text->DisplayInfo( this ); - module->m_LastEdit_Time = time( NULL ); + if( module ) + module->m_LastEdit_Time = time( NULL ); GetScreen()->SetModify(); } @@ -173,7 +184,8 @@ void WinEDA_BasePcbFrame::StartMoveTexteModule( TEXTE_MODULE* Text, wxDC* DC ) MoveVector.x = MoveVector.y = 0; - CursorInitialPosition = Text->m_Pos; + TextInitialPosition = Text->m_Pos; + TextInitialOrientation = Text->m_Orient; Text->DisplayInfo( this ); @@ -190,7 +202,7 @@ void WinEDA_BasePcbFrame::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ) /*************************************************************************/ /* Routine complementaire a StartMoveTexteModule(). - * Place le texte en cours de deplacement ou nouvellement cree + * Place le texte en cours de deplacement */ { if( Text != NULL ) @@ -202,18 +214,24 @@ void WinEDA_BasePcbFrame::PlaceTexteModule( TEXTE_MODULE* Text, wxDC* DC ) MODULE* Module = (MODULE*) Text->GetParent(); if( Module ) { - int px = Text->m_Pos.x - Module->m_Pos.x; - int py = Text->m_Pos.y - Module->m_Pos.y; - RotatePoint( &px, &py, -Module->m_Orient ); - Text->m_Pos0.x = px; - Text->m_Pos0.y = py; + // Prepare undo command for Board Editor: + if( m_Ident == PCB_FRAME ) + { + EXCHG(Text->m_Pos, TextInitialPosition); + EXCHG(Text->m_Orient, TextInitialOrientation); + SaveCopyInUndoList(Module, UR_CHANGED); + EXCHG(Text->m_Pos, TextInitialPosition); + EXCHG(Text->m_Orient, TextInitialOrientation); + } + wxPoint textRelPos = Text->m_Pos - Module->m_Pos; + RotatePoint( &textRelPos, -Module->m_Orient ); + Text->m_Pos0 = textRelPos; Text->m_Flags = 0; Module->m_Flags = 0; Module->m_LastEdit_Time = time( NULL ); GetScreen()->SetModify(); /* Redessin du Texte */ - //Text->Draw( DrawPanel, DC, GR_OR ); DrawPanel->PostDirtyRect( Text->GetBoundingBox() ); } } @@ -232,20 +250,16 @@ static void Show_MoveTexte_Module( WinEDA_DrawPanel* panel, wxDC* DC, bool erase { BASE_SCREEN* screen = panel->GetScreen(); TEXTE_MODULE* Text = (TEXTE_MODULE*) screen->GetCurItem(); - MODULE* Module; if( Text == NULL ) return; - Module = (MODULE*) Text->GetParent(); - /* effacement du texte : */ - + /* Undraw the text : */ if( erase ) Text->Draw( panel, DC, GR_XOR, MoveVector ); - MoveVector.x = -(screen->m_Curseur.x - CursorInitialPosition.x); - MoveVector.y = -(screen->m_Curseur.y - CursorInitialPosition.y); + MoveVector = TextInitialPosition - screen->m_Curseur; - /* Redessin du Texte */ + /* Redraw the text */ Text->Draw( panel, DC, GR_XOR, MoveVector ); } diff --git a/pcbnew/mirepcb.cpp b/pcbnew/mirepcb.cpp index 7fa377e16b..1fe0001f70 100644 --- a/pcbnew/mirepcb.cpp +++ b/pcbnew/mirepcb.cpp @@ -200,7 +200,7 @@ static void AbortMoveAndEditTarget( WinEDA_DrawPanel* Panel, wxDC* DC ) } else /* it is an existing item: retrieve initial values of parameters */ { - if( (MirePcb->m_Flags & IN_EDIT) ) + if( (MirePcb->m_Flags & (IN_EDIT |IS_MOVED)) ) { MirePcb->m_Pos = s_TargetCopy.m_Pos; MirePcb->m_Width = s_TargetCopy.m_Width; diff --git a/pcbnew/modedit.cpp b/pcbnew/modedit.cpp index 07a3787947..cf1ef9b2ad 100644 --- a/pcbnew/modedit.cpp +++ b/pcbnew/modedit.cpp @@ -17,6 +17,8 @@ #include "wxPcbStruct.h" #include "protos.h" +#include "dialog_edit_module_for_modedit.h" + #include "collectors.h" /****************************************************************************/ @@ -396,10 +398,12 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_MODEDIT_EDIT_MODULE_PROPERTIES: if( GetBoard()->m_Modules ) { - SET_DC; SetCurItem( GetBoard()->m_Modules ); - InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), &dc ); + DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()->GetCurItem() ); + int ret = dialog.ShowModal(); GetScreen()->GetCurItem()->m_Flags = 0; + if( ret > 0 ) + DrawPanel->Refresh(); } break; @@ -453,10 +457,13 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_EDIT_MODULE: { - SET_DC; - InstallModuleOptionsFrame( (MODULE*) GetScreen()->GetCurItem(), &dc ); + DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) GetScreen()->GetCurItem() ); + int ret = dialog.ShowModal(); + GetScreen()->GetCurItem()->m_Flags = 0; GetScreen()->GetCurItem()->m_Flags = 0; DrawPanel->MouseToCursorSchema(); + if( ret > 0 ) + DrawPanel->Refresh(); } break; @@ -504,9 +511,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_EDIT_TEXTMODULE: { SET_DC; - - InstallTextModOptionsFrame( (TEXTE_MODULE*) GetScreen()->GetCurItem(), - &dc, pos ); + InstallTextModOptionsFrame( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); } break; @@ -522,8 +527,7 @@ void WinEDA_ModuleEditFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_POPUP_PCB_ROTATE_TEXTMODULE: { SET_DC; - RotateTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), - &dc ); + RotateTextModule( (TEXTE_MODULE*) GetScreen()->GetCurItem(), &dc ); DrawPanel->MouseToCursorSchema(); } break; diff --git a/pcbnew/modedit_onclick.cpp b/pcbnew/modedit_onclick.cpp index e7c62cb918..7a82a751f7 100644 --- a/pcbnew/modedit_onclick.cpp +++ b/pcbnew/modedit_onclick.cpp @@ -7,8 +7,10 @@ #include "class_drawpanel.h" #include "confirm.h" +#include "3d_viewer.h" #include "pcbnew.h" #include "wxPcbStruct.h" +#include "dialog_edit_module_for_modedit.h" #include "bitmaps.h" #include "protos.h" @@ -403,13 +405,19 @@ void WinEDA_ModuleEditFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) break; case TYPE_MODULE: - InstallModuleOptionsFrame( (MODULE*) DrawStruct, &dc ); + { + DIALOG_MODULE_MODULE_EDITOR dialog( this, (MODULE*) DrawStruct ); + int ret = dialog.ShowModal(); + GetScreen()->GetCurItem()->m_Flags = 0; + GetScreen()->GetCurItem()->m_Flags = 0; DrawPanel->MouseToCursorSchema(); + if( ret > 0 ) + DrawPanel->Refresh(); + } break; case TYPE_TEXTE_MODULE: - InstallTextModOptionsFrame( (TEXTE_MODULE*) DrawStruct, - &dc, pos ); + InstallTextModOptionsFrame( (TEXTE_MODULE*) DrawStruct, &dc ); DrawPanel->MouseToCursorSchema(); break; diff --git a/pcbnew/onleftclick.cpp b/pcbnew/onleftclick.cpp index 32a8d601b8..f31ab09d4f 100644 --- a/pcbnew/onleftclick.cpp +++ b/pcbnew/onleftclick.cpp @@ -400,7 +400,7 @@ void WinEDA_PcbFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos ) break; case TYPE_TEXTE_MODULE: - InstallTextModOptionsFrame( (TEXTE_MODULE*) DrawStruct, &dc, pos ); + InstallTextModOptionsFrame( (TEXTE_MODULE*) DrawStruct, &dc ); DrawPanel->MouseToCursorSchema(); break; diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index e985d8a756..638e3df85d 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -165,21 +165,22 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) createPopUpMenuForFpTexts( (TEXTE_MODULE*) item, aPopMenu ); break; - case TYPE_DRAWSEGMENT: - if( !flags ) - { - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_MOVE_DRAWING_REQUEST, - _( "Move Drawing" ), move_xpm ); - } - if( flags & IS_NEW ) + case TYPE_DRAWSEGMENT: // Some graphic items on technical layers + if( (flags & IS_NEW) ) { ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_STOP_CURRENT_DRAWING, _( "End Drawing" ), apply_xpm ); } - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_EDIT_DRAWING, - _( "Edit Drawing" ), edit_xpm ); - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_DRAWING, - _( "Delete Drawing" ), delete_xpm ); + if( !flags ) + { + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_MOVE_DRAWING_REQUEST, + _( "Move Drawing" ), move_xpm ); + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_EDIT_DRAWING, _( "Edit Drawing" ), edit_xpm ); + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_DRAWING, _( "Delete Drawing" ), delete_xpm ); + if( item->GetLayer() > LAST_COPPER_LAYER ) + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_DRAWING_LAYER, + _( "Delete All Drawing on Layer" ), delete_body_xpm ); + } break; case TYPE_ZONE: // Item used to fill a zone @@ -218,9 +219,9 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) { ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_EDIT_COTATION, _( "Edit Dimension" ), edit_xpm ); - } - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_COTATION, + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_COTATION, _( "Delete Dimension" ), delete_xpm ); + } break; case TYPE_MIRE: @@ -228,11 +229,11 @@ bool WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) { ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_MOVE_MIRE_REQUEST, _( "Move Target" ), move_xpm ); + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_EDIT_MIRE, + _( "Edit Target" ), edit_xpm ); + ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_MIRE, + _( "Delete Target" ), delete_xpm ); } - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_EDIT_MIRE, - _( "Edit Target" ), edit_xpm ); - ADD_MENUITEM( aPopMenu, ID_POPUP_PCB_DELETE_MIRE, - _( "Delete Target" ), delete_xpm ); break; case TYPE_EDGE_MODULE: @@ -709,9 +710,11 @@ void WinEDA_PcbFrame::createPopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* m ADD_MENUITEM( sub_menu_Fp_text, ID_POPUP_PCB_EDIT_TEXTMODULE, _( "Edit" ), edit_text_xpm ); - if( FpText->m_Type == TEXT_is_DIVERS ) + if( !flags && FpText->m_Type == TEXT_is_DIVERS ) // Graphic texts can be deleted only if are not currently edited + { ADD_MENUITEM( sub_menu_Fp_text, ID_POPUP_PCB_DELETE_TEXTMODULE, _( "Delete" ), delete_xpm ); + } if( !flags ) {