cleanup, cosmetic enhancements. enhancements about display zones options

This commit is contained in:
charras 2008-12-12 21:30:07 +00:00
parent f21e24f2fb
commit 9dae370c1f
35 changed files with 410 additions and 289 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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\

View File

@ -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 <OBJ_CMP_TO_LIST>& 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).
*/

View File

@ -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 <EDA_LibComponentStruct*> 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()

View File

@ -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,

View File

@ -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 )

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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[];

View File

@ -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,

View File

@ -285,7 +285,7 @@ public:
* 2 show all via hole */
bool DisplayPolarCood;
bool DisplayZones;
int DisplayZonesMode;
bool Show_Modules_Cmp;
bool Show_Modules_Cu;

Binary file not shown.

View File

@ -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 <jean-pierre.charras@ujf-grenoble.fr>\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/"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 );

View File

@ -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

View File

@ -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;

View File

@ -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;
}

View File

@ -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(

View File

@ -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 );

View File

@ -669,58 +669,6 @@
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<event name="OnUpdateUI"></event>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxCheckBox" expanded="1">
<property name="bg"></property>
<property name="checked">0</property>
<property name="context_help"></property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Show filled areas in sketch mode</property>
<property name="maximum_size"></property>
<property name="minimum_size"></property>
<property name="name">m_ShowFilledAreasInSketchOpt</property>
<property name="permission">protected</property>
<property name="pos"></property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="tooltip">If enabled, filled areas in is this zone will be displayed as non filled polygons.&#x0A;If disabled, filled areas in is this zone will be displayed as &quot;solid&quot; areas (normal mode).</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnCheckBox"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
@ -971,7 +919,7 @@
<property name="context_help"></property>
<property name="default">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="fg">51,111,40</property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_BUTTON_EXPORT</property>
@ -1023,7 +971,7 @@
<property name="context_help"></property>
<property name="default">1</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="fg">140,49,47</property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_OK</property>
@ -1075,7 +1023,7 @@
<property name="context_help"></property>
<property name="default">0</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="fg">45,38,155</property>
<property name="font"></property>
<property name="hidden">0</property>
<property name="id">wxID_CANCEL</property>

View File

@ -20,7 +20,6 @@
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/checkbox.h>
#include <wx/button.h>
#include <wx/listbox.h>
#include <wx/dialog.h>
@ -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;

View File

@ -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 );
}

View File

@ -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 );

View File

@ -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;

View File

@ -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" ) :

View File

@ -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,

View File

@ -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,