diff --git a/bitmaps/CMakeLists.txt b/bitmaps/CMakeLists.txt index 4f9245470d..d2d727c85b 100644 --- a/bitmaps/CMakeLists.txt +++ b/bitmaps/CMakeLists.txt @@ -59,6 +59,8 @@ set(BITMAP_SRCS Browse_Files.xpm cancel_tool.xpm Cancel.xpm + component_select_unit.xpm + component_select_alternate_shape.xpm config.xpm CopyBlock.xpm copy.xpm @@ -338,6 +340,8 @@ set(BITMAP_SRCS showmodedge.xpm showtrack.xpm Show_Zone.xpm + Show_Zone_Disable.xpm + Show_Zone_Outline_Only.xpm Swap_Layer.xpm Text_Sketch.xpm tool_ratsnet.xpm diff --git a/bitmaps/Show_Zone_Disable.xpm b/bitmaps/Show_Zone_Disable.xpm new file mode 100644 index 0000000000..549c4b8ae0 --- /dev/null +++ b/bitmaps/Show_Zone_Disable.xpm @@ -0,0 +1,96 @@ +/* XPM */ +#ifndef XPMMAIN +extern const char* show_zone_disable_xpm[]; +#else +const char * show_zone_disable_xpm[] = { +"16 16 72 1", +" c None", +". c #009000", +"G c #C0C0C0", +"+ c #007E00", +"@ c #004100", +"# c #002700", +"$ c #000900", +"% c #000400", +"& c #000000", +"* c #007100", +"= c #040404", +"- c #716F7F", +"; c #A7A3DA", +"> c #A9A4E2", +", c #8E8CA2", +"' c #191919", +") c #000600", +"! c #006400", +"~ c #000F00", +"{ c #2F2F2F", +"] c #CBCBD0", +"^ c #A8A0FF", +"/ c #6D67AC", +"( c #615B98", +"_ c #A198FD", +": c #EAE8F8", +"< c #515151", +"[ c #000100", +"} c #006E00", +"| c #000800", +"1 c #2D2D2D", +"2 c #F5F5F5", +"3 c #DCD9FF", +"4 c #928AE5", +"5 c #000001", +"6 c #7972BE", +"7 c #CEC9FF", +"8 c #FBFBFB", +"9 c #484848", +"0 c #007C00", +"a c #003300", +"b c #030303", +"c c #939393", +"d c #F1F0FE", +"e c #A39AFE", +"f c #403C65", +"g c #333050", +"h c #9A91F1", +"i c #E5E2FF", +"j c #B8B8B8", +"k c #0B0B0B", +"l c #001D00", +"m c #005300", +"n c #000B00", +"o c #383838", +"p c #B4B0DA", +"q c #B0A9FE", +"r c #ACA4FF", +"s c #C1BCF1", +"t c #757575", +"u c #050505", +"v c #002300", +"w c #007800", +"x c #007500", +"y c #003400", +"z c #0A0A0A", +"A c #0C0C0D", +"B c #001700", +"C c #004F00", +"D c #007B00", +"E c #006500", +"F c #006C00", +"GGGGGGGGGGGGGGGG", +"GGGG GGGGGGGG", +"GGG GGGGGGG", +"GG ++ GGGGG", +"G .... GGG", +"G +. ..... GG", +"G +. ...... GG", +"G .... .. G", +"GG @#$%& .. ", +"GG*&=-;>,') ... ", +"G!~{]^/(_:<[ ...", +"}|12345&6789& ..", +"0abcdefghijkl .", +"GGmnopqrstuvw. .", +"GGGxy|zA&BCDGGG ", +"GGGGG0E!FGGGGGG "}; + +#endif diff --git a/bitmaps/Show_Zone_Outline_Only.xpm b/bitmaps/Show_Zone_Outline_Only.xpm new file mode 100644 index 0000000000..81a88f1505 --- /dev/null +++ b/bitmaps/Show_Zone_Outline_Only.xpm @@ -0,0 +1,95 @@ +/* XPM */ +#ifndef XPMMAIN +extern const char* show_zone_outline_only_xpm[]; +#else +const char * show_zone_outline_only_xpm[] = { +"16 16 71 1", +" c None", +". c #007F00", +"+ c #007E00", +"@ c #004100", +"# c #002700", +"$ c #000900", +"% c #000400", +"& c #000000", +"* c #009000", +"= c #040404", +"- c #716F7F", +"; c #A7A3DA", +"> c #A9A4E2", +", c #8E8CA2", +"' c #191919", +") c #000600", +"! c #006400", +"~ c #000F00", +"{ c #2F2F2F", +"] c #CBCBD0", +"^ c #A8A0FF", +"/ c #6D67AC", +"( c #615B98", +"_ c #A198FD", +": c #EAE8F8", +"< c #515151", +"[ c #000100", +"} c #006E00", +"| c #000800", +"1 c #2D2D2D", +"2 c #F5F5F5", +"3 c #DCD9FF", +"4 c #928AE5", +"5 c #000001", +"6 c #7972BE", +"7 c #CEC9FF", +"8 c #FBFBFB", +"9 c #484848", +"0 c #007C00", +"a c #003300", +"b c #030303", +"c c #939393", +"d c #F1F0FE", +"e c #A39AFE", +"f c #403C65", +"g c #333050", +"h c #9A91F1", +"i c #E5E2FF", +"j c #B8B8B8", +"k c #0B0B0B", +"l c #001D00", +"m c #005300", +"n c #000B00", +"o c #383838", +"p c #B4B0DA", +"q c #B0A9FE", +"r c #ACA4FF", +"s c #C1BCF1", +"t c #757575", +"u c #050505", +"v c #002300", +"w c #007800", +"x c #007500", +"y c #003400", +"z c #0A0A0A", +"A c #0C0C0D", +"B c #001700", +"C c #004F00", +"D c #007B00", +"E c #006500", +"F c #006C00", +"****************", +"* * * ", +"* * * ", +"** ++ * ", +"* .... * ", +"* +. ..... * ", +"* +. ...... **", +"* .... .. *", +"** @#$%& .. ", +"***&=-;>,') ... ", +".!~{]^/(_:<[ ...", +"}|12345&6789& ..", +"0abcdefghijkl .", +"**mnopqrstuvw .", +"* *xy|zA&BCD* * ", +"*****0E!F****** "}; + +#endif diff --git a/bitmaps/component_select_alternate_shape.xpm b/bitmaps/component_select_alternate_shape.xpm new file mode 100644 index 0000000000..5249251cdb --- /dev/null +++ b/bitmaps/component_select_alternate_shape.xpm @@ -0,0 +1,33 @@ +/* XPM */ +#ifndef XPMMAIN +extern const char * component_select_alternate_shape_xpm[]; + +#else +const char * component_select_alternate_shape_xpm[] = { +"16 16 7 1", +"X c Black", +". c None", +"o c Black", +"= c Green", +"+ c #008000", +"' c Red", +"* c Cyan", +"....XXXXXXX.....", +".oooooX====XX...", +".......X=====X..", +".......X=====Xoo", +".......X=====X..", +".oooooX====XX...", +"...*XXXXXXX.....", +".***............", +"***.............", +"*...XXXXXX......", +"ooooX'''''X.....", +"....X''''''X....", +"....X'''''''Xooo", +"....X''''''X....", +"ooooX'''''X.....", +"....XXXXXX......" +}; +#endif + diff --git a/bitmaps/component_select_unit.xpm b/bitmaps/component_select_unit.xpm new file mode 100644 index 0000000000..59d8f22963 --- /dev/null +++ b/bitmaps/component_select_unit.xpm @@ -0,0 +1,31 @@ +/* XPM */ +#ifndef XPMMAIN +extern const char * component_select_unit_xpm[]; + +#else +const char * component_select_unit_xpm[] = { +"16 15 6 1", +"X c Black", +". c None", +"o c Black", +"= c Gray", +"+ c #008000", +"' c #0000C0", +"........XXXXXX..", +"....ooooX=====X.", +"........X======X", +"........X=======", +"......XXXXXX===X", +"..ooooX+++++X=X.", +"......X++++++X..", +"......X+++++++Xo", +"....XXXXXX+++X..", +"ooooX'''''X+X...", +"....X''''''X....", +"....X'''''''Xooo", +"....X''''''X....", +"ooooX'''''X.....", +"....XXXXXX......" +}; +#endif + diff --git a/bitmaps/makefile.include b/bitmaps/makefile.include index 01ce96477d..ed5a3d54d0 100644 --- a/bitmaps/makefile.include +++ b/bitmaps/makefile.include @@ -39,6 +39,8 @@ OBJECTS = \ book.o\ Break_Line.o\ Browse_Files.o\ + component_select_unit.o\ + component_select_alternate_shape.o\ cancel_tool.o\ Cancel.o\ config.o\ @@ -247,6 +249,8 @@ OBJECTS = \ showmodedge.o\ showtrack.o\ Show_Zone.o\ + Show_Zone_Disable.o\ + Show_Zone_Outline_Only.o\ Swap_Layer.o\ shape_3d.o\ Text_Sketch.o\ diff --git a/eeschema/annotate.cpp b/eeschema/annotate.cpp index 7d3149adaf..547dc26bf2 100644 --- a/eeschema/annotate.cpp +++ b/eeschema/annotate.cpp @@ -297,10 +297,14 @@ void AnnotateComponents( WinEDA_SchematicFrame* parent, } -/***************************************************************************** -* Add a OBJ_CMP_TO_LIST object in aComponentsList for each component foun in sheet -*****************************************************************************/ +/*******************************************************************************************************/ int AddComponentsInSheetToList( std::vector & aComponentsList, DrawSheetPath* aSheet ) +/********************************************************************************************************/ +/** function AddComponentsInSheetToList() + * Add a OBJ_CMP_TO_LIST object in aComponentsList for each component found in sheet + * @param aComponentsList = a std::vector list to fill + * @param the DrawSheetPath sheet to analyse +*/ { int NbrCmp = 0; EDA_BaseStruct* DrawList = aSheet->LastDrawList(); @@ -595,7 +599,13 @@ int CheckAnnotate( WinEDA_SchematicFrame* frame, bool oneSheetOnly ) /** * Function CheckAnnotate - * @return component count ( which are not annotated or have the same reference (duplicates)) + * Check errors relatives to annotation: + * components not annotated + * components having the same reference (duplicates) + * for multiple parts per package components : + * part number > number of parts + * different values between parts + * @return errors count * @param oneSheetOnly : true = search is made only in the current sheet * false = search in whole hierarchy (usual search). */ diff --git a/eeschema/libarch.cpp b/eeschema/libarch.cpp index b9ba984752..9f2606ee47 100644 --- a/eeschema/libarch.cpp +++ b/eeschema/libarch.cpp @@ -16,7 +16,7 @@ #include "protos.h" /* Local functions*/ -static bool TriListEntry( const EDA_LibComponentStruct* Objet1, +static bool SortCmpByName( const EDA_LibComponentStruct* Objet1, const EDA_LibComponentStruct* Objet2 ); @@ -36,12 +36,12 @@ bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName ) std::vector ListEntry; - EDA_ScreenList s_list; + EDA_ScreenList ScreenList; /* examine all screens (not scheets) used and build the list of components found in lib - * complex hierarchies are not a problem because we just want to know used components in librarires + * complex hierarchies are not a problem because we just want to know used components in libraries */ - for( SCH_SCREEN* screen = s_list.GetFirst(); screen != NULL; screen = s_list.GetNext() ) + for( SCH_SCREEN* screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() ) { for( SCH_ITEM* SchItem = screen->EEDrawList; SchItem; SchItem = SchItem->Next() ) { @@ -55,7 +55,9 @@ bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName ) } } - sort( ListEntry.begin(), ListEntry.end(), TriListEntry ); + // Sort components (libraries entries) by name + // (they are components name in library, not in schematic) : + sort( ListEntry.begin(), ListEntry.end(), SortCmpByName ); /* calculate the file name for the associated doc file */ DocFileName = ArchFullFileName; @@ -104,7 +106,7 @@ bool LibArchive( wxWindow* frame, const wxString& ArchFullFileName ) /***********************************************************************************************/ -bool TriListEntry( const EDA_LibComponentStruct* Objet1, const EDA_LibComponentStruct* Objet2 ) +bool SortCmpByName( const EDA_LibComponentStruct* Objet1, const EDA_LibComponentStruct* Objet2 ) /***********************************************************************************************/ /* Compare function for sort() diff --git a/eeschema/onrightclick.cpp b/eeschema/onrightclick.cpp index 4aa9840957..1f1bc0d8b7 100644 --- a/eeschema/onrightclick.cpp +++ b/eeschema/onrightclick.cpp @@ -312,7 +312,8 @@ void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component ) ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_FOOTPRINT_CMP, msg, edit_comp_footprint_xpm ); } if( LibEntry && (LookForConvertPart( LibEntry ) >= 2) ) - editmenu->Append( ID_POPUP_SCH_EDIT_CONVERT_CMP, _( "Convert" ) ); + ADD_MENUITEM( editmenu, ID_POPUP_SCH_EDIT_CONVERT_CMP,_( "Convert" ), component_select_alternate_shape_xpm ); + if( LibEntry && (LibEntry->m_UnitCount >= 2) ) { wxMenu* sel_unit_menu = new wxMenu; int ii; @@ -324,8 +325,7 @@ void AddMenusForComponent( wxMenu* PopMenu, SCH_COMPONENT* Component ) sel_unit_menu->Append( ID_POPUP_SCH_SELECT_UNIT1 + ii, num_unit ); } - - editmenu->Append( ID_POPUP_SCH_SELECT_UNIT_CMP, _( "Unit" ), sel_unit_menu ); + ADD_MENUITEM_WITH_SUBMENU( editmenu, sel_unit_menu, ID_POPUP_SCH_SELECT_UNIT_CMP, _( "Unit" ), component_select_unit_xpm ); } ADD_MENUITEM_WITH_SUBMENU( PopMenu, editmenu, diff --git a/gerbview/CMakeLists.txt b/gerbview/CMakeLists.txt index 1d65ae638a..58491a96c4 100644 --- a/gerbview/CMakeLists.txt +++ b/gerbview/CMakeLists.txt @@ -26,15 +26,12 @@ set(GERBVIEW_SRCS onrightclick.cpp options.cpp pcbplot.cpp -# pcbtexte.cpp -# process_config.cpp readgerb.cpp reglage.cpp rs274d.cpp rs274x.cpp select_layers_to_pcb.cpp set_color.cpp -# struct.cpp <-- not used tool_gerber.cpp tracepcb.cpp trpiste.cpp ) diff --git a/gerbview/lay2plot.cpp b/gerbview/lay2plot.cpp index 2c19f51978..b0c5086a42 100644 --- a/gerbview/lay2plot.cpp +++ b/gerbview/lay2plot.cpp @@ -30,7 +30,7 @@ void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer) DisplayOpt.DisplayPcbTrackFill = FILLED; DisplayOpt.DisplayTrackIsol = 0; DisplayOpt.DisplayDrawItems = FILLED; - DisplayOpt.DisplayZones = 1; + DisplayOpt.DisplayZonesMode = 0; /* trace des pistes */ pt_piste = Pcb->m_Track; diff --git a/gerbview/struct.cpp.notused b/gerbview/struct.cpp.notused deleted file mode 100644 index e022c34a60..0000000000 --- a/gerbview/struct.cpp.notused +++ /dev/null @@ -1,97 +0,0 @@ - /***********************************************/ - /* Routines d'effacement et copie de structures*/ - /***********************************************/ - -#include "fctsys.h" - -#include "common.h" -#include "gerbview.h" - -/* Variables locales */ - - -#if 0 - -/***************************************************/ -void DeleteStructure( EDA_BaseStruct * PtStruct ) -/***************************************************/ -/* Supprime de la liste chainee la stucture pointee par GenericStructure - et libere la memoire correspondante -*/ -{ -EDA_BaseStruct *PtNext, *PtBack; -int IsDeleted; -wxString msg; - - if( PtStruct == NULL) return ; - - IsDeleted = PtStruct->GetState(DELETED); - - PtNext = PtStruct->Pnext; - PtBack = PtStruct->Pback; - - switch( PtStruct->Type() ) - { - case TYPE_NOT_INIT: - DisplayError(NULL, wxT("DeleteStruct: Type NOT_INIT")); - break; - - - case TYPEDRAWSEGMENT: - #undef Struct - #define Struct ((DRAWSEGMENT*)PtStruct) - Struct->UnLink(); - delete Struct; - break; - - case TYPETEXTE: - #undef Struct - #define Struct ((TEXTE_PCB*)PtStruct) - Struct->UnLink(); - delete Struct; - break; - - - case TYPEVIA: - case TYPETRACK: - case TYPEZONE: - #undef Struct - #define Struct ((TRACK*)PtStruct) - Struct->UnLink(); - delete Struct; - break; - - case TYPEMARQUEUR: - #undef Struct - #define Struct ((MARQUEUR*)PtStruct) - Struct->UnLink(); - delete Struct; - break; - - case TYPEPCB: - default: - msg.Printf( wxT("DeleteStructure: unexpected %d type"), - PtStruct->Type()); - DisplayError(NULL, msg); - break; - } -} - -/*************************************************/ -void DeleteStructList( EDA_BaseStruct * PtStruct ) -/*************************************************/ -/* Supprime la liste chainee pointee par PtStruct - et libere la memoire correspondante -*/ -{ -EDA_BaseStruct *PtNext; - while (PtStruct) - { - PtNext = PtStruct->Pnext; - delete PtStruct; - PtStruct = PtNext; - } -} - - -#endif diff --git a/gerbview/tracepcb.cpp b/gerbview/tracepcb.cpp index 99faf65e40..88d431f7cb 100644 --- a/gerbview/tracepcb.cpp +++ b/gerbview/tracepcb.cpp @@ -25,7 +25,8 @@ /************************************************************************************************************/ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmasklayer, bool aPrintMirrorMode ) /*************************************************************************************************************/ -/* routine de trace du pcb, avec selection des couches */ +/* Draw gerbview layers, for printing +*/ { DISPLAY_OPTIONS save_opt; int DisplayPolygonsModeImg; @@ -43,7 +44,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl DisplayOpt.DisplayPcbTrackFill = FILLED; DisplayOpt.DisplayTrackIsol = 0; DisplayOpt.DisplayDrawItems = FILLED; - DisplayOpt.DisplayZones = 1; + DisplayOpt.DisplayZonesMode = 0; DisplayPolygonsModeImg = g_DisplayPolygonsModeSketch; g_DisplayPolygonsModeSketch = 0; diff --git a/include/bitmaps.h b/include/bitmaps.h index ad6852098c..6dfbf5fde3 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -56,6 +56,8 @@ extern const char* break_line_xpm[]; extern const char* browse_files_xpm[]; extern const char* cancel_tool_xpm[]; extern const char* cancel_xpm[]; +extern const char* component_select_alternate_shape_xpm[]; +extern const char* component_select_unit_xpm[]; extern const char* config_xpm[]; extern const char* copyblock_xpm[]; extern const char* copy_button[]; @@ -333,6 +335,8 @@ extern const char* show_dcodenumber_xpm[]; extern const char* show_mod_edge_xpm[]; extern const char* showtrack_xpm[]; extern const char* show_zone_xpm[]; +extern const char* show_zone_disable_xpm[]; +extern const char* show_zone_outline_only_xpm[]; extern const char* swap_layer_xpm[]; extern const char* text_sketch_xpm[]; extern const char* tool_ratsnet_xpm[]; diff --git a/include/id.h b/include/id.h index 5f6e68ea13..9c3f53452a 100644 --- a/include/id.h +++ b/include/id.h @@ -822,6 +822,8 @@ enum main_id { ID_TB_OPTIONS_SHOW_MODULE_RATSNEST, ID_TB_OPTIONS_AUTO_DEL_TRACK, ID_TB_OPTIONS_SHOW_ZONES, + ID_TB_OPTIONS_SHOW_ZONES_DISABLE, + ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY, ID_TB_OPTIONS_HIDDEN_PINS, ID_TB_OPTIONS_BUS_WIRES_ORIENT, diff --git a/include/pcbstruct.h b/include/pcbstruct.h index d26e193149..77d2cd4550 100644 --- a/include/pcbstruct.h +++ b/include/pcbstruct.h @@ -285,7 +285,7 @@ public: * 2 show all via hole */ bool DisplayPolarCood; - bool DisplayZones; + int DisplayZonesMode; bool Show_Modules_Cmp; bool Show_Modules_Cu; diff --git a/internat/fr/kicad.mo b/internat/fr/kicad.mo index 8bda73bc40..c07a67c197 100644 Binary files a/internat/fr/kicad.mo and b/internat/fr/kicad.mo differ diff --git a/internat/fr/kicad.po b/internat/fr/kicad.po index 8d5760e243..ccb310d898 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: 2008-12-08 19:48+0100\n" -"PO-Revision-Date: 2008-12-08 19:49+0100\n" +"POT-Creation-Date: 2008-12-11 17:20+0100\n" +"PO-Revision-Date: 2008-12-11 18:52+0100\n" "Last-Translator: \n" "Language-Team: kicad team \n" "MIME-Version: 1.0\n" @@ -4418,7 +4418,7 @@ msgstr "Utiliser des polygones" #: pcbnew/dialog_copper_zones_base.cpp:40 msgid "Use segments" -msgstr "Utiliser des egments" +msgstr "Utiliser des segments" #: pcbnew/dialog_copper_zones_base.cpp:42 msgid "Filling Mode:" @@ -5628,44 +5628,44 @@ msgstr "Pas de composants trouvés" msgid "Selection" msgstr "Sélection" -#: eeschema/annotate.cpp:738 +#: eeschema/annotate.cpp:656 #, c-format msgid "item not annotated: %s%s" msgstr "item non numéroté: %s%s" -#: eeschema/annotate.cpp:743 +#: eeschema/annotate.cpp:661 #, c-format msgid "( unit %d)" msgstr "( Unité %d)" -#: eeschema/annotate.cpp:760 +#: eeschema/annotate.cpp:678 #, c-format msgid "Error item %s%s" msgstr "Erreur item %s%s" -#: eeschema/annotate.cpp:763 +#: eeschema/annotate.cpp:681 #, c-format msgid " unit %d and no more than %d parts" msgstr " unité %d et plus que %d parts" -#: eeschema/annotate.cpp:797 -#: eeschema/annotate.cpp:820 +#: eeschema/annotate.cpp:713 +#: eeschema/annotate.cpp:736 #, c-format msgid "Multiple item %s%s" msgstr "Multipleélément %s%s" -#: eeschema/annotate.cpp:802 -#: eeschema/annotate.cpp:825 +#: eeschema/annotate.cpp:718 +#: eeschema/annotate.cpp:741 #, c-format msgid " (unit %d)" msgstr " ( Unité %d)" -#: eeschema/annotate.cpp:843 +#: eeschema/annotate.cpp:757 #, c-format msgid "Diff values for %s%d.%c (%s) and %s%d.%c (%s)" msgstr "Valeurs différentes pour %s%d%c (%s) et %s%d%c (%s)" -#: eeschema/annotate.cpp:852 +#: eeschema/annotate.cpp:766 #, c-format msgid "Diff values for %s%d%c (%s) and %s%d%c (%s)" msgstr "Valeurs différentes pour %s%d%c (%s) et %s%d%c (%s)" @@ -6402,11 +6402,11 @@ msgstr "Ajout Composant" msgid "Add Wire" msgstr "Ajouter Fils" -#: eeschema/libarch.cpp:78 +#: eeschema/libarch.cpp:66 msgid "Failed to create archive lib file " msgstr "Impossible de créer le fichier librairie archive " -#: eeschema/libarch.cpp:85 +#: eeschema/libarch.cpp:73 msgid "Failed to create doc lib file " msgstr "Impossible de créer le fichier lib document" @@ -7086,16 +7086,16 @@ msgstr "Placer textes graphiques (commentaires)" msgid "HV orientation for Wires and Bus" msgstr "Force direction H, V et X pour les fils et bus" -#: eeschema/build_BOM.cpp:71 +#: eeschema/build_BOM.cpp:94 msgid "Bill of materials:" msgstr "Liste du materiel:" -#: eeschema/build_BOM.cpp:122 -#: eeschema/build_BOM.cpp:177 +#: eeschema/build_BOM.cpp:143 +#: eeschema/build_BOM.cpp:182 msgid "Failed to open file " msgstr "Erreur ouverture " -#: eeschema/build_BOM.cpp:248 +#: eeschema/build_BOM.cpp:226 #, c-format msgid "" "\n" @@ -7104,7 +7104,7 @@ msgstr "" "\n" "#Labels globaux, hiérarchiques et pins de feuille ( ordre = Numéro de feuille ) nombre = %d\n" -#: eeschema/build_BOM.cpp:261 +#: eeschema/build_BOM.cpp:237 #, c-format msgid "" "\n" @@ -7115,7 +7115,7 @@ msgstr "" "##Labels globaux, hiérarchiques et pins de feuille ( ordre = Alphab. ) nombre = %d\n" "\n" -#: eeschema/build_BOM.cpp:269 +#: eeschema/build_BOM.cpp:244 msgid "" "\n" "#End List\n" @@ -7123,11 +7123,11 @@ msgstr "" "\n" "#End List\n" -#: eeschema/build_BOM.cpp:694 +#: eeschema/build_BOM.cpp:619 msgid "Field" msgstr "Champ" -#: eeschema/build_BOM.cpp:702 +#: eeschema/build_BOM.cpp:627 msgid "" "\n" "#Cmp ( order = Reference )" @@ -7135,17 +7135,17 @@ msgstr "" "\n" "#Cmp ( ordre = Reference )" -#: eeschema/build_BOM.cpp:705 -#: eeschema/build_BOM.cpp:796 +#: eeschema/build_BOM.cpp:630 +#: eeschema/build_BOM.cpp:726 msgid " (with SubCmp)" msgstr "avec sub-composants" -#: eeschema/build_BOM.cpp:771 -#: eeschema/build_BOM.cpp:849 +#: eeschema/build_BOM.cpp:700 +#: eeschema/build_BOM.cpp:781 msgid "#End Cmp\n" msgstr "#End Cmp\n" -#: eeschema/build_BOM.cpp:793 +#: eeschema/build_BOM.cpp:723 msgid "" "\n" "#Cmp ( order = Value )" @@ -7153,17 +7153,17 @@ msgstr "" "\n" "#Cmp ( ordre = Valeur )" -#: eeschema/build_BOM.cpp:883 +#: eeschema/build_BOM.cpp:811 #, c-format msgid "> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f\n" msgstr "> %-28.28s %s (Feuille %s) pos: %3.3f, %3.3f\n" -#: eeschema/build_BOM.cpp:903 +#: eeschema/build_BOM.cpp:831 #, c-format msgid "> %-28.28s PinSheet %-7.7s (Sheet %s) pos: %3.3f, %3.3f\n" msgstr "> %-28.28s PinSheet %-7.7s (Feuille %s) pos: %3.3f, %3.3f\n" -#: eeschema/build_BOM.cpp:918 +#: eeschema/build_BOM.cpp:846 msgid "#End labels\n" msgstr "#End labels\n" @@ -7481,7 +7481,7 @@ msgstr "Placer lignes ou polygones graphiques" #: eeschema/menubar.cpp:348 msgid "Graphic text (comment)" -msgstr "Ttextes graphiques (commentaires)" +msgstr "Textes graphiques (commentaires)" #: eeschema/menubar.cpp:359 msgid "Library preferences" @@ -8332,29 +8332,29 @@ msgstr "Fichier <%s> non trouvé" msgid "Ok to cleanup this sheet" msgstr "Ok pour nettoyer cette feuille" -#: eeschema/class_drawsheet.cpp:566 +#: eeschema/class_drawsheet.cpp:563 #, c-format msgid "A Sub Hierarchy named %s exists, Use it (The data in this sheet will be replaced)?" msgstr "Une sous Hiérarchie nommée %s existe, L'utiliser (Les données de cette page seront remplacées)?" -#: eeschema/class_drawsheet.cpp:570 +#: eeschema/class_drawsheet.cpp:567 msgid "Sheet Filename Renaming Aborted" msgstr " Renommage de Fichier de Feuille Abandonné" -#: eeschema/class_drawsheet.cpp:578 +#: eeschema/class_drawsheet.cpp:575 #, c-format msgid "A file named %s exists, load it (otherwise keep current sheet data if possible)?" msgstr "Un fichier %s existe, Le charger (autrement garder le contenu de la feuille active, si c'est possible) ?" -#: eeschema/class_drawsheet.cpp:596 +#: eeschema/class_drawsheet.cpp:593 msgid "This sheet uses shared data in a complex hierarchy" msgstr "Cette feuille utilise des données partagées dans une hiérarchie complexe" -#: eeschema/class_drawsheet.cpp:599 +#: eeschema/class_drawsheet.cpp:596 msgid "Do we convert it in a simple hierarchical sheet (otherwise delete current sheet data)" msgstr "Doit on la convertir en une feuille de hiérarchie simple (autrement supprimer les données courantes)" -#: eeschema/class_drawsheet.cpp:758 +#: eeschema/class_drawsheet.cpp:755 #, c-format msgid "%8.8lX/" msgstr "%8.8lX/" diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 971460385b..9f99fd1eea 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -539,7 +539,7 @@ void TRACK::Draw( WinEDA_DrawPanel* panel, wxDC* DC, int draw_mode, const wxPoin int rayon; int curr_layer = ( (PCB_SCREEN*) panel->GetScreen() )->m_Active_Layer; - if( Type() == TYPE_ZONE && !DisplayOpt.DisplayZones ) + if( Type() == TYPE_ZONE && DisplayOpt.DisplayZonesMode != 0 ) return; if( m_Flags & DRAW_ERASED ) // draw in background color, used by classs TRACK in gerbview diff --git a/pcbnew/class_zone.cpp b/pcbnew/class_zone.cpp index c99bd02a0c..871f26633d 100644 --- a/pcbnew/class_zone.cpp +++ b/pcbnew/class_zone.cpp @@ -154,7 +154,7 @@ bool ZONE_CONTAINER::Save( FILE* aFile ) const return false; ret = fprintf( aFile, "ZOptions %d %d %c %d %d\n", m_FillMode, m_ArcToSegmentsCount, - m_DrawOptions ? 'S' : 'F', m_ThermalReliefGapValue, m_ThermalReliefCopperBridgeValue ); + m_Unused ? 'S' : 'F', m_ThermalReliefGapValue, m_ThermalReliefCopperBridgeValue ); if( ret < 3 ) return false; @@ -301,8 +301,7 @@ int ZONE_CONTAINER::ReadDescr( FILE* aFile, int* aLineNum ) if( arcsegmentcount >= 32 ) m_ArcToSegmentsCount = 32; - if( drawopt == 'S' ) // Sketch mode for filled areas in this zone selected - m_DrawOptions = 1; + m_Unused = 0; // Waiting for a better use } if( strnicmp( Line, "ZClearance", 10 ) == 0 ) // Clearence and pad options info found { @@ -486,13 +485,14 @@ void ZONE_CONTAINER::DrawFilledArea( WinEDA_DrawPanel* panel, { static vector < char > CornersTypeBuffer; static vector < corner_coord > CornersBuffer; - - bool outline_mode = m_DrawOptions; // false to show filled polys, true to show polygons outlines only (test and debug purposes) + // outline_mode is false to show filled polys, + // and true to show polygons outlines only (test and debug purposes) + bool outline_mode = DisplayOpt.DisplayZonesMode == 2 ? true : false; if( DC == NULL ) return; - if( !DisplayOpt.DisplayZones ) + if( DisplayOpt.DisplayZonesMode == 1 ) // Do not show filled areas return; if( m_FilledPolysList.size() == 0 ) // Nothing to draw diff --git a/pcbnew/class_zone.h b/pcbnew/class_zone.h index a31259b0bf..a8dbfe9fcd 100644 --- a/pcbnew/class_zone.h +++ b/pcbnew/class_zone.h @@ -39,9 +39,7 @@ public: * In less simple cases (when m_Poly has holes) m_FilledPolysList is a polygon equivalent to m_Poly, without holes * In complex cases an ouline decribed by m_Poly can have many filled areas */ - int m_DrawOptions; /* used to pass some draw options (draw filled areas in sketch mode for instance ...) - * currently useful when testing filling zones algos - */ + int m_Unused; /* waiting for use */ private: int m_NetCode; // Net number for fast comparisons diff --git a/pcbnew/class_zone_setting.cpp b/pcbnew/class_zone_setting.cpp index 36a86ae01c..6a94b382ae 100644 --- a/pcbnew/class_zone_setting.cpp +++ b/pcbnew/class_zone_setting.cpp @@ -24,15 +24,15 @@ ZONE_SETTING::ZONE_SETTING( void ) { - m_FillMode = 1; // Mode for filling zone : 1 use segments, 0 use polygons - m_ZoneClearance = 200; // Clearance value - m_ZoneMinThickness = 100; // Min thickness value in filled areas - m_NetcodeSelection = 0; // Net code selection for the current zone - m_CurrentZone_Layer = 0; // Layer used to create the current zone - m_Zone_HatchingStyle = CPolyLine::DIAGONAL_EDGE; // Option to show the zone area (outlines only, short hatches or full hatches - m_ArcToSegmentsCount = 16; /* Option to select number of segments to approximate a circle + m_FillMode = 1; // Mode for filling zone : 1 use segments, 0 use polygons + m_ZoneClearance = 200; // Clearance value + m_ZoneMinThickness = 100; // Min thickness value in filled areas + m_NetcodeSelection = 0; // Net code selection for the current zone + m_CurrentZone_Layer = 0; // Layer used to create the current zone + m_Zone_HatchingStyle = CPolyLine::DIAGONAL_EDGE; // Option to show the zone area (outlines only, short hatches or full hatches + m_ArcToSegmentsCount = 16; /* Option to select number of segments to approximate a circle * 16 or 32 segments */ - m_FilledAreasShowMode = 0; // Used to select draw options for filled areas in a zone (currently normal =0, sketch = 1) + m_Unused = 0; m_ThermalReliefGapValue = 200; // tickness of the gap in thermal reliefs m_ThermalReliefCopperBridgeValue = 200; // tickness of the copper bridge in thermal reliefs @@ -46,14 +46,14 @@ ZONE_SETTING::ZONE_SETTING( void ) */ void ZONE_SETTING::ImportSetting( const ZONE_CONTAINER& aSource ) { - m_FillMode = aSource.m_FillMode; - m_ZoneClearance = aSource.m_ZoneClearance; - m_ZoneMinThickness = aSource.m_ZoneMinThickness; - m_NetcodeSelection = aSource.GetNet(); - m_CurrentZone_Layer = aSource.GetLayer(); - m_Zone_HatchingStyle = aSource.GetHatchStyle(); - m_ArcToSegmentsCount = aSource.m_ArcToSegmentsCount; - m_FilledAreasShowMode = aSource.m_DrawOptions; + m_FillMode = aSource.m_FillMode; + m_ZoneClearance = aSource.m_ZoneClearance; + m_ZoneMinThickness = aSource.m_ZoneMinThickness; + m_NetcodeSelection = aSource.GetNet(); + m_CurrentZone_Layer = aSource.GetLayer(); + m_Zone_HatchingStyle = aSource.GetHatchStyle(); + m_ArcToSegmentsCount = aSource.m_ArcToSegmentsCount; + m_Unused = aSource.m_Unused; m_ThermalReliefGapValue = aSource.m_ThermalReliefGapValue; m_ThermalReliefCopperBridgeValue = aSource.m_ThermalReliefCopperBridgeValue; m_Zone_Pad_Options = aSource.m_PadOption; @@ -71,15 +71,15 @@ void ZONE_SETTING::ImportSetting( const ZONE_CONTAINER& aSource ) void ZONE_SETTING::ExportSetting( ZONE_CONTAINER& aTarget, bool aFullExport ) { aTarget.m_FillMode = m_FillMode; - aTarget.m_ZoneClearance = m_ZoneClearance; + aTarget.m_ZoneClearance = m_ZoneClearance; aTarget.m_ZoneMinThickness = m_ZoneMinThickness; aTarget.m_Poly->SetHatch( m_Zone_HatchingStyle ); aTarget.m_ArcToSegmentsCount = m_ArcToSegmentsCount; - aTarget.m_DrawOptions = m_FilledAreasShowMode; + aTarget.m_Unused = m_Unused; aTarget.m_ThermalReliefGapValue = m_ThermalReliefGapValue; aTarget.m_ThermalReliefCopperBridgeValue = m_ThermalReliefCopperBridgeValue; aTarget.m_PadOption = m_Zone_Pad_Options; - if ( aFullExport ) + if( aFullExport ) { aTarget.SetNet( m_NetcodeSelection ); aTarget.SetLayer( m_CurrentZone_Layer ); diff --git a/pcbnew/class_zone_setting.h b/pcbnew/class_zone_setting.h index 616757d8a0..bf039f67bd 100644 --- a/pcbnew/class_zone_setting.h +++ b/pcbnew/class_zone_setting.h @@ -25,7 +25,7 @@ public: int m_Zone_HatchingStyle; // Option to show the zone area (outlines only, short hatches or full hatches int m_ArcToSegmentsCount; /* Option to select number of segments to approximate a circle * 16 or 32 segments */ - int m_FilledAreasShowMode; // Used to select draw options for filled areas in a zone (currently normal =0, sketch = 1) + int m_Unused; // waiting for a better use long m_ThermalReliefGapValue; // tickness of the gap in thermal reliefs long m_ThermalReliefCopperBridgeValue; // tickness of the copper bridge in thermal reliefs int m_Zone_Pad_Options; // How pads are covered by copper in zone diff --git a/pcbnew/classpcb.cpp b/pcbnew/classpcb.cpp index 7b6364d77b..64d108564a 100644 --- a/pcbnew/classpcb.cpp +++ b/pcbnew/classpcb.cpp @@ -121,7 +121,9 @@ DISPLAY_OPTIONS::DISPLAY_OPTIONS() m_DisplayViaMode = VIA_HOLE_NOT_SHOW; DisplayPolarCood = TRUE; - DisplayZones = TRUE; + DisplayZonesMode = 0; // 0 = Show filled areas outlines in zones, + // 1 = do not show filled areas outlines + // 2 = show outlines of filled areas Show_Modules_Cmp = TRUE; Show_Modules_Cu = TRUE; diff --git a/pcbnew/controle.cpp b/pcbnew/controle.cpp index 34b8332247..5965fb6316 100644 --- a/pcbnew/controle.cpp +++ b/pcbnew/controle.cpp @@ -86,7 +86,7 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode ) break; default: - scanList = DisplayOpt.DisplayZones ? + scanList = DisplayOpt.DisplayZonesMode == 0 ? GENERAL_COLLECTOR::AllBoardItems : GENERAL_COLLECTOR::AllButZones; break; @@ -109,7 +109,7 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay( int aHotKeyCode ) break; default: - scanList = DisplayOpt.DisplayZones ? + scanList = DisplayOpt.DisplayZonesMode == 0 ? GENERAL_COLLECTOR::AllBoardItems : GENERAL_COLLECTOR::AllButZones; } diff --git a/pcbnew/dialog_copper_zones.cpp b/pcbnew/dialog_copper_zones.cpp index f83e754b8d..61f27f818f 100644 --- a/pcbnew/dialog_copper_zones.cpp +++ b/pcbnew/dialog_copper_zones.cpp @@ -98,9 +98,6 @@ void dialog_copper_zone::OnInitDialog( wxInitDialogEvent& event ) break; } - if( m_Zone_Setting->m_FilledAreasShowMode == 1 ) - m_ShowFilledAreasInSketchOpt->SetValue( true ); - if( m_Zone_Setting->m_Zone_Pad_Options != THERMAL_PAD ) { @@ -294,8 +291,6 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab else g_Zone_45_Only = TRUE; - m_Zone_Setting->m_FilledAreasShowMode = m_ShowFilledAreasInSketchOpt->IsChecked() ? 1 : 0; - m_Zone_Setting->m_ThermalReliefGapValue = ReturnValueFromTextCtrl( *m_AntipadSizeValue, PCB_INTERNAL_UNIT ); m_Zone_Setting->m_ThermalReliefCopperBridgeValue = ReturnValueFromTextCtrl( diff --git a/pcbnew/dialog_copper_zones_base.cpp b/pcbnew/dialog_copper_zones_base.cpp index d909e30fe0..7744635117 100644 --- a/pcbnew/dialog_copper_zones_base.cpp +++ b/pcbnew/dialog_copper_zones_base.cpp @@ -115,12 +115,6 @@ dialog_copper_zone_base::dialog_copper_zone_base( wxWindow* parent, wxWindowID i wxStaticBoxSizer* m_OthersOptionsSizer; m_OthersOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Others Options:") ), wxVERTICAL ); - m_ShowFilledAreasInSketchOpt = new wxCheckBox( this, wxID_ANY, _("Show filled areas in sketch mode"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_ShowFilledAreasInSketchOpt->SetToolTip( _("If enabled, filled areas in is this zone will be displayed as non filled polygons.\nIf disabled, filled areas in is this zone will be displayed as \"solid\" areas (normal mode).") ); - - m_OthersOptionsSizer->Add( m_ShowFilledAreasInSketchOpt, 0, wxALL, 5 ); - m_ClearanceValueTitle = new wxStaticText( this, wxID_ANY, _("Zone clearance value"), wxDefaultPosition, wxDefaultSize, 0 ); m_ClearanceValueTitle->Wrap( -1 ); m_OthersOptionsSizer->Add( m_ClearanceValueTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); @@ -154,15 +148,20 @@ dialog_copper_zone_base::dialog_copper_zone_base( wxWindow* parent, wxWindowID i m_RightBoxSizer = new wxBoxSizer( wxVERTICAL ); m_ExportSetupButton = new wxButton( this, wxID_BUTTON_EXPORT, _("Export Setup to others zones"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ExportSetupButton->SetForegroundColour( wxColour( 51, 111, 40 ) ); m_ExportSetupButton->SetToolTip( _("Export this zone setup to all others copper zones") ); m_RightBoxSizer->Add( m_ExportSetupButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_OkButton = new wxButton( this, wxID_OK, _("Ok"), wxDefaultPosition, wxDefaultSize, 0 ); m_OkButton->SetDefault(); + m_OkButton->SetForegroundColour( wxColour( 140, 49, 47 ) ); + m_RightBoxSizer->Add( m_OkButton, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); m_ButtonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); + m_ButtonCancel->SetForegroundColour( wxColour( 45, 38, 155 ) ); + m_RightBoxSizer->Add( m_ButtonCancel, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 ); diff --git a/pcbnew/dialog_copper_zones_base.fbp b/pcbnew/dialog_copper_zones_base.fbp index 5e56121785..52b9824036 100644 --- a/pcbnew/dialog_copper_zones_base.fbp +++ b/pcbnew/dialog_copper_zones_base.fbp @@ -669,58 +669,6 @@ wxVERTICAL none - - 5 - wxALL - 0 - - - 0 - - 1 - - - 0 - wxID_ANY - Show filled areas in sketch mode - - - m_ShowFilledAreasInSketchOpt - protected - - - - - If enabled, filled areas in is this zone will be displayed as non filled polygons. If disabled, filled areas in is this zone will be displayed as "solid" areas (normal mode). - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 wxTOP|wxRIGHT|wxLEFT @@ -971,7 +919,7 @@ 0 1 - + 51,111,40 0 wxID_BUTTON_EXPORT @@ -1023,7 +971,7 @@ 1 1 - + 140,49,47 0 wxID_OK @@ -1075,7 +1023,7 @@ 0 1 - + 45,38,155 0 wxID_CANCEL diff --git a/pcbnew/dialog_copper_zones_base.h b/pcbnew/dialog_copper_zones_base.h index f481fc9a9f..75f1bd2347 100644 --- a/pcbnew/dialog_copper_zones_base.h +++ b/pcbnew/dialog_copper_zones_base.h @@ -20,7 +20,6 @@ #include #include #include -#include #include #include #include @@ -70,7 +69,6 @@ class dialog_copper_zone_base : public wxDialog wxRadioBox* m_OrientEdgesOpt; wxRadioBox* m_OutlineAppearanceCtrl; - wxCheckBox* m_ShowFilledAreasInSketchOpt; wxStaticText* m_ClearanceValueTitle; wxTextCtrl* m_ZoneClearanceCtrl; wxStaticText* m_MinThicknessValueTitle; diff --git a/pcbnew/dialog_general_options.cpp b/pcbnew/dialog_general_options.cpp index 22e56175fa..5a6d0080b3 100644 --- a/pcbnew/dialog_general_options.cpp +++ b/pcbnew/dialog_general_options.cpp @@ -51,10 +51,6 @@ void WinEDA_PcbFrame::OnSelectOptionToolbar( wxCommandEvent& event ) { int id = event.GetId(); - wxClientDC dc( DrawPanel ); - - DrawPanel->CursorOff( &dc ); - DrawPanel->PrepareGraphicContext( &dc ); switch( id ) { @@ -64,12 +60,16 @@ void WinEDA_PcbFrame::OnSelectOptionToolbar( wxCommandEvent& event ) case ID_TB_OPTIONS_SHOW_GRID: m_Draw_Grid = g_ShowGrid = m_OptionsToolBar->GetToolState( id ); - DrawPanel->ReDraw( &dc, TRUE ); + DrawPanel->Refresh( ); break; case ID_TB_OPTIONS_SHOW_RATSNEST: g_Show_Ratsnest = m_OptionsToolBar->GetToolState( id ); + { + wxClientDC dc( DrawPanel ); + DrawPanel->PrepareGraphicContext( &dc ); Ratsnest_On_Off( &dc ); + } break; case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST: @@ -103,26 +103,36 @@ void WinEDA_PcbFrame::OnSelectOptionToolbar( wxCommandEvent& event ) break; case ID_TB_OPTIONS_SHOW_ZONES: - DisplayOpt.DisplayZones = m_OptionsToolBar->GetToolState( id ); - DrawPanel->ReDraw( &dc, TRUE ); + DisplayOpt.DisplayZonesMode = 0; + DrawPanel->Refresh( ); + break; + + case ID_TB_OPTIONS_SHOW_ZONES_DISABLE: + DisplayOpt.DisplayZonesMode = 1; + DrawPanel->Refresh( ); + break; + + case ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY: + DisplayOpt.DisplayZonesMode = 2; + DrawPanel->Refresh( ); break; case ID_TB_OPTIONS_SHOW_PADS_SKETCH: m_DisplayPadFill = DisplayOpt.DisplayPadFill = !m_OptionsToolBar->GetToolState( id ); - DrawPanel->ReDraw( &dc, TRUE ); + DrawPanel->Refresh( ); break; case ID_TB_OPTIONS_SHOW_TRACKS_SKETCH: m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = !m_OptionsToolBar->GetToolState( id ); - DrawPanel->ReDraw( &dc, TRUE ); + DrawPanel->Refresh( ); break; case ID_TB_OPTIONS_SHOW_HIGHT_CONTRAST_MODE: DisplayOpt.ContrastModeDisplay = m_OptionsToolBar->GetToolState( id ); - DrawPanel->ReDraw( &dc, TRUE ); + DrawPanel->Refresh( ); break; case ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR1: @@ -147,7 +157,6 @@ void WinEDA_PcbFrame::OnSelectOptionToolbar( wxCommandEvent& event ) } SetToolbars(); - DrawPanel->CursorOn( &dc ); } diff --git a/pcbnew/edit.cpp b/pcbnew/edit.cpp index 067582c454..6908afbd54 100644 --- a/pcbnew/edit.cpp +++ b/pcbnew/edit.cpp @@ -265,7 +265,7 @@ void WinEDA_PcbFrame::Process_Special_Functions( wxCommandEvent& event ) case ID_PCB_ZONES_BUTT: SetToolID( id, wxCURSOR_PENCIL, _( "Add Zones" ) ); - if( !DisplayOpt.DisplayZones ) + if( DisplayOpt.DisplayZonesMode != 0 ) DisplayInfo( this, _( "Warning: Display Zone is OFF!!!" ) ); if( !g_HightLigt_Status && (g_HightLigth_NetCode > 0 ) ) Hight_Light( &dc ); diff --git a/pcbnew/lay2plot.cpp b/pcbnew/lay2plot.cpp index e56016dcc8..c25650419b 100644 --- a/pcbnew/lay2plot.cpp +++ b/pcbnew/lay2plot.cpp @@ -49,7 +49,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* DC, bool Print_Sheet_Ref, int printmaskl frame->m_DisplayPcbTrackFill = DisplayOpt.DisplayPcbTrackFill = FILLED; DisplayOpt.DisplayTrackIsol = FALSE; DisplayOpt.DisplayDrawItems = FILLED; - DisplayOpt.DisplayZones = TRUE; + DisplayOpt.DisplayZonesMode = 0; m_PrintIsMirrored = aPrintMirrorMode; diff --git a/pcbnew/pcbframe.cpp b/pcbnew/pcbframe.cpp index f55b43d039..7721b1a5e8 100644 --- a/pcbnew/pcbframe.cpp +++ b/pcbnew/pcbframe.cpp @@ -449,15 +449,9 @@ void WinEDA_PcbFrame::SetToolbars() _( "Disable Auto Delete old Track" ) : _( "Enable Auto Delete old Track" ) ); - m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_SHOW_ZONES, - DisplayOpt.DisplayZones ); - - m_OptionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_ZONES, - DisplayOpt.DisplayZones ? - _( "Do not Show Zones" ) : _( "Show Zones" ) ); - m_OptionsToolBar->ToggleTool( ID_TB_OPTIONS_SHOW_PADS_SKETCH, !m_DisplayPadFill ); + m_OptionsToolBar->SetToolShortHelp( ID_TB_OPTIONS_SHOW_PADS_SKETCH, m_DisplayPadFill ? _( "Show Pads Sketch mode" ) : diff --git a/pcbnew/set_color.h b/pcbnew/set_color.h index 8b74acf611..d822010c71 100644 --- a/pcbnew/set_color.h +++ b/pcbnew/set_color.h @@ -418,15 +418,6 @@ static ColorButton Grid_Butt = &g_ShowGrid // Address of boolean display control parameter to toggle }; -static ColorButton Show_Zones_Butt = -{ - _( "Show Zones" ), // Title - -1, - NULL, // Address of optional parameter - FALSE, - &DisplayOpt.DisplayZones // Address of boolean display control parameter to toggle -}; - static ColorButton Show_Pads_Noconnect_Butt = { _( "Show Noconnect" ), // Title @@ -502,7 +493,6 @@ static ColorButton* laytool_list[] = { &Anchors_Butt, &Grid_Butt, - &Show_Zones_Butt, &Show_Pads_Noconnect_Butt, &Show_Modules_Cmp_Butt, &Show_Modules_Cu_Butt, diff --git a/pcbnew/tool_pcb.cpp b/pcbnew/tool_pcb.cpp index 86950b3e65..fcf4acc6ae 100644 --- a/pcbnew/tool_pcb.cpp +++ b/pcbnew/tool_pcb.cpp @@ -369,9 +369,15 @@ void WinEDA_PcbFrame::ReCreateOptToolbar() _( "Enable Auto Del Track" ), wxITEM_CHECK ); m_OptionsToolBar->AddSeparator(); - m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_ZONES, wxEmptyString, - wxBitmap( show_zone_xpm ), - _( "Show Zones" ), wxITEM_CHECK ); + m_OptionsToolBar->AddRadioTool( ID_TB_OPTIONS_SHOW_ZONES, wxEmptyString, + wxBitmap( show_zone_xpm ), wxNullBitmap, + _( "Show filled areas in zones" ) ); + m_OptionsToolBar->AddRadioTool( ID_TB_OPTIONS_SHOW_ZONES_DISABLE, wxEmptyString, + wxBitmap( show_zone_disable_xpm ), wxNullBitmap, + _( "Do not show filled areas in zones" )); + m_OptionsToolBar->AddRadioTool( ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY, wxEmptyString, + wxBitmap( show_zone_outline_only_xpm ), wxNullBitmap, + _( "Show outlines of filled areas only in zones" ) ); m_OptionsToolBar->AddSeparator(); m_OptionsToolBar->AddTool( ID_TB_OPTIONS_SHOW_PADS_SKETCH, wxEmptyString,