From bbd8cdd91ba5f0d0717ce66b431ded0df9f6cda0 Mon Sep 17 00:00:00 2001 From: charras Date: Wed, 24 Feb 2010 15:33:03 +0000 Subject: [PATCH] minor enhancements, fixes an code cleanup (removed unused global variables) --- eeschema/dialog_print_using_printer.cpp | 4 +- eeschema/files-io.cpp | 3 +- eeschema/schframe.cpp | 3 +- include/common.h | 3 + internat/fr/kicad.mo | Bin 223089 -> 223064 bytes internat/fr/kicad.po | 266 +-- kicad/kicad.cpp | 2 +- kicad/prjconfig.cpp | 4 +- kicad/tree_project_frame.cpp | 6 +- pcbnew/CMakeLists.txt | 3 +- pcbnew/dialog_SVG_print.cpp | 6 +- pcbnew/dialog_general_options.cpp | 29 - ...ialog_general_options_BoardEditor_base.cpp | 305 ++- ...ialog_general_options_BoardEditor_base.fbp | 54 - .../dialog_general_options_BoardEditor_base.h | 96 +- pcbnew/dialog_graphic_items_options.cpp | 425 +--- pcbnew/dialog_graphic_items_options.h | 149 +- pcbnew/dialog_graphic_items_options.pjd | 2002 ----------------- pcbnew/dialog_graphic_items_options.rc | 1 - pcbnew/dialog_graphic_items_options_base.cpp | 132 ++ pcbnew/dialog_graphic_items_options_base.fbp | 1220 ++++++++++ pcbnew/dialog_graphic_items_options_base.h | 71 + pcbnew/dialog_plot_base.cpp | 4 +- pcbnew/dialog_plot_base.fbp | 4 +- pcbnew/dialog_print_for_modedit.cpp | 3 +- pcbnew/dialog_print_using_printer.cpp | 10 +- pcbnew/dialog_print_using_printer_base.cpp | 3 +- pcbnew/dialog_print_using_printer_base.fbp | 2 +- pcbnew/pcbframe.cpp | 5 +- pcbnew/pcbnew.cpp | 8 +- pcbnew/pcbnew.h | 2 - pcbnew/pcbplot.cpp | 8 +- pcbnew/pcbplot.h | 1 - pcbnew/solve.cpp | 2 +- pcbnew/tracepcb.cpp | 5 +- 35 files changed, 1910 insertions(+), 2931 deletions(-) delete mode 100644 pcbnew/dialog_graphic_items_options.pjd delete mode 100644 pcbnew/dialog_graphic_items_options.rc create mode 100644 pcbnew/dialog_graphic_items_options_base.cpp create mode 100644 pcbnew/dialog_graphic_items_options_base.fbp create mode 100644 pcbnew/dialog_graphic_items_options_base.h diff --git a/eeschema/dialog_print_using_printer.cpp b/eeschema/dialog_print_using_printer.cpp index e07eaa9350..f56059d345 100644 --- a/eeschema/dialog_print_using_printer.cpp +++ b/eeschema/dialog_print_using_printer.cpp @@ -116,7 +116,9 @@ void WinEDA_SchematicFrame::OnPrint( wxCommandEvent& event ) fn = g_RootSheet->m_AssociatedScreen->m_FileName; - if( fn.GetFullName() != wxT( "noname.sch" ) ) + wxString default_name = NAMELESS_PROJECT; + default_name += wxT( ".sch" ); + if( fn.GetFullName() != default_name ) { fn.SetExt( ProjectFileExtension ); wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() ); diff --git a/eeschema/files-io.cpp b/eeschema/files-io.cpp index c72240d0d3..53158d7720 100644 --- a/eeschema/files-io.cpp +++ b/eeschema/files-io.cpp @@ -109,7 +109,8 @@ int WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, screen->m_CurrentSheetDesc = &g_Sheet_A4; screen->SetZoom( 32 ); screen->SetGrid( ID_POPUP_GRID_LEVEL_1000 + m_LastGridSizeId ); - screen->m_Title = wxT( "noname.sch" ); + screen->m_Title = NAMELESS_PROJECT; + screen->m_Title += wxT( ".sch" ); GetScreen()->m_FileName = screen->m_Title; screen->m_Company.Empty(); screen->m_Commentaire1.Empty(); diff --git a/eeschema/schframe.cpp b/eeschema/schframe.cpp index ca80ddebf7..8461b67e51 100644 --- a/eeschema/schframe.cpp +++ b/eeschema/schframe.cpp @@ -155,7 +155,8 @@ WinEDA_SchematicFrame::WinEDA_SchematicFrame( wxWindow* father, m_TextFieldSize = DEFAULT_SIZE_TEXT; m_LibeditFrame = NULL; // Component editor frame. m_ViewlibFrame = NULL; // Frame for browsing component libraries - m_DefaultSchematicFileName = wxT( "noname.sch" ); + m_DefaultSchematicFileName = NAMELESS_PROJECT; + m_DefaultSchematicFileName += wxT( ".sch" ); m_ShowAllPins = false; m_previewPosition = wxDefaultPosition; m_previewSize = wxDefaultSize; diff --git a/include/common.h b/include/common.h index 3971b5c6ee..7e062d650c 100644 --- a/include/common.h +++ b/include/common.h @@ -29,6 +29,9 @@ class WinEDA_DrawPanel; * flag for block commands */ +// default name for nameless projects +#define NAMELESS_PROJECT wxT("noname") + #define NB_ITEMS 11 /* Pseudo key codes for command panning */ diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index b9c9520ad1b8128bd807fb34ce0a2e7a3d033e20..a2e28baf60db13c1ee67d2c5f6cc2f66fca6b27f 100644 GIT binary patch delta 61705 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 OW8S0jTiZDubo?Kl(UejE delta 61709 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 BnGgT~ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 5d2cd51ab9..d21982e4f5 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: 2010-02-22 20:56+0100\n" -"PO-Revision-Date: 2010-02-22 20:58+0100\n" +"POT-Creation-Date: 2010-02-24 17:18+0100\n" +"PO-Revision-Date: 2010-02-24 17:18+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -1308,23 +1308,23 @@ msgstr "Ecriture fichier CI: " msgid "Failed to create " msgstr "Impossible de créer fichier " -#: pcbnew/pcbframe.cpp:336 +#: pcbnew/pcbframe.cpp:337 msgid "Visibles" msgstr "Visibles" -#: pcbnew/pcbframe.cpp:422 +#: pcbnew/pcbframe.cpp:423 msgid "Board modified, Save before exit ?" msgstr "Circuit Imprimé modifié, Sauver avant de quitter ?" -#: pcbnew/pcbframe.cpp:423 +#: pcbnew/pcbframe.cpp:424 msgid "Confirmation" msgstr "Confirmation" -#: pcbnew/pcbframe.cpp:462 +#: pcbnew/pcbframe.cpp:463 msgid "3D Frame already opened" msgstr "Fenêtre 3D déjà ouverte" -#: pcbnew/pcbframe.cpp:466 +#: pcbnew/pcbframe.cpp:467 msgid "3D Viewer" msgstr "Visu 3D" @@ -1948,24 +1948,24 @@ msgstr "Nb Segms" msgid "Error: Unexpected end of file !" msgstr "Erreur: Fin de fichier inattendue !" -#: pcbnew/pcbnew.cpp:107 +#: pcbnew/pcbnew.cpp:109 msgid "Pcbnew is already running, Continue?" msgstr "Pcbnew est en cours d'exécution. Continuer ?" -#: pcbnew/pcbplot.cpp:558 +#: pcbnew/pcbplot.cpp:560 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:561 +#: pcbnew/pcbplot.cpp:563 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:690 +#: pcbnew/pcbplot.cpp:692 #, c-format msgid "Plot file <%s> created" msgstr "Fichier de tracé <%s> créé" -#: pcbnew/pcbplot.cpp:702 +#: pcbnew/pcbplot.cpp:704 msgid "No layer selected" msgstr "Pas de couche sélectionnée" @@ -3362,50 +3362,6 @@ msgstr "Non" msgid " Yes" msgstr "Oui" -#: pcbnew/dialog_graphic_items_options.cpp:194 -msgid "Graphics:" -msgstr "Eléments graphiques;" - -#: pcbnew/dialog_graphic_items_options.cpp:200 -msgid "Graphic segm Width" -msgstr "Epaisseur segm graphique" - -#: pcbnew/dialog_graphic_items_options.cpp:217 -msgid "Board Edges Width" -msgstr "Epaiss. contour pcb" - -#: pcbnew/dialog_graphic_items_options.cpp:234 -msgid "Copper Text Width" -msgstr "Epaisseur Texte sur cuivre" - -#: pcbnew/dialog_graphic_items_options.cpp:251 -msgid "Text Size V" -msgstr "Hauteur texte" - -#: pcbnew/dialog_graphic_items_options.cpp:268 -msgid "Text Size H" -msgstr "Largeur texte" - -#: pcbnew/dialog_graphic_items_options.cpp:287 -msgid "Modules:" -msgstr "Modules: " - -#: pcbnew/dialog_graphic_items_options.cpp:293 -msgid "Edges Module Width" -msgstr "Epaiss. contour module" - -#: pcbnew/dialog_graphic_items_options.cpp:313 -msgid "Text Module Width" -msgstr "Epaisseur Texte Module" - -#: pcbnew/dialog_graphic_items_options.cpp:334 -msgid "Text Module Size V" -msgstr "Hauteur Texte Module" - -#: pcbnew/dialog_graphic_items_options.cpp:355 -msgid "Text Module Size H" -msgstr "Largeur Texte Module" - #: pcbnew/dialog_edit_module_text_base.cpp:19 #, c-format msgid "Module %s (%s) orient %.1f" @@ -3596,8 +3552,8 @@ msgid "Set Y scale adjust for exact scale plotting" msgstr "Ajuster échelle Y pour traçage à l'échelle exacte" #: pcbnew/dialog_print_using_printer_base.cpp:78 -msgid "Default Pen Size:" -msgstr "Dimension Plume par Défaut:" +msgid "Default pen size:" +msgstr "Dimension plume par défaut:" #: pcbnew/dialog_print_using_printer_base.cpp:80 msgid "" @@ -3656,7 +3612,7 @@ msgid "Preview" msgstr "Prévisualisation" #: pcbnew/dialog_print_using_printer_base.cpp:134 -#: pcbnew/dialog_print_using_printer.cpp:500 +#: pcbnew/dialog_print_using_printer.cpp:504 msgid "Print" msgstr "Imprimer" @@ -4469,19 +4425,19 @@ msgstr "" "Chemins (chemins système et chemins utilisateurs) utilisés pour chercher et charger les fichiers libriries et documentation des composants.\n" "Triés par ordre de priorité décroissante." -#: pcbnew/dialog_print_using_printer.cpp:99 +#: pcbnew/dialog_print_using_printer.cpp:102 msgid "Error Init Printer info" msgstr "Erreur Init info imprimante" -#: pcbnew/dialog_print_using_printer.cpp:430 +#: pcbnew/dialog_print_using_printer.cpp:434 msgid "Printer Problem!" msgstr "Problème d'imprimante" -#: pcbnew/dialog_print_using_printer.cpp:444 +#: pcbnew/dialog_print_using_printer.cpp:448 msgid "Print Preview" msgstr "Prévisualisation" -#: pcbnew/dialog_print_using_printer.cpp:511 +#: pcbnew/dialog_print_using_printer.cpp:515 msgid "There was a problem printing" msgstr "Il y a un problème d'impression" @@ -5193,11 +5149,11 @@ msgstr "Mots Clés" msgid "inch" msgstr "Pouce" -#: pcbnew/dialog_SVG_print.cpp:206 +#: pcbnew/dialog_SVG_print.cpp:209 msgid "Create file " msgstr "Créer Fichier " -#: pcbnew/dialog_SVG_print.cpp:208 +#: pcbnew/dialog_SVG_print.cpp:211 msgid " error" msgstr " erreur" @@ -5884,7 +5840,7 @@ msgstr "Net Code" msgid "Net Length" msgstr "Long. Net" -#: pcbnew/dialog_print_for_modedit.cpp:202 +#: pcbnew/dialog_print_for_modedit.cpp:203 msgid "Print Footprint" msgstr "Imprimer Module" @@ -6239,7 +6195,7 @@ msgid "Setting libraries, directories and others..." msgstr "Sélectionner les librairies, répertoires et autres" #: pcbnew/menubar_pcbframe.cpp:376 -#: pcbnew/dialog_general_options.cpp:251 +#: pcbnew/dialog_general_options.cpp:222 msgid "Hide &Layers Manager" msgstr "Cacher le &Gestionnaire de Couches" @@ -6403,27 +6359,27 @@ msgstr "Curseur" msgid "Main cursor shape selection (small cross or large cursor)" msgstr "Sélection de l'aspect du curseur principal (petite croix ou grand curseur)" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:60 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:51 msgid "Max Links:" msgstr "Liens max:" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:65 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:56 msgid "Adjust the number of ratsnets shown from cursor to closest pads" msgstr "Ajuster le nombre de ratsnets montré du curseur aux pads les plus prêts" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:69 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:60 msgid "Auto Save (minutes):" msgstr "Sauveg. Auto (minutes)" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:74 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:65 msgid "Delay after the first change to create a backup file of the board on disk." msgstr "Délai après le premier changement pour créer un fichier de sauvegarde du circuit imprimé sur disque" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:83 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:74 msgid "Drc ON" msgstr "Drc ACTIVE" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:86 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:77 msgid "" "Enable/disable the DRC control.\n" "When DRC is disable, all connections are allowed." @@ -6431,19 +6387,19 @@ msgstr "" "Active/désactive le contrôle DRC (Design Rule Check).\n" "Lorsque de DRC est désactivé, toutes les connexions sont autorisées." -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:90 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:81 msgid "Show Ratsnest" msgstr "Montrer le chevelu général" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:92 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:83 msgid "Show (or not) the full rastnest." msgstr "Montrer(ou non) le chevelu complet" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:96 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:87 msgid "Show Mod Ratsnest" msgstr "Montrer le chevelu du module" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:98 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:89 msgid "" "Shows (or not) the local ratsnest relative to a footprint, when moving it.\n" "This ratsnest is useful to place a footprint." @@ -6451,64 +6407,64 @@ msgstr "" "Montre (ou non) le chevelu local relatif à un module, lorsque on le déplace.\n" "Ce chevelu est utile pour placer un module." -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:102 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:93 msgid "Tracks Auto Del" msgstr "Auto Supp. Pistes" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:104 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:95 msgid "Enable/disable the automatic track deletion when recreating a track." msgstr "Active/désactive l'effacement de piste automatique lorsque l'on recrée une piste." -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:108 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:99 msgid "Track only 45 degrees" msgstr "Piste à 45° seulement" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:110 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:101 msgid "If enabled, force tracks directions to H, V or 45 degrees, when creating a track." msgstr "Si activé, force la direction des pistes à H, V ou 45° en création de piste" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:114 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:105 msgid "Segments 45 Only" msgstr "Segments 45° seulement" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:116 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:107 msgid "If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers." msgstr "Si activé, force la direction des segments à H, V ou 45° en création de segments sur couches techniques" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:120 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:111 msgid "Auto PAN" msgstr "Auto PAN" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:122 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:113 msgid "Allows auto pan when creating a track, or moving an item." msgstr "Autorise l'autopan en création de piste, ou lorsque on déplace un élément." -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:126 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:117 msgid "Double Segm Track" msgstr "2 segments pour piste" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:128 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:119 msgid "If enabled, uses two track segments, with 45 degrees angle between them when creating a new track " msgstr "Si activé, utiliser 2 segments de piste, avec un angle de 45 degrés entre eux, pour créer une nouvelle piste" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:137 -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:145 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:128 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:136 msgid "When creating tracks" msgstr "En création de pistes" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:139 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:130 msgid "Magnetic Pads" msgstr " Pads magnétiques" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:141 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:132 msgid "control the capture of the pcb cursor when the mouse cursor enters a pad area" msgstr "Contrôle la capture du curseur pcb quand le curseur souris est sur un pad" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:147 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:138 msgid "Magnetic Tracks" msgstr "Pistes Magnétiques" -#: pcbnew/dialog_general_options_BoardEditor_base.cpp:149 +#: pcbnew/dialog_general_options_BoardEditor_base.cpp:140 msgid "Control the capture of the pcb cursor when the mouse cursor enters a track" msgstr "Contrôle la capture du curseur pcb quand le curseur souris passe sur une piste" @@ -6746,27 +6702,23 @@ msgstr "Vias sur masque" 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/dialog_plot_base.cpp:174 -msgid "Line width" -msgstr "Epaisseur ligne" - -#: pcbnew/dialog_plot_base.cpp:184 +#: pcbnew/dialog_plot_base.cpp:186 msgid "X scale adjust" msgstr "Ajustage Echelle X" -#: pcbnew/dialog_plot_base.cpp:193 +#: pcbnew/dialog_plot_base.cpp:195 msgid "Y scale adjust" msgstr "Ajustage Echelle Y" -#: pcbnew/dialog_plot_base.cpp:203 +#: pcbnew/dialog_plot_base.cpp:205 msgid "Plot" msgstr "Tracer" -#: pcbnew/dialog_plot_base.cpp:207 +#: pcbnew/dialog_plot_base.cpp:209 msgid "Save Options" msgstr "Sauver Options" -#: pcbnew/dialog_plot_base.cpp:210 +#: pcbnew/dialog_plot_base.cpp:212 msgid "Generate drill file" msgstr "Créer Fichier de perçage" @@ -6863,7 +6815,7 @@ msgstr "Mode d'affichage contraste normal" msgid "High contrast display mode" msgstr "Mode d'affichage haut contraste" -#: pcbnew/dialog_general_options.cpp:254 +#: pcbnew/dialog_general_options.cpp:225 msgid "Show &Layers Manager" msgstr "Affiche le &Gestionnaire de Couches" @@ -6945,6 +6897,54 @@ msgstr "Pistes sur Couches Cuivre seulement" msgid "Cotation not authorized on Copper layers" msgstr "Cotation non autorisée sur Couches Cuivre" +#: pcbnew/dialog_graphic_items_options_base.cpp:23 +msgid "Graphics:" +msgstr "Eléments graphiques;" + +#: pcbnew/dialog_graphic_items_options_base.cpp:25 +msgid "Graphic segm Width" +msgstr "Epaisseur segm graphique" + +#: pcbnew/dialog_graphic_items_options_base.cpp:32 +msgid "Board Edges Width" +msgstr "Epaiss. contour pcb" + +#: pcbnew/dialog_graphic_items_options_base.cpp:39 +msgid "Copper Text Width" +msgstr "Epaisseur Texte sur cuivre" + +#: pcbnew/dialog_graphic_items_options_base.cpp:46 +msgid "Text Size V" +msgstr "Hauteur texte" + +#: pcbnew/dialog_graphic_items_options_base.cpp:53 +msgid "Text Size H" +msgstr "Largeur texte" + +#: pcbnew/dialog_graphic_items_options_base.cpp:63 +msgid "Modules:" +msgstr "Modules: " + +#: pcbnew/dialog_graphic_items_options_base.cpp:65 +msgid "Edges Module Width" +msgstr "Epaiss. contour module" + +#: pcbnew/dialog_graphic_items_options_base.cpp:72 +msgid "Text Module Width" +msgstr "Epaisseur Texte Module" + +#: pcbnew/dialog_graphic_items_options_base.cpp:79 +msgid "Text Module Size V" +msgstr "Hauteur Texte Module" + +#: pcbnew/dialog_graphic_items_options_base.cpp:86 +msgid "Text Module Size H" +msgstr "Largeur Texte Module" + +#: pcbnew/dialog_graphic_items_options_base.cpp:96 +msgid "General:" +msgstr "Général :" + #: eeschema/plotps.cpp:165 msgid "Page Size A4" msgstr "Feuille A4" @@ -7243,27 +7243,27 @@ msgstr "Description" msgid "Key words" msgstr "Mots clé" -#: eeschema/schframe.cpp:358 +#: eeschema/schframe.cpp:359 msgid "Schematic modified, Save before exit ?" msgstr "Schématique modifiée, Sauver avant de quitter ?" -#: eeschema/schframe.cpp:514 +#: eeschema/schframe.cpp:515 msgid "Draw wires and buses in any direction" msgstr "Tracer les fils et bus avec direction quelconque" -#: eeschema/schframe.cpp:515 +#: eeschema/schframe.cpp:516 msgid "Draw horizontal and vertical wires and buses only" msgstr "Autoriser fils et bus verticaux et horizontaux seulement" -#: eeschema/schframe.cpp:525 +#: eeschema/schframe.cpp:526 msgid "Do not show hidden pins" msgstr "Ne pas affichager les pins invisibles" -#: eeschema/schframe.cpp:526 +#: eeschema/schframe.cpp:527 msgid "Show hidden pins" msgstr "Force affichage des pins invisibles" -#: eeschema/schframe.cpp:617 +#: eeschema/schframe.cpp:618 msgid "Schematic" msgstr "Schématique" @@ -7479,7 +7479,6 @@ msgid "key search criteria <" msgstr "critère de recherche par clé <" #: eeschema/database.cpp:65 -#: eeschema/selpart.cpp:78 msgid "Select Component" msgstr "Sélection Composant" @@ -10016,19 +10015,19 @@ msgstr "Imprimer en &noir et blanc seulement" msgid "Page Setup" msgstr "Options Page" -#: eeschema/dialog_print_using_printer.cpp:241 +#: eeschema/dialog_print_using_printer.cpp:243 msgid "Print Schematic" msgstr "Impression Schématique" -#: eeschema/dialog_print_using_printer.cpp:246 +#: eeschema/dialog_print_using_printer.cpp:248 msgid "An error occurred attempting to print the schematic." msgstr "Une erreur s'est produite lors de l'impression." -#: eeschema/dialog_print_using_printer.cpp:247 +#: eeschema/dialog_print_using_printer.cpp:249 msgid "Printing" msgstr "Impression" -#: eeschema/dialog_print_using_printer.cpp:260 +#: eeschema/dialog_print_using_printer.cpp:262 #, c-format msgid "Print page %d" msgstr "Imprimer page %d" @@ -10055,6 +10054,16 @@ msgstr "oui" msgid "arc only had %d parameters of the required 8" msgstr "l'arc a seulement %d paramètres sur les 8 requis" +#: eeschema/classes_body_items.cpp:535 +#: eeschema/classes_body_items.cpp:795 +#: eeschema/classes_body_items.cpp:1022 +#: eeschema/classes_body_items.cpp:1274 +#: eeschema/classes_body_items.cpp:1691 +#: eeschema/classes_body_items.cpp:2061 +#: eeschema/class_BodyItem_Text.cpp:330 +msgid "Line width" +msgstr "Epaisseur ligne" + #: eeschema/classes_body_items.cpp:540 #: eeschema/classes_body_items.cpp:804 #: eeschema/classes_body_items.cpp:1279 @@ -10459,9 +10468,6 @@ msgstr "Taille du te&xte:" #: eeschema/dialog_sch_sheet_props_base.cpp:42 #: eeschema/dialog_sch_sheet_props_base.cpp:63 -#: eeschema/dialog_lib_edit_pin_base.cpp:41 -#: eeschema/dialog_lib_edit_pin_base.cpp:64 -#: eeschema/dialog_lib_edit_pin_base.cpp:87 msgid "units" msgstr "unités" @@ -11177,7 +11183,7 @@ msgid "File <" msgstr "Fichier <" #: cvpcb/readschematicnetlist.cpp:115 -#: kicad/prjconfig.cpp:106 +#: kicad/prjconfig.cpp:108 msgid "> not found" msgstr "> non trouvé" @@ -11426,16 +11432,16 @@ msgstr "Créer un Nouveau Projet" msgid "Open Existing Project" msgstr "Ouvrir un Projet Existant" -#: kicad/prjconfig.cpp:105 +#: kicad/prjconfig.cpp:107 msgid "Kicad project file <" msgstr "Fichier projet Kicad <" -#: kicad/prjconfig.cpp:119 +#: kicad/prjconfig.cpp:121 #: kicad/kicad.cpp:74 msgid "Working dir: " msgstr "Répertoire de travail: " -#: kicad/prjconfig.cpp:120 +#: kicad/prjconfig.cpp:122 #: kicad/kicad.cpp:75 msgid "" "\n" @@ -11444,10 +11450,6 @@ msgstr "" "\n" "Projet: " -#: kicad/kicad.cpp:102 -msgid "noname" -msgstr "noname" - #: kicad/files-io.cpp:50 msgid "Unzip Project" msgstr "Décompresser Projet" @@ -11636,15 +11638,11 @@ msgstr "Créer un Nouveau Fichier" msgid "Create New Directory" msgstr "Créer un nouveau Répertoire" -#: kicad/tree_project_frame.cpp:521 -msgid "noname." -msgstr "noname." - -#: kicad/tree_project_frame.cpp:1055 +#: kicad/tree_project_frame.cpp:1057 msgid "Change filename: " msgstr "Changer Nom Fichier: " -#: kicad/tree_project_frame.cpp:1057 +#: kicad/tree_project_frame.cpp:1059 msgid "Change filename" msgstr "Changer Nom Fichier" @@ -12838,7 +12836,7 @@ msgstr "Propriétés du Pad" msgid "Footprint text properties" msgstr "Propriétés du texte du module" -#: pcbnew/dialog_general_options_BoardEditor_base.h:80 +#: pcbnew/dialog_general_options_BoardEditor_base.h:78 msgid "General settings" msgstr "Options Générales" @@ -13015,6 +13013,10 @@ msgstr "Options d'Affichage" msgid "Page Settings" msgstr "Ajustage opt Page" +#~ msgid "noname" +#~ msgstr "noname" +#~ msgid "noname." +#~ msgstr "noname." #~ msgid "Pen Width Mini" #~ msgstr "Epaiss Plume Mini" #~ msgid "no kicad files found in this directory" diff --git a/kicad/kicad.cpp b/kicad/kicad.cpp index 5e6fcf0467..446aca6cfb 100644 --- a/kicad/kicad.cpp +++ b/kicad/kicad.cpp @@ -99,7 +99,7 @@ bool WinEDA_App::OnInit() GetSettings(reopenLastUsedDirectory); /* Make nameless project translatable */ - wxFileName namelessProject( wxGetCwd(), _( "noname" ), ProjectFileExtension ); + wxFileName namelessProject( wxGetCwd(), NAMELESS_PROJECT, ProjectFileExtension ); frame = new WinEDA_MainFrame( NULL, wxT( "KiCad" ), wxPoint( 30, 20 ), wxSize( 600, 400 ) ); diff --git a/kicad/prjconfig.cpp b/kicad/prjconfig.cpp index a347a77b38..588b347b14 100644 --- a/kicad/prjconfig.cpp +++ b/kicad/prjconfig.cpp @@ -100,7 +100,9 @@ void WinEDA_MainFrame::OnLoadProject( wxCommandEvent& event ) /* Check if project file exists and if it is not noname.pro */ wxString filename = m_ProjectFileName.GetFullName(); - if( !m_ProjectFileName.FileExists() && !filename.IsSameAs(wxT("noname.pro"))) + wxString nameless_prj = NAMELESS_PROJECT; + nameless_prj += wxT(".pro"); + if( !m_ProjectFileName.FileExists() && !filename.IsSameAs(nameless_prj)) { DisplayError( this, _( "Kicad project file <" ) + m_ProjectFileName.GetFullPath() + _( "> not found" ) ); diff --git a/kicad/tree_project_frame.cpp b/kicad/tree_project_frame.cpp index 85b46bbc9d..c40c44cff3 100644 --- a/kicad/tree_project_frame.cpp +++ b/kicad/tree_project_frame.cpp @@ -518,7 +518,9 @@ void TREE_PROJECT_FRAME::NewFile( TreeFileType type ) dir = wxGetCwd() + wxFileName().GetPathSeparator() + treeData->GetDir(); // Ask for the new file name - wxFileDialog dlg( this, title, dir, _( "noname." ) + mask, + wxString nameless_prj = NAMELESS_PROJECT; + nameless_prj += wxT(".") + mask; + wxFileDialog dlg( this, title, dir, nameless_prj, wildcard, wxFD_SAVE | wxFD_OVERWRITE_PROMPT ); if( dlg.ShowModal() == wxID_CANCEL ) @@ -863,7 +865,7 @@ void TREE_PROJECT_FRAME::ReCreateTreePrj() { fn.Clear(); fn.SetPath( ::wxGetCwd() ); - fn.SetName( wxT( "noname" ) ); + fn.SetName( NAMELESS_PROJECT ); fn.SetExt( ProjectFileExtension ); } else diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index 66a8cc4ec8..ddc7329141 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -59,7 +59,8 @@ set(PCBNEW_SRCS dialog_global_edit_tracks_and_vias.cpp dialog_global_edit_tracks_and_vias_base.cpp dialog_global_pads_edition_base.cpp -# dialog_graphic_items_options.cpp + dialog_graphic_items_options.cpp + dialog_graphic_items_options_base.cpp dialog_graphic_item_properties.cpp dialog_graphic_item_properties_base.cpp # dialog_initpcb.cpp diff --git a/pcbnew/dialog_SVG_print.cpp b/pcbnew/dialog_SVG_print.cpp index f268b554ea..07b48dda29 100644 --- a/pcbnew/dialog_SVG_print.cpp +++ b/pcbnew/dialog_SVG_print.cpp @@ -27,6 +27,8 @@ #define WIDTH_MAX_VALUE 500 #define WIDTH_MIN_VALUE 1 +extern int g_DrawDefaultLineThickness; + // Local variables: static PRINT_PARAMETERS s_Parameters; static long s_SelectedLayers = LAYER_BACK | LAYER_FRONT | @@ -88,10 +90,10 @@ void DIALOG_SVG_PRINT::OnInitDialog( wxInitDialogEvent& event ) m_ImageXSize_mm = 270; if( m_Config ) { - m_Config->Read( OPTKEY_PLOT_LINEWIDTH_VALUE, &s_Parameters.m_PenDefaultSize ); m_Config->Read( PLOTSVGMODECOLOR_KEY, &s_Parameters.m_Print_Black_and_White ); } + s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; AddUnitSymbol( *m_TextPenWidth, g_UnitMetric ); m_DialogPenWidth->SetValue( ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, @@ -159,6 +161,7 @@ void DIALOG_SVG_PRINT::SetPenWidth() s_Parameters.m_PenDefaultSize = WIDTH_MIN_VALUE; } + g_DrawDefaultLineThickness = s_Parameters.m_PenDefaultSize; m_DialogPenWidth->SetValue( ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, m_Parent->m_InternalUnits ) ); @@ -303,7 +306,6 @@ void DIALOG_SVG_PRINT::OnCloseWindow( wxCloseEvent& event ) s_Parameters.m_Print_Black_and_White = m_ModeColorOption->GetSelection(); if( m_Config ) { - m_Config->Write( OPTKEY_PLOT_LINEWIDTH_VALUE, s_Parameters.m_PenDefaultSize ); m_Config->Write( PLOTSVGMODECOLOR_KEY, s_Parameters.m_Print_Black_and_White ); wxString layerKey; for( int layer = 0; layerSetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bMainSizer; - bMainSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bLeftSizer; - bLeftSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_PolarDisplayChoices[] = { _("No Display"), _("Display") }; - int m_PolarDisplayNChoices = sizeof( m_PolarDisplayChoices ) / sizeof( wxString ); - m_PolarDisplay = new wxRadioBox( this, wxID_POLAR_CTRL, _("Display Polar Coord"), wxDefaultPosition, wxDefaultSize, m_PolarDisplayNChoices, m_PolarDisplayChoices, 1, wxRA_SPECIFY_COLS ); - m_PolarDisplay->SetSelection( 1 ); - m_PolarDisplay->SetToolTip( _("Activates the display of relative coordinates from relative origin (set by the space key)\nto the cursor, in polar coordinates (angle and distance)") ); - - bLeftSizer->Add( m_PolarDisplay, 0, wxALL|wxEXPAND, 5 ); - - wxString m_UnitsSelectionChoices[] = { _("Inches"), _("Millimeters") }; - int m_UnitsSelectionNChoices = sizeof( m_UnitsSelectionChoices ) / sizeof( wxString ); - m_UnitsSelection = new wxRadioBox( this, wxID_UNITS, _("Units"), wxDefaultPosition, wxDefaultSize, m_UnitsSelectionNChoices, m_UnitsSelectionChoices, 1, wxRA_SPECIFY_COLS ); - m_UnitsSelection->SetSelection( 1 ); - m_UnitsSelection->SetToolTip( _("Selection of units used to display dimensions and positions of items") ); - - bLeftSizer->Add( m_UnitsSelection, 0, wxALL|wxEXPAND, 5 ); - - wxString m_CursorShapeChoices[] = { _("Small cross"), _("Full screen cursor") }; - int m_CursorShapeNChoices = sizeof( m_CursorShapeChoices ) / sizeof( wxString ); - m_CursorShape = new wxRadioBox( this, wxID_CURSOR_SHAPE, _("Cursor"), wxDefaultPosition, wxDefaultSize, m_CursorShapeNChoices, m_CursorShapeChoices, 1, wxRA_SPECIFY_COLS ); - m_CursorShape->SetSelection( 0 ); - m_CursorShape->SetToolTip( _("Main cursor shape selection (small cross or large cursor)") ); - - bLeftSizer->Add( m_CursorShape, 0, wxALL|wxEXPAND, 5 ); - - bMainSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); - - wxBoxSizer* bMiddleLeftSizer; - bMiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); - -/* - wxString m_LayerNumberChoices[] = { _("1"), _("2"), _("4"), _("6"), _("8"), _("10"), _("12"), _("14"), _("16") }; - int m_LayerNumberNChoices = sizeof( m_LayerNumberChoices ) / sizeof( wxString ); - m_LayerNumber = new wxRadioBox( this, wxID_LAYER_NUMBER, _("Layers:"), wxDefaultPosition, wxDefaultSize, m_LayerNumberNChoices, m_LayerNumberChoices, 3, wxRA_SPECIFY_COLS ); - m_LayerNumber->SetSelection( 1 ); - m_LayerNumber->SetToolTip( _("Active copper layers count selection") ); - - bMiddleLeftSizer->Add( m_LayerNumber, 0, wxALL|wxEXPAND, 5 ); -*/ - m_staticTextmaxlinks = new wxStaticText( this, wxID_ANY, _("Max Links:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextmaxlinks->Wrap( -1 ); - bMiddleLeftSizer->Add( m_staticTextmaxlinks, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_MaxShowLinks = new wxSpinCtrl( this, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 5, 1 ); - m_MaxShowLinks->SetToolTip( _("Adjust the number of ratsnets shown from cursor to closest pads") ); - - bMiddleLeftSizer->Add( m_MaxShowLinks, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_staticTextautosave = new wxStaticText( this, wxID_ANY, _("Auto Save (minutes):"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextautosave->Wrap( -1 ); - bMiddleLeftSizer->Add( m_staticTextautosave, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - m_SaveTime = new wxSpinCtrl( this, wxID_ANY, wxT("0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 60, 0 ); - m_SaveTime->SetToolTip( _("Delay after the first change to create a backup file of the board on disk.") ); - - bMiddleLeftSizer->Add( m_SaveTime, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - bMainSizer->Add( bMiddleLeftSizer, 1, wxEXPAND, 5 ); - - wxStaticBoxSizer* bMiddleRightBoxSizer; - bMiddleRightBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); - - m_DrcOn = new wxCheckBox( this, wxID_DRC_ONOFF, _("Drc ON"), wxDefaultPosition, wxDefaultSize, 0 ); - m_DrcOn->SetValue(true); - - m_DrcOn->SetToolTip( _("Enable/disable the DRC control.\nWhen DRC is disable, all connections are allowed.") ); - - bMiddleRightBoxSizer->Add( m_DrcOn, 0, wxALL|wxEXPAND, 5 ); - - m_ShowGlobalRatsnest = new wxCheckBox( this, wxID_GENERAL_RATSNEST, _("Show Ratsnest"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_ShowGlobalRatsnest->SetToolTip( _("Show (or not) the full rastnest.") ); - - bMiddleRightBoxSizer->Add( m_ShowGlobalRatsnest, 0, wxALL, 5 ); - - m_ShowModuleRatsnest = new wxCheckBox( this, wxID_RATSNEST_MODULE, _("Show Mod Ratsnest"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_ShowModuleRatsnest->SetToolTip( _("Shows (or not) the local ratsnest relative to a footprint, when moving it.\nThis ratsnest is useful to place a footprint.") ); - - bMiddleRightBoxSizer->Add( m_ShowModuleRatsnest, 0, wxALL, 5 ); - - m_TrackAutodel = new wxCheckBox( this, wxID_TRACK_AUTODEL, _("Tracks Auto Del"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_TrackAutodel->SetToolTip( _("Enable/disable the automatic track deletion when recreating a track.") ); - - bMiddleRightBoxSizer->Add( m_TrackAutodel, 0, wxALL, 5 ); - - m_Track_45_Only_Ctrl = new wxCheckBox( this, wxID_TRACKS45, _("Track only 45 degrees"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_Track_45_Only_Ctrl->SetToolTip( _("If enabled, force tracks directions to H, V or 45 degrees, when creating a track.") ); - - bMiddleRightBoxSizer->Add( m_Track_45_Only_Ctrl, 0, wxALL, 5 ); - - m_Segments_45_Only_Ctrl = new wxCheckBox( this, wxID_SEGMENTS45, _("Segments 45 Only"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_Segments_45_Only_Ctrl->SetToolTip( _("If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers.") ); - - bMiddleRightBoxSizer->Add( m_Segments_45_Only_Ctrl, 0, wxALL, 5 ); - - m_AutoPANOpt = new wxCheckBox( this, wxID_AUTOPAN, _("Auto PAN"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_AutoPANOpt->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); - - bMiddleRightBoxSizer->Add( m_AutoPANOpt, 0, wxALL, 5 ); - - m_Track_DoubleSegm_Ctrl = new wxCheckBox( this, wxID_ANY, _("Double Segm Track"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_Track_DoubleSegm_Ctrl->SetToolTip( _("If enabled, uses two track segments, with 45 degrees angle between them when creating a new track ") ); - - bMiddleRightBoxSizer->Add( m_Track_DoubleSegm_Ctrl, 0, wxALL, 5 ); - - bMainSizer->Add( bMiddleRightBoxSizer, 1, 0, 5 ); - - wxBoxSizer* bRightSizer; - bRightSizer = new wxBoxSizer( wxVERTICAL ); - - wxString m_MagneticPadOptCtrlChoices[] = { _("Never"), _("When creating tracks"), _("Always") }; - int m_MagneticPadOptCtrlNChoices = sizeof( m_MagneticPadOptCtrlChoices ) / sizeof( wxString ); - m_MagneticPadOptCtrl = new wxRadioBox( this, wxID_ANY, _("Magnetic Pads"), wxDefaultPosition, wxDefaultSize, m_MagneticPadOptCtrlNChoices, m_MagneticPadOptCtrlChoices, 1, wxRA_SPECIFY_COLS ); - m_MagneticPadOptCtrl->SetSelection( 0 ); - m_MagneticPadOptCtrl->SetToolTip( _("control the capture of the pcb cursor when the mouse cursor enters a pad area") ); - - bRightSizer->Add( m_MagneticPadOptCtrl, 0, wxALL|wxEXPAND, 5 ); - - wxString m_MagneticTrackOptCtrlChoices[] = { _("Never"), _("When creating tracks"), _("Always") }; - int m_MagneticTrackOptCtrlNChoices = sizeof( m_MagneticTrackOptCtrlChoices ) / sizeof( wxString ); - m_MagneticTrackOptCtrl = new wxRadioBox( this, wxID_MAGNETIC_TRACKS, _("Magnetic Tracks"), wxDefaultPosition, wxDefaultSize, m_MagneticTrackOptCtrlNChoices, m_MagneticTrackOptCtrlChoices, 1, wxRA_SPECIFY_COLS ); - m_MagneticTrackOptCtrl->SetSelection( 0 ); - m_MagneticTrackOptCtrl->SetToolTip( _("Control the capture of the pcb cursor when the mouse cursor enters a track") ); - - bRightSizer->Add( m_MagneticTrackOptCtrl, 0, wxALL|wxEXPAND, 5 ); - - m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - m_buttonOK->SetDefault(); - bRightSizer->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); - - m_buttonCANCEL = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - bRightSizer->Add( m_buttonCANCEL, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); - - bMainSizer->Add( bRightSizer, 1, wxEXPAND, 5 ); - - this->SetSizer( bMainSizer ); - this->Layout(); - - // Connect Events - m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); - m_buttonCANCEL->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bMainSizer; + bMainSizer = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bLeftSizer; + bLeftSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_PolarDisplayChoices[] = { _("No Display"), _("Display") }; + int m_PolarDisplayNChoices = sizeof( m_PolarDisplayChoices ) / sizeof( wxString ); + m_PolarDisplay = new wxRadioBox( this, wxID_POLAR_CTRL, _("Display Polar Coord"), wxDefaultPosition, wxDefaultSize, m_PolarDisplayNChoices, m_PolarDisplayChoices, 1, wxRA_SPECIFY_COLS ); + m_PolarDisplay->SetSelection( 1 ); + m_PolarDisplay->SetToolTip( _("Activates the display of relative coordinates from relative origin (set by the space key)\nto the cursor, in polar coordinates (angle and distance)") ); + + bLeftSizer->Add( m_PolarDisplay, 0, wxALL|wxEXPAND, 5 ); + + wxString m_UnitsSelectionChoices[] = { _("Inches"), _("Millimeters") }; + int m_UnitsSelectionNChoices = sizeof( m_UnitsSelectionChoices ) / sizeof( wxString ); + m_UnitsSelection = new wxRadioBox( this, wxID_UNITS, _("Units"), wxDefaultPosition, wxDefaultSize, m_UnitsSelectionNChoices, m_UnitsSelectionChoices, 1, wxRA_SPECIFY_COLS ); + m_UnitsSelection->SetSelection( 1 ); + m_UnitsSelection->SetToolTip( _("Selection of units used to display dimensions and positions of items") ); + + bLeftSizer->Add( m_UnitsSelection, 0, wxALL|wxEXPAND, 5 ); + + wxString m_CursorShapeChoices[] = { _("Small cross"), _("Full screen cursor") }; + int m_CursorShapeNChoices = sizeof( m_CursorShapeChoices ) / sizeof( wxString ); + m_CursorShape = new wxRadioBox( this, wxID_CURSOR_SHAPE, _("Cursor"), wxDefaultPosition, wxDefaultSize, m_CursorShapeNChoices, m_CursorShapeChoices, 1, wxRA_SPECIFY_COLS ); + m_CursorShape->SetSelection( 0 ); + m_CursorShape->SetToolTip( _("Main cursor shape selection (small cross or large cursor)") ); + + bLeftSizer->Add( m_CursorShape, 0, wxALL|wxEXPAND, 5 ); + + bMainSizer->Add( bLeftSizer, 1, wxEXPAND, 5 ); + + wxBoxSizer* bMiddleLeftSizer; + bMiddleLeftSizer = new wxBoxSizer( wxVERTICAL ); + + m_staticTextmaxlinks = new wxStaticText( this, wxID_ANY, _("Max Links:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextmaxlinks->Wrap( -1 ); + bMiddleLeftSizer->Add( m_staticTextmaxlinks, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_MaxShowLinks = new wxSpinCtrl( this, wxID_ANY, wxT("1"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 1, 5, 1 ); + m_MaxShowLinks->SetToolTip( _("Adjust the number of ratsnets shown from cursor to closest pads") ); + + bMiddleLeftSizer->Add( m_MaxShowLinks, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_staticTextautosave = new wxStaticText( this, wxID_ANY, _("Auto Save (minutes):"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextautosave->Wrap( -1 ); + bMiddleLeftSizer->Add( m_staticTextautosave, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_SaveTime = new wxSpinCtrl( this, wxID_ANY, wxT("0"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 60, 0 ); + m_SaveTime->SetToolTip( _("Delay after the first change to create a backup file of the board on disk.") ); + + bMiddleLeftSizer->Add( m_SaveTime, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + bMainSizer->Add( bMiddleLeftSizer, 1, wxEXPAND, 5 ); + + wxStaticBoxSizer* bMiddleRightBoxSizer; + bMiddleRightBoxSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); + + m_DrcOn = new wxCheckBox( this, wxID_DRC_ONOFF, _("Drc ON"), wxDefaultPosition, wxDefaultSize, 0 ); + m_DrcOn->SetValue(true); + + m_DrcOn->SetToolTip( _("Enable/disable the DRC control.\nWhen DRC is disable, all connections are allowed.") ); + + bMiddleRightBoxSizer->Add( m_DrcOn, 0, wxALL|wxEXPAND, 5 ); + + m_ShowGlobalRatsnest = new wxCheckBox( this, wxID_GENERAL_RATSNEST, _("Show Ratsnest"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_ShowGlobalRatsnest->SetToolTip( _("Show (or not) the full rastnest.") ); + + bMiddleRightBoxSizer->Add( m_ShowGlobalRatsnest, 0, wxALL, 5 ); + + m_ShowModuleRatsnest = new wxCheckBox( this, wxID_RATSNEST_MODULE, _("Show Mod Ratsnest"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_ShowModuleRatsnest->SetToolTip( _("Shows (or not) the local ratsnest relative to a footprint, when moving it.\nThis ratsnest is useful to place a footprint.") ); + + bMiddleRightBoxSizer->Add( m_ShowModuleRatsnest, 0, wxALL, 5 ); + + m_TrackAutodel = new wxCheckBox( this, wxID_TRACK_AUTODEL, _("Tracks Auto Del"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_TrackAutodel->SetToolTip( _("Enable/disable the automatic track deletion when recreating a track.") ); + + bMiddleRightBoxSizer->Add( m_TrackAutodel, 0, wxALL, 5 ); + + m_Track_45_Only_Ctrl = new wxCheckBox( this, wxID_TRACKS45, _("Track only 45 degrees"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_Track_45_Only_Ctrl->SetToolTip( _("If enabled, force tracks directions to H, V or 45 degrees, when creating a track.") ); + + bMiddleRightBoxSizer->Add( m_Track_45_Only_Ctrl, 0, wxALL, 5 ); + + m_Segments_45_Only_Ctrl = new wxCheckBox( this, wxID_SEGMENTS45, _("Segments 45 Only"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_Segments_45_Only_Ctrl->SetToolTip( _("If enabled, force segments directions to H, V or 45 degrees, when creating a segment on technical layers.") ); + + bMiddleRightBoxSizer->Add( m_Segments_45_Only_Ctrl, 0, wxALL, 5 ); + + m_AutoPANOpt = new wxCheckBox( this, wxID_AUTOPAN, _("Auto PAN"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_AutoPANOpt->SetToolTip( _("Allows auto pan when creating a track, or moving an item.") ); + + bMiddleRightBoxSizer->Add( m_AutoPANOpt, 0, wxALL, 5 ); + + m_Track_DoubleSegm_Ctrl = new wxCheckBox( this, wxID_ANY, _("Double Segm Track"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_Track_DoubleSegm_Ctrl->SetToolTip( _("If enabled, uses two track segments, with 45 degrees angle between them when creating a new track ") ); + + bMiddleRightBoxSizer->Add( m_Track_DoubleSegm_Ctrl, 0, wxALL, 5 ); + + bMainSizer->Add( bMiddleRightBoxSizer, 1, 0, 5 ); + + wxBoxSizer* bRightSizer; + bRightSizer = new wxBoxSizer( wxVERTICAL ); + + wxString m_MagneticPadOptCtrlChoices[] = { _("Never"), _("When creating tracks"), _("Always") }; + int m_MagneticPadOptCtrlNChoices = sizeof( m_MagneticPadOptCtrlChoices ) / sizeof( wxString ); + m_MagneticPadOptCtrl = new wxRadioBox( this, wxID_ANY, _("Magnetic Pads"), wxDefaultPosition, wxDefaultSize, m_MagneticPadOptCtrlNChoices, m_MagneticPadOptCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_MagneticPadOptCtrl->SetSelection( 0 ); + m_MagneticPadOptCtrl->SetToolTip( _("control the capture of the pcb cursor when the mouse cursor enters a pad area") ); + + bRightSizer->Add( m_MagneticPadOptCtrl, 0, wxALL|wxEXPAND, 5 ); + + wxString m_MagneticTrackOptCtrlChoices[] = { _("Never"), _("When creating tracks"), _("Always") }; + int m_MagneticTrackOptCtrlNChoices = sizeof( m_MagneticTrackOptCtrlChoices ) / sizeof( wxString ); + m_MagneticTrackOptCtrl = new wxRadioBox( this, wxID_MAGNETIC_TRACKS, _("Magnetic Tracks"), wxDefaultPosition, wxDefaultSize, m_MagneticTrackOptCtrlNChoices, m_MagneticTrackOptCtrlChoices, 1, wxRA_SPECIFY_COLS ); + m_MagneticTrackOptCtrl->SetSelection( 0 ); + m_MagneticTrackOptCtrl->SetToolTip( _("Control the capture of the pcb cursor when the mouse cursor enters a track") ); + + bRightSizer->Add( m_MagneticTrackOptCtrl, 0, wxALL|wxEXPAND, 5 ); + + m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonOK->SetDefault(); + bRightSizer->Add( m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, 5 ); + + m_buttonCANCEL = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + bRightSizer->Add( m_buttonCANCEL, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5 ); + + bMainSizer->Add( bRightSizer, 1, wxEXPAND, 5 ); + + this->SetSizer( bMainSizer ); + this->Layout(); + + // Connect Events + m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); + m_buttonCANCEL->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); } DialogGeneralOptionsBoardEditor_base::~DialogGeneralOptionsBoardEditor_base() { - // Disconnect Events - m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); - m_buttonCANCEL->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); + // Disconnect Events + m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnOkClick ), NULL, this ); + m_buttonCANCEL->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DialogGeneralOptionsBoardEditor_base::OnCancelClick ), NULL, this ); } diff --git a/pcbnew/dialog_general_options_BoardEditor_base.fbp b/pcbnew/dialog_general_options_BoardEditor_base.fbp index f521572d8a..cbae000860 100644 --- a/pcbnew/dialog_general_options_BoardEditor_base.fbp +++ b/pcbnew/dialog_general_options_BoardEditor_base.fbp @@ -257,60 +257,6 @@ bMiddleLeftSizer wxVERTICAL none - - 5 - wxALL|wxEXPAND - 0 - - - "1" "2" "4" "6" "8" "10" "12" "14" "16" - - 1 - - - 0 - wxID_LAYER_NUMBER - Layers: - 3 - - - m_LayerNumber - protected - - 1 - - wxRA_SPECIFY_COLS - - Active copper layers count selection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxTOP|wxRIGHT|wxLEFT diff --git a/pcbnew/dialog_general_options_BoardEditor_base.h b/pcbnew/dialog_general_options_BoardEditor_base.h index acfd5a2a0a..f1988c92cf 100644 --- a/pcbnew/dialog_general_options_BoardEditor_base.h +++ b/pcbnew/dialog_general_options_BoardEditor_base.h @@ -31,55 +31,53 @@ /////////////////////////////////////////////////////////////////////////////// class DialogGeneralOptionsBoardEditor_base : public wxDialog { - private: - - protected: - enum - { - wxID_POLAR_CTRL = 1000, - wxID_UNITS, - wxID_CURSOR_SHAPE, -// wxID_LAYER_NUMBER, - wxID_DRC_ONOFF, - wxID_GENERAL_RATSNEST, - wxID_RATSNEST_MODULE, - wxID_TRACK_AUTODEL, - wxID_TRACKS45, - wxID_SEGMENTS45, - wxID_AUTOPAN, - wxID_MAGNETIC_TRACKS, - }; - - wxRadioBox* m_PolarDisplay; - wxRadioBox* m_UnitsSelection; - wxRadioBox* m_CursorShape; - //wxRadioBox* m_LayerNumber; - wxStaticText* m_staticTextmaxlinks; - wxSpinCtrl* m_MaxShowLinks; - wxStaticText* m_staticTextautosave; - wxSpinCtrl* m_SaveTime; - wxCheckBox* m_DrcOn; - wxCheckBox* m_ShowGlobalRatsnest; - wxCheckBox* m_ShowModuleRatsnest; - wxCheckBox* m_TrackAutodel; - wxCheckBox* m_Track_45_Only_Ctrl; - wxCheckBox* m_Segments_45_Only_Ctrl; - wxCheckBox* m_AutoPANOpt; - wxCheckBox* m_Track_DoubleSegm_Ctrl; - wxRadioBox* m_MagneticPadOptCtrl; - wxRadioBox* m_MagneticTrackOptCtrl; - wxButton* m_buttonOK; - wxButton* m_buttonCANCEL; - - // Virtual event handlers, overide them in your derived class - virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } - virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } - - - public: - DialogGeneralOptionsBoardEditor_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("General settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 585,280 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DialogGeneralOptionsBoardEditor_base(); - + private: + + protected: + enum + { + wxID_POLAR_CTRL = 1000, + wxID_UNITS, + wxID_CURSOR_SHAPE, + wxID_DRC_ONOFF, + wxID_GENERAL_RATSNEST, + wxID_RATSNEST_MODULE, + wxID_TRACK_AUTODEL, + wxID_TRACKS45, + wxID_SEGMENTS45, + wxID_AUTOPAN, + wxID_MAGNETIC_TRACKS, + }; + + wxRadioBox* m_PolarDisplay; + wxRadioBox* m_UnitsSelection; + wxRadioBox* m_CursorShape; + wxStaticText* m_staticTextmaxlinks; + wxSpinCtrl* m_MaxShowLinks; + wxStaticText* m_staticTextautosave; + wxSpinCtrl* m_SaveTime; + wxCheckBox* m_DrcOn; + wxCheckBox* m_ShowGlobalRatsnest; + wxCheckBox* m_ShowModuleRatsnest; + wxCheckBox* m_TrackAutodel; + wxCheckBox* m_Track_45_Only_Ctrl; + wxCheckBox* m_Segments_45_Only_Ctrl; + wxCheckBox* m_AutoPANOpt; + wxCheckBox* m_Track_DoubleSegm_Ctrl; + wxRadioBox* m_MagneticPadOptCtrl; + wxRadioBox* m_MagneticTrackOptCtrl; + wxButton* m_buttonOK; + wxButton* m_buttonCANCEL; + + // Virtual event handlers, overide them in your derived class + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + DialogGeneralOptionsBoardEditor_base( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("General settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 585,280 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DialogGeneralOptionsBoardEditor_base(); + }; #endif //__dialog_general_options_BoardEditor_base__ diff --git a/pcbnew/dialog_graphic_items_options.cpp b/pcbnew/dialog_graphic_items_options.cpp index 043ed5d015..76c145fa65 100644 --- a/pcbnew/dialog_graphic_items_options.cpp +++ b/pcbnew/dialog_graphic_items_options.cpp @@ -4,23 +4,65 @@ #include "fctsys.h" -#include "gr_basic.h" #include "common.h" #include "pcbnew.h" -#include "pcbplot.h" -#include "autorout.h" +#include "wxPcbStruct.h" #include "pcbnew_id.h" -#include "protos.h" - #include "dialog_graphic_items_options.h" -#include +extern int g_DrawDefaultLineThickness; -void WinEDA_GraphicItemsOptionsDialog::SetDisplayValue() +void WinEDA_PcbFrame::InstallPcbOptionsFrame( int id ) +{ + switch( id ) + { + case ID_PCB_DRAWINGS_WIDTHS_SETUP: + { + DIALOG_GRAPHIC_ITEMS_OPTIONS dlg( this ); + dlg.ShowModal(); + } + break; + + default: + wxMessageBox( wxT( "InstallPcbOptionsFrame() id error" ) ); + break; + } +} + + +void WinEDA_ModuleEditFrame::InstallOptionsFrame( const wxPoint& pos ) +{ + DIALOG_GRAPHIC_ITEMS_OPTIONS dlg( this ); + dlg.ShowModal(); +} + + +/* + * DIALOG_GRAPHIC_ITEMS_OPTIONS constructor + */ + +DIALOG_GRAPHIC_ITEMS_OPTIONS::DIALOG_GRAPHIC_ITEMS_OPTIONS( WinEDA_BasePcbFrame* parent ) + : DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE( parent ) +{ + m_Parent = parent; + m_BrdSettings = m_Parent->GetBoard()->GetBoardDesignSettings(); + initValues( ); + + GetSizer()->SetSizeHints( this ); + + Centre(); +} + +DIALOG_GRAPHIC_ITEMS_OPTIONS::~DIALOG_GRAPHIC_ITEMS_OPTIONS( ) +{ +} + + +void DIALOG_GRAPHIC_ITEMS_OPTIONS::initValues() { /* Drawings width */ AddUnitSymbol( *m_GraphicSegmWidthTitle ); @@ -64,10 +106,14 @@ void WinEDA_GraphicItemsOptionsDialog::SetDisplayValue() AddUnitSymbol( *m_TextModSizeHTitle ); PutValueInLocalUnits( *m_OptModuleTextHSize, ModuleTextSize.x, PCB_INTERNAL_UNIT ); + + AddUnitSymbol( *m_DefaultPenSizeTitle ); + PutValueInLocalUnits( *m_DefaultPenSizeCtrl, + g_DrawDefaultLineThickness, PCB_INTERNAL_UNIT ); } -void WinEDA_GraphicItemsOptionsDialog::AcceptOptions( wxCommandEvent& event ) +void DIALOG_GRAPHIC_ITEMS_OPTIONS::OnOkClick( wxCommandEvent& event ) { m_BrdSettings->m_DrawSegmentWidth = ReturnValueFromTextCtrl( *m_OptPcbSegmWidth, PCB_INTERNAL_UNIT ); @@ -88,372 +134,23 @@ void WinEDA_GraphicItemsOptionsDialog::AcceptOptions( wxCommandEvent& event ) ReturnValueFromTextCtrl( *m_OptModuleTextVSize, PCB_INTERNAL_UNIT ); ModuleTextSize.x = ReturnValueFromTextCtrl( *m_OptModuleTextHSize, PCB_INTERNAL_UNIT ); + + g_DrawDefaultLineThickness = + ReturnValueFromTextCtrl( *m_DefaultPenSizeCtrl, PCB_INTERNAL_UNIT ); + + if( g_DrawDefaultLineThickness < 0 ) + g_DrawDefaultLineThickness = 0; EndModal( 1 ); } -/*! - * WinEDA_GraphicItemsOptionsDialog event table definition - */ - -BEGIN_EVENT_TABLE( WinEDA_GraphicItemsOptionsDialog, wxDialog ) - -////@begin WinEDA_GraphicItemsOptionsDialog event table entries -EVT_BUTTON( wxID_OK, WinEDA_GraphicItemsOptionsDialog::OnOkClick ) - -EVT_BUTTON( wxID_CANCEL, WinEDA_GraphicItemsOptionsDialog::OnCancelClick ) - -////@end WinEDA_GraphicItemsOptionsDialog event table entries - -END_EVENT_TABLE() -/*! - * WinEDA_GraphicItemsOptionsDialog constructor - */ - -WinEDA_GraphicItemsOptionsDialog::WinEDA_GraphicItemsOptionsDialog( - WinEDA_BasePcbFrame* parent, - wxWindowID id, - const wxString& caption, - const wxPoint& pos, - const wxSize& size, - long style ) -{ - m_Parent = parent; - m_BrdSettings = m_Parent->GetBoard()->GetBoardDesignSettings(); - Create( parent, id, caption, pos, size, style ); -} - - -/*! - * WinEDA_GraphicItemsOptionsDialog creator - */ - -bool WinEDA_GraphicItemsOptionsDialog::Create( wxWindow* parent, - wxWindowID id, - const wxString& caption, - const wxPoint& pos, - const wxSize& size, - long style ) -{ -////@begin WinEDA_GraphicItemsOptionsDialog member initialisation - m_GraphicSegmWidthTitle = NULL; - m_OptPcbSegmWidth = NULL; - m_BoardEdgesWidthTitle = NULL; - m_OptPcbEdgesWidth = NULL; - m_CopperTextWidthTitle = NULL; - m_OptPcbTextWidth = NULL; - m_TextSizeVTitle = NULL; - m_OptPcbTextVSize = NULL; - m_TextSizeHTitle = NULL; - m_OptPcbTextHSize = NULL; - m_EdgeModWidthTitle = NULL; - m_OptModuleEdgesWidth = NULL; - m_TextModWidthTitle = NULL; - m_OptModuleTextWidth = NULL; - m_TextModSizeVTitle = NULL; - m_OptModuleTextVSize = NULL; - m_TextModSizeHTitle = NULL; - m_OptModuleTextHSize = NULL; - -////@end WinEDA_GraphicItemsOptionsDialog member initialisation - -////@begin WinEDA_GraphicItemsOptionsDialog creation - SetExtraStyle( wxWS_EX_BLOCK_EVENTS ); - wxDialog::Create( parent, id, caption, pos, size, style ); - - CreateControls(); - if( GetSizer() ) - { - GetSizer()->SetSizeHints( this ); - } - Centre(); - -////@end WinEDA_GraphicItemsOptionsDialog creation - return true; -} - - -/*! - * Control creation for WinEDA_GraphicItemsOptionsDialog - */ - -void WinEDA_GraphicItemsOptionsDialog::CreateControls() -{ -////@begin WinEDA_GraphicItemsOptionsDialog content construction - // Generated by DialogBlocks, 29/04/2009 15:15:02 (unregistered) - - WinEDA_GraphicItemsOptionsDialog* itemDialog1 = this; - - wxBoxSizer* itemBoxSizer2 = new wxBoxSizer( wxHORIZONTAL ); - - itemDialog1->SetSizer( itemBoxSizer2 ); - - wxStaticBox* itemStaticBoxSizer3Static = - new wxStaticBox(itemDialog1, wxID_ANY, _( "Graphics:" ) ); - wxStaticBoxSizer* itemStaticBoxSizer3 = - new wxStaticBoxSizer( itemStaticBoxSizer3Static, wxVERTICAL ); - itemBoxSizer2->Add( itemStaticBoxSizer3, 0, wxGROW | wxALL, 5 ); - - m_GraphicSegmWidthTitle = - new wxStaticText( itemDialog1, wxID_STATIC, _( "Graphic segm Width" ), - wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_GraphicSegmWidthTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptPcbSegmWidth = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_SEGW, - _T( "" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_OptPcbSegmWidth, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_BoardEdgesWidthTitle = - new wxStaticText( itemDialog1, wxID_STATIC, _( "Board Edges Width" ), - wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_BoardEdgesWidthTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptPcbEdgesWidth = - new wxTextCtrl( itemDialog1, ID_TEXTCTRL_EDGES, _T( "" ), - wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_OptPcbEdgesWidth, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_CopperTextWidthTitle = - new wxStaticText( itemDialog1, wxID_STATIC, _( "Copper Text Width" ), - wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_CopperTextWidthTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptPcbTextWidth = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_TEXTW, - _T( "" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_OptPcbTextWidth, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_TextSizeVTitle = new wxStaticText( itemDialog1, wxID_STATIC, - _( "Text Size V" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_TextSizeVTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptPcbTextVSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_TEXTV, - _T( "" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_OptPcbTextVSize, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_TextSizeHTitle = new wxStaticText( itemDialog1, wxID_STATIC, - _( "Text Size H" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_TextSizeHTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptPcbTextHSize = new wxTextCtrl( itemDialog1, ID_TEXTCTRL_TEXTH, - _T( "" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer3->Add( m_OptPcbTextHSize, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - itemBoxSizer2->Add( 5, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); - - wxStaticBox* itemStaticBoxSizer15Static = - new wxStaticBox( itemDialog1, wxID_ANY, _( "Modules:" ) ); - wxStaticBoxSizer* itemStaticBoxSizer15 = - new wxStaticBoxSizer( itemStaticBoxSizer15Static, wxVERTICAL ); - itemBoxSizer2->Add( itemStaticBoxSizer15, 0, wxGROW | wxALL, 5 ); - - m_EdgeModWidthTitle = - new wxStaticText( itemDialog1, wxID_STATIC, _( "Edges Module Width" ), - wxDefaultPosition, wxDefaultSize, 0 ); - itemStaticBoxSizer15->Add( m_EdgeModWidthTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptModuleEdgesWidth = new wxTextCtrl( itemDialog1, - ID_TEXTCTRL_EDGEMOD_W, - _T( "" ), - wxDefaultPosition, - wxDefaultSize, - 0 ); - itemStaticBoxSizer15->Add( m_OptModuleEdgesWidth, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_TextModWidthTitle = new wxStaticText( itemDialog1, wxID_STATIC, - _( "Text Module Width" ), - wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer15->Add( m_TextModWidthTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptModuleTextWidth = new wxTextCtrl( itemDialog1, - ID_TEXTCTRL_TXTMOD_W, - _T( "" ), - wxDefaultPosition, - wxDefaultSize, - 0 ); - itemStaticBoxSizer15->Add( m_OptModuleTextWidth, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_TextModSizeVTitle = new wxStaticText( itemDialog1, wxID_STATIC, - _( "Text Module Size V" ), - wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer15->Add( m_TextModSizeVTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptModuleTextVSize = new wxTextCtrl( itemDialog1, - ID_TEXTCTRL_TXTMOD_V, - _T( "" ), - wxDefaultPosition, - wxDefaultSize, - 0 ); - itemStaticBoxSizer15->Add( m_OptModuleTextVSize, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - m_TextModSizeHTitle = new wxStaticText( itemDialog1, wxID_STATIC, - _( "Text Module Size H" ), - wxDefaultPosition, - wxDefaultSize, 0 ); - itemStaticBoxSizer15->Add( m_TextModSizeHTitle, - 0, - wxALIGN_LEFT | wxLEFT | wxRIGHT | wxTOP | - wxADJUST_MINSIZE, - 5 ); - - m_OptModuleTextHSize = new wxTextCtrl( itemDialog1, - ID_TEXTCTRL_TXTMOD_H, - _T( "" ), - wxDefaultPosition, - wxDefaultSize, - 0 ); - itemStaticBoxSizer15->Add( m_OptModuleTextHSize, - 0, - wxGROW | wxLEFT | wxRIGHT | wxBOTTOM, - 5 ); - - itemBoxSizer2->Add( 5, 5, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); - - wxBoxSizer* itemBoxSizer25 = new wxBoxSizer( wxVERTICAL ); - itemBoxSizer2->Add( itemBoxSizer25, 0, wxALIGN_CENTER_VERTICAL | wxALL, 5 ); - - wxButton* itemButton26 = new wxButton( itemDialog1, wxID_OK, _( "&OK" ), - wxDefaultPosition, - wxDefaultSize, 0 ); - itemBoxSizer25->Add( itemButton26, 0, wxGROW | wxALL, 5 ); - - wxButton* itemButton27 = new wxButton( itemDialog1, wxID_CANCEL, - _( "&Cancel" ), wxDefaultPosition, - wxDefaultSize, 0 ); - itemBoxSizer25->Add( itemButton27, 0, wxGROW | wxALL, 5 ); - -////@end WinEDA_GraphicItemsOptionsDialog content construction - SetDisplayValue(); -} - - -/*! - * Should we show tooltips? - */ - -bool WinEDA_GraphicItemsOptionsDialog::ShowToolTips() -{ - return true; -} - - -/*! - * Get bitmap resources - */ - -wxBitmap WinEDA_GraphicItemsOptionsDialog::GetBitmapResource( - const wxString& name ) -{ - // Bitmap retrieval -////@begin WinEDA_GraphicItemsOptionsDialog bitmap retrieval - wxUnusedVar( name ); - return wxNullBitmap; - -////@end WinEDA_GraphicItemsOptionsDialog bitmap retrieval -} - - -/*! - * Get icon resources - */ - -wxIcon WinEDA_GraphicItemsOptionsDialog::GetIconResource( const wxString& name ) -{ - // Icon retrieval -////@begin WinEDA_GraphicItemsOptionsDialog icon retrieval - wxUnusedVar( name ); - return wxNullIcon; - -////@end WinEDA_GraphicItemsOptionsDialog icon retrieval -} - - -/*! - * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK - */ - -void WinEDA_GraphicItemsOptionsDialog::OnOkClick( wxCommandEvent& event ) -{ - AcceptOptions( event ); -} - - /*! * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL */ -void WinEDA_GraphicItemsOptionsDialog::OnCancelClick( wxCommandEvent& event ) +void DIALOG_GRAPHIC_ITEMS_OPTIONS::OnCancelClick( wxCommandEvent& event ) { -////@begin wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in -// WinEDA_GraphicItemsOptionsDialog. - // Before editing this code, remove the block markers. event.Skip(); - -////@end wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL in -// WinEDA_GraphicItemsOptionsDialog. } diff --git a/pcbnew/dialog_graphic_items_options.h b/pcbnew/dialog_graphic_items_options.h index f9a09a5e6f..742677564e 100644 --- a/pcbnew/dialog_graphic_items_options.h +++ b/pcbnew/dialog_graphic_items_options.h @@ -1,128 +1,53 @@ ///////////////////////////////////////////////////////////////////////////// // Name: dialog_graphic_items_options.h -// Purpose: -// Author: jean-pierre Charras -// Modified by: -// Created: 25/02/2006 09:53:27 -// RCS-ID: -// Copyright: License GNU -// Licence: -///////////////////////////////////////////////////////////////////////////// - -// Generated by DialogBlocks (unregistered), 25/02/2006 09:53:27 - +//////////////////////////////////////////////////////////////////////////////* + /* + * This program source code file is part of KICAD, a free EDA CAD application. + * + * Copyright (C) 1992-2010 jean-pierre.charras@gipsa-lab.inpg.fr + * Copyright (C) 1992-2010 Kicad Developers, see change_log.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + #ifndef _DIALOG_GRAPHIC_ITEMS_OPTIONS_H_ #define _DIALOG_GRAPHIC_ITEMS_OPTIONS_H_ -/*! - * Includes - */ - -////@begin includes -////@end includes +#include "dialog_graphic_items_options_base.h" /*! - * Forward declarations + * DIALOG_GRAPHIC_ITEMS_OPTIONS class declaration */ -////@begin forward declarations -////@end forward declarations - -/*! - * Control identifiers - */ - -////@begin control identifiers -#define ID_DIALOG 10000 -#define ID_TEXTCTRL_SEGW 10001 -#define ID_TEXTCTRL_EDGES 10002 -#define ID_TEXTCTRL_TEXTW 10003 -#define ID_TEXTCTRL_TEXTV 10004 -#define ID_TEXTCTRL_TEXTH 10005 -#define ID_TEXTCTRL_EDGEMOD_W 10006 -#define ID_TEXTCTRL_TXTMOD_W 10007 -#define ID_TEXTCTRL_TXTMOD_V 10008 -#define ID_TEXTCTRL_TXTMOD_H 10009 -#define SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_STYLE wxCAPTION|wxSYSTEM_MENU|wxCLOSE_BOX|MAYBE_RESIZE_BORDER -#define SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_TITLE _("Texts and Drawings") -#define SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_IDNAME ID_DIALOG -#define SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_SIZE wxSize(400, 300) -#define SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_POSITION wxDefaultPosition -////@end control identifiers - -/*! - * Compatibility - */ - -#ifndef wxCLOSE_BOX -#define wxCLOSE_BOX 0x1000 -#endif - -/*! - * WinEDA_GraphicItemsOptionsDialog class declaration - */ - -class WinEDA_GraphicItemsOptionsDialog: public wxDialog +class DIALOG_GRAPHIC_ITEMS_OPTIONS: public DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE { - DECLARE_EVENT_TABLE() - public: BOARD_DESIGN_SETTINGS* m_BrdSettings; - - /// Constructors - WinEDA_GraphicItemsOptionsDialog( WinEDA_BasePcbFrame* parent, wxWindowID id = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_IDNAME, const wxString& caption = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_TITLE, const wxPoint& pos = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_POSITION, const wxSize& size = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_SIZE, long style = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_STYLE ); - - /// Creation - bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_IDNAME, const wxString& caption = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_TITLE, const wxPoint& pos = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_POSITION, const wxSize& size = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_SIZE, long style = SYMBOL_WINEDA_GRAPHICITEMSOPTIONSDIALOG_STYLE ); - - /// Creates the controls and sizers - void CreateControls(); - -////@begin WinEDA_GraphicItemsOptionsDialog event handler declarations - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK - void OnOkClick( wxCommandEvent& event ); - - /// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL - void OnCancelClick( wxCommandEvent& event ); - -////@end WinEDA_GraphicItemsOptionsDialog event handler declarations - -////@begin WinEDA_GraphicItemsOptionsDialog member function declarations - - /// Retrieves bitmap resources - wxBitmap GetBitmapResource( const wxString& name ); - - /// Retrieves icon resources - wxIcon GetIconResource( const wxString& name ); -////@end WinEDA_GraphicItemsOptionsDialog member function declarations - - /// Should we show tooltips? - static bool ShowToolTips(); - void AcceptOptions(wxCommandEvent& event); - void SetDisplayValue(); - -////@begin WinEDA_GraphicItemsOptionsDialog member variables - wxStaticText* m_GraphicSegmWidthTitle; - wxTextCtrl* m_OptPcbSegmWidth; - wxStaticText* m_BoardEdgesWidthTitle; - wxTextCtrl* m_OptPcbEdgesWidth; - wxStaticText* m_CopperTextWidthTitle; - wxTextCtrl* m_OptPcbTextWidth; - wxStaticText* m_TextSizeVTitle; - wxTextCtrl* m_OptPcbTextVSize; - wxStaticText* m_TextSizeHTitle; - wxTextCtrl* m_OptPcbTextHSize; - wxStaticText* m_EdgeModWidthTitle; - wxTextCtrl* m_OptModuleEdgesWidth; - wxStaticText* m_TextModWidthTitle; - wxTextCtrl* m_OptModuleTextWidth; - wxStaticText* m_TextModSizeVTitle; - wxTextCtrl* m_OptModuleTextVSize; - wxStaticText* m_TextModSizeHTitle; - wxTextCtrl* m_OptModuleTextHSize; -////@end WinEDA_GraphicItemsOptionsDialog member variables WinEDA_BasePcbFrame * m_Parent; + +public: + DIALOG_GRAPHIC_ITEMS_OPTIONS( WinEDA_BasePcbFrame* parent ); + ~DIALOG_GRAPHIC_ITEMS_OPTIONS( ); + +private: + void initValues( ); + void OnOkClick( wxCommandEvent& event ); + void OnCancelClick( wxCommandEvent& event ); }; #endif diff --git a/pcbnew/dialog_graphic_items_options.pjd b/pcbnew/dialog_graphic_items_options.pjd deleted file mode 100644 index d85b123590..0000000000 --- a/pcbnew/dialog_graphic_items_options.pjd +++ /dev/null @@ -1,2002 +0,0 @@ - - -
- 0 - "" - "" - "" - "" - "" - 0 - 0 - 0 - 1 - 1 - 1 - 1 - 0 - "jean-pierre Charras" - "License GNU" - "" - 0 - 0 - 0 - "<All platforms>" - "<Any>" - "///////////////////////////////////////////////////////////////////////////// -// Name: %HEADER-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SOURCE-FILENAME% -// Purpose: -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "///////////////////////////////////////////////////////////////////////////// -// Name: %SYMBOLS-FILENAME% -// Purpose: Symbols file -// Author: %AUTHOR% -// Modified by: -// Created: %DATE% -// RCS-ID: -// Copyright: %COPYRIGHT% -// Licence: -///////////////////////////////////////////////////////////////////////////// - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma interface "%HEADER-FILENAME%" -#endif - -" - "#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "%HEADER-FILENAME%" -#endif - -// For compilers that support precompilation, includes "wx/wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ -#pragma hdrstop -#endif - -#ifndef WX_PRECOMP -#include "wx/wx.h" -#endif - -" - " /// %BODY% -" - " -/*! - * %BODY% - */ - -" - "app_resources.h" - "app_resources.cpp" - "AppResources" - "app.h" - "app.cpp" - "Application" - 0 - "" - "<None>" - "<System>" - "utf-8" - "<System>" - "" - 0 - 0 - 4 - " " - "" - 0 - 0 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 -
- - - "" - "data-document" - "" - "" - 0 - 1 - 0 - 0 - - "Configurations" - "config-data-document" - "" - "" - 0 - 1 - 0 - 0 - "" - 1 - 0 - "" - "Debug" - "ANSI" - "Static" - "Modular" - "GUI" - "wxMSW" - "Dynamic" - "Yes" - "No" - "No" - "%WXVERSION%" - "%EXECUTABLE%" - "" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - "%AUTO%" - 0 - 1 - "" - - - - - - - "Projects" - "root-document" - "" - "project" - 1 - 1 - 0 - 1 - - "Windows" - "html-document" - "" - "dialogsfolder" - 1 - 1 - 0 - 1 - - "Texts and Drawings" - "dialog-document" - "" - "dialog" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbDialogProxy" - 10000 - 0 - "" - 0 - "" - 0 - 0 - "ID_DIALOG" - 10000 - "WinEDA_GraphicItemsOptionsDialog" - "wxDialog" - "wxDialog" - "dialog_graphic_items_options.cpp" - "dialog_graphic_items_options.h" - "" - "Texts and Drawings" - 1 - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "Tiled" - 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - "MAYBE_RESIZE_BORDER" - 0 - 1 - -1 - -1 - 400 - 300 - 0 - "" - - "wxBoxSizer H" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "wbBoxSizerProxy" - "Horizontal" - "" - 0 - 0 - 0 - "<Any platform>" - - "wxStaticBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticBoxSizerProxy" - "wxID_ANY" - "-1" - "Graphics:" - "" - "" - "" - "" - 0 - 1 - "wxStaticBox" - "Vertical" - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_GraphicSegmWidthTitle" - "Graphic segm Width" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_SEGW" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_SEGW" - 10001 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptPcbSegmWidth" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_BoardEdgesWidthTitle" - "Board Edges Width" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_EDGES" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_EDGES" - 10002 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptPcbEdgesWidth" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_CopperTextWidthTitle" - "Copper Text Width" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TEXTW" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TEXTW" - 10003 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptPcbTextWidth" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_TextSizeVTitle" - "Text Size V" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TEXTV" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TEXTV" - 10004 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptPcbTextVSize" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_TextSizeHTitle" - "Text Size H" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TEXTH" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TEXTH" - 10005 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptPcbTextHSize" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - - "Spacer" - "dialog-control-document" - "" - "spacer" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbSpacerProxy" - 5 - 5 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - - "wxStaticBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticBoxSizerProxy" - "wxID_ANY" - "-1" - "Modules:" - "" - "" - "" - "" - 0 - 1 - "wxStaticBox" - "Vertical" - "Centre" - "Expand" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_EdgeModWidthTitle" - "Edges Module Width" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_EDGEMOD_W" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_EDGEMOD_W" - 10006 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptModuleEdgesWidth" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_TextModWidthTitle" - "Text Module Width" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TXTMOD_W" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TXTMOD_W" - 10007 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptModuleTextWidth" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_TextModSizeVTitle" - "Text Module Size V" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TXTMOD_V" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TXTMOD_V" - 10008 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptModuleTextVSize" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - "wxStaticText: wxID_STATIC" - "dialog-control-document" - "" - "statictext" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbStaticTextProxy" - "wxID_STATIC" - 5105 - "" - "wxStaticText" - "wxStaticText" - 1 - 0 - "" - "" - "m_TextModSizeHTitle" - "Text Module Size H" - -1 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Left" - "Centre" - 0 - 5 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - "" - "" - - - "wxTextCtrl: ID_TEXTCTRL_TXTMOD_H" - "dialog-control-document" - "" - "textctrl" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbTextCtrlProxy" - "ID_TEXTCTRL_TXTMOD_H" - 10009 - "" - "wxTextCtrl" - "wxTextCtrl" - 1 - 0 - "" - "" - "m_OptModuleTextHSize" - "" - 0 - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - "" - "" - "" - "" - "" - "" - "" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - "" - "" - 0 - - - - "Spacer" - "dialog-control-document" - "" - "spacer" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbSpacerProxy" - 5 - 5 - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - - "wxBoxSizer V" - "dialog-control-document" - "" - "sizer" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbBoxSizerProxy" - "Vertical" - "" - "Centre" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "<Any platform>" - - "wxButton: wxID_OK" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnOkClick" - "wxID_OK" - 5100 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "&OK" - 0 - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - "wxButton: wxID_CANCEL" - "dialog-control-document" - "" - "dialogcontrol" - 0 - 1 - 0 - 0 - "25/6/2006" - "wbButtonProxy" - "wxEVT_COMMAND_BUTTON_CLICKED|OnCancelClick" - "wxID_CANCEL" - 5101 - "" - "wxButton" - "wxButton" - 1 - 0 - "" - "" - "" - "&Cancel" - 0 - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - "" - 0 - 1 - "<Any platform>" - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - "" - -1 - -1 - -1 - -1 - "Expand" - "Centre" - 0 - 5 - 1 - 1 - 1 - 1 - 0 - 0 - 0 - "" - "" - - - - - - - "Sources" - "html-document" - "" - "sourcesfolder" - 1 - 1 - 0 - 1 - - "dialog_graphic_items_options.rc" - "source-editor-document" - "dialog_graphic_items_options.rc" - "source-editor" - 0 - 0 - 1 - 0 - "25/6/2006" - "" - - - - "Images" - "html-document" - "" - "bitmapsfolder" - 1 - 1 - 0 - 1 - - - - -
diff --git a/pcbnew/dialog_graphic_items_options.rc b/pcbnew/dialog_graphic_items_options.rc deleted file mode 100644 index b86c4e2265..0000000000 --- a/pcbnew/dialog_graphic_items_options.rc +++ /dev/null @@ -1 +0,0 @@ -#include "wx/msw/wx.rc" diff --git a/pcbnew/dialog_graphic_items_options_base.cpp b/pcbnew/dialog_graphic_items_options_base.cpp new file mode 100644 index 0000000000..968c932edc --- /dev/null +++ b/pcbnew/dialog_graphic_items_options_base.cpp @@ -0,0 +1,132 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "dialog_graphic_items_options_base.h" + +/////////////////////////////////////////////////////////////////////////// + +DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::DIALOG_GRAPHIC_ITEMS_OPTIONS_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 ); + + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerUpper; + bSizerUpper = new wxBoxSizer( wxHORIZONTAL ); + + wxStaticBoxSizer* sbSizerLeft; + sbSizerLeft = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Graphics:") ), wxVERTICAL ); + + m_GraphicSegmWidthTitle = new wxStaticText( this, wxID_ANY, _("Graphic segm Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_GraphicSegmWidthTitle->Wrap( -1 ); + sbSizerLeft->Add( m_GraphicSegmWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptPcbSegmWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerLeft->Add( m_OptPcbSegmWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_BoardEdgesWidthTitle = new wxStaticText( this, wxID_ANY, _("Board Edges Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_BoardEdgesWidthTitle->Wrap( -1 ); + sbSizerLeft->Add( m_BoardEdgesWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptPcbEdgesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerLeft->Add( m_OptPcbEdgesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_CopperTextWidthTitle = new wxStaticText( this, wxID_ANY, _("Copper Text Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_CopperTextWidthTitle->Wrap( -1 ); + sbSizerLeft->Add( m_CopperTextWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptPcbTextWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerLeft->Add( m_OptPcbTextWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_TextSizeVTitle = new wxStaticText( this, wxID_ANY, _("Text Size V"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextSizeVTitle->Wrap( -1 ); + sbSizerLeft->Add( m_TextSizeVTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptPcbTextVSize = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerLeft->Add( m_OptPcbTextVSize, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_TextSizeHTitle = new wxStaticText( this, wxID_ANY, _("Text Size H"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextSizeHTitle->Wrap( -1 ); + sbSizerLeft->Add( m_TextSizeHTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptPcbTextHSize = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerLeft->Add( m_OptPcbTextHSize, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + bSizerUpper->Add( sbSizerLeft, 1, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerMiddle; + sbSizerMiddle = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Modules:") ), wxVERTICAL ); + + m_EdgeModWidthTitle = new wxStaticText( this, wxID_ANY, _("Edges Module Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_EdgeModWidthTitle->Wrap( -1 ); + sbSizerMiddle->Add( m_EdgeModWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptModuleEdgesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerMiddle->Add( m_OptModuleEdgesWidth, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_TextModWidthTitle = new wxStaticText( this, wxID_ANY, _("Text Module Width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextModWidthTitle->Wrap( -1 ); + sbSizerMiddle->Add( m_TextModWidthTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptModuleTextWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerMiddle->Add( m_OptModuleTextWidth, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_TextModSizeVTitle = new wxStaticText( this, wxID_ANY, _("Text Module Size V"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextModSizeVTitle->Wrap( -1 ); + sbSizerMiddle->Add( m_TextModSizeVTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptModuleTextVSize = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerMiddle->Add( m_OptModuleTextVSize, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + m_TextModSizeHTitle = new wxStaticText( this, wxID_ANY, _("Text Module Size H"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextModSizeHTitle->Wrap( -1 ); + sbSizerMiddle->Add( m_TextModSizeHTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_OptModuleTextHSize = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerMiddle->Add( m_OptModuleTextHSize, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); + + bSizerUpper->Add( sbSizerMiddle, 1, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerRight; + sbSizerRight = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("General:") ), wxVERTICAL ); + + m_DefaultPenSizeTitle = new wxStaticText( this, wxID_ANY, _("Default pen size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_DefaultPenSizeTitle->Wrap( -1 ); + m_DefaultPenSizeTitle->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); + + sbSizerRight->Add( m_DefaultPenSizeTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_DefaultPenSizeCtrl = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerRight->Add( m_DefaultPenSizeCtrl, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + bSizerUpper->Add( sbSizerRight, 1, wxEXPAND|wxALL, 5 ); + + bSizerMain->Add( bSizerUpper, 1, wxEXPAND, 5 ); + + m_sdbSizer1 = new wxStdDialogButtonSizer(); + m_sdbSizer1OK = new wxButton( this, wxID_OK ); + m_sdbSizer1->AddButton( m_sdbSizer1OK ); + m_sdbSizer1Cancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizer1->AddButton( m_sdbSizer1Cancel ); + m_sdbSizer1->Realize(); + bSizerMain->Add( m_sdbSizer1, 0, wxALIGN_RIGHT|wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + this->SetSizer( bSizerMain ); + this->Layout(); + + // Connect Events + m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::OnOkClick ), NULL, this ); +} + +DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::~DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE() +{ + // Disconnect Events + m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::OnCancelClick ), NULL, this ); + m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE::OnOkClick ), NULL, this ); +} diff --git a/pcbnew/dialog_graphic_items_options_base.fbp b/pcbnew/dialog_graphic_items_options_base.fbp new file mode 100644 index 0000000000..56cf674822 --- /dev/null +++ b/pcbnew/dialog_graphic_items_options_base.fbp @@ -0,0 +1,1220 @@ + + + + + + C++ + 1 + UTF-8 + connect + dialog_graphic_items_options_base + 1000 + none + 1 + dialog_graphic_items_options + + . + + 1 + 0 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE + + 459,315 + wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER + + Texts and Drawings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bSizerMain + wxVERTICAL + none + + 5 + wxEXPAND + 1 + + + bSizerUpper + wxHORIZONTAL + none + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Graphics: + + sbSizerLeft + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Graphic segm Width + + + m_GraphicSegmWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptPcbSegmWidth + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Board Edges Width + + + m_BoardEdgesWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptPcbEdgesWidth + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Copper Text Width + + + m_CopperTextWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptPcbTextWidth + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Text Size V + + + m_TextSizeVTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptPcbTextVSize + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Text Size H + + + m_TextSizeHTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptPcbTextHSize + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Modules: + + sbSizerMiddle + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Edges Module Width + + + m_EdgeModWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptModuleEdgesWidth + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Text Module Width + + + m_TextModWidthTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptModuleTextWidth + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Text Module Size V + + + m_TextModSizeVTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptModuleTextVSize + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Text Module Size H + + + m_TextModSizeHTitle + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_OptModuleTextHSize + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + General: + + sbSizerRight + wxVERTICAL + none + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + Default pen size: + + + m_DefaultPenSizeTitle + protected + + + + + Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_DefaultPenSizeCtrl + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT|wxEXPAND|wxTOP|wxBOTTOM + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizer1 + protected + + OnCancelClick + + + + OnOkClick + + + + + + + + diff --git a/pcbnew/dialog_graphic_items_options_base.h b/pcbnew/dialog_graphic_items_options_base.h new file mode 100644 index 0000000000..e44e4c5f7d --- /dev/null +++ b/pcbnew/dialog_graphic_items_options_base.h @@ -0,0 +1,71 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 16 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __dialog_graphic_items_options_base__ +#define __dialog_graphic_items_options_base__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE +/////////////////////////////////////////////////////////////////////////////// +class DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE : public wxDialog +{ + private: + + protected: + wxStaticText* m_GraphicSegmWidthTitle; + wxTextCtrl* m_OptPcbSegmWidth; + wxStaticText* m_BoardEdgesWidthTitle; + wxTextCtrl* m_OptPcbEdgesWidth; + wxStaticText* m_CopperTextWidthTitle; + wxTextCtrl* m_OptPcbTextWidth; + wxStaticText* m_TextSizeVTitle; + wxTextCtrl* m_OptPcbTextVSize; + wxStaticText* m_TextSizeHTitle; + wxTextCtrl* m_OptPcbTextHSize; + wxStaticText* m_EdgeModWidthTitle; + wxTextCtrl* m_OptModuleEdgesWidth; + wxStaticText* m_TextModWidthTitle; + wxTextCtrl* m_OptModuleTextWidth; + wxStaticText* m_TextModSizeVTitle; + wxTextCtrl* m_OptModuleTextVSize; + wxStaticText* m_TextModSizeHTitle; + wxTextCtrl* m_OptModuleTextHSize; + wxStaticText* m_DefaultPenSizeTitle; + wxTextCtrl* m_DefaultPenSizeCtrl; + wxStdDialogButtonSizer* m_sdbSizer1; + wxButton* m_sdbSizer1OK; + wxButton* m_sdbSizer1Cancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); } + virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); } + + + public: + DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Texts and Drawings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 459,315 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); + ~DIALOG_GRAPHIC_ITEMS_OPTIONS_BASE(); + +}; + +#endif //__dialog_graphic_items_options_base__ diff --git a/pcbnew/dialog_plot_base.cpp b/pcbnew/dialog_plot_base.cpp index 56e6b45ddd..78f2229d1b 100644 --- a/pcbnew/dialog_plot_base.cpp +++ b/pcbnew/dialog_plot_base.cpp @@ -171,8 +171,10 @@ DIALOG_PLOT_BASE::DIALOG_PLOT_BASE( wxWindow* parent, wxWindowID id, const wxStr bButtonsSizer->Add( m_PlotNoViaOnMaskOpt, 0, wxALL, 5 ); - m_staticText6 = new wxStaticText( this, wxID_ANY, _("Line width"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6 = new wxStaticText( this, wxID_ANY, _("Default pen size:"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticText6->Wrap( -1 ); + m_staticText6->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); + bButtonsSizer->Add( m_staticText6, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); m_LinesWidth = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); diff --git a/pcbnew/dialog_plot_base.fbp b/pcbnew/dialog_plot_base.fbp index d406696954..422bd64fe8 100644 --- a/pcbnew/dialog_plot_base.fbp +++ b/pcbnew/dialog_plot_base.fbp @@ -1368,7 +1368,7 @@ 0 wxID_ANY - Line width + Default pen size: m_staticText6 @@ -1377,7 +1377,7 @@ - + Pen size used to draw items that have no pen size specified. Used mainly to draw items in sketch mode. diff --git a/pcbnew/dialog_print_for_modedit.cpp b/pcbnew/dialog_print_for_modedit.cpp index d8de32b469..4dee1258cd 100644 --- a/pcbnew/dialog_print_for_modedit.cpp +++ b/pcbnew/dialog_print_for_modedit.cpp @@ -102,11 +102,12 @@ void DIALOG_PRINT_FOR_MODEDIT::InitValues( ) int scale_Select = 3; // default selected scale = ScaleList[3] = 1 if( m_Config ) { - m_Config->Read( OPTKEY_PLOT_LINEWIDTH_VALUE, &s_Parameters.m_PenDefaultSize ); m_Config->Read( OPTKEY_PRINT_MODULE_SCALE, &scale_Select ); m_Config->Read( OPTKEY_PRINT_MONOCHROME_MODE, &s_Parameters.m_Print_Black_and_White, 1); } + extern int g_DrawDefaultLineThickness; + s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; m_ScaleOption->SetSelection( scale_Select ); if( s_Parameters.m_Print_Black_and_White ) diff --git a/pcbnew/dialog_print_using_printer.cpp b/pcbnew/dialog_print_using_printer.cpp index cbda306f6a..008ac72748 100644 --- a/pcbnew/dialog_print_using_printer.cpp +++ b/pcbnew/dialog_print_using_printer.cpp @@ -22,6 +22,10 @@ #define WIDTH_MAX_VALUE 1000 #define WIDTH_MIN_VALUE 1 + +extern int g_DrawDefaultLineThickness; + +// Local variables static long s_SelectedLayers; static double s_ScaleList[] = { 0, 0.5, 0.7, 0.999, 1.0, 1.4, 2.0, 3.0, 4.0 }; @@ -33,7 +37,6 @@ static double s_ScaleList[] = // static print data and page setup data, to remember settings during the session static wxPrintData* g_PrintData; -// Variables locales static PRINT_PARAMETERS s_Parameters; @@ -190,7 +193,6 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) if( m_Config ) { - m_Config->Read( OPTKEY_PLOT_LINEWIDTH_VALUE, &s_Parameters.m_PenDefaultSize ); m_Config->Read( OPTKEY_PRINT_X_FINESCALE_ADJ, &s_Parameters.m_XScaleAdjust ); m_Config->Read( OPTKEY_PRINT_Y_FINESCALE_ADJ, &s_Parameters.m_YScaleAdjust ); m_Config->Read( OPTKEY_PRINT_SCALE, &scale_idx ); @@ -241,6 +243,7 @@ void DIALOG_PRINT_USING_PRINTER::InitValues( ) else m_ModeColorOption->SetSelection( 0 ); + s_Parameters.m_PenDefaultSize = g_DrawDefaultLineThickness; AddUnitSymbol( *m_TextPenWidth, g_UnitMetric ); m_DialogPenWidth->SetValue( ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, m_Parent->m_InternalUnits ) ); @@ -321,7 +324,6 @@ void DIALOG_PRINT_USING_PRINTER::OnCloseWindow( wxCloseEvent& event ) if( m_Config ) { - m_Config->Write( OPTKEY_PLOT_LINEWIDTH_VALUE, s_Parameters.m_PenDefaultSize ); m_Config->Write( OPTKEY_PRINT_X_FINESCALE_ADJ, s_Parameters.m_XScaleAdjust ); m_Config->Write( OPTKEY_PRINT_Y_FINESCALE_ADJ, s_Parameters.m_YScaleAdjust ); m_Config->Write( OPTKEY_PRINT_SCALE, m_ScaleOption->GetSelection() ); @@ -404,6 +406,8 @@ void DIALOG_PRINT_USING_PRINTER::SetPenWidth() s_Parameters.m_PenDefaultSize = WIDTH_MIN_VALUE; } + g_DrawDefaultLineThickness = s_Parameters.m_PenDefaultSize; + m_DialogPenWidth->SetValue( ReturnStringFromValue( g_UnitMetric, s_Parameters.m_PenDefaultSize, m_Parent->m_InternalUnits ) ); } diff --git a/pcbnew/dialog_print_using_printer_base.cpp b/pcbnew/dialog_print_using_printer_base.cpp index 90678f16ff..8aece2c5c0 100644 --- a/pcbnew/dialog_print_using_printer_base.cpp +++ b/pcbnew/dialog_print_using_printer_base.cpp @@ -75,7 +75,7 @@ DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* pare wxStaticBoxSizer* sbOptionsSizer; sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL ); - m_TextPenWidth = new wxStaticText( this, wxID_ANY, _("Default Pen Size:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_TextPenWidth = new wxStaticText( this, wxID_ANY, _("Default pen size:"), wxDefaultPosition, wxDefaultSize, 0 ); m_TextPenWidth->Wrap( -1 ); m_TextPenWidth->SetToolTip( _("Pen size used to draw items that have no pen size specified.\nUsed mainly to draw items in sketch mode.") ); @@ -135,6 +135,7 @@ DIALOG_PRINT_USING_PRINTER_base::DIALOG_PRINT_USING_PRINTER_base( wxWindow* pare bbuttonsSizer->Add( m_buttonPrint, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_buttonQuit = new wxButton( this, wxID_CANCEL, _("Close"), wxDefaultPosition, wxDefaultSize, 0 ); + m_buttonQuit->SetDefault(); bbuttonsSizer->Add( m_buttonQuit, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); diff --git a/pcbnew/dialog_print_using_printer_base.fbp b/pcbnew/dialog_print_using_printer_base.fbp index e79b26459c..da4e49693a 100644 --- a/pcbnew/dialog_print_using_printer_base.fbp +++ b/pcbnew/dialog_print_using_printer_base.fbp @@ -490,7 +490,7 @@ 0 wxID_ANY - Default Pen Size: + Default pen size: m_TextPenWidth diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index b65996b6d5..a6c8124423 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -48,9 +48,10 @@ #include "class_pcb_layer_widget.h" #include "hotkeys.h" - +extern int g_DrawDefaultLineThickness; // Keys used in read/write config +#define OPTKEY_DEFAULT_LINEWIDTH_VALUE wxT( "PlotLineWidth" ) #define PCB_SHOW_FULL_RATSNET_OPT wxT( "PcbFulRatsnest" ) #define PCB_MAGNETIC_PADS_OPT wxT( "PcbMagPadOpt" ) #define PCB_MAGNETIC_TRACKS_OPT wxT( "PcbMagTrackOpt" ) @@ -494,6 +495,7 @@ void WinEDA_PcbFrame::LoadSettings() WinEDA_BasePcbFrame::LoadSettings(); long tmp; + config->Read( OPTKEY_DEFAULT_LINEWIDTH_VALUE, &g_DrawDefaultLineThickness ); config->Read( PCB_SHOW_FULL_RATSNET_OPT, &tmp ); GetBoard()->SetElementVisibility(RATSNEST_VISIBLE, tmp); config->Read( PCB_MAGNETIC_PADS_OPT, &g_MagneticPadOption ); @@ -514,6 +516,7 @@ void WinEDA_PcbFrame::SaveSettings() wxRealPoint GridSize = GetScreen()->GetGridSize(); + config->Write( OPTKEY_DEFAULT_LINEWIDTH_VALUE, g_DrawDefaultLineThickness ); long tmp = GetBoard()->IsElementVisible(RATSNEST_VISIBLE); config->Write( PCB_SHOW_FULL_RATSNET_OPT, tmp ); config->Write( PCB_MAGNETIC_PADS_OPT, (long) g_MagneticPadOption ); diff --git a/pcbnew/pcbnew.cpp b/pcbnew/pcbnew.cpp index ed9a7294c1..ae57184605 100644 --- a/pcbnew/pcbnew.cpp +++ b/pcbnew/pcbnew.cpp @@ -31,10 +31,13 @@ // Colors for layers and items COLORS_DESIGN_SETTINGS g_ColorsSettings; +int g_DrawDefaultLineThickness = 60; /* Default line thickness in PCBNEW units used to + * draw/plot items having a + * default thickness line value (Frame references) + * (i.e. = 0 ). 0 = single pixel line width */ bool Drc_On = true; bool g_AutoDeleteOldTrack = true; -bool g_No_Via_Route; bool g_Drag_Pistes_On; bool g_Show_Module_Ratsnest; bool g_Show_Pads_Module_in_Move = true; @@ -45,7 +48,6 @@ bool g_TwoSegmentTrackBuild = true; bool g_HighLight_Status; extern PARAM_CFG_BASE* ParamCfgList[]; -int Angle_Rot_Module; int ModuleSegmentWidth; int ModuleTextWidth; int Route_Layer_TOP; @@ -77,7 +79,7 @@ IMPLEMENT_APP( WinEDA_App ) void WinEDA_App::MacOpenFile(const wxString &fileName) { wxFileName filename = fileName; WinEDA_PcbFrame * frame = ((WinEDA_PcbFrame*) GetTopWindow()); - + if(!filename.FileExists()) return; diff --git a/pcbnew/pcbnew.h b/pcbnew/pcbnew.h index b869ad5722..b1ee5dc5ae 100644 --- a/pcbnew/pcbnew.h +++ b/pcbnew/pcbnew.h @@ -52,7 +52,6 @@ /* variables */ extern bool Drc_On; extern bool g_AutoDeleteOldTrack; -extern bool g_No_Via_Route; extern bool g_Drag_Pistes_On; extern bool g_Show_Module_Ratsnest; extern bool g_Show_Pads_Module_in_Move; @@ -67,7 +66,6 @@ extern wxString g_Shapes3DExtBuffer; extern wxString g_DocModulesFileName; /* Variables used in footprint handling */ -extern int Angle_Rot_Module; extern wxSize ModuleTextSize; /* Default footprint texts size */ extern int ModuleTextWidth; extern int ModuleSegmentWidth; diff --git a/pcbnew/pcbplot.cpp b/pcbnew/pcbplot.cpp index 48cf9e2d8c..b1c717fc76 100644 --- a/pcbnew/pcbplot.cpp +++ b/pcbnew/pcbplot.cpp @@ -55,6 +55,8 @@ static bool s_PlotOriginIsAuxAxis = FALSE; /* The group of plot options - sadly global XXX */ PCB_Plot_Options g_pcb_plot_options; +extern int g_DrawDefaultLineThickness; + /*******************************/ /* Dialog box for plot control */ @@ -140,12 +142,12 @@ void DIALOG_PLOT::Init_Dialog() BOARD* board = m_Parent->GetBoard(); m_Config->Read( OPTKEY_OUTPUT_FORMAT, &g_pcb_plot_options.PlotFormat ); - m_Config->Read( OPTKEY_PLOT_LINEWIDTH_VALUE, &g_pcb_plot_options.PlotLine_Width ); m_Config->Read( OPTKEY_EDGELAYER_GERBER, &g_pcb_plot_options.Exclude_Edges_Pcb ); m_Config->Read( OPTKEY_XFINESCALE_ADJ, &m_XScaleAdjust ); m_Config->Read( OPTKEY_YFINESCALE_ADJ, &m_YScaleAdjust ); m_PlotFormatOpt->SetSelection( g_pcb_plot_options.PlotFormat ); + g_pcb_plot_options.PlotLine_Width = g_DrawDefaultLineThickness; // Set units and value for HPGL pen speed. @@ -455,6 +457,8 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) msg = m_LinesWidth->GetValue(); tmp = ReturnValueFromString( g_UnitMetric, msg, PCB_INTERNAL_UNIT ); g_pcb_plot_options.PlotLine_Width = tmp; + g_DrawDefaultLineThickness = g_pcb_plot_options.PlotLine_Width; + msg = m_FineAdjustXscaleOpt->GetValue(); msg.ToDouble( &m_XScaleAdjust ); @@ -472,8 +476,6 @@ void DIALOG_PLOT::SaveOptPlot( wxCommandEvent& event ) int formatNdx = m_PlotFormatOpt->GetSelection(); m_Config->Write( OPTKEY_OUTPUT_FORMAT, formatNdx ); - m_Config->Write( OPTKEY_PLOT_LINEWIDTH_VALUE, - g_pcb_plot_options.PlotLine_Width ); wxString layerKey; for( int layer = 0; layerDrawBackGround( DC ); - TraceWorkSheet( DC, GetScreen(), 0 ); + TraceWorkSheet( DC, GetScreen(), g_DrawDefaultLineThickness ); GetBoard()->Draw( DrawPanel, DC, GR_OR );