bug fixes and merging my development with svn rep.
This commit is contained in:
parent
13f2e75bfa
commit
89b3eb5aa5
|
@ -4,6 +4,23 @@ Started 2007-June-11
|
||||||
Please add newer entries at the top, list the date and your name with
|
Please add newer entries at the top, list the date and your name with
|
||||||
email address.
|
email address.
|
||||||
|
|
||||||
|
2007-June-13 RELEASE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
|
||||||
|
================================================================================
|
||||||
|
+All:
|
||||||
|
merging my development with svn version
|
||||||
|
|
||||||
|
+ pcbnew:
|
||||||
|
bug fix (problem in postscript generation due to the internationalization
|
||||||
|
of floating point number notation )
|
||||||
|
added tool to select layer pair and monitor active layer
|
||||||
|
|
||||||
|
+ eeschema
|
||||||
|
bug fix:
|
||||||
|
crash libedit when loading certain components (linux only)
|
||||||
|
incomplete generation of erc file list
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2007-June-13 UPDATE Richard A Burton <richardaburton@gmail.com>
|
2007-June-13 UPDATE Richard A Burton <richardaburton@gmail.com>
|
||||||
================================================================================
|
================================================================================
|
||||||
+ build:
|
+ build:
|
||||||
|
|
|
@ -117,14 +117,20 @@ bool success = FALSE;
|
||||||
fullfilename.Replace(WIN_STRING_DIR_SEP, UNIX_STRING_DIR_SEP);
|
fullfilename.Replace(WIN_STRING_DIR_SEP, UNIX_STRING_DIR_SEP);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
wxString mask(wxT("*")), extension;
|
||||||
|
#ifdef __WINDOWS__
|
||||||
|
mask += wxT(".*");
|
||||||
|
extension = wxT(".*");
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( wxIsWild(fullfilename) )
|
if ( wxIsWild(fullfilename) )
|
||||||
{
|
{
|
||||||
fullfilename =
|
fullfilename =
|
||||||
EDA_FileSelector(_("Doc Files"), /* Titre de la fenetre */
|
EDA_FileSelector(_("Doc Files"), /* Titre de la fenetre */
|
||||||
wxPathOnly(fullfilename), /* Chemin par defaut */
|
wxPathOnly(fullfilename), /* Chemin par defaut */
|
||||||
fullfilename, /* nom fichier par defaut */
|
fullfilename, /* nom fichier par defaut */
|
||||||
wxEmptyString, /* extension par defaut */
|
extension, /* extension par defaut */
|
||||||
wxEmptyString, /* Masque d'affichage */
|
mask, /* Masque d'affichage */
|
||||||
frame, /* parent frame */
|
frame, /* parent frame */
|
||||||
wxFD_OPEN, /* wxSAVE, wxFD_OPEN ..*/
|
wxFD_OPEN, /* wxSAVE, wxFD_OPEN ..*/
|
||||||
TRUE, /* true = ne change pas le repertoire courant */
|
TRUE, /* true = ne change pas le repertoire courant */
|
||||||
|
|
|
@ -77,9 +77,6 @@ WinEDA_App::WinEDA_App(void)
|
||||||
m_Locale = NULL;
|
m_Locale = NULL;
|
||||||
|
|
||||||
m_PdfBrowserIsDefault = TRUE;
|
m_PdfBrowserIsDefault = TRUE;
|
||||||
|
|
||||||
/* Init de variables globales d'interet general: */
|
|
||||||
g_FloatSeparator = '.'; // Nombres flottants = 0.1 par exemple
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************/
|
/*****************************/
|
||||||
|
@ -161,9 +158,6 @@ bool succes = SetLanguage(TRUE);
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( atof("0,1") ) g_FloatSeparator = ','; // Nombres flottants = 0,1
|
|
||||||
else g_FloatSeparator = '.';
|
|
||||||
|
|
||||||
#ifdef KICAD_PYTHON
|
#ifdef KICAD_PYTHON
|
||||||
PyHandler::GetInstance()->SetAppName( name );
|
PyHandler::GetInstance()->SetAppName( name );
|
||||||
#endif
|
#endif
|
||||||
|
@ -380,9 +374,6 @@ wxString dic_path;
|
||||||
SetLanguageList(NULL);
|
SetLanguageList(NULL);
|
||||||
|
|
||||||
|
|
||||||
if ( atof("0,1") ) g_FloatSeparator = ','; // Nombres flottants = 0,1
|
|
||||||
else g_FloatSeparator = '.';
|
|
||||||
|
|
||||||
return m_Locale->IsOk();
|
return m_Locale->IsOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ static wxString s_HelpPathList[] = {
|
||||||
wxT("d:/kicad/help/"),
|
wxT("d:/kicad/help/"),
|
||||||
#else
|
#else
|
||||||
wxT("/usr/local/kicad/help/"),
|
wxT("/usr/local/kicad/help/"),
|
||||||
|
wxT("/usr/share/doc/kicad/help"),
|
||||||
wxT("/usr/share/doc/kicad/"),
|
wxT("/usr/share/doc/kicad/"),
|
||||||
#endif
|
#endif
|
||||||
wxT("end_list") // End of list symbol, do not change
|
wxT("end_list") // End of list symbol, do not change
|
||||||
|
|
|
@ -289,7 +289,7 @@ void ChangeSpaces(char * Text, int NewChar)
|
||||||
char * to_point(char * Text)
|
char * to_point(char * Text)
|
||||||
/**************************/
|
/**************************/
|
||||||
/* convertit les , en . dans une chaine. utilisé pour compenser
|
/* convertit les , en . dans une chaine. utilisé pour compenser
|
||||||
l'internalisation imbecile de la fct printf
|
l'internalisationde la fct printf
|
||||||
qui genere les flottants avec une virgule au lieu du point
|
qui genere les flottants avec une virgule au lieu du point
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
@ -297,7 +297,9 @@ char * line = Text;
|
||||||
|
|
||||||
if ( Text == NULL ) return NULL;
|
if ( Text == NULL ) return NULL;
|
||||||
for ( ; *Text != 0; Text++ )
|
for ( ; *Text != 0; Text++ )
|
||||||
if (*Text == g_FloatSeparator) *Text = '.';
|
{
|
||||||
|
if (*Text == ',') *Text = '.';
|
||||||
|
}
|
||||||
|
|
||||||
return line;
|
return line;
|
||||||
}
|
}
|
||||||
|
|
1150
eeschema/eelibs1.cpp
1150
eeschema/eelibs1.cpp
File diff suppressed because it is too large
Load Diff
|
@ -1,974 +0,0 @@
|
||||||
/********************************************************/
|
|
||||||
/* Module to handle libraries (second part - drawing ). */
|
|
||||||
/********************************************************/
|
|
||||||
|
|
||||||
#include "fctsys.h"
|
|
||||||
#include "gr_basic.h"
|
|
||||||
|
|
||||||
#include "common.h"
|
|
||||||
#include "program.h"
|
|
||||||
#include "libcmp.h"
|
|
||||||
#include "component_class.h"
|
|
||||||
#include "general.h"
|
|
||||||
#include "trigo.h"
|
|
||||||
#include "protos.h"
|
|
||||||
|
|
||||||
#define UNVISIBLE_COLOR DARKGRAY
|
|
||||||
|
|
||||||
//#define DRAW_ARC_WITH_ANGLE // pour trace arc avec routine utilsant les angles
|
|
||||||
|
|
||||||
|
|
||||||
/* Fonctions locales */
|
|
||||||
|
|
||||||
/* Description du composant <DUMMY> utilisé lorsque des composants non trouvés
|
|
||||||
en librarie doivent etre dessinés */
|
|
||||||
/*
|
|
||||||
ce composant est un rectangle de 400 mils de coté avec le texte ?? au centre
|
|
||||||
DEF DUMMY U 0 40 Y Y 1 0 N
|
|
||||||
F0 "U" 0 -350 60 H V
|
|
||||||
F1 "DUMMY" 0 350 60 H V
|
|
||||||
DRAW
|
|
||||||
T 0 0 0 150 0 0 0 ??
|
|
||||||
S -200 200 200 -200 0 1 0
|
|
||||||
ENDDRAW
|
|
||||||
ENDDEF
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int s_ItemSelectColor = BROWN;
|
|
||||||
|
|
||||||
static EDA_LibComponentStruct * DummyCmp;
|
|
||||||
static int * Buf_Poly_Drawings, Buf_Poly_Size; // Used fo polyline drawings
|
|
||||||
static void DrawLibPartAux(WinEDA_DrawPanel * panel, wxDC * DC,
|
|
||||||
EDA_SchComponentStruct *Component,
|
|
||||||
EDA_LibComponentStruct *Entry,
|
|
||||||
const wxPoint & Pos,
|
|
||||||
int TransMat[2][2],
|
|
||||||
int Multi, int convert,
|
|
||||||
int DrawMode, int Color = -1, bool DrawPinText = TRUE);
|
|
||||||
|
|
||||||
/******************************/
|
|
||||||
static void CreateDummyCmp(void)
|
|
||||||
/******************************/
|
|
||||||
{
|
|
||||||
DummyCmp = new EDA_LibComponentStruct( NULL);
|
|
||||||
|
|
||||||
LibDrawSquare * Square = new LibDrawSquare();
|
|
||||||
Square->m_Start = wxPoint(- 200,200);
|
|
||||||
Square->m_End = wxPoint(200, - 200);
|
|
||||||
Square->m_Width = 4;
|
|
||||||
|
|
||||||
LibDrawText * Text = new LibDrawText();
|
|
||||||
Text->m_Size.x = Text->m_Size.y = 150;
|
|
||||||
Text->m_Text = wxT("??");
|
|
||||||
|
|
||||||
DummyCmp->m_Drawings = Square;
|
|
||||||
Square->Pnext = Text;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*************************************************************/
|
|
||||||
void DrawLibEntry(WinEDA_DrawPanel * panel,wxDC * DC,
|
|
||||||
EDA_LibComponentStruct *LibEntry,
|
|
||||||
int posX, int posY,
|
|
||||||
int Multi, int convert,
|
|
||||||
int DrawMode, int Color)
|
|
||||||
/**************************************************************/
|
|
||||||
/* Routine de dessin d'un composant d'une librairie
|
|
||||||
LibEntry = pointeur sur la description en librairie
|
|
||||||
posX, posY = position du composant
|
|
||||||
DrawMode = GrOR ..
|
|
||||||
Color = 0 : dessin en vraies couleurs, sinon couleur = Color
|
|
||||||
|
|
||||||
Une croix symbolise le point d'accrochage (ref position) du composant
|
|
||||||
|
|
||||||
Le composant est toujours trace avec orientation 0
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int color;
|
|
||||||
int TransMat[2][2];
|
|
||||||
wxString Prefix;
|
|
||||||
LibDrawField * Field;
|
|
||||||
wxPoint text_pos;
|
|
||||||
|
|
||||||
/* Orientation normale */
|
|
||||||
TransMat[0][0] = 1; TransMat[1][1] = -1;
|
|
||||||
TransMat[1][0] = TransMat[0][1] = 0;
|
|
||||||
|
|
||||||
DrawLibPartAux(panel, DC, NULL, LibEntry, wxPoint(posX, posY),
|
|
||||||
TransMat, Multi,
|
|
||||||
convert, DrawMode, Color);
|
|
||||||
|
|
||||||
/* Trace des 2 champs ref et value (Attention aux coord: la matrice
|
|
||||||
de transformation change de signe les coord Y */
|
|
||||||
|
|
||||||
GRSetDrawMode(DC, DrawMode);
|
|
||||||
|
|
||||||
if( LibEntry->m_Prefix.m_Attributs & TEXT_NO_VISIBLE )
|
|
||||||
{
|
|
||||||
if( Color >= 0 ) color = Color;
|
|
||||||
else color = UNVISIBLE_COLOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
if( Color >= 0) color = Color;
|
|
||||||
else color = ReturnLayerColor(LAYER_REFERENCEPART);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LibEntry->m_UnitCount > 1)
|
|
||||||
Prefix.Printf( wxT("%s?%c"),LibEntry->m_Prefix.m_Text.GetData(),Multi + 'A' - 1);
|
|
||||||
else Prefix = LibEntry->m_Prefix.m_Text + wxT("?");
|
|
||||||
|
|
||||||
text_pos.x = LibEntry->m_Prefix.m_Pos.x + posX;
|
|
||||||
text_pos.y = posY - LibEntry->m_Prefix.m_Pos.y;
|
|
||||||
DrawGraphicText(panel, DC, text_pos,
|
|
||||||
color,LibEntry->m_Prefix.m_Text.GetData(),
|
|
||||||
LibEntry->m_Prefix.m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
|
||||||
LibEntry->m_Prefix.m_Size,
|
|
||||||
LibEntry->m_Prefix.m_HJustify, LibEntry->m_Prefix.m_VJustify);
|
|
||||||
|
|
||||||
if( LibEntry->m_Name.m_Attributs & TEXT_NO_VISIBLE )
|
|
||||||
{
|
|
||||||
if( Color >= 0) color = Color;
|
|
||||||
else color = UNVISIBLE_COLOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
if( Color >= 0 ) color = Color;
|
|
||||||
else color = ReturnLayerColor(LAYER_VALUEPART);
|
|
||||||
}
|
|
||||||
|
|
||||||
text_pos.x = LibEntry->m_Name.m_Pos.x + posX;
|
|
||||||
text_pos.y = posY - LibEntry->m_Name.m_Pos.y;
|
|
||||||
DrawGraphicText(panel, DC, text_pos,
|
|
||||||
color, LibEntry->m_Name.m_Text.GetData(),
|
|
||||||
LibEntry->m_Name.m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
|
||||||
LibEntry->m_Name.m_Size,
|
|
||||||
LibEntry->m_Name.m_HJustify, LibEntry->m_Name.m_VJustify);
|
|
||||||
|
|
||||||
for( Field = LibEntry->Fields; Field != NULL; Field = (LibDrawField *)Field->Pnext )
|
|
||||||
{
|
|
||||||
if( Field->m_Text.IsEmpty() ) return;
|
|
||||||
if( Field->m_Attributs & TEXT_NO_VISIBLE )
|
|
||||||
{
|
|
||||||
if( Color >= 0) color = Color;
|
|
||||||
else color = UNVISIBLE_COLOR;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if( Color >= 0) color = Color;
|
|
||||||
else color = ReturnLayerColor(LAYER_FIELDS);
|
|
||||||
}
|
|
||||||
|
|
||||||
text_pos.x = Field->m_Pos.x + posX;
|
|
||||||
text_pos.y = posY - Field->m_Pos.y;
|
|
||||||
DrawGraphicText(panel, DC, text_pos,
|
|
||||||
color, Field->m_Text,
|
|
||||||
Field->m_Orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
|
||||||
Field->m_Size,
|
|
||||||
Field->m_HJustify, Field->m_VJustify);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Tracé de l'ancre
|
|
||||||
int len = 3 * panel->GetZoom();
|
|
||||||
GRLine(&panel->m_ClipBox, DC, posX, posY - len, posX, posY + len, color);
|
|
||||||
GRLine(&panel->m_ClipBox, DC, posX - len, posY, posX + len, posY, color);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Routine to draw the given part at given position, transformed/mirror as *
|
|
||||||
* specified, and in the given drawing mode. Only this one is visible... *
|
|
||||||
*****************************************************************************/
|
|
||||||
void EDA_SchComponentStruct::Draw(WinEDA_DrawPanel * panel,wxDC * DC,
|
|
||||||
const wxPoint & offset, int DrawMode, int Color)
|
|
||||||
{
|
|
||||||
EDA_LibComponentStruct *Entry;
|
|
||||||
int ii;
|
|
||||||
bool dummy = FALSE;
|
|
||||||
|
|
||||||
if( (Entry = FindLibPart(m_ChipName.GetData(),wxEmptyString,FIND_ROOT)) == NULL)
|
|
||||||
{ /* composant non trouvé, on affiche un composant "dummy" */
|
|
||||||
dummy = TRUE;
|
|
||||||
if( DummyCmp == NULL ) CreateDummyCmp();
|
|
||||||
Entry = DummyCmp;
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawLibPartAux(panel, DC, this, Entry, m_Pos + offset,
|
|
||||||
m_Transform,
|
|
||||||
dummy ? 0 : m_Multi,
|
|
||||||
dummy ? 0 : m_Convert,
|
|
||||||
DrawMode);
|
|
||||||
|
|
||||||
/* Trace des champs, avec placement et orientation selon orient. du
|
|
||||||
composant
|
|
||||||
*/
|
|
||||||
|
|
||||||
if( ((m_Field[REFERENCE].m_Attributs & TEXT_NO_VISIBLE) == 0)
|
|
||||||
&& ! (m_Field[REFERENCE].m_Flags & IS_MOVED) )
|
|
||||||
{
|
|
||||||
if ( Entry->m_UnitCount > 1 )
|
|
||||||
DrawTextField(panel, DC, &m_Field[REFERENCE],1,DrawMode);
|
|
||||||
else
|
|
||||||
DrawTextField(panel, DC, &m_Field[REFERENCE],0,DrawMode);
|
|
||||||
}
|
|
||||||
|
|
||||||
for( ii = VALUE; ii < NUMBER_OF_FIELDS; ii++ )
|
|
||||||
{
|
|
||||||
if (m_Field[ii].m_Flags & IS_MOVED) continue;
|
|
||||||
DrawTextField(panel, DC, &m_Field[ii],0,DrawMode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/***********************************************************/
|
|
||||||
void DrawTextField(WinEDA_DrawPanel * panel,wxDC * DC,
|
|
||||||
PartTextStruct * Field, int IsMulti, int DrawMode)
|
|
||||||
/***********************************************************/
|
|
||||||
/* Routine de trace des textes type Field du composant.
|
|
||||||
entree:
|
|
||||||
IsMulti: flag Non Null si il y a plusieurs parts par boitier.
|
|
||||||
n'est utile que pour le champ reference pour ajouter a celui ci
|
|
||||||
l'identification de la part ( A, B ... )
|
|
||||||
DrawMode: mode de trace
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int orient, color;
|
|
||||||
wxPoint pos; /* Position des textes */
|
|
||||||
EDA_SchComponentStruct *DrawLibItem = (EDA_SchComponentStruct *) Field->m_Parent;
|
|
||||||
int hjustify, vjustify;
|
|
||||||
|
|
||||||
if( Field->m_Attributs & TEXT_NO_VISIBLE ) return;
|
|
||||||
if( Field->IsVoid() ) return;
|
|
||||||
|
|
||||||
GRSetDrawMode(DC, DrawMode);
|
|
||||||
|
|
||||||
/* Calcul de la position des textes, selon orientation du composant */
|
|
||||||
orient = Field->m_Orient;
|
|
||||||
hjustify = Field->m_HJustify; vjustify = Field->m_VJustify;
|
|
||||||
pos.x = Field->m_Pos.x - DrawLibItem->m_Pos.x;
|
|
||||||
pos.y = Field->m_Pos.y - DrawLibItem->m_Pos.y;
|
|
||||||
|
|
||||||
pos = DrawLibItem->GetScreenCoord(pos);
|
|
||||||
pos.x += DrawLibItem->m_Pos.x;
|
|
||||||
pos.y += DrawLibItem->m_Pos.y;
|
|
||||||
|
|
||||||
/* Y a t-il rotation (pour l'orientation, la justification)*/
|
|
||||||
if(DrawLibItem->m_Transform[0][1]) // Rotation du composant de 90deg
|
|
||||||
{
|
|
||||||
if ( orient == TEXT_ORIENT_HORIZ) orient = TEXT_ORIENT_VERT;
|
|
||||||
else orient = TEXT_ORIENT_HORIZ;
|
|
||||||
/* Y a t-il rotation, miroir (pour les justifications)*/
|
|
||||||
EXCHG(hjustify, vjustify);
|
|
||||||
if (DrawLibItem->m_Transform[1][0] < 0 ) vjustify = - vjustify;
|
|
||||||
if (DrawLibItem->m_Transform[1][0] > 0 ) hjustify = - hjustify;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ /* Texte horizontal: Y a t-il miroir (pour les justifications)*/
|
|
||||||
if (DrawLibItem->m_Transform[0][0] < 0 )
|
|
||||||
hjustify = - hjustify;
|
|
||||||
if (DrawLibItem->m_Transform[1][1] > 0 )
|
|
||||||
vjustify = - vjustify;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( Field->m_FieldId == REFERENCE )
|
|
||||||
color = ReturnLayerColor(LAYER_REFERENCEPART);
|
|
||||||
else if( Field->m_FieldId == VALUE )
|
|
||||||
color = ReturnLayerColor(LAYER_VALUEPART);
|
|
||||||
else color = ReturnLayerColor(LAYER_FIELDS);
|
|
||||||
if( !IsMulti || (Field->m_FieldId != REFERENCE) )
|
|
||||||
{
|
|
||||||
DrawGraphicText(panel, DC, pos, color, Field->m_Text.GetData(),
|
|
||||||
orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
|
||||||
Field->m_Size,
|
|
||||||
hjustify, vjustify);
|
|
||||||
}
|
|
||||||
|
|
||||||
else /* Le champ est la reference, et il y a plusieurs parts par boitier */
|
|
||||||
{/* On ajoute alors A ou B ... a la reference */
|
|
||||||
wxString fulltext = Field->m_Text;
|
|
||||||
fulltext.Append('A' - 1 + DrawLibItem->m_Multi);
|
|
||||||
DrawGraphicText(panel, DC, pos, color, fulltext.GetData(),
|
|
||||||
orient ? TEXT_ORIENT_VERT : TEXT_ORIENT_HORIZ,
|
|
||||||
Field->m_Size,
|
|
||||||
hjustify, vjustify);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/********************************************************************************/
|
|
||||||
EDA_LibComponentStruct *FindLibPart(const wxChar *Name, const wxString & LibName, int Alias)
|
|
||||||
/********************************************************************************/
|
|
||||||
/*
|
|
||||||
Routine to find a part in one of the libraries given its name.
|
|
||||||
Name = Name of part.
|
|
||||||
LibName = Name of Lib; if "": seach in all libs
|
|
||||||
Alias = Flag: si flag != 0, retourne un pointeur sur une part ou un alias
|
|
||||||
si flag = 0, retourne un pointeur sur une part meme si le nom
|
|
||||||
correspond a un alias
|
|
||||||
Alias = FIND_ROOT, ou Alias = FIND_ALIAS
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
EDA_LibComponentStruct *Entry;
|
|
||||||
static EDA_LibComponentStruct DummyEntry(wxEmptyString); /* Used only to call PQFind. */
|
|
||||||
LibraryStruct *Lib = g_LibraryList;
|
|
||||||
|
|
||||||
DummyEntry.m_Drawings = NULL; /* Used only to call PQFind. */
|
|
||||||
DummyEntry.m_Name.m_Text = Name;
|
|
||||||
|
|
||||||
PQCompFunc((PQCompFuncType) LibraryEntryCompare);
|
|
||||||
|
|
||||||
Entry = NULL; FindLibName.Empty();
|
|
||||||
while (Lib)
|
|
||||||
{
|
|
||||||
if( ! LibName.IsEmpty() )
|
|
||||||
{
|
|
||||||
if( Lib->m_Name != LibName )
|
|
||||||
{
|
|
||||||
Lib = Lib->m_Pnext; continue ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( Lib == NULL ) break;
|
|
||||||
Entry = (EDA_LibComponentStruct*)PQFind(Lib->m_Entries, &DummyEntry);
|
|
||||||
if( Entry != NULL)
|
|
||||||
{
|
|
||||||
FindLibName = Lib->m_Name;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
Lib = Lib->m_Pnext;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Si le nom est un alias, recherche du vrai composant */
|
|
||||||
if( Entry )
|
|
||||||
{
|
|
||||||
if( (Entry->Type != ROOT ) && (Alias == FIND_ROOT) )
|
|
||||||
Entry = FindLibPart( ((EDA_LibCmpAliasStruct*)Entry)->m_RootName.GetData() ,
|
|
||||||
Lib->m_Name, FIND_ROOT);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (Entry);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Routine to draw the given part at given position, transformed/mirror as
|
|
||||||
* specified, and in the given drawing mode.
|
|
||||||
* if Color < 0: Draw in normal color
|
|
||||||
* else draw in color = Color
|
|
||||||
*****************************************************************************/
|
|
||||||
/* DrawMode = GrXOR, GrOR ..*/
|
|
||||||
void DrawLibPartAux(WinEDA_DrawPanel * panel,wxDC * DC,
|
|
||||||
EDA_SchComponentStruct *Component,
|
|
||||||
EDA_LibComponentStruct *Entry,
|
|
||||||
const wxPoint & Pos,
|
|
||||||
int TransMat[2][2],
|
|
||||||
int Multi, int convert, int DrawMode,
|
|
||||||
int Color, bool DrawPinText)
|
|
||||||
{
|
|
||||||
int i, x1, y1, x2, y2, t1, t2, orient;
|
|
||||||
LibEDA_BaseStruct *DEntry = NULL;
|
|
||||||
int CharColor;
|
|
||||||
int fill_option;
|
|
||||||
int SetHightColor;
|
|
||||||
//#define GETCOLOR(l) Color < 0 ? (ReturnLayerColor(l)| SetHightColor) : Color;
|
|
||||||
#define GETCOLOR(l) Color < 0 ? SetHightColor ? s_ItemSelectColor : (ReturnLayerColor(l)| SetHightColor) : Color;
|
|
||||||
|
|
||||||
if (Entry->m_Drawings == NULL) return;
|
|
||||||
GRSetDrawMode(DC, DrawMode);
|
|
||||||
|
|
||||||
for( DEntry = Entry->m_Drawings; DEntry != NULL;DEntry = DEntry->Next())
|
|
||||||
{
|
|
||||||
/* Elimination des elements non relatifs a l'unite */
|
|
||||||
if( Multi && DEntry->m_Unit && (DEntry->m_Unit != Multi) ) continue;
|
|
||||||
if( convert && DEntry->m_Convert && (DEntry->m_Convert != convert) )
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if ( DEntry->m_Flags & IS_MOVED ) continue; // Element en deplacement non trace
|
|
||||||
SetHightColor = (DEntry->m_Selected & IS_SELECTED) ? HIGHT_LIGHT_FLAG : 0;
|
|
||||||
switch (DEntry->m_StructType)
|
|
||||||
{
|
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
int xc,yc, x2, y2;
|
|
||||||
LibDrawArc * Arc = (LibDrawArc *) DEntry;
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
xc = Pos.x + TransMat[0][0] * Arc->m_Pos.x +
|
|
||||||
TransMat[0][1] * Arc->m_Pos.y;
|
|
||||||
yc = Pos.y + TransMat[1][0] * Arc->m_Pos.x +
|
|
||||||
TransMat[1][1] * Arc->m_Pos.y;
|
|
||||||
x2 = Pos.x + TransMat[0][0] * Arc->m_Start.x +
|
|
||||||
TransMat[0][1] * Arc->m_Start.y;;
|
|
||||||
y2 = Pos.y + TransMat[1][0] * Arc->m_Start.x +
|
|
||||||
TransMat[1][1] * Arc->m_Start.y;
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Arc->m_End.x +
|
|
||||||
TransMat[0][1] * Arc->m_End.y;;
|
|
||||||
y1 = Pos.y + TransMat[1][0] * Arc->m_End.x +
|
|
||||||
TransMat[1][1] * Arc->m_End.y;
|
|
||||||
t1 = Arc->t1; t2 = Arc->t2;
|
|
||||||
bool swap = MapAngles(&t1, &t2, TransMat);
|
|
||||||
if ( swap ) { EXCHG(x1,x2); EXCHG(y1, y2) }
|
|
||||||
fill_option = Arc->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( Color < 0 ) // Normal Color Layer
|
|
||||||
{
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRFilledArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor, CharColor);
|
|
||||||
#ifdef DRAW_ARC_WITH_ANGLE
|
|
||||||
else GRArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor);
|
|
||||||
#else
|
|
||||||
else GRArc1(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
xc, yc , CharColor);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#ifdef DRAW_ARC_WITH_ANGLE
|
|
||||||
else GRArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor);
|
|
||||||
#else
|
|
||||||
else GRArc1(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
xc, yc, CharColor);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawCircle * Circle = (LibDrawCircle *) DEntry;
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Circle->m_Pos.x +
|
|
||||||
TransMat[0][1] * Circle->m_Pos.y;
|
|
||||||
y1 = Pos.y + TransMat[1][0] * Circle->m_Pos.x +
|
|
||||||
TransMat[1][1] * Circle->m_Pos.y;
|
|
||||||
fill_option = Circle->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( Color < 0 )
|
|
||||||
{
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRFilledCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor, CharColor);
|
|
||||||
else GRCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor);
|
|
||||||
}
|
|
||||||
else GRCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawText * Text = (LibDrawText *) DEntry;
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
|
|
||||||
/* The text orientation may need to be flipped if the
|
|
||||||
transformation matrix cuases xy axes to be flipped. */
|
|
||||||
t1 = (TransMat[0][0] != 0) ^ (Text->m_Horiz != 0);
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Text->m_Pos.x
|
|
||||||
+ TransMat[0][1] * Text->m_Pos.y;
|
|
||||||
y1 = Pos.y + TransMat[1][0] * Text->m_Pos.x
|
|
||||||
+ TransMat[1][1] * Text->m_Pos.y;
|
|
||||||
PutTextInfo(panel, DC, t1 ? TEXT_ORIENT_HORIZ : TEXT_ORIENT_VERT,
|
|
||||||
wxPoint(x1, y1),
|
|
||||||
Text->m_Size,
|
|
||||||
Text->m_Text, DrawMode,CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawSquare * Square = (LibDrawSquare *) DEntry;
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
|
|
||||||
x1 = Pos.x + TransMat[0][0] * Square->m_Start.x
|
|
||||||
+ TransMat[0][1] * Square->m_Start.y;
|
|
||||||
y1 = Pos.y + TransMat[1][0] * Square->m_Start.x
|
|
||||||
+ TransMat[1][1] * Square->m_Start.y;
|
|
||||||
x2 = Pos.x + TransMat[0][0] * Square->m_End.x
|
|
||||||
+ TransMat[0][1] * Square->m_End.y;
|
|
||||||
y2 = Pos.y + TransMat[1][0] * Square->m_End.x
|
|
||||||
+ TransMat[1][1] * Square->m_End.y;
|
|
||||||
fill_option = Square->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( Color < 0 )
|
|
||||||
{
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRFilledRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor, CharColor);
|
|
||||||
else GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor);
|
|
||||||
}
|
|
||||||
else GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_PIN_DRAW_TYPE: /* Trace des Pins */
|
|
||||||
{
|
|
||||||
LibDrawPin * Pin = (LibDrawPin *) DEntry;
|
|
||||||
if(Pin->m_Attributs & PINNOTDRAW)
|
|
||||||
{
|
|
||||||
if( (ActiveScreen->m_Type == SCHEMATIC_FRAME) &&
|
|
||||||
!g_ShowAllPins )
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
/* Calcul de l'orientation reelle de la Pin */
|
|
||||||
orient = Pin->ReturnPinDrawOrient(TransMat);
|
|
||||||
|
|
||||||
/* Calcul de la position du point de reference */
|
|
||||||
x2 = Pos.x + (TransMat[0][0] * Pin->m_Pos.x)
|
|
||||||
+ (TransMat[0][1] * Pin->m_Pos.y);
|
|
||||||
y2 = Pos.y + (TransMat[1][0] * Pin->m_Pos.x)
|
|
||||||
+ (TransMat[1][1] * Pin->m_Pos.y);
|
|
||||||
|
|
||||||
/* Dessin de la pin et du symbole special associe */
|
|
||||||
CharColor = GETCOLOR(LAYER_PIN);
|
|
||||||
DrawPinSymbol(panel, DC, x2, y2, Pin->m_PinLen, orient,
|
|
||||||
Pin->m_PinShape, DrawMode,
|
|
||||||
CharColor );
|
|
||||||
|
|
||||||
if ( DrawPinText )
|
|
||||||
{
|
|
||||||
wxPoint pinpos(x2,y2);
|
|
||||||
CharColor = SetHightColor ? s_ItemSelectColor : Color;
|
|
||||||
Pin->DrawPinTexts(panel, DC, pinpos, orient,
|
|
||||||
Entry->m_TextInside,
|
|
||||||
Entry->m_DrawPinNum,Entry->m_DrawPinName,
|
|
||||||
CharColor, DrawMode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawPolyline * polyline = (LibDrawPolyline *) DEntry;
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
if ( Buf_Poly_Drawings == NULL )
|
|
||||||
{
|
|
||||||
Buf_Poly_Size = polyline->n;
|
|
||||||
Buf_Poly_Drawings = (int *) MyMalloc(sizeof(int) * 2 * Buf_Poly_Size);
|
|
||||||
}
|
|
||||||
else if ( Buf_Poly_Size < polyline->n )
|
|
||||||
{
|
|
||||||
Buf_Poly_Size = polyline->n;
|
|
||||||
Buf_Poly_Drawings = (int *) realloc(Buf_Poly_Drawings,
|
|
||||||
sizeof(int) * 2 * Buf_Poly_Size);
|
|
||||||
}
|
|
||||||
for (i = 0; i < polyline->n; i++)
|
|
||||||
{
|
|
||||||
Buf_Poly_Drawings[i * 2] = Pos.x +
|
|
||||||
TransMat[0][0] * polyline->PolyList[i * 2] +
|
|
||||||
TransMat[0][1] * polyline->PolyList[i * 2 + 1];
|
|
||||||
Buf_Poly_Drawings[i * 2 + 1] = Pos.y +
|
|
||||||
TransMat[1][0] * polyline->PolyList[i * 2] +
|
|
||||||
TransMat[1][1] * polyline->PolyList[i * 2 + 1];
|
|
||||||
}
|
|
||||||
fill_option = polyline->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( Color < 0 )
|
|
||||||
{
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 1, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 1, CharColor, CharColor);
|
|
||||||
else GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 0, CharColor, CharColor);
|
|
||||||
}
|
|
||||||
else GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 0, CharColor, CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
wxBell();
|
|
||||||
break;
|
|
||||||
} /* Fin Switch */
|
|
||||||
} /* Fin Boucle de dessin */
|
|
||||||
if ( g_DebugLevel > 4 ) /* Draw the component boundary box */
|
|
||||||
{
|
|
||||||
EDA_Rect BoundaryBox;
|
|
||||||
if ( Component ) BoundaryBox = Component->GetBoundaryBox();
|
|
||||||
else BoundaryBox = Entry->GetBoundaryBox(Multi, convert);
|
|
||||||
x1 = BoundaryBox.GetX();
|
|
||||||
y1 = BoundaryBox.GetY();
|
|
||||||
x2 = BoundaryBox.GetRight();
|
|
||||||
y2 = BoundaryBox.GetBottom();
|
|
||||||
GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN);
|
|
||||||
BoundaryBox = Component->m_Field[REFERENCE].GetBoundaryBox();
|
|
||||||
x1 = BoundaryBox.GetX();
|
|
||||||
y1 = BoundaryBox.GetY();
|
|
||||||
x2 = BoundaryBox.GetRight();
|
|
||||||
y2 = BoundaryBox.GetBottom();
|
|
||||||
GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN);
|
|
||||||
BoundaryBox = Component->m_Field[VALUE].GetBoundaryBox();
|
|
||||||
x1 = BoundaryBox.GetX();
|
|
||||||
y1 = BoundaryBox.GetY();
|
|
||||||
x2 = BoundaryBox.GetRight();
|
|
||||||
y2 = BoundaryBox.GetBottom();
|
|
||||||
GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2, BROWN);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************/
|
|
||||||
void DrawPinSymbol(WinEDA_DrawPanel * panel, wxDC * DC,
|
|
||||||
int posX, int posY, int len, int orient,
|
|
||||||
int Shape, int DrawMode, int Color)
|
|
||||||
/*******************************************************/
|
|
||||||
|
|
||||||
/* Dessine la pin du symbole en cours de trace
|
|
||||||
si Color != 0 dessin en couleur Color, sinon en couleurs standard.
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
int MapX1, MapY1, x1, y1;
|
|
||||||
int color;
|
|
||||||
|
|
||||||
if( Color >= 0) color = Color;
|
|
||||||
else color = ReturnLayerColor(LAYER_PIN);
|
|
||||||
GRSetDrawMode(DC, DrawMode);
|
|
||||||
|
|
||||||
|
|
||||||
MapX1 = MapY1 = 0; x1 = posX; y1 = posY;
|
|
||||||
switch ( orient )
|
|
||||||
{
|
|
||||||
case PIN_UP:
|
|
||||||
y1 = posY - len; MapY1 = 1;
|
|
||||||
break;
|
|
||||||
case PIN_DOWN:
|
|
||||||
y1 = posY + len; MapY1 = -1;
|
|
||||||
break;
|
|
||||||
case PIN_LEFT:
|
|
||||||
x1 = posX - len, MapX1 = 1;
|
|
||||||
break;
|
|
||||||
case PIN_RIGHT:
|
|
||||||
x1 = posX + len; MapX1 = -1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( Shape & INVERT)
|
|
||||||
{
|
|
||||||
GRCircle(&panel->m_ClipBox, DC, MapX1 * INVERT_PIN_RADIUS + x1,
|
|
||||||
MapY1 * INVERT_PIN_RADIUS + y1,
|
|
||||||
INVERT_PIN_RADIUS, color);
|
|
||||||
|
|
||||||
GRMoveTo(MapX1 * INVERT_PIN_RADIUS * 2 + x1,
|
|
||||||
MapY1 * INVERT_PIN_RADIUS * 2 + y1);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, posX, posY, color);
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GRMoveTo(x1, y1);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, posX, posY, color);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Shape & CLOCK)
|
|
||||||
{
|
|
||||||
if(MapY1 == 0 ) /* MapX1 = +- 1 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1, y1 + CLOCK_PIN_DIM);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 - MapX1 * CLOCK_PIN_DIM, y1, color);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1, y1 - CLOCK_PIN_DIM, color);
|
|
||||||
}
|
|
||||||
else /* MapX1 = 0 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1 + CLOCK_PIN_DIM, y1 );
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1, y1 - MapY1 * CLOCK_PIN_DIM, color);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 - CLOCK_PIN_DIM, y1, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(Shape & LOWLEVEL_IN) /* IEEE symbol "Active Low Input" */
|
|
||||||
{
|
|
||||||
if(MapY1 == 0 ) /* MapX1 = +- 1 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1 + MapX1 * IEEE_SYMBOL_PIN_DIM*2, y1);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 + MapX1 * IEEE_SYMBOL_PIN_DIM*2,
|
|
||||||
y1 - IEEE_SYMBOL_PIN_DIM, color);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1, y1, color);
|
|
||||||
}
|
|
||||||
else /* MapX1 = 0 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1, y1 + MapY1 * IEEE_SYMBOL_PIN_DIM*2);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 - IEEE_SYMBOL_PIN_DIM,
|
|
||||||
y1 + MapY1 * IEEE_SYMBOL_PIN_DIM*2, color);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 , y1, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if(Shape & LOWLEVEL_OUT) /* IEEE symbol "Active Low Output" */
|
|
||||||
{
|
|
||||||
if(MapY1 == 0 ) /* MapX1 = +- 1 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1, y1 - IEEE_SYMBOL_PIN_DIM);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 + MapX1 * IEEE_SYMBOL_PIN_DIM*2, y1, color);
|
|
||||||
}
|
|
||||||
else /* MapX1 = 0 */
|
|
||||||
{
|
|
||||||
GRMoveTo(x1 - IEEE_SYMBOL_PIN_DIM, y1);
|
|
||||||
GRLineTo(&panel->m_ClipBox, DC, x1 , y1 + MapY1 * IEEE_SYMBOL_PIN_DIM*2, color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Draw the pin end target (active end of the pin) */
|
|
||||||
if ( ! g_IsPrinting ) // Draw but do not print the pin end target */
|
|
||||||
GRCircle(&panel->m_ClipBox, DC, posX,posY,TARGET_PIN_DIAM, color);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Routine to rotate the given angular direction by the given Transformation. *
|
|
||||||
* Input (and output) angles must be as follows: *
|
|
||||||
* Unit is 0.1 degre *
|
|
||||||
* Angle1 in [0..3600], Angle2 > Angle1 in [0..7200]. Arc is assumed to be less *
|
|
||||||
* than 180.0 degrees. *
|
|
||||||
* Algorithm: *
|
|
||||||
* Map the angles to a point on the unit circle which is mapped using the *
|
|
||||||
* transform (only mirror and rotate so it remains on the unit circle) to *
|
|
||||||
* a new point which is used to detect new angle. *
|
|
||||||
*****************************************************************************/
|
|
||||||
bool MapAngles(int *Angle1, int *Angle2, int TransMat[2][2])
|
|
||||||
{
|
|
||||||
int Angle, Delta;
|
|
||||||
double x, y, t;
|
|
||||||
bool swap = FALSE;
|
|
||||||
|
|
||||||
Delta = *Angle2 - *Angle1;
|
|
||||||
if ( Delta >= 1800 )
|
|
||||||
{
|
|
||||||
*Angle1 -=1;
|
|
||||||
*Angle2 +=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
x = cos(*Angle1 * M_PI / 1800.0);
|
|
||||||
y = sin(*Angle1 * M_PI / 1800.0);
|
|
||||||
t = x * TransMat[0][0] + y * TransMat[0][1];
|
|
||||||
y = x * TransMat[1][0] + y * TransMat[1][1];
|
|
||||||
x = t;
|
|
||||||
*Angle1 = (int) (atan2(y, x) * 1800.0 / M_PI + 0.5);
|
|
||||||
|
|
||||||
x = cos(*Angle2 * M_PI / 1800.0);
|
|
||||||
y = sin(*Angle2 * M_PI / 1800.0);
|
|
||||||
t = x * TransMat[0][0] + y * TransMat[0][1];
|
|
||||||
y = x * TransMat[1][0] + y * TransMat[1][1];
|
|
||||||
x = t;
|
|
||||||
*Angle2 = (int) (atan2(y, x) * 1800.0 / M_PI + 0.5);
|
|
||||||
|
|
||||||
NORMALIZE_ANGLE(*Angle1);
|
|
||||||
NORMALIZE_ANGLE(*Angle2);
|
|
||||||
if (*Angle2 < *Angle1) *Angle2 += 3600;
|
|
||||||
|
|
||||||
if (*Angle2 - *Angle1 > 1800)
|
|
||||||
{ /* Need to swap the two angles. */
|
|
||||||
Angle = (*Angle1);
|
|
||||||
*Angle1 = (*Angle2);
|
|
||||||
*Angle2 = Angle;
|
|
||||||
|
|
||||||
NORMALIZE_ANGLE(*Angle1);
|
|
||||||
NORMALIZE_ANGLE(*Angle2);
|
|
||||||
if (*Angle2 < *Angle1) *Angle2 += 3600;
|
|
||||||
swap = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( Delta >= 1800 )
|
|
||||||
{
|
|
||||||
*Angle1 +=1;
|
|
||||||
*Angle2 -=1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return swap;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* Routine to display an outline version of given library entry. *
|
|
||||||
* This routine is applied by the PlaceLibItem routine above. *
|
|
||||||
*****************************************************************************/
|
|
||||||
void DrawingLibInGhost(WinEDA_DrawPanel * panel, wxDC * DC,
|
|
||||||
EDA_LibComponentStruct *LibEntry,
|
|
||||||
EDA_SchComponentStruct *DrawLibItem, int PartX, int PartY,
|
|
||||||
int multi, int convert, int Color, bool DrawPinText)
|
|
||||||
{
|
|
||||||
int DrawMode = g_XorMode;
|
|
||||||
|
|
||||||
DrawLibPartAux(panel, DC, DrawLibItem, LibEntry, wxPoint(PartX, PartY),
|
|
||||||
DrawLibItem->m_Transform,
|
|
||||||
multi, convert, DrawMode, Color, DrawPinText);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/************************************************************/
|
|
||||||
/* Routine to draw One LibraryDrawStruct at given position, */
|
|
||||||
/* matrice de transformation 1 0 0 -1 (normale) */
|
|
||||||
/* DrawMode = GrXOR, GrOR .. */
|
|
||||||
/************************************************************/
|
|
||||||
/* Utilise en LibEdit et Lib Browse */
|
|
||||||
void DrawLibraryDrawStruct(WinEDA_DrawPanel * panel, wxDC * DC,
|
|
||||||
EDA_LibComponentStruct *LibEntry,
|
|
||||||
int PartX, int PartY,
|
|
||||||
LibEDA_BaseStruct *DrawItem, int Multi,
|
|
||||||
int DrawMode, int Color)
|
|
||||||
{
|
|
||||||
int i, x1, y1, x2, y2, t1, t2, orient;
|
|
||||||
int CharColor;
|
|
||||||
int TransMat[2][2];
|
|
||||||
int fill_option;
|
|
||||||
|
|
||||||
#undef GETCOLOR
|
|
||||||
#define GETCOLOR(l) Color < 0 ? ReturnLayerColor(l) : Color;
|
|
||||||
|
|
||||||
Multi = 0; /* unused */
|
|
||||||
/* Trace de la structure */
|
|
||||||
CharColor = GETCOLOR(LAYER_DEVICE);
|
|
||||||
GRSetDrawMode(DC, DrawMode);
|
|
||||||
|
|
||||||
TransMat[0][0] = 1;
|
|
||||||
TransMat[0][1] = TransMat[1][0] = 0;
|
|
||||||
TransMat[1][1] = -1;
|
|
||||||
|
|
||||||
switch (DrawItem->m_StructType)
|
|
||||||
{
|
|
||||||
case COMPONENT_ARC_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
int xc,yc, x2,y2;
|
|
||||||
LibDrawArc * Arc = (LibDrawArc *) DrawItem;
|
|
||||||
t1 = Arc->t1; t2 = Arc->t2;
|
|
||||||
bool swap = MapAngles(&t1, &t2, TransMat);
|
|
||||||
xc = PartX + Arc->m_Pos.x;
|
|
||||||
yc = PartY - Arc->m_Pos.y;
|
|
||||||
x2 = PartX + Arc->m_Start.x;
|
|
||||||
y2 = PartY - Arc->m_Start.y;
|
|
||||||
x1 = PartX + Arc->m_End.x;
|
|
||||||
y1 = PartY - Arc->m_End.y;
|
|
||||||
|
|
||||||
if ( swap ) { EXCHG(x1,x2); EXCHG(y1, y2)}
|
|
||||||
fill_option = Arc->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( (Arc->m_Fill == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( Arc->m_Fill == FILLED_SHAPE)
|
|
||||||
GRFilledArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor, CharColor);
|
|
||||||
#ifdef DRAW_ARC_WITH_ANGLE
|
|
||||||
else GRArc(&panel->m_ClipBox, DC, xc, yc, t1, t2,
|
|
||||||
Arc->m_Rayon, CharColor);
|
|
||||||
#else
|
|
||||||
else GRArc1(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
xc, yc, CharColor);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_CIRCLE_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawCircle * Circle = (LibDrawCircle *) DrawItem;
|
|
||||||
x1 = PartX + Circle->m_Pos.x;
|
|
||||||
y1 = PartY - Circle->m_Pos.y;
|
|
||||||
fill_option = Circle->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRFilledCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor, CharColor);
|
|
||||||
else GRCircle(&panel->m_ClipBox, DC, x1, y1,
|
|
||||||
Circle->m_Rayon, CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_GRAPHIC_TEXT_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawText * Text = (LibDrawText *) DrawItem;
|
|
||||||
x1 = PartX + Text->m_Pos.x;
|
|
||||||
y1 = PartY - Text->m_Pos.y;
|
|
||||||
PutTextInfo(panel, DC, Text->m_Horiz, wxPoint(x1, y1),
|
|
||||||
Text->m_Size, Text->m_Text,
|
|
||||||
DrawMode,CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_RECT_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawSquare * Square = (LibDrawSquare *) DrawItem;
|
|
||||||
x1 = PartX + Square->m_Start.x;
|
|
||||||
y1 = PartY - Square->m_Start.y;
|
|
||||||
x2 = PartX + Square->m_End.x;
|
|
||||||
y2 = PartY - Square->m_End.y;
|
|
||||||
fill_option = Square->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRFilledRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRFilledRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor, CharColor);
|
|
||||||
else GRRect(&panel->m_ClipBox, DC, x1, y1, x2, y2,
|
|
||||||
CharColor);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_PIN_DRAW_TYPE: /* Trace des Pins */
|
|
||||||
{
|
|
||||||
LibDrawPin * Pin = (LibDrawPin *) DrawItem;
|
|
||||||
x2 = PartX + Pin->m_Pos.x;
|
|
||||||
y2 = PartY - Pin->m_Pos.y;
|
|
||||||
/* Compute the real pin orientation, i.e. pin orient + component orient */
|
|
||||||
orient = Pin->ReturnPinDrawOrient(TransMat);
|
|
||||||
|
|
||||||
/* Dessin de la pin et du symbole special associe */
|
|
||||||
if( Pin->m_Attributs & PINNOTDRAW) CharColor = DARKGRAY;
|
|
||||||
else CharColor = -1;
|
|
||||||
|
|
||||||
DrawPinSymbol(panel, DC, x2, y2, Pin->m_PinLen, orient,
|
|
||||||
Pin->m_PinShape, DrawMode);
|
|
||||||
wxPoint pinpos(x2,y2);
|
|
||||||
Pin->DrawPinTexts(panel, DC, pinpos, orient,
|
|
||||||
LibEntry->m_TextInside,
|
|
||||||
LibEntry->m_DrawPinNum,LibEntry->m_DrawPinName,
|
|
||||||
CharColor, DrawMode);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case COMPONENT_POLYLINE_DRAW_TYPE:
|
|
||||||
{
|
|
||||||
LibDrawPolyline * polyline = (LibDrawPolyline *) DrawItem;
|
|
||||||
if ( Buf_Poly_Drawings == NULL )
|
|
||||||
{
|
|
||||||
Buf_Poly_Size = polyline->n;
|
|
||||||
Buf_Poly_Drawings = (int *) MyMalloc(sizeof(int) * 2 * Buf_Poly_Size);
|
|
||||||
}
|
|
||||||
else if ( Buf_Poly_Size < polyline->n )
|
|
||||||
{
|
|
||||||
Buf_Poly_Size = polyline->n;
|
|
||||||
Buf_Poly_Drawings = (int *) realloc(Buf_Poly_Drawings,
|
|
||||||
sizeof(int) * 2 * Buf_Poly_Size);
|
|
||||||
}
|
|
||||||
for (i = 0; i < polyline->n; i++)
|
|
||||||
{
|
|
||||||
Buf_Poly_Drawings[i * 2] = PartX + polyline->PolyList[i * 2];
|
|
||||||
Buf_Poly_Drawings[i * 2 + 1] = PartY - polyline->PolyList[i * 2 + 1];
|
|
||||||
}
|
|
||||||
fill_option = polyline->m_Fill & (~g_PrintFillMask);
|
|
||||||
if ( (fill_option == FILLED_WITH_BG_BODYCOLOR) && ! g_IsPrinting )
|
|
||||||
GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 1, CharColor,
|
|
||||||
ReturnLayerColor(LAYER_DEVICE_BACKGROUND));
|
|
||||||
else if ( fill_option == FILLED_SHAPE)
|
|
||||||
GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 1, CharColor, CharColor);
|
|
||||||
else GRPoly(&panel->m_ClipBox, DC, polyline->n,
|
|
||||||
Buf_Poly_Drawings, 0, CharColor, CharColor);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -161,8 +161,7 @@ void InstallErcFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
void WinEDA_ErcFrame::ReBuildMatrixPanel(void)
|
void WinEDA_ErcFrame::ReBuildMatrixPanel(void)
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
/* construit ou reconstruit le panel d'affichage de la matrice de
|
/* Build or rebuild the panel showing the ERC matrix
|
||||||
controle ERC
|
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
int ii, jj, event_id, text_height;
|
int ii, jj, event_id, text_height;
|
||||||
|
@ -666,10 +665,9 @@ int ref_elect_type, jj, erc = OK, local_minconn;
|
||||||
/********************************************************/
|
/********************************************************/
|
||||||
static bool WriteDiagnosticERC(const wxString & FullFileName)
|
static bool WriteDiagnosticERC(const wxString & FullFileName)
|
||||||
/*********************************************************/
|
/*********************************************************/
|
||||||
/* Genere le fichier des diagnostics
|
/* Create the Diagnostic file (<xxx>.erc file)
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
SCH_SCREEN * Window;
|
|
||||||
EDA_BaseStruct * DrawStruct;
|
EDA_BaseStruct * DrawStruct;
|
||||||
DrawMarkerStruct * Marker;
|
DrawMarkerStruct * Marker;
|
||||||
char Line[256];
|
char Line[256];
|
||||||
|
@ -683,22 +681,22 @@ wxString msg;
|
||||||
msg = _("ERC control");
|
msg = _("ERC control");
|
||||||
fprintf( OutErc, "%s (%s)\n", CONV_TO_UTF8(msg), Line);
|
fprintf( OutErc, "%s (%s)\n", CONV_TO_UTF8(msg), Line);
|
||||||
|
|
||||||
for( Window = ScreenSch; Window != NULL; Window = (SCH_SCREEN*)Window->Pnext )
|
EDA_ScreenList ScreenList(NULL);
|
||||||
{
|
for ( SCH_SCREEN * Screen = ScreenList.GetFirst(); Screen != NULL; Screen = ScreenList.GetNext() )
|
||||||
Sheet = (DrawSheetStruct *) Window->m_Parent;
|
{
|
||||||
|
Sheet = (DrawSheetStruct*) Screen;
|
||||||
msg.Printf( _("\n***** Sheet %d (%s)\n"),
|
msg.Printf( _("\n***** Sheet %d (%s)\n"),
|
||||||
Window->m_SheetNumber,
|
Sheet->m_SheetNumber,
|
||||||
Sheet ? Sheet->m_SheetName.GetData() : _("Root"));
|
Screen == ScreenSch ? _("Root") : Sheet->m_SheetName.GetData());
|
||||||
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
||||||
|
|
||||||
DrawStruct = Window->EEDrawList;
|
DrawStruct = Screen->EEDrawList;
|
||||||
for ( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext)
|
for ( ; DrawStruct != NULL; DrawStruct = DrawStruct->Pnext)
|
||||||
{
|
{
|
||||||
if(DrawStruct->m_StructType != DRAW_MARKER_STRUCT_TYPE )
|
if(DrawStruct->m_StructType != DRAW_MARKER_STRUCT_TYPE )
|
||||||
continue;
|
continue;
|
||||||
/* Marqueur trouve */
|
|
||||||
|
|
||||||
|
/* Marqueur trouve */
|
||||||
Marker = (DrawMarkerStruct * ) DrawStruct;
|
Marker = (DrawMarkerStruct * ) DrawStruct;
|
||||||
if( Marker->m_Type != MARQ_ERC ) continue;
|
if( Marker->m_Type != MARQ_ERC ) continue;
|
||||||
/* Write diag marqueur */
|
/* Write diag marqueur */
|
||||||
|
@ -707,8 +705,8 @@ wxString msg;
|
||||||
(float)Marker->m_Pos.x / 1000,
|
(float)Marker->m_Pos.x / 1000,
|
||||||
(float)Marker->m_Pos.y / 1000);
|
(float)Marker->m_Pos.y / 1000);
|
||||||
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
msg.Printf( _("\n >> Errors ERC: %d\n"), g_EESchemaVar.NbErrorErc);
|
msg.Printf( _("\n >> Errors ERC: %d\n"), g_EESchemaVar.NbErrorErc);
|
||||||
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
fprintf( OutErc, "%s", CONV_TO_UTF8(msg));
|
||||||
fclose ( OutErc );
|
fclose ( OutErc );
|
||||||
|
|
|
@ -174,7 +174,7 @@ void InstallNetlistFrame(WinEDA_SchematicFrame *parent, wxPoint & pos)
|
||||||
}
|
}
|
||||||
|
|
||||||
#define H_SIZE 370
|
#define H_SIZE 370
|
||||||
#define V_SIZE 260
|
#define V_SIZE 300
|
||||||
|
|
||||||
/*************************************************************************************/
|
/*************************************************************************************/
|
||||||
WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos):
|
WinEDA_NetlistFrame::WinEDA_NetlistFrame(WinEDA_SchematicFrame *parent, wxPoint& framepos):
|
||||||
|
|
|
@ -528,8 +528,10 @@ int margin;
|
||||||
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt"));
|
PlotFileName = MakeFileName(dirbuf, ShortFileName, wxT(".plt"));
|
||||||
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt"));
|
else PlotFileName = MakeFileName(dirbuf, g_DefaultSchematicFileName, wxT(".plt"));
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY);
|
InitPlotParametresHPGL(PlotOffset, g_PlotScaleX, g_PlotScaleY);
|
||||||
Plot_1_Page_HPGL(PlotFileName,screen);
|
Plot_1_Page_HPGL(PlotFileName,screen);
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
screen = (BASE_SCREEN*)screen->Pnext;
|
screen = (BASE_SCREEN*)screen->Pnext;
|
||||||
if ( Select_PlotAll == FALSE ) break;
|
if ( Select_PlotAll == FALSE ) break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -391,6 +391,7 @@ wxPoint StartPos, EndPos;
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
Line.Printf(_("Plot: %s\n"), FileName.GetData()) ;
|
Line.Printf(_("Plot: %s\n"), FileName.GetData()) ;
|
||||||
m_MsgBox->AppendText(Line);
|
m_MsgBox->AppendText(Line);
|
||||||
|
|
||||||
|
@ -507,6 +508,7 @@ wxPoint StartPos, EndPos;
|
||||||
|
|
||||||
/* fin */
|
/* fin */
|
||||||
CloseFilePS(PlotOutput);
|
CloseFilePS(PlotOutput);
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
|
|
||||||
m_MsgBox->AppendText( wxT("Ok\n"));
|
m_MsgBox->AppendText( wxT("Ok\n"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -233,12 +233,14 @@ int ii;
|
||||||
/* Update the part selection box */
|
/* Update the part selection box */
|
||||||
int jj = 1;
|
int jj = 1;
|
||||||
if( CurrentLibEntry ) jj = CurrentLibEntry->m_UnitCount;
|
if( CurrentLibEntry ) jj = CurrentLibEntry->m_UnitCount;
|
||||||
for ( ii = 0; ii < jj ; ii ++ )
|
if ( jj > 1 )
|
||||||
{
|
for ( ii = 0; ii < jj ; ii ++ )
|
||||||
wxString msg;
|
{
|
||||||
msg.Printf(_("Part %c"), 'A' + ii);
|
wxString msg;
|
||||||
m_SelpartBox->Append(msg);
|
msg.Printf(_("Part %c"), 'A' + ii);
|
||||||
}
|
m_SelpartBox->Append(msg);
|
||||||
|
}
|
||||||
|
else m_SelpartBox->Append( wxEmptyString );
|
||||||
m_SelpartBox->SetSelection( ( CurrentUnit > 0 ) ? CurrentUnit-1 : 0);
|
m_SelpartBox->SetSelection( ( CurrentUnit > 0 ) ? CurrentUnit-1 : 0);
|
||||||
|
|
||||||
if( CurrentLibEntry)
|
if( CurrentLibEntry)
|
||||||
|
|
139
eeschema/xx.cpp
139
eeschema/xx.cpp
|
@ -1,139 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: xx.cpp
|
|
||||||
// Purpose:
|
|
||||||
// Author: jean-pierre Charras
|
|
||||||
// Modified by:
|
|
||||||
// Created: 02/03/2006 09:16:35
|
|
||||||
// RCS-ID:
|
|
||||||
// Copyright: License GNU
|
|
||||||
// Licence:
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 02/03/2006 09:16:35
|
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
||||||
#pragma implementation "xx.h"
|
|
||||||
#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
|
|
||||||
|
|
||||||
////@begin includes
|
|
||||||
////@end includes
|
|
||||||
|
|
||||||
#include "xx.h"
|
|
||||||
|
|
||||||
////@begin XPM images
|
|
||||||
|
|
||||||
////@end XPM images
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* xx type definition
|
|
||||||
*/
|
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS( xx, wxDialog )
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* xx event table definition
|
|
||||||
*/
|
|
||||||
|
|
||||||
BEGIN_EVENT_TABLE( xx, wxDialog )
|
|
||||||
|
|
||||||
////@begin xx event table entries
|
|
||||||
////@end xx event table entries
|
|
||||||
|
|
||||||
END_EVENT_TABLE()
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* xx constructors
|
|
||||||
*/
|
|
||||||
|
|
||||||
xx::xx( )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
xx::xx( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
|
||||||
{
|
|
||||||
Create(parent, id, caption, pos, size, style);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* xx creator
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool xx::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
|
||||||
{
|
|
||||||
////@begin xx member initialisation
|
|
||||||
////@end xx member initialisation
|
|
||||||
|
|
||||||
////@begin xx creation
|
|
||||||
SetExtraStyle(GetExtraStyle()|wxWS_EX_BLOCK_EVENTS);
|
|
||||||
wxDialog::Create( parent, id, caption, pos, size, style );
|
|
||||||
|
|
||||||
CreateControls();
|
|
||||||
GetSizer()->Fit(this);
|
|
||||||
GetSizer()->SetSizeHints(this);
|
|
||||||
Centre();
|
|
||||||
////@end xx creation
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Control creation for xx
|
|
||||||
*/
|
|
||||||
|
|
||||||
void xx::CreateControls()
|
|
||||||
{
|
|
||||||
////@begin xx content construction
|
|
||||||
// Generated by DialogBlocks, 02/03/2006 09:16:35 (unregistered)
|
|
||||||
|
|
||||||
xx* itemDialog1 = this;
|
|
||||||
|
|
||||||
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
|
|
||||||
itemDialog1->SetSizer(itemBoxSizer2);
|
|
||||||
|
|
||||||
////@end xx content construction
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Should we show tooltips?
|
|
||||||
*/
|
|
||||||
|
|
||||||
bool xx::ShowToolTips()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Get bitmap resources
|
|
||||||
*/
|
|
||||||
|
|
||||||
wxBitmap xx::GetBitmapResource( const wxString& name )
|
|
||||||
{
|
|
||||||
// Bitmap retrieval
|
|
||||||
////@begin xx bitmap retrieval
|
|
||||||
wxUnusedVar(name);
|
|
||||||
return wxNullBitmap;
|
|
||||||
////@end xx bitmap retrieval
|
|
||||||
}
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Get icon resources
|
|
||||||
*/
|
|
||||||
|
|
||||||
wxIcon xx::GetIconResource( const wxString& name )
|
|
||||||
{
|
|
||||||
// Icon retrieval
|
|
||||||
////@begin xx icon retrieval
|
|
||||||
wxUnusedVar(name);
|
|
||||||
return wxNullIcon;
|
|
||||||
////@end xx icon retrieval
|
|
||||||
}
|
|
|
@ -1,95 +0,0 @@
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: xx.h
|
|
||||||
// Purpose:
|
|
||||||
// Author: jean-pierre Charras
|
|
||||||
// Modified by:
|
|
||||||
// Created: 02/03/2006 09:16:35
|
|
||||||
// RCS-ID:
|
|
||||||
// Copyright: License GNU
|
|
||||||
// Licence:
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Generated by DialogBlocks (unregistered), 02/03/2006 09:16:35
|
|
||||||
|
|
||||||
#ifndef _XX_H_
|
|
||||||
#define _XX_H_
|
|
||||||
|
|
||||||
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
|
||||||
#pragma interface "xx.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Includes
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin includes
|
|
||||||
////@end includes
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Forward declarations
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin forward declarations
|
|
||||||
////@end forward declarations
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Control identifiers
|
|
||||||
*/
|
|
||||||
|
|
||||||
////@begin control identifiers
|
|
||||||
#define ID_DIALOG 10015
|
|
||||||
#define SYMBOL_XX_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
|
|
||||||
#define SYMBOL_XX_TITLE _("xx")
|
|
||||||
#define SYMBOL_XX_IDNAME ID_DIALOG
|
|
||||||
#define SYMBOL_XX_SIZE wxSize(400, 300)
|
|
||||||
#define SYMBOL_XX_POSITION wxDefaultPosition
|
|
||||||
////@end control identifiers
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* Compatibility
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef wxCLOSE_BOX
|
|
||||||
#define wxCLOSE_BOX 0x1000
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*!
|
|
||||||
* xx class declaration
|
|
||||||
*/
|
|
||||||
|
|
||||||
class xx: public wxDialog
|
|
||||||
{
|
|
||||||
DECLARE_DYNAMIC_CLASS( xx )
|
|
||||||
DECLARE_EVENT_TABLE()
|
|
||||||
|
|
||||||
public:
|
|
||||||
/// Constructors
|
|
||||||
xx( );
|
|
||||||
xx( wxWindow* parent, wxWindowID id = SYMBOL_XX_IDNAME, const wxString& caption = SYMBOL_XX_TITLE, const wxPoint& pos = SYMBOL_XX_POSITION, const wxSize& size = SYMBOL_XX_SIZE, long style = SYMBOL_XX_STYLE );
|
|
||||||
|
|
||||||
/// Creation
|
|
||||||
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_XX_IDNAME, const wxString& caption = SYMBOL_XX_TITLE, const wxPoint& pos = SYMBOL_XX_POSITION, const wxSize& size = SYMBOL_XX_SIZE, long style = SYMBOL_XX_STYLE );
|
|
||||||
|
|
||||||
/// Creates the controls and sizers
|
|
||||||
void CreateControls();
|
|
||||||
|
|
||||||
////@begin xx event handler declarations
|
|
||||||
////@end xx event handler declarations
|
|
||||||
|
|
||||||
////@begin xx member function declarations
|
|
||||||
/// Retrieves bitmap resources
|
|
||||||
wxBitmap GetBitmapResource( const wxString& name );
|
|
||||||
|
|
||||||
/// Retrieves icon resources
|
|
||||||
wxIcon GetIconResource( const wxString& name );
|
|
||||||
////@end xx member function declarations
|
|
||||||
|
|
||||||
/// Should we show tooltips?
|
|
||||||
static bool ShowToolTips();
|
|
||||||
|
|
||||||
////@begin xx member variables
|
|
||||||
////@end xx member variables
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _XX_H_
|
|
|
@ -69,7 +69,6 @@ char text[1024];
|
||||||
|
|
||||||
fprintf(File,"$SETUP\n");
|
fprintf(File,"$SETUP\n");
|
||||||
sprintf(text, "InternalUnit %f INCH\n", 1.0/PCB_INTERNAL_UNIT);
|
sprintf(text, "InternalUnit %f INCH\n", 1.0/PCB_INTERNAL_UNIT);
|
||||||
to_point(text);
|
|
||||||
fprintf(File, text);
|
fprintf(File, text);
|
||||||
|
|
||||||
Pcb->m_BoardSettings->m_CopperLayerCount = g_DesignSettings.m_CopperLayerCount;
|
Pcb->m_BoardSettings->m_CopperLayerCount = g_DesignSettings.m_CopperLayerCount;
|
||||||
|
|
|
@ -109,7 +109,6 @@ bool WinEDA_GerberFrame::Read_GERBER_File(wxDC * DC,
|
||||||
/* Lecture de 1 fichier gerber.
|
/* Lecture de 1 fichier gerber.
|
||||||
Format
|
Format
|
||||||
Imperial
|
Imperial
|
||||||
2.3
|
|
||||||
Absolu
|
Absolu
|
||||||
fin de bloc = *
|
fin de bloc = *
|
||||||
CrLf apres chaque commande
|
CrLf apres chaque commande
|
||||||
|
@ -148,6 +147,7 @@ int error = 0;
|
||||||
wxSetWorkingDirectory(wxPathOnly(GERBER_FullFileName));
|
wxSetWorkingDirectory(wxPathOnly(GERBER_FullFileName));
|
||||||
|
|
||||||
wxBusyCursor show_wait;
|
wxBusyCursor show_wait;
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
while( TRUE )
|
while( TRUE )
|
||||||
{
|
{
|
||||||
|
@ -237,6 +237,8 @@ wxBusyCursor show_wait;
|
||||||
}
|
}
|
||||||
fclose(gerber_layer->m_Current_File) ;
|
fclose(gerber_layer->m_Current_File) ;
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
|
|
||||||
/* Init tableau des DCodes et Lecture fichier DCODES */
|
/* Init tableau des DCodes et Lecture fichier DCODES */
|
||||||
if ( !gerber_layer->m_As_DCode )
|
if ( !gerber_layer->m_As_DCode )
|
||||||
{
|
{
|
||||||
|
@ -266,7 +268,6 @@ wxBusyCursor show_wait;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -101,17 +101,14 @@ char buf[256], * ptchar;
|
||||||
ptchar = buf;
|
ptchar = buf;
|
||||||
while ( text && *text == ' ' ) text++; // Skip blanks before number
|
while ( text && *text == ' ' ) text++; // Skip blanks before number
|
||||||
while ( text && *text)
|
while ( text && *text)
|
||||||
{
|
{
|
||||||
if ( IsNumber(*text) )
|
if ( IsNumber(*text) )
|
||||||
{
|
{
|
||||||
* ptchar = * text;
|
* ptchar = * text;
|
||||||
|
|
||||||
if ( * ptchar =='.' || *ptchar == ',' ) * ptchar = g_FloatSeparator;
|
|
||||||
|
|
||||||
text++; ptchar ++;
|
text++; ptchar ++;
|
||||||
}
|
|
||||||
else break;
|
|
||||||
}
|
}
|
||||||
|
else break;
|
||||||
|
}
|
||||||
*ptchar = 0;
|
*ptchar = 0;
|
||||||
|
|
||||||
nb = atof(buf);
|
nb = atof(buf);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
COMMON_GLOBL wxString g_BuildVersion
|
COMMON_GLOBL wxString g_BuildVersion
|
||||||
#ifdef EDA_BASE
|
#ifdef EDA_BASE
|
||||||
(wxT("(2007-05-25)"))
|
(wxT("(2007-06-12)"))
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -273,7 +273,6 @@ COMMON_GLOBL wxString g_UserLibDirBuffer; // Chemin des librairies de module don
|
||||||
|
|
||||||
/* variables globales generales */
|
/* variables globales generales */
|
||||||
|
|
||||||
COMMON_GLOBL int g_FloatSeparator; // = '.' ou = ',' selon locale pour l'ecriture des nombres flotttant
|
|
||||||
COMMON_GLOBL int g_DebugLevel; // 0= Pas de debug */
|
COMMON_GLOBL int g_DebugLevel; // 0= Pas de debug */
|
||||||
COMMON_GLOBL int g_MouseOldButtons;
|
COMMON_GLOBL int g_MouseOldButtons;
|
||||||
COMMON_GLOBL int g_KeyPressed;
|
COMMON_GLOBL int g_KeyPressed;
|
||||||
|
@ -352,7 +351,7 @@ class WinEDA_DrawPanel;
|
||||||
|
|
||||||
|
|
||||||
/* COMMON.CPP */
|
/* COMMON.CPP */
|
||||||
wxString ReturnPcbLayerName(int layer_number, bool is_filename = FALSE);
|
wxString ReturnPcbLayerName(int layer_number, bool is_filename = FALSE, bool is_gui = FALSE);
|
||||||
/* Return the name of the layer number "layer_number".
|
/* Return the name of the layer number "layer_number".
|
||||||
if "is_filename" == TRUE, the name can be used for a file name
|
if "is_filename" == TRUE, the name can be used for a file name
|
||||||
(not internatinalized, no space)*/
|
(not internatinalized, no space)*/
|
||||||
|
|
|
@ -698,7 +698,7 @@ enum main_id {
|
||||||
|
|
||||||
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
|
ID_AUX_TOOLBAR_PCB_VIA_SIZE,
|
||||||
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
||||||
ID_AUX_TOOLBAR_PCB_UNUSED1,
|
ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR,
|
||||||
ID_AUX_TOOLBAR_PCB_UNUSED2,
|
ID_AUX_TOOLBAR_PCB_UNUSED2,
|
||||||
ID_AUX_TOOLBAR_PCB_UNUSED3,
|
ID_AUX_TOOLBAR_PCB_UNUSED3,
|
||||||
ID_AUX_TOOLBAR_PCB_UNUSED4,
|
ID_AUX_TOOLBAR_PCB_UNUSED4,
|
||||||
|
|
|
@ -479,6 +479,7 @@ public:
|
||||||
// Gestion des layers:
|
// Gestion des layers:
|
||||||
int SelectLayer(int default_layer, int min_layer, int max_layer);
|
int SelectLayer(int default_layer, int min_layer, int max_layer);
|
||||||
void SelectLayerPair(void);
|
void SelectLayerPair(void);
|
||||||
|
void SwitchLayer(wxDC *DC, int layer);
|
||||||
|
|
||||||
// divers
|
// divers
|
||||||
void AddHistory(int value, DrawStructureType type); // Add value in data list history
|
void AddHistory(int value, DrawStructureType type); // Add value in data list history
|
||||||
|
@ -528,6 +529,7 @@ public:
|
||||||
void ReCreateOptToolbar(void);
|
void ReCreateOptToolbar(void);
|
||||||
void ReCreateMenuBar(void);
|
void ReCreateMenuBar(void);
|
||||||
WinEDAChoiceBox * ReCreateLayerBox( WinEDA_Toolbar * parent);
|
WinEDAChoiceBox * ReCreateLayerBox( WinEDA_Toolbar * parent);
|
||||||
|
void PrepareLayerIndicator(void);
|
||||||
void OnLeftClick(wxDC * DC, const wxPoint& MousePos);
|
void OnLeftClick(wxDC * DC, const wxPoint& MousePos);
|
||||||
void OnLeftDClick(wxDC * DC, const wxPoint& MousePos);
|
void OnLeftDClick(wxDC * DC, const wxPoint& MousePos);
|
||||||
void OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu);
|
void OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu);
|
||||||
|
@ -627,6 +629,7 @@ public:
|
||||||
void Start_MoveOneNodeOrSegment(TRACK * track, wxDC * DC, int command);
|
void Start_MoveOneNodeOrSegment(TRACK * track, wxDC * DC, int command);
|
||||||
bool PlaceDraggedTrackSegment(TRACK * Track, wxDC * DC);
|
bool PlaceDraggedTrackSegment(TRACK * Track, wxDC * DC);
|
||||||
void Start_DragTrackSegmentAndKeepSlope(TRACK * track, wxDC * DC);
|
void Start_DragTrackSegmentAndKeepSlope(TRACK * track, wxDC * DC);
|
||||||
|
void SwitchLayer(wxDC *DC, int layer);
|
||||||
|
|
||||||
// Edition des zones
|
// Edition des zones
|
||||||
EDGE_ZONE * Del_SegmEdgeZone(wxDC * DC, EDGE_ZONE * edge_zone);
|
EDGE_ZONE * Del_SegmEdgeZone(wxDC * DC, EDGE_ZONE * edge_zone);
|
||||||
|
|
|
@ -0,0 +1,255 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: cleaningoptions_dialog.cpp
|
||||||
|
// Purpose:
|
||||||
|
// Author: jean-pierre Charras
|
||||||
|
// Modified by:
|
||||||
|
// Created: 25/05/2007 14:24:54
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: GNU License
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Generated by DialogBlocks (unregistered), 25/05/2007 14:24:54
|
||||||
|
|
||||||
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma implementation "cleaningoptions_dialog.h"
|
||||||
|
#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
|
||||||
|
|
||||||
|
////@begin includes
|
||||||
|
////@end includes
|
||||||
|
|
||||||
|
#include "cleaningoptions_dialog.h"
|
||||||
|
|
||||||
|
////@begin XPM images
|
||||||
|
////@end XPM images
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame type definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS( WinEDA_CleaningOptionsFrame, wxDialog )
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame event table definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE( WinEDA_CleaningOptionsFrame, wxDialog )
|
||||||
|
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame event table entries
|
||||||
|
EVT_CLOSE( WinEDA_CleaningOptionsFrame::OnCloseWindow )
|
||||||
|
|
||||||
|
EVT_BUTTON( ID_BUTTON_EXECUTE, WinEDA_CleaningOptionsFrame::OnButtonExecuteClick )
|
||||||
|
|
||||||
|
////@end WinEDA_CleaningOptionsFrame event table entries
|
||||||
|
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
WinEDA_CleaningOptionsFrame::WinEDA_CleaningOptionsFrame()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
WinEDA_CleaningOptionsFrame::WinEDA_CleaningOptionsFrame( WinEDA_PcbFrame* parent, wxDC * DC, wxWindowID id,
|
||||||
|
const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
m_Parent = parent;
|
||||||
|
m_DC = DC;
|
||||||
|
Create(parent, id, caption, pos, size, style);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame creator
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool WinEDA_CleaningOptionsFrame::Create( wxWindow * parent, wxWindowID id,
|
||||||
|
const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
||||||
|
{
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame creation
|
||||||
|
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
|
||||||
|
wxDialog::Create( parent, id, caption, pos, size, style );
|
||||||
|
|
||||||
|
CreateControls();
|
||||||
|
if (GetSizer())
|
||||||
|
{
|
||||||
|
GetSizer()->SetSizeHints(this);
|
||||||
|
}
|
||||||
|
Centre();
|
||||||
|
////@end WinEDA_CleaningOptionsFrame creation
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame destructor
|
||||||
|
*/
|
||||||
|
|
||||||
|
WinEDA_CleaningOptionsFrame::~WinEDA_CleaningOptionsFrame()
|
||||||
|
{
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame destruction
|
||||||
|
////@end WinEDA_CleaningOptionsFrame destruction
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Member initialisation
|
||||||
|
*/
|
||||||
|
|
||||||
|
void WinEDA_CleaningOptionsFrame::Init()
|
||||||
|
{
|
||||||
|
m_Parent = NULL;
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame member initialisation
|
||||||
|
m_CleanViasOpt = NULL;
|
||||||
|
m_MergetSegmOpt = NULL;
|
||||||
|
m_DeleteunconnectedOpt = NULL;
|
||||||
|
m_ConnectToPadsOpt = NULL;
|
||||||
|
////@end WinEDA_CleaningOptionsFrame member initialisation
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Control creation for WinEDA_CleaningOptionsFrame
|
||||||
|
*/
|
||||||
|
|
||||||
|
void WinEDA_CleaningOptionsFrame::CreateControls()
|
||||||
|
{
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame content construction
|
||||||
|
// Generated by DialogBlocks, 28/05/2007 19:08:46 (unregistered)
|
||||||
|
|
||||||
|
WinEDA_CleaningOptionsFrame* itemDialog1 = this;
|
||||||
|
|
||||||
|
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
itemDialog1->SetSizer(itemBoxSizer2);
|
||||||
|
|
||||||
|
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||||
|
|
||||||
|
wxStaticBox* itemStaticBoxSizer4Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Static"));
|
||||||
|
wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL);
|
||||||
|
itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
|
m_CleanViasOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX_CLEAN_VIAS, _("Delete redundant vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_CleanViasOpt->SetValue(false);
|
||||||
|
itemStaticBoxSizer4->Add(m_CleanViasOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_MergetSegmOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX_MERGE_SEGMENTS, _("Merge segments"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_MergetSegmOpt->SetValue(false);
|
||||||
|
itemStaticBoxSizer4->Add(m_MergetSegmOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_DeleteunconnectedOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Delete unconnected tracks"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_DeleteunconnectedOpt->SetValue(false);
|
||||||
|
itemStaticBoxSizer4->Add(m_DeleteunconnectedOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_ConnectToPadsOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Connect stubs to Pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_ConnectToPadsOpt->SetValue(false);
|
||||||
|
itemStaticBoxSizer4->Add(m_ConnectToPadsOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
wxBoxSizer* itemBoxSizer9 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
itemBoxSizer3->Add(itemBoxSizer9, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
|
wxButton* itemButton10 = new wxButton( itemDialog1, ID_BUTTON_EXECUTE, _("Clean pcb"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
itemButton10->SetDefault();
|
||||||
|
itemBoxSizer9->Add(itemButton10, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||||
|
|
||||||
|
// Set validators
|
||||||
|
m_CleanViasOpt->SetValidator( wxGenericValidator(& s_CleanVias) );
|
||||||
|
m_MergetSegmOpt->SetValidator( wxGenericValidator(& s_MergeSegments) );
|
||||||
|
m_DeleteunconnectedOpt->SetValidator( wxGenericValidator(& s_DeleteUnconnectedSegm) );
|
||||||
|
////@end WinEDA_CleaningOptionsFrame content construction
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Should we show tooltips?
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool WinEDA_CleaningOptionsFrame::ShowToolTips()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Get bitmap resources
|
||||||
|
*/
|
||||||
|
|
||||||
|
wxBitmap WinEDA_CleaningOptionsFrame::GetBitmapResource( const wxString& name )
|
||||||
|
{
|
||||||
|
// Bitmap retrieval
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame bitmap retrieval
|
||||||
|
wxUnusedVar(name);
|
||||||
|
return wxNullBitmap;
|
||||||
|
////@end WinEDA_CleaningOptionsFrame bitmap retrieval
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Get icon resources
|
||||||
|
*/
|
||||||
|
|
||||||
|
wxIcon WinEDA_CleaningOptionsFrame::GetIconResource( const wxString& name )
|
||||||
|
{
|
||||||
|
// Icon retrieval
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame icon retrieval
|
||||||
|
wxUnusedVar(name);
|
||||||
|
return wxNullIcon;
|
||||||
|
////@end WinEDA_CleaningOptionsFrame icon retrieval
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_EXECUTE
|
||||||
|
*/
|
||||||
|
|
||||||
|
void WinEDA_CleaningOptionsFrame::OnButtonExecuteClick( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
s_CleanVias = m_CleanViasOpt->GetValue();
|
||||||
|
s_MergeSegments = m_MergetSegmOpt->GetValue();
|
||||||
|
s_DeleteUnconnectedSegm = m_DeleteunconnectedOpt->GetValue();
|
||||||
|
s_ConnectToPads = m_ConnectToPadsOpt->GetValue();
|
||||||
|
|
||||||
|
Clean_Pcb_Items(m_Parent, m_DC );
|
||||||
|
|
||||||
|
Close(TRUE);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* wxEVT_CLOSE_WINDOW event handler for ID_WIN_EDA_CLEANINGOPTIONSFRAME
|
||||||
|
*/
|
||||||
|
|
||||||
|
void WinEDA_CleaningOptionsFrame::OnCloseWindow( wxCloseEvent& event )
|
||||||
|
{
|
||||||
|
s_CleanVias = m_CleanViasOpt->GetValue();
|
||||||
|
s_MergeSegments = m_MergetSegmOpt->GetValue();
|
||||||
|
s_DeleteUnconnectedSegm = m_DeleteunconnectedOpt->GetValue();
|
||||||
|
s_ConnectToPads = m_ConnectToPadsOpt->GetValue();
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: cleaningoptions_dialog.h
|
||||||
|
// Purpose:
|
||||||
|
// Author: jean-pierre Charras
|
||||||
|
// Modified by:
|
||||||
|
// Created: 25/05/2007 14:24:54
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: GNU License
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Generated by DialogBlocks (unregistered), 25/05/2007 14:24:54
|
||||||
|
|
||||||
|
#ifndef _CLEANINGOPTIONS_DIALOG_H_
|
||||||
|
#define _CLEANINGOPTIONS_DIALOG_H_
|
||||||
|
|
||||||
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma interface "cleaningoptions_dialog.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Includes
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin includes
|
||||||
|
#include "wx/valgen.h"
|
||||||
|
////@end includes
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Forward declarations
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin forward declarations
|
||||||
|
////@end forward declarations
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Control identifiers
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin control identifiers
|
||||||
|
#define ID_WIN_EDA_CLEANINGOPTIONSFRAME 10000
|
||||||
|
#define ID_CHECKBOX_CLEAN_VIAS 10001
|
||||||
|
#define ID_CHECKBOX_MERGE_SEGMENTS 10003
|
||||||
|
#define ID_CHECKBOX1 10005
|
||||||
|
#define ID_CHECKBOX 10004
|
||||||
|
#define ID_BUTTON_EXECUTE 10006
|
||||||
|
#define SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
|
||||||
|
#define SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_TITLE _("Cleaning options")
|
||||||
|
#define SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_IDNAME ID_WIN_EDA_CLEANINGOPTIONSFRAME
|
||||||
|
#define SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_SIZE wxSize(400, 300)
|
||||||
|
#define SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_POSITION wxDefaultPosition
|
||||||
|
////@end control identifiers
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* WinEDA_CleaningOptionsFrame class declaration
|
||||||
|
*/
|
||||||
|
|
||||||
|
class WinEDA_CleaningOptionsFrame: public wxDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS( WinEDA_CleaningOptionsFrame )
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
public:
|
||||||
|
/// Constructors
|
||||||
|
WinEDA_CleaningOptionsFrame();
|
||||||
|
WinEDA_CleaningOptionsFrame( WinEDA_PcbFrame * parent, wxDC * DC,
|
||||||
|
wxWindowID id = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_SIZE, long style = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_STYLE );
|
||||||
|
|
||||||
|
/// Creation
|
||||||
|
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_IDNAME, const wxString& caption = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_TITLE, const wxPoint& pos = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_POSITION, const wxSize& size = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_SIZE, long style = SYMBOL_WINEDA_CLEANINGOPTIONSFRAME_STYLE );
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
~WinEDA_CleaningOptionsFrame();
|
||||||
|
|
||||||
|
/// Initialises member variables
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
/// Creates the controls and sizers
|
||||||
|
void CreateControls();
|
||||||
|
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame event handler declarations
|
||||||
|
|
||||||
|
/// wxEVT_CLOSE_WINDOW event handler for ID_WIN_EDA_CLEANINGOPTIONSFRAME
|
||||||
|
void OnCloseWindow( wxCloseEvent& event );
|
||||||
|
|
||||||
|
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_BUTTON_EXECUTE
|
||||||
|
void OnButtonExecuteClick( wxCommandEvent& event );
|
||||||
|
|
||||||
|
////@end WinEDA_CleaningOptionsFrame event handler declarations
|
||||||
|
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame member function declarations
|
||||||
|
|
||||||
|
/// Retrieves bitmap resources
|
||||||
|
wxBitmap GetBitmapResource( const wxString& name );
|
||||||
|
|
||||||
|
/// Retrieves icon resources
|
||||||
|
wxIcon GetIconResource( const wxString& name );
|
||||||
|
////@end WinEDA_CleaningOptionsFrame member function declarations
|
||||||
|
|
||||||
|
/// Should we show tooltips?
|
||||||
|
static bool ShowToolTips();
|
||||||
|
|
||||||
|
////@begin WinEDA_CleaningOptionsFrame member variables
|
||||||
|
wxCheckBox* m_CleanViasOpt;
|
||||||
|
wxCheckBox* m_MergetSegmOpt;
|
||||||
|
wxCheckBox* m_DeleteunconnectedOpt;
|
||||||
|
wxCheckBox* m_ConnectToPadsOpt;
|
||||||
|
////@end WinEDA_CleaningOptionsFrame member variables
|
||||||
|
WinEDA_PcbFrame * m_Parent;
|
||||||
|
wxDC * m_DC;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _CLEANINGOPTIONS_DIALOG_H_
|
|
@ -134,7 +134,13 @@ int CurrentTime = time(NULL);
|
||||||
{
|
{
|
||||||
wxString tmpFileName = GetScreen()->m_FileName;
|
wxString tmpFileName = GetScreen()->m_FileName;
|
||||||
wxString filename = g_SaveFileName + PcbExtBuffer;
|
wxString filename = g_SaveFileName + PcbExtBuffer;
|
||||||
|
bool flgmodify = GetScreen()->IsModify();
|
||||||
((WinEDA_PcbFrame*)this)->SavePcbFile(filename);
|
((WinEDA_PcbFrame*)this)->SavePcbFile(filename);
|
||||||
|
if( flgmodify ) // Set the flags m_Modify cleared by SavePcbFile()
|
||||||
|
{
|
||||||
|
GetScreen()->SetModify();
|
||||||
|
GetScreen()->SetSave();// Set the flags m_FlagSave cleared by SetModify()
|
||||||
|
}
|
||||||
GetScreen()->m_FileName = tmpFileName;
|
GetScreen()->m_FileName = tmpFileName;
|
||||||
SetTitle(GetScreen()->m_FileName);
|
SetTitle(GetScreen()->m_FileName);
|
||||||
}
|
}
|
||||||
|
@ -355,19 +361,19 @@ int CurrentTime = time(NULL);
|
||||||
OnHotKey(DC, hotkey, NULL);
|
OnHotKey(DC, hotkey, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************/
|
/****************************************************************/
|
||||||
void WinEDA_BasePcbFrame::SwitchLayer(wxDC *DC, int layer)
|
void WinEDA_BasePcbFrame::SwitchLayer(wxDC *DC, int layer)
|
||||||
/*****************************************************************/
|
/*****************************************************************/
|
||||||
{
|
{
|
||||||
//overridden in WinEDA_PcbFrame;
|
//Note: overridden in WinEDA_PcbFrame;
|
||||||
int preslayer = GetScreen()->m_Active_Layer;
|
int preslayer = GetScreen()->m_Active_Layer;
|
||||||
//if there is only one layer, don't switch.
|
//if there is only one layer, don't switch.
|
||||||
if ( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1)
|
if ( m_Pcb->m_BoardSettings->m_CopperLayerCount <= 1)
|
||||||
return;
|
layer = LAYER_CUIVRE_N; // Of course we select the copper layer
|
||||||
//otherwise, must be at least 2 layers..see if it is possible.
|
//otherwise, we select the requested layer only if it is possible
|
||||||
if(layer != LAYER_CUIVRE_N || layer != LAYER_CMP_N ||
|
if( layer != LAYER_CMP_N && layer >= m_Pcb->m_BoardSettings->m_CopperLayerCount-1 )
|
||||||
layer >= m_Pcb->m_BoardSettings->m_CopperLayerCount-1)
|
return;
|
||||||
return;
|
|
||||||
if(preslayer == layer)
|
if(preslayer == layer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,703 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<anthemion-project version="1.0.0.0" xmlns="http://www.anthemion.co.uk">
|
||||||
|
<header>
|
||||||
|
<long name="name_counter">0</long>
|
||||||
|
<string name="html_path">""</string>
|
||||||
|
<string name="title">""</string>
|
||||||
|
<string name="author">""</string>
|
||||||
|
<string name="description">""</string>
|
||||||
|
<string name="xrc_filename">""</string>
|
||||||
|
<bool name="convert_images_to_xpm">0</bool>
|
||||||
|
<bool name="inline_images">0</bool>
|
||||||
|
<bool name="generate_cpp_for_xrc">0</bool>
|
||||||
|
<bool name="use_help_text_for_tooltips">1</bool>
|
||||||
|
<bool name="translate_strings">1</bool>
|
||||||
|
<bool name="extract_strings">0</bool>
|
||||||
|
<string name="user_name">"jean-pierre Charras"</string>
|
||||||
|
<string name="copyright_string">"GNU License"</string>
|
||||||
|
<string name="resource_prefix">""</string>
|
||||||
|
<bool name="use_two_step_construction">0</bool>
|
||||||
|
<bool name="use_enums">0</bool>
|
||||||
|
<string name="current_platform">"<All platforms>"</string>
|
||||||
|
<string name="target_wx_version">"2.8.3"</string>
|
||||||
|
<string name="cpp_header_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: %HEADER-FILENAME%
|
||||||
|
// Purpose:
|
||||||
|
// Author: %AUTHOR%
|
||||||
|
// Modified by:
|
||||||
|
// Created: %DATE%
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: %COPYRIGHT%
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_implementation_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: %SOURCE-FILENAME%
|
||||||
|
// Purpose:
|
||||||
|
// Author: %AUTHOR%
|
||||||
|
// Modified by:
|
||||||
|
// Created: %DATE%
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: %COPYRIGHT%
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_symbols_file_comment">"/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: %SYMBOLS-FILENAME%
|
||||||
|
// Purpose: Symbols file
|
||||||
|
// Author: %AUTHOR%
|
||||||
|
// Modified by:
|
||||||
|
// Created: %DATE%
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: %COPYRIGHT%
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_header_preamble">"#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma interface "%HEADER-FILENAME%"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_implementation_preamble">"#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
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_function_declaration_comment">" /// %BODY%
|
||||||
|
"</string>
|
||||||
|
<string name="cpp_function_implementation_comment">"
|
||||||
|
/*!
|
||||||
|
* %BODY%
|
||||||
|
*/
|
||||||
|
|
||||||
|
"</string>
|
||||||
|
<string name="resource_file_header">"app_resources.h"</string>
|
||||||
|
<string name="resource_file_implementation">"app_resources.cpp"</string>
|
||||||
|
<string name="resource_class_name">"AppResources"</string>
|
||||||
|
<string name="app_file_header">"app.h"</string>
|
||||||
|
<string name="app_file_implementation">"app.cpp"</string>
|
||||||
|
<string name="app_class_name">"Application"</string>
|
||||||
|
<bool name="generate_app_class">0</bool>
|
||||||
|
<string name="external_symbol_filenames">""</string>
|
||||||
|
<string name="configuration">"<None>"</string>
|
||||||
|
<string name="source_encoding">"iso-8859-1"</string>
|
||||||
|
<string name="xrc_encoding">"utf-8"</string>
|
||||||
|
<string name="project_encoding">"utf-8"</string>
|
||||||
|
<string name="resource_archive">""</string>
|
||||||
|
<long name="text_file_type">0</long>
|
||||||
|
<bool name="use_tabs">0</bool>
|
||||||
|
<long name="indent_size">4</long>
|
||||||
|
<string name="whitespace_after_return_type">" "</string>
|
||||||
|
<string name="resource_xrc_cpp">""</string>
|
||||||
|
<bool name="use_resource_archive">0</bool>
|
||||||
|
<bool name="use_generated_xrc_cpp">0</bool>
|
||||||
|
<bool name="always_generate_xrc">1</bool>
|
||||||
|
<bool name="archive_xrc_files">1</bool>
|
||||||
|
<bool name="archive_image_files">1</bool>
|
||||||
|
<bool name="archive_all_image_files">0</bool>
|
||||||
|
<bool name="xrc_retain_relative_paths">1</bool>
|
||||||
|
</header>
|
||||||
|
<data>
|
||||||
|
<document>
|
||||||
|
<string name="title">""</string>
|
||||||
|
<string name="type">"data-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">""</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Configurations"</string>
|
||||||
|
<string name="type">"config-data-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">""</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="template-name">""</string>
|
||||||
|
<bool name="dirty">1</bool>
|
||||||
|
<string name="Compiler name">""</string>
|
||||||
|
<string name="Build mode">"Debug"</string>
|
||||||
|
<string name="Unicode mode">"ANSI"</string>
|
||||||
|
<string name="Shared mode">"Static"</string>
|
||||||
|
<string name="Modularity">"Modular"</string>
|
||||||
|
<string name="GUI mode">"GUI"</string>
|
||||||
|
<string name="Toolkit">"wxMSW"</string>
|
||||||
|
<string name="Runtime linking">"Dynamic"</string>
|
||||||
|
<string name="Use exceptions">"Yes"</string>
|
||||||
|
<string name="Use ODBC">"No"</string>
|
||||||
|
<string name="Use OpenGL">"No"</string>
|
||||||
|
<string name="wxWidgets version">"%WXVERSION%"</string>
|
||||||
|
<string name="Executable name">"%EXECUTABLE%"</string>
|
||||||
|
<string name="Program arguments">""</string>
|
||||||
|
<string name="Working path">"%AUTO%"</string>
|
||||||
|
<string name="Output path">"%AUTO%"</string>
|
||||||
|
<string name="Objects path">"%AUTO%"</string>
|
||||||
|
<string name="Compiler location">"%AUTO%"</string>
|
||||||
|
<string name="wxWidgets location">"%AUTO%"</string>
|
||||||
|
<string name="C++ command">"%AUTO%"</string>
|
||||||
|
<string name="Resource compiler">"%AUTO%"</string>
|
||||||
|
<string name="Make command">"%AUTO%"</string>
|
||||||
|
<string name="Project makefile">"%AUTO%"</string>
|
||||||
|
<string name="wxWidgets makefile">"%AUTO%"</string>
|
||||||
|
<string name="Compiler bin path">"%AUTO%"</string>
|
||||||
|
<string name="Compiler include path">"%AUTO%"</string>
|
||||||
|
<string name="Compiler lib path">"%AUTO%"</string>
|
||||||
|
<string name="Preprocessor flags">"%AUTO%"</string>
|
||||||
|
<string name="Optimizations">"%AUTO%"</string>
|
||||||
|
<string name="Warnings">"%AUTO%"</string>
|
||||||
|
<string name="Debug flags">"%AUTO%"</string>
|
||||||
|
<string name="Libraries">"%AUTO%"</string>
|
||||||
|
<string name="Library path">"%AUTO%"</string>
|
||||||
|
<string name="Linker flags">"%AUTO%"</string>
|
||||||
|
<string name="Include path">"%AUTO%"</string>
|
||||||
|
<string name="Resource flags">"%AUTO%"</string>
|
||||||
|
<string name="Resource path">"%AUTO%"</string>
|
||||||
|
<string name="wxWidgets build path">"%AUTO%"</string>
|
||||||
|
<string name="wxWidgets build command">"%AUTO%"</string>
|
||||||
|
<string name="wxWidgets clean command">"%AUTO%"</string>
|
||||||
|
<string name="PATH variable">"%AUTO%"</string>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<documents>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Projects"</string>
|
||||||
|
<string name="type">"root-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"project"</string>
|
||||||
|
<long name="is-transient">1</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">1</long>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Windows"</string>
|
||||||
|
<string name="type">"html-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"dialogsfolder"</string>
|
||||||
|
<long name="is-transient">1</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">1</long>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Cleaning options"</string>
|
||||||
|
<string name="type">"dialog-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"dialog"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbDialogProxy"</string>
|
||||||
|
<long name="base-id">10000</long>
|
||||||
|
<bool name="use-id-prefix">0</bool>
|
||||||
|
<string name="id-prefix">""</string>
|
||||||
|
<bool name="use-id-suffix">0</bool>
|
||||||
|
<string name="id-suffix">""</string>
|
||||||
|
<long name="use-xrc">0</long>
|
||||||
|
<string name="event-handler-0">"wxEVT_CLOSE_WINDOW|OnCloseWindow|NONE||"</string>
|
||||||
|
<string name="proxy-Id name">"ID_WIN_EDA_CLEANINGOPTIONSFRAME"</string>
|
||||||
|
<long name="proxy-Id value">10000</long>
|
||||||
|
<string name="proxy-Class">"WinEDA_CleaningOptionsFrame"</string>
|
||||||
|
<string name="proxy-Base class">"wxDialog"</string>
|
||||||
|
<string name="proxy-Window kind">"wxDialog"</string>
|
||||||
|
<string name="proxy-Implementation filename">"cleaningoptions_dialog.cpp"</string>
|
||||||
|
<string name="proxy-Header filename">"cleaningoptions_dialog.h"</string>
|
||||||
|
<string name="proxy-XRC filename">""</string>
|
||||||
|
<string name="proxy-Title">"Cleaning options"</string>
|
||||||
|
<bool name="proxy-Centre">1</bool>
|
||||||
|
<string name="proxy-Icon">""</string>
|
||||||
|
<bool name="proxy-Dialog units">0</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxDEFAULT_DIALOG_STYLE">0</bool>
|
||||||
|
<bool name="proxy-wxCAPTION">1</bool>
|
||||||
|
<bool name="proxy-wxRESIZE_BORDER">1</bool>
|
||||||
|
<bool name="proxy-wxTHICK_FRAME">0</bool>
|
||||||
|
<bool name="proxy-wxSYSTEM_MENU">1</bool>
|
||||||
|
<bool name="proxy-wxSTAY_ON_TOP">0</bool>
|
||||||
|
<bool name="proxy-wxDIALOG_NO_PARENT">0</bool>
|
||||||
|
<bool name="proxy-wxCLOSE_BOX">1</bool>
|
||||||
|
<bool name="proxy-wxMAXIMIZE_BOX">0</bool>
|
||||||
|
<bool name="proxy-wxMINIMIZE_BOX">0</bool>
|
||||||
|
<bool name="proxy-wxDIALOG_MODAL">1</bool>
|
||||||
|
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxSIMPLE_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxDOUBLE_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxSUNKEN_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxRAISED_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxSTATIC_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxCLIP_CHILDREN">0</bool>
|
||||||
|
<bool name="proxy-wxTAB_TRAVERSAL">0</bool>
|
||||||
|
<bool name="proxy-wxWS_EX_VALIDATE_RECURSIVELY">0</bool>
|
||||||
|
<bool name="proxy-wxWS_EX_BLOCK_EVENTS">1</bool>
|
||||||
|
<bool name="proxy-wxWS_EX_TRANSIENT">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<bool name="proxy-wxDIALOG_EX_CONTEXTHELP">0</bool>
|
||||||
|
<bool name="proxy-Fit to content">1</bool>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">400</long>
|
||||||
|
<long name="proxy-Height">300</long>
|
||||||
|
<bool name="proxy-AUI manager">0</bool>
|
||||||
|
<string name="proxy-Event sources">""</string>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxBoxSizer V"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"sizer"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||||
|
<string name="proxy-Orientation">"Vertical"</string>
|
||||||
|
<string name="proxy-Member variable name">""</string>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxBoxSizer H"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"sizer"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||||
|
<string name="proxy-Orientation">"Horizontal"</string>
|
||||||
|
<string name="proxy-Member variable name">""</string>
|
||||||
|
<string name="proxy-AlignH">"Centre"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxStaticBoxSizer V"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"sizer"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbStaticBoxSizerProxy"</string>
|
||||||
|
<string name="proxy-Id name">"wxID_ANY"</string>
|
||||||
|
<long name="proxy-Id value">-1</long>
|
||||||
|
<string name="proxy-Label">"Static"</string>
|
||||||
|
<string name="proxy-Member variable name">""</string>
|
||||||
|
<string name="proxy-Sizer member variable name">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Static box class">"wxStaticBox"</string>
|
||||||
|
<string name="proxy-Orientation">"Vertical"</string>
|
||||||
|
<string name="proxy-AlignH">"Centre"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxCheckBox: ID_CHECKBOX_CLEAN_VIAS"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"checkbox"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbCheckBoxProxy"</string>
|
||||||
|
<string name="proxy-Id name">"ID_CHECKBOX_CLEAN_VIAS"</string>
|
||||||
|
<long name="proxy-Id value">10001</long>
|
||||||
|
<string name="proxy-Class">"wxCheckBox"</string>
|
||||||
|
<string name="proxy-Base class">"wxCheckBox"</string>
|
||||||
|
<bool name="proxy-External implementation">1</bool>
|
||||||
|
<bool name="proxy-Separate files">0</bool>
|
||||||
|
<string name="proxy-Implementation filename">""</string>
|
||||||
|
<string name="proxy-Header filename">""</string>
|
||||||
|
<string name="proxy-Member variable name">"m_CleanViasOpt"</string>
|
||||||
|
<string name="proxy-Label">"Delete redundant vias"</string>
|
||||||
|
<bool name="proxy-Initial value">0</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Data variable">"s_CleanVias"</string>
|
||||||
|
<string name="proxy-Data validator">"wxGenericValidator(& %VARIABLE%)"</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_2STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_3STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">-1</long>
|
||||||
|
<long name="proxy-Height">-1</long>
|
||||||
|
<string name="proxy-AlignH">"Left"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Custom arguments">""</string>
|
||||||
|
<string name="proxy-Custom ctor arguments">""</string>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxCheckBox: ID_CHECKBOX_MERGE_SEGMENTS"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"checkbox"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbCheckBoxProxy"</string>
|
||||||
|
<string name="proxy-Id name">"ID_CHECKBOX_MERGE_SEGMENTS"</string>
|
||||||
|
<long name="proxy-Id value">10003</long>
|
||||||
|
<string name="proxy-Class">"wxCheckBox"</string>
|
||||||
|
<string name="proxy-Base class">"wxCheckBox"</string>
|
||||||
|
<bool name="proxy-External implementation">1</bool>
|
||||||
|
<bool name="proxy-Separate files">0</bool>
|
||||||
|
<string name="proxy-Implementation filename">""</string>
|
||||||
|
<string name="proxy-Header filename">""</string>
|
||||||
|
<string name="proxy-Member variable name">"m_MergetSegmOpt"</string>
|
||||||
|
<string name="proxy-Label">"Merge segments"</string>
|
||||||
|
<bool name="proxy-Initial value">0</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Data variable">"s_MergeSegments"</string>
|
||||||
|
<string name="proxy-Data validator">"wxGenericValidator(& %VARIABLE%)"</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_2STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_3STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">-1</long>
|
||||||
|
<long name="proxy-Height">-1</long>
|
||||||
|
<string name="proxy-AlignH">"Left"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Custom arguments">""</string>
|
||||||
|
<string name="proxy-Custom ctor arguments">""</string>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxCheckBox: ID_CHECKBOX1"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"checkbox"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbCheckBoxProxy"</string>
|
||||||
|
<string name="proxy-Id name">"ID_CHECKBOX1"</string>
|
||||||
|
<long name="proxy-Id value">10005</long>
|
||||||
|
<string name="proxy-Class">"wxCheckBox"</string>
|
||||||
|
<string name="proxy-Base class">"wxCheckBox"</string>
|
||||||
|
<bool name="proxy-External implementation">1</bool>
|
||||||
|
<bool name="proxy-Separate files">0</bool>
|
||||||
|
<string name="proxy-Implementation filename">""</string>
|
||||||
|
<string name="proxy-Header filename">""</string>
|
||||||
|
<string name="proxy-Member variable name">"m_DeleteunconnectedOpt"</string>
|
||||||
|
<string name="proxy-Label">"Delete unconnected tracks"</string>
|
||||||
|
<bool name="proxy-Initial value">0</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Data variable">"s_DeleteUnconnectedSegm"</string>
|
||||||
|
<string name="proxy-Data validator">"wxGenericValidator(& %VARIABLE%)"</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_2STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_3STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">-1</long>
|
||||||
|
<long name="proxy-Height">-1</long>
|
||||||
|
<string name="proxy-AlignH">"Left"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Custom arguments">""</string>
|
||||||
|
<string name="proxy-Custom ctor arguments">""</string>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxCheckBox: ID_CHECKBOX"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"checkbox"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbCheckBoxProxy"</string>
|
||||||
|
<string name="proxy-Id name">"ID_CHECKBOX"</string>
|
||||||
|
<long name="proxy-Id value">10004</long>
|
||||||
|
<string name="proxy-Class">"wxCheckBox"</string>
|
||||||
|
<string name="proxy-Base class">"wxCheckBox"</string>
|
||||||
|
<bool name="proxy-External implementation">1</bool>
|
||||||
|
<bool name="proxy-Separate files">0</bool>
|
||||||
|
<string name="proxy-Implementation filename">""</string>
|
||||||
|
<string name="proxy-Header filename">""</string>
|
||||||
|
<string name="proxy-Member variable name">"m_ConnectToPadsOpt"</string>
|
||||||
|
<string name="proxy-Label">"Connect to Pads"</string>
|
||||||
|
<bool name="proxy-Initial value">0</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Data variable">""</string>
|
||||||
|
<string name="proxy-Data validator">""</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxALIGN_RIGHT">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_2STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_3STATE">0</bool>
|
||||||
|
<bool name="proxy-wxCHK_ALLOW_3RD_STATE_FOR_USER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">-1</long>
|
||||||
|
<long name="proxy-Height">-1</long>
|
||||||
|
<string name="proxy-AlignH">"Left"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Custom arguments">""</string>
|
||||||
|
<string name="proxy-Custom ctor arguments">""</string>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxBoxSizer V"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"sizer"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbBoxSizerProxy"</string>
|
||||||
|
<string name="proxy-Orientation">"Vertical"</string>
|
||||||
|
<string name="proxy-Member variable name">""</string>
|
||||||
|
<string name="proxy-AlignH">"Centre"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<document>
|
||||||
|
<string name="title">"wxButton: ID_BUTTON_EXECUTE"</string>
|
||||||
|
<string name="type">"dialog-control-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"dialogcontrol"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="proxy-type">"wbButtonProxy"</string>
|
||||||
|
<string name="event-handler-0">"wxEVT_COMMAND_BUTTON_CLICKED|OnButtonExecuteClick|NONE||"</string>
|
||||||
|
<string name="proxy-Id name">"ID_BUTTON_EXECUTE"</string>
|
||||||
|
<long name="proxy-Id value">10006</long>
|
||||||
|
<string name="proxy-Class">"wxButton"</string>
|
||||||
|
<string name="proxy-Base class">"wxButton"</string>
|
||||||
|
<bool name="proxy-External implementation">1</bool>
|
||||||
|
<bool name="proxy-Separate files">0</bool>
|
||||||
|
<string name="proxy-Implementation filename">""</string>
|
||||||
|
<string name="proxy-Header filename">""</string>
|
||||||
|
<string name="proxy-Member variable name">""</string>
|
||||||
|
<string name="proxy-Label">"Clean pcb"</string>
|
||||||
|
<bool name="proxy-Default">1</bool>
|
||||||
|
<string name="proxy-Help text">""</string>
|
||||||
|
<string name="proxy-Tooltip text">""</string>
|
||||||
|
<string name="proxy-Background colour">""</string>
|
||||||
|
<string name="proxy-Foreground colour">""</string>
|
||||||
|
<string name="proxy-Font">""</string>
|
||||||
|
<bool name="proxy-Hidden">0</bool>
|
||||||
|
<bool name="proxy-Enabled">1</bool>
|
||||||
|
<string name="proxy-Platform">"<Any platform>"</string>
|
||||||
|
<bool name="proxy-wxBU_LEFT">0</bool>
|
||||||
|
<bool name="proxy-wxBU_RIGHT">0</bool>
|
||||||
|
<bool name="proxy-wxBU_TOP">0</bool>
|
||||||
|
<bool name="proxy-wxBU_BOTTOM">0</bool>
|
||||||
|
<bool name="proxy-wxBU_EXACTFIT">0</bool>
|
||||||
|
<bool name="proxy-wxNO_BORDER">0</bool>
|
||||||
|
<bool name="proxy-wxWANTS_CHARS">0</bool>
|
||||||
|
<bool name="proxy-wxNO_FULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFULL_REPAINT_ON_RESIZE">0</bool>
|
||||||
|
<string name="proxy-Custom styles">""</string>
|
||||||
|
<long name="proxy-X">-1</long>
|
||||||
|
<long name="proxy-Y">-1</long>
|
||||||
|
<long name="proxy-Width">-1</long>
|
||||||
|
<long name="proxy-Height">-1</long>
|
||||||
|
<string name="proxy-AlignH">"Centre"</string>
|
||||||
|
<string name="proxy-AlignV">"Centre"</string>
|
||||||
|
<long name="proxy-Stretch factor">0</long>
|
||||||
|
<long name="proxy-Border">5</long>
|
||||||
|
<bool name="proxy-wxLEFT">1</bool>
|
||||||
|
<bool name="proxy-wxRIGHT">1</bool>
|
||||||
|
<bool name="proxy-wxTOP">1</bool>
|
||||||
|
<bool name="proxy-wxBOTTOM">1</bool>
|
||||||
|
<bool name="proxy-wxSHAPED">0</bool>
|
||||||
|
<bool name="proxy-wxADJUST_MINSIZE">0</bool>
|
||||||
|
<bool name="proxy-wxFIXED_MINSIZE">0</bool>
|
||||||
|
<string name="proxy-Custom arguments">""</string>
|
||||||
|
<string name="proxy-Custom ctor arguments">""</string>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Sources"</string>
|
||||||
|
<string name="type">"html-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"sourcesfolder"</string>
|
||||||
|
<long name="is-transient">1</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">1</long>
|
||||||
|
<document>
|
||||||
|
<string name="title">"dialog_clean_pcb.rc"</string>
|
||||||
|
<string name="type">"source-editor-document"</string>
|
||||||
|
<string name="filename">"dialog_clean_pcb.rc"</string>
|
||||||
|
<string name="icon-name">"source-editor"</string>
|
||||||
|
<long name="is-transient">0</long>
|
||||||
|
<long name="owns-file">0</long>
|
||||||
|
<long name="title-mode">1</long>
|
||||||
|
<long name="locked">0</long>
|
||||||
|
<string name="created">"25/5/2007"</string>
|
||||||
|
<string name="language">""</string>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
<document>
|
||||||
|
<string name="title">"Images"</string>
|
||||||
|
<string name="type">"html-document"</string>
|
||||||
|
<string name="filename">""</string>
|
||||||
|
<string name="icon-name">"bitmapsfolder"</string>
|
||||||
|
<long name="is-transient">1</long>
|
||||||
|
<long name="owns-file">1</long>
|
||||||
|
<long name="title-mode">0</long>
|
||||||
|
<long name="locked">1</long>
|
||||||
|
</document>
|
||||||
|
</document>
|
||||||
|
</documents>
|
||||||
|
|
||||||
|
</anthemion-project>
|
|
@ -869,6 +869,10 @@ int itmp;
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR:
|
||||||
|
SelectLayerPair();
|
||||||
|
break;
|
||||||
|
|
||||||
case ID_POPUP_PCB_SELECT_NO_CU_LAYER:
|
case ID_POPUP_PCB_SELECT_NO_CU_LAYER:
|
||||||
itmp = SelectLayer(GetScreen()->m_Active_Layer, CMP_N+1, -1);
|
itmp = SelectLayer(GetScreen()->m_Active_Layer, CMP_N+1, -1);
|
||||||
if ( itmp >= 0 ) GetScreen()->m_Active_Layer = itmp;
|
if ( itmp >= 0 ) GetScreen()->m_Active_Layer = itmp;
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
static void Exit_Editrack(WinEDA_DrawPanel * panel, wxDC *DC);
|
static void Exit_Editrack(WinEDA_DrawPanel * panel, wxDC *DC);
|
||||||
void ShowNewTrackWhenMovingCursor(WinEDA_DrawPanel * panel,
|
void ShowNewTrackWhenMovingCursor(WinEDA_DrawPanel * panel,
|
||||||
wxDC * DC, bool erase);
|
wxDC * DC, bool erase);
|
||||||
static int Met_Coude_a_45(WinEDA_BasePcbFrame * frame, wxDC * DC,
|
static int Add_45_degrees_Segment(WinEDA_BasePcbFrame * frame, wxDC * DC,
|
||||||
TRACK * ptfinsegment);
|
TRACK * ptfinsegment);
|
||||||
static void ComputeBreakPoint( TRACK * track, int n );
|
static void ComputeBreakPoint( TRACK * track, int n );
|
||||||
static TRACK * DeleteNullTrackSegments(BOARD * pcb, TRACK * track, int * segmcount);
|
static TRACK * DeleteNullTrackSegments(BOARD * pcb, TRACK * track, int * segmcount);
|
||||||
|
@ -188,7 +188,7 @@ wxPoint pos = GetScreen()->m_Curseur;
|
||||||
|
|
||||||
if( g_Raccord_45_Auto )
|
if( g_Raccord_45_Auto )
|
||||||
{
|
{
|
||||||
if( Met_Coude_a_45(this, DC, g_CurrentTrackSegment) != 0 )
|
if( Add_45_degrees_Segment(this, DC, g_CurrentTrackSegment) != 0 )
|
||||||
g_TrackSegmentCount++;
|
g_TrackSegmentCount++;
|
||||||
}
|
}
|
||||||
Track = g_CurrentTrackSegment->Copy();
|
Track = g_CurrentTrackSegment->Copy();
|
||||||
|
@ -221,7 +221,7 @@ wxPoint pos = GetScreen()->m_Curseur;
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************/
|
/**************************************************************************/
|
||||||
int Met_Coude_a_45(WinEDA_BasePcbFrame * frame, wxDC * DC, TRACK * pt_segm)
|
int Add_45_degrees_Segment(WinEDA_BasePcbFrame * frame, wxDC * DC, TRACK * pt_segm)
|
||||||
/***************************************************************************/
|
/***************************************************************************/
|
||||||
/* rectifie un virage a 90 et le modifie par 2 coudes a 45
|
/* rectifie un virage a 90 et le modifie par 2 coudes a 45
|
||||||
n'opere que sur des segments horizontaux ou verticaux.
|
n'opere que sur des segments horizontaux ou verticaux.
|
||||||
|
@ -476,6 +476,15 @@ PCB_SCREEN * screen = (PCB_SCREEN *) panel->GetScreen();
|
||||||
/* dessin de la nouvelle piste : mise a jour du point d'arrivee */
|
/* dessin de la nouvelle piste : mise a jour du point d'arrivee */
|
||||||
g_CurrentTrackSegment->m_Layer = screen->m_Active_Layer;
|
g_CurrentTrackSegment->m_Layer = screen->m_Active_Layer;
|
||||||
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
g_CurrentTrackSegment->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||||
|
if ( g_TwoSegmentTrackBuild )
|
||||||
|
{
|
||||||
|
TRACK * previous_track = (TRACK *)g_CurrentTrackSegment->Pback;
|
||||||
|
if ( previous_track && (previous_track->m_StructType == TYPETRACK) )
|
||||||
|
{
|
||||||
|
previous_track->m_Layer = screen->m_Active_Layer;
|
||||||
|
previous_track->m_Width = g_DesignSettings.m_CurrentTrackWidth;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Track_45_Only)
|
if (Track_45_Only)
|
||||||
{
|
{
|
||||||
|
|
|
@ -135,8 +135,11 @@ EDA_BaseStruct * item;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Search for a footprint text */
|
/* Search for a footprint text */
|
||||||
|
// First search: locate texts for footprints on copper or component layer
|
||||||
|
// Priority to the active layer (component or copper.
|
||||||
|
// this is useful for small smd components when 2 texts overlap but are not on the same layer
|
||||||
if ( (LayerSearch == LAYER_CUIVRE_N) || (LayerSearch == CMP_N ))
|
if ( (LayerSearch == LAYER_CUIVRE_N) || (LayerSearch == CMP_N ))
|
||||||
{ // Search texts for footprints on copper or component layer only
|
{
|
||||||
for (module = m_Pcb->m_Modules; module != NULL; module = (MODULE*)module->Pnext)
|
for (module = m_Pcb->m_Modules; module != NULL; module = (MODULE*)module->Pnext)
|
||||||
{
|
{
|
||||||
TEXTE_MODULE * pt_texte;
|
TEXTE_MODULE * pt_texte;
|
||||||
|
@ -149,17 +152,16 @@ EDA_BaseStruct * item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // Search footprint texts on all layers
|
|
||||||
|
// Now Search footprint texts on all layers
|
||||||
|
module = NULL;
|
||||||
{
|
{
|
||||||
module = NULL;
|
TEXTE_MODULE * pt_texte;
|
||||||
|
pt_texte = LocateTexteModule(m_Pcb, &module, typeloc);
|
||||||
|
if( pt_texte != NULL )
|
||||||
{
|
{
|
||||||
TEXTE_MODULE * pt_texte;
|
Affiche_Infos_E_Texte(this, module, pt_texte);
|
||||||
pt_texte = LocateTexteModule(m_Pcb, &module, typeloc);
|
return pt_texte;
|
||||||
if( pt_texte != NULL )
|
|
||||||
{
|
|
||||||
Affiche_Infos_E_Texte(this, module, pt_texte);
|
|
||||||
return pt_texte;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,6 +172,7 @@ EDA_BaseStruct * item;
|
||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Search for zones */
|
||||||
if( (TrackLocate = Locate_Zone((TRACK*)m_Pcb->m_Zone,
|
if( (TrackLocate = Locate_Zone((TRACK*)m_Pcb->m_Zone,
|
||||||
GetScreen()->m_Active_Layer,typeloc)) != NULL )
|
GetScreen()->m_Active_Layer,typeloc)) != NULL )
|
||||||
{
|
{
|
||||||
|
|
|
@ -233,7 +233,7 @@ drc.o: drc.cpp dialog_drc.cpp dialog_drc.h autorout.h $(COMMON)
|
||||||
|
|
||||||
block.o: block.cpp $(COMMON)
|
block.o: block.cpp $(COMMON)
|
||||||
|
|
||||||
clean.o: clean.cpp $(COMMON)
|
clean.o: clean.cpp cleaningoptions_dialog.cpp cleaningoptions_dialog.h $(COMMON)
|
||||||
|
|
||||||
pcbplot.o: pcbplot.cpp pcbplot.h $(COMMON)
|
pcbplot.o: pcbplot.cpp pcbplot.h $(COMMON)
|
||||||
|
|
||||||
|
|
|
@ -869,9 +869,16 @@ wxPoint OldPos = m_Parent->m_CurrentScreen->m_Curseur;
|
||||||
{
|
{
|
||||||
if( (ii == 0) || ( ref->m_LibName != cmp->m_LibName) )
|
if( (ii == 0) || ( ref->m_LibName != cmp->m_LibName) )
|
||||||
{ /* Nouveau Module a charger */
|
{ /* Nouveau Module a charger */
|
||||||
Module = m_Parent->Get_Librairie_Module(this, wxEmptyString, cmp->m_LibName, TRUE );
|
Module = m_Parent->Get_Librairie_Module(this, wxEmptyString, cmp->m_LibName, FALSE );
|
||||||
ref = cmp;
|
ref = cmp;
|
||||||
if ( Module == NULL ) continue;
|
if ( Module == NULL )
|
||||||
|
{
|
||||||
|
wxString msg;
|
||||||
|
msg.Printf(_("Component [%s]: footprint <%s> not found"),
|
||||||
|
cmp->m_CmpName.GetData(), cmp->m_LibName.GetData());
|
||||||
|
DisplayError(this, msg);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
m_Parent->Place_Module(Module, DC);
|
m_Parent->Place_Module(Module, DC);
|
||||||
/* mise a jour des reperes ( nom et ref "Time Stamp")
|
/* mise a jour des reperes ( nom et ref "Time Stamp")
|
||||||
si module charge */
|
si module charge */
|
||||||
|
|
|
@ -109,6 +109,7 @@ BEGIN_EVENT_TABLE(WinEDA_PcbFrame, wxFrame)
|
||||||
EVT_TOOL(ID_FIND_ITEMS, WinEDA_PcbFrame::Process_Special_Functions)
|
EVT_TOOL(ID_FIND_ITEMS, WinEDA_PcbFrame::Process_Special_Functions)
|
||||||
EVT_TOOL(ID_GET_NETLIST, WinEDA_PcbFrame::Process_Special_Functions)
|
EVT_TOOL(ID_GET_NETLIST, WinEDA_PcbFrame::Process_Special_Functions)
|
||||||
EVT_TOOL(ID_DRC_CONTROL, WinEDA_PcbFrame::Process_Special_Functions)
|
EVT_TOOL(ID_DRC_CONTROL, WinEDA_PcbFrame::Process_Special_Functions)
|
||||||
|
EVT_TOOL(ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, WinEDA_PcbFrame::Process_Special_Functions)
|
||||||
EVT_KICAD_CHOICEBOX(ID_TOOLBARH_PCB_SELECT_LAYER,
|
EVT_KICAD_CHOICEBOX(ID_TOOLBARH_PCB_SELECT_LAYER,
|
||||||
WinEDA_PcbFrame::Process_Special_Functions)
|
WinEDA_PcbFrame::Process_Special_Functions)
|
||||||
EVT_KICAD_CHOICEBOX(ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
EVT_KICAD_CHOICEBOX(ID_AUX_TOOLBAR_PCB_TRACK_WIDTH,
|
||||||
|
@ -159,7 +160,7 @@ BEGIN_EVENT_TABLE(WinEDA_PcbFrame, wxFrame)
|
||||||
EVT_MENU_RANGE(ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
|
EVT_MENU_RANGE(ID_POPUP_GENERAL_START_RANGE, ID_POPUP_GENERAL_END_RANGE,
|
||||||
WinEDA_PcbFrame::Process_Special_Functions )
|
WinEDA_PcbFrame::Process_Special_Functions )
|
||||||
|
|
||||||
// PopUp Menus pour Zooms trait<EFBFBD>s dans drawpanel.cpp
|
// PopUp Menus pour Zooms traites dans drawpanel.cpp
|
||||||
|
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
@ -178,7 +179,7 @@ WinEDA_PcbFrame::WinEDA_PcbFrame(wxWindow * father, WinEDA_App *parent,
|
||||||
m_FrameName = wxT("PcbFrame");
|
m_FrameName = wxT("PcbFrame");
|
||||||
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines
|
m_Draw_Axis = TRUE; // TRUE pour avoir les axes dessines
|
||||||
m_Draw_Grid = g_ShowGrid; // TRUE pour avoir la grille dessinee
|
m_Draw_Grid = g_ShowGrid; // TRUE pour avoir la grille dessinee
|
||||||
m_Draw_Sheet_Ref = TRUE; // TRUE pour avoir le cartouche dessin<EFBFBD>
|
m_Draw_Sheet_Ref = TRUE; // TRUE pour avoir le cartouche dessine
|
||||||
m_Draw_Auxiliary_Axis = TRUE;
|
m_Draw_Auxiliary_Axis = TRUE;
|
||||||
m_SelTrackWidthBox = NULL;
|
m_SelTrackWidthBox = NULL;
|
||||||
m_SelViaSizeBox = NULL;
|
m_SelViaSizeBox = NULL;
|
||||||
|
@ -275,7 +276,7 @@ PCB_SCREEN * screen;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Reselection de l'ecran de base,
|
/* Reselection de l'ecran de base,
|
||||||
pour les evenements de refresh g<EFBFBD>n<EFBFBD>r<EFBFBD>s par wxWindows */
|
pour les evenements de refresh generes par wxWindows */
|
||||||
m_CurrentScreen = ActiveScreen = ScreenPcb;
|
m_CurrentScreen = ActiveScreen = ScreenPcb;
|
||||||
|
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
|
@ -483,6 +484,7 @@ int ii, jj;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReCreateLayerBox(NULL);
|
ReCreateLayerBox(NULL);
|
||||||
|
PrepareLayerIndicator();
|
||||||
|
|
||||||
DisplayUnitsMsg();
|
DisplayUnitsMsg();
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,11 +66,6 @@ int tracevia = 1;
|
||||||
g_PlotOffset = m_Auxiliary_Axis_Position;
|
g_PlotOffset = m_Auxiliary_Axis_Position;
|
||||||
}
|
}
|
||||||
|
|
||||||
InitPlotParametresGERBER(g_PlotOffset, scale_x, scale_y);
|
|
||||||
|
|
||||||
/* Clear the memory used for handle the D_CODE (aperture) list */
|
|
||||||
Init_ApertureList();
|
|
||||||
|
|
||||||
dest = wxFopen(FullFileName, wxT("wt"));
|
dest = wxFopen(FullFileName, wxT("wt"));
|
||||||
if (dest == NULL)
|
if (dest == NULL)
|
||||||
{
|
{
|
||||||
|
@ -78,6 +73,13 @@ int tracevia = 1;
|
||||||
DisplayError(this, msg); return ;
|
DisplayError(this, msg); return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
|
InitPlotParametresGERBER(g_PlotOffset, scale_x, scale_y);
|
||||||
|
|
||||||
|
/* Clear the memory used for handle the D_CODE (aperture) list */
|
||||||
|
Init_ApertureList();
|
||||||
|
|
||||||
Affiche_1_Parametre(this, 0, _("File"),FullFileName,CYAN) ;
|
Affiche_1_Parametre(this, 0, _("File"),FullFileName,CYAN) ;
|
||||||
|
|
||||||
Init_Trace_GERBER(this, dest) ;
|
Init_Trace_GERBER(this, dest) ;
|
||||||
|
@ -124,6 +126,7 @@ int tracevia = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
Fin_Trace_GERBER(this, dest) ;
|
Fin_Trace_GERBER(this, dest) ;
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,8 @@ bool Center = FALSE;
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
Affiche_1_Parametre(this, 0,_("File"),FullFileName,CYAN) ;
|
Affiche_1_Parametre(this, 0,_("File"),FullFileName,CYAN) ;
|
||||||
|
|
||||||
PrintHeaderHPGL(dest, g_HPGL_Pen_Speed,g_HPGL_Pen_Num);
|
PrintHeaderHPGL(dest, g_HPGL_Pen_Speed,g_HPGL_Pen_Num);
|
||||||
|
@ -168,6 +170,8 @@ bool Center = FALSE;
|
||||||
}
|
}
|
||||||
/* fin */
|
/* fin */
|
||||||
CloseFileHPGL(dest) ;
|
CloseFileHPGL(dest) ;
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,8 @@ int PlotMarge_in_mils = 0;
|
||||||
DisplayError(this, msg); return ;
|
DisplayError(this, msg); return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setlocale(LC_NUMERIC, "C");
|
||||||
|
|
||||||
Affiche_1_Parametre(this, 0,_("File"),FullFileName,CYAN) ;
|
Affiche_1_Parametre(this, 0,_("File"),FullFileName,CYAN) ;
|
||||||
|
|
||||||
if( g_PlotScaleOpt != 1 ) Center = TRUE; // Echelle != 1 donc trace centree du PCB
|
if( g_PlotScaleOpt != 1 ) Center = TRUE; // Echelle != 1 donc trace centree du PCB
|
||||||
|
@ -201,6 +203,7 @@ int PlotMarge_in_mils = 0;
|
||||||
}
|
}
|
||||||
/* fin */
|
/* fin */
|
||||||
CloseFilePS(dest) ;
|
CloseFilePS(dest) ;
|
||||||
|
setlocale(LC_NUMERIC, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -187,6 +187,7 @@ void WinEDA_BasePcbFrame::SelectLayerPair(void)
|
||||||
new WinEDA_SelLayerPairFrame(this);
|
new WinEDA_SelLayerPairFrame(this);
|
||||||
frame->ShowModal(); frame->Destroy();
|
frame->ShowModal(); frame->Destroy();
|
||||||
DrawPanel->MouseToCursorSchema();
|
DrawPanel->MouseToCursorSchema();
|
||||||
|
SetToolbars();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -729,7 +729,6 @@ int w = BUTT_SIZE_X, h = BUTT_SIZE_Y;
|
||||||
iconDC.SelectObject( ButtBitmap );
|
iconDC.SelectObject( ButtBitmap );
|
||||||
int buttcolor = *laytool_list[ii]->m_Color;
|
int buttcolor = *laytool_list[ii]->m_Color;
|
||||||
wxBrush Brush;
|
wxBrush Brush;
|
||||||
iconDC.SelectObject( ButtBitmap );
|
|
||||||
iconDC.SetPen(*wxBLACK_PEN);
|
iconDC.SetPen(*wxBLACK_PEN);
|
||||||
Brush.SetColour(
|
Brush.SetColour(
|
||||||
ColorRefs[buttcolor].m_Red,
|
ColorRefs[buttcolor].m_Red,
|
||||||
|
|
|
@ -46,6 +46,127 @@
|
||||||
#include "general_ratsnet.xpm"
|
#include "general_ratsnet.xpm"
|
||||||
#include "add_cotation.xpm"
|
#include "add_cotation.xpm"
|
||||||
|
|
||||||
|
|
||||||
|
/* Data to build the layer pair indicator button */
|
||||||
|
static wxBitmap * LayerPairBitmap = NULL;
|
||||||
|
static char s_BitmapLayerIcon[16][16] = {
|
||||||
|
{0,0,0,0,0,0,0,3,3,3,1,1,1,1,0,0},
|
||||||
|
{0,0,0,0,0,0,3,3,3,3,3,1,1,0,0,0},
|
||||||
|
{0,0,0,0,0,3,3,0,1,1,3,3,0,0,0,0},
|
||||||
|
{2,2,2,2,3,3,0,1,1,1,1,3,3,2,2,2},
|
||||||
|
{2,2,2,2,3,3,1,1,1,0,0,3,3,2,2,2},
|
||||||
|
{2,2,2,2,3,3,1,1,1,1,0,3,3,2,2,2},
|
||||||
|
{0,0,0,0,0,3,3,1,1,0,3,3,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,3,3,3,3,3,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,3,3,3,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0},
|
||||||
|
{0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0}
|
||||||
|
};
|
||||||
|
/************************************************************/
|
||||||
|
void WinEDA_PcbFrame::PrepareLayerIndicator(void)
|
||||||
|
/************************************************************/
|
||||||
|
/* Draw the icon for the "Select layet pair" bitmap tool
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int ii, jj;
|
||||||
|
static int previous_active_layer_color, previous_Route_Layer_TOP_color,
|
||||||
|
previous_Route_Layer_BOTTOM_color, previous_via_color;
|
||||||
|
int active_layer_color, Route_Layer_TOP_color,
|
||||||
|
Route_Layer_BOTTOM_color, via_color;
|
||||||
|
bool change = false;
|
||||||
|
|
||||||
|
/* get colors, and redraw bitmap button only on changes */
|
||||||
|
active_layer_color = g_DesignSettings.m_LayerColor[GetScreen()->m_Active_Layer];
|
||||||
|
if ( previous_active_layer_color != active_layer_color )
|
||||||
|
{
|
||||||
|
previous_active_layer_color = active_layer_color;
|
||||||
|
change = TRUE;
|
||||||
|
}
|
||||||
|
Route_Layer_TOP_color = g_DesignSettings.m_LayerColor[GetScreen()->m_Route_Layer_TOP];
|
||||||
|
if ( previous_Route_Layer_TOP_color != Route_Layer_TOP_color )
|
||||||
|
{
|
||||||
|
previous_Route_Layer_TOP_color = Route_Layer_TOP_color;
|
||||||
|
change = TRUE;
|
||||||
|
}
|
||||||
|
Route_Layer_BOTTOM_color = g_DesignSettings.m_LayerColor[GetScreen()->m_Route_Layer_BOTTOM];
|
||||||
|
if ( previous_Route_Layer_BOTTOM_color != Route_Layer_BOTTOM_color )
|
||||||
|
{
|
||||||
|
previous_Route_Layer_BOTTOM_color = Route_Layer_BOTTOM_color;
|
||||||
|
change = TRUE;
|
||||||
|
}
|
||||||
|
via_color = g_DesignSettings.m_ViaColor[g_DesignSettings.m_CurrentViaType ];
|
||||||
|
if ( previous_via_color != via_color )
|
||||||
|
{
|
||||||
|
previous_via_color = via_color;
|
||||||
|
change = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ! change && (LayerPairBitmap != NULL) ) return;
|
||||||
|
|
||||||
|
|
||||||
|
/* Creat the bitmap too and its Memory DC, if not already made */
|
||||||
|
if ( LayerPairBitmap == NULL )
|
||||||
|
{
|
||||||
|
LayerPairBitmap = new wxBitmap(16, 16);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Draw the icon, witj colors according to the active layer and layer pairs for
|
||||||
|
via command (change layer) */
|
||||||
|
wxMemoryDC iconDC;
|
||||||
|
iconDC.SelectObject( *LayerPairBitmap );
|
||||||
|
int buttcolor = -1;
|
||||||
|
wxPen pen;
|
||||||
|
for ( ii = 0; ii < 16; ii++ )
|
||||||
|
{
|
||||||
|
for ( jj = 0; jj < 16; jj++ )
|
||||||
|
{
|
||||||
|
if ( s_BitmapLayerIcon[ii][jj] != buttcolor )
|
||||||
|
{
|
||||||
|
buttcolor = s_BitmapLayerIcon[ii][jj];
|
||||||
|
int color;
|
||||||
|
switch ( buttcolor )
|
||||||
|
{
|
||||||
|
default:
|
||||||
|
case 0:
|
||||||
|
color = active_layer_color;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
color = Route_Layer_TOP_color;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
color = Route_Layer_BOTTOM_color;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
color = via_color;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
color &= MASKCOLOR;
|
||||||
|
pen.SetColour(
|
||||||
|
ColorRefs[color].m_Red,
|
||||||
|
ColorRefs[color].m_Green,
|
||||||
|
ColorRefs[color].m_Blue
|
||||||
|
);
|
||||||
|
iconDC.SetPen(pen);
|
||||||
|
}
|
||||||
|
iconDC.DrawPoint(jj,ii);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/* Deselect the Tool Bitmap from DC,
|
||||||
|
in order to delete the MemoryDC safely without deleting the bitmap */
|
||||||
|
iconDC.SelectObject( wxNullBitmap );
|
||||||
|
|
||||||
|
if ( ! m_HToolBar ) return;
|
||||||
|
{
|
||||||
|
m_HToolBar->SetToolNormalBitmap(ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, *LayerPairBitmap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/******************************************/
|
/******************************************/
|
||||||
void WinEDA_PcbFrame::ReCreateHToolbar(void)
|
void WinEDA_PcbFrame::ReCreateHToolbar(void)
|
||||||
/******************************************/
|
/******************************************/
|
||||||
|
@ -122,6 +243,9 @@ int ii;
|
||||||
|
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
ReCreateLayerBox(m_HToolBar);
|
ReCreateLayerBox(m_HToolBar);
|
||||||
|
PrepareLayerIndicator(); // Initialise the bitmap with current active layer colors for the next tool
|
||||||
|
m_HToolBar->AddTool(ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR, wxEmptyString, * LayerPairBitmap,
|
||||||
|
_("Show active layer selections\nand select layer pair for route and place via"));
|
||||||
|
|
||||||
m_HToolBar->AddSeparator();
|
m_HToolBar->AddSeparator();
|
||||||
m_HToolBar->AddTool(ID_TOOLBARH_PCB_AUTOPLACE, wxEmptyString, BITMAP(mode_module_xpm),
|
m_HToolBar->AddTool(ID_TOOLBARH_PCB_AUTOPLACE, wxEmptyString, BITMAP(mode_module_xpm),
|
||||||
|
@ -409,9 +533,9 @@ wxString msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************/
|
/**************************************************************************/
|
||||||
WinEDAChoiceBox * WinEDA_PcbFrame::ReCreateLayerBox(WinEDA_Toolbar * parent)
|
WinEDAChoiceBox * WinEDA_PcbFrame::ReCreateLayerBox(WinEDA_Toolbar * parent)
|
||||||
/**********************************************************************/
|
/**************************************************************************/
|
||||||
{
|
{
|
||||||
int ii, jj, ll;
|
int ii, jj, ll;
|
||||||
bool rebuild = FALSE;
|
bool rebuild = FALSE;
|
||||||
|
@ -425,7 +549,7 @@ long current_mask_layer;
|
||||||
parent->AddControl(m_SelLayerBox);
|
parent->AddControl(m_SelLayerBox);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Test si reconstruction de la liste n<EFBFBD>cessaire
|
// Test si reconstruction de la liste necessaire
|
||||||
current_mask_layer = 0;
|
current_mask_layer = 0;
|
||||||
int Masque_Layer = g_TabAllCopperLayerMask[g_DesignSettings.m_CopperLayerCount-1];
|
int Masque_Layer = g_TabAllCopperLayerMask[g_DesignSettings.m_CopperLayerCount-1];
|
||||||
Masque_Layer |= ALL_NO_CU_LAYERS;
|
Masque_Layer |= ALL_NO_CU_LAYERS;
|
||||||
|
|
|
@ -0,0 +1,220 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: win_eda_cleaningoptionsframe.cpp
|
||||||
|
// Purpose:
|
||||||
|
// Author: jean-pierre Charras
|
||||||
|
// Modified by:
|
||||||
|
// Created: 25/05/2007 13:39:29
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: GNU License
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Generated by DialogBlocks (unregistered), 25/05/2007 13:39:29
|
||||||
|
|
||||||
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma implementation "win_eda_cleaningoptionsframe.h"
|
||||||
|
#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
|
||||||
|
|
||||||
|
////@begin includes
|
||||||
|
////@end includes
|
||||||
|
|
||||||
|
#include "win_eda_cleaningoptionsframe.h"
|
||||||
|
|
||||||
|
////@begin XPM images
|
||||||
|
////@end XPM images
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame type definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
IMPLEMENT_DYNAMIC_CLASS( Win_EDA_CleaningOptionsFrame, wxDialog )
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame event table definition
|
||||||
|
*/
|
||||||
|
|
||||||
|
BEGIN_EVENT_TABLE( Win_EDA_CleaningOptionsFrame, wxDialog )
|
||||||
|
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame event table entries
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame event table entries
|
||||||
|
|
||||||
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
Win_EDA_CleaningOptionsFrame::Win_EDA_CleaningOptionsFrame()
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
}
|
||||||
|
|
||||||
|
Win_EDA_CleaningOptionsFrame::Win_EDA_CleaningOptionsFrame( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
||||||
|
{
|
||||||
|
Init();
|
||||||
|
Create(parent, id, caption, pos, size, style);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame creator
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool Win_EDA_CleaningOptionsFrame::Create( wxWindow* parent, wxWindowID id, const wxString& caption, const wxPoint& pos, const wxSize& size, long style )
|
||||||
|
{
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame creation
|
||||||
|
SetExtraStyle(wxWS_EX_BLOCK_EVENTS);
|
||||||
|
wxDialog::Create( parent, id, caption, pos, size, style );
|
||||||
|
|
||||||
|
CreateControls();
|
||||||
|
if (GetSizer())
|
||||||
|
{
|
||||||
|
GetSizer()->SetSizeHints(this);
|
||||||
|
}
|
||||||
|
Centre();
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame creation
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame destructor
|
||||||
|
*/
|
||||||
|
|
||||||
|
Win_EDA_CleaningOptionsFrame::~Win_EDA_CleaningOptionsFrame()
|
||||||
|
{
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame destruction
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame destruction
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Member initialisation
|
||||||
|
*/
|
||||||
|
|
||||||
|
void Win_EDA_CleaningOptionsFrame::Init()
|
||||||
|
{
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame member initialisation
|
||||||
|
m_CleanViasOpt = NULL;
|
||||||
|
m_MergetSegmOpt = NULL;
|
||||||
|
m_DeleteNullSegmOpt = NULL;
|
||||||
|
m_DeleteunconnectedOpt = NULL;
|
||||||
|
m_ConnectToPadsOpt = NULL;
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame member initialisation
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Control creation for Win_EDA_CleaningOptionsFrame
|
||||||
|
*/
|
||||||
|
|
||||||
|
void Win_EDA_CleaningOptionsFrame::CreateControls()
|
||||||
|
{
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame content construction
|
||||||
|
// Generated by DialogBlocks, 25/05/2007 13:58:52 (unregistered)
|
||||||
|
|
||||||
|
Win_EDA_CleaningOptionsFrame* itemDialog1 = this;
|
||||||
|
|
||||||
|
wxBoxSizer* itemBoxSizer2 = new wxBoxSizer(wxVERTICAL);
|
||||||
|
itemDialog1->SetSizer(itemBoxSizer2);
|
||||||
|
|
||||||
|
wxBoxSizer* itemBoxSizer3 = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
itemBoxSizer2->Add(itemBoxSizer3, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||||
|
|
||||||
|
wxStaticBox* itemStaticBoxSizer4Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Static"));
|
||||||
|
wxStaticBoxSizer* itemStaticBoxSizer4 = new wxStaticBoxSizer(itemStaticBoxSizer4Static, wxVERTICAL);
|
||||||
|
itemBoxSizer3->Add(itemStaticBoxSizer4, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
|
m_CleanViasOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX_CLEAN_VIAS, _("Delete redundant vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_CleanViasOpt->SetValue(true);
|
||||||
|
itemStaticBoxSizer4->Add(m_CleanViasOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_MergetSegmOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX_MERGE_SEGMENTS, _("Merge segments"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_MergetSegmOpt->SetValue(true);
|
||||||
|
itemStaticBoxSizer4->Add(m_MergetSegmOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_DeleteNullSegmOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX_DELETE_NULL_SEGM, _("Delete 0 lenght segments"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_DeleteNullSegmOpt->SetValue(true);
|
||||||
|
itemStaticBoxSizer4->Add(m_DeleteNullSegmOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_DeleteunconnectedOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX1, _("Delete unconnected tracks"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_DeleteunconnectedOpt->SetValue(true);
|
||||||
|
itemStaticBoxSizer4->Add(m_DeleteunconnectedOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
m_ConnectToPadsOpt = new wxCheckBox( itemDialog1, ID_CHECKBOX, _("Connect to Pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_ConnectToPadsOpt->SetValue(false);
|
||||||
|
itemStaticBoxSizer4->Add(m_ConnectToPadsOpt, 0, wxALIGN_LEFT|wxALL, 5);
|
||||||
|
|
||||||
|
wxStaticBox* itemStaticBoxSizer10Static = new wxStaticBox(itemDialog1, wxID_ANY, _("Static"));
|
||||||
|
wxStaticBoxSizer* itemStaticBoxSizer10 = new wxStaticBoxSizer(itemStaticBoxSizer10Static, wxVERTICAL);
|
||||||
|
itemBoxSizer3->Add(itemStaticBoxSizer10, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
|
|
||||||
|
wxButton* itemButton11 = new wxButton( itemDialog1, ID_BUTTON_EXECUTE, _("Clean pcb"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
itemButton11->SetDefault();
|
||||||
|
itemStaticBoxSizer10->Add(itemButton11, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5);
|
||||||
|
|
||||||
|
itemBoxSizer2->Add(5, 5, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
|
wxStaticText* itemStaticText13 = new wxStaticText( itemDialog1, wxID_STATIC, _("Infos:"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
itemBoxSizer2->Add(itemStaticText13, 0, wxALIGN_LEFT|wxLEFT|wxRIGHT|wxTOP|wxADJUST_MINSIZE, 5);
|
||||||
|
|
||||||
|
wxTextCtrl* itemTextCtrl14 = new wxTextCtrl( itemDialog1, ID_TEXTCTRL1, _T(""), wxDefaultPosition, wxSize(-1, 120), wxTE_MULTILINE );
|
||||||
|
itemBoxSizer2->Add(itemTextCtrl14, 0, wxGROW|wxALL, 5);
|
||||||
|
|
||||||
|
// Set validators
|
||||||
|
m_CleanViasOpt->SetValidator( wxGenericValidator(& s_CleanVias) );
|
||||||
|
m_MergetSegmOpt->SetValidator( wxGenericValidator(& s_MergeSegments) );
|
||||||
|
m_DeleteNullSegmOpt->SetValidator( wxGenericValidator(& s_Delete0lenSegm) );
|
||||||
|
m_DeleteunconnectedOpt->SetValidator( wxGenericValidator(& s_DeleteUnconnectedSegm) );
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame content construction
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Should we show tooltips?
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool Win_EDA_CleaningOptionsFrame::ShowToolTips()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Get bitmap resources
|
||||||
|
*/
|
||||||
|
|
||||||
|
wxBitmap Win_EDA_CleaningOptionsFrame::GetBitmapResource( const wxString& name )
|
||||||
|
{
|
||||||
|
// Bitmap retrieval
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame bitmap retrieval
|
||||||
|
wxUnusedVar(name);
|
||||||
|
return wxNullBitmap;
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame bitmap retrieval
|
||||||
|
}
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Get icon resources
|
||||||
|
*/
|
||||||
|
|
||||||
|
wxIcon Win_EDA_CleaningOptionsFrame::GetIconResource( const wxString& name )
|
||||||
|
{
|
||||||
|
// Icon retrieval
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame icon retrieval
|
||||||
|
wxUnusedVar(name);
|
||||||
|
return wxNullIcon;
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame icon retrieval
|
||||||
|
}
|
|
@ -0,0 +1,109 @@
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: win_eda_cleaningoptionsframe.h
|
||||||
|
// Purpose:
|
||||||
|
// Author: jean-pierre Charras
|
||||||
|
// Modified by:
|
||||||
|
// Created: 25/05/2007 13:39:29
|
||||||
|
// RCS-ID:
|
||||||
|
// Copyright: GNU License
|
||||||
|
// Licence:
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// Generated by DialogBlocks (unregistered), 25/05/2007 13:39:29
|
||||||
|
|
||||||
|
#ifndef _WIN_EDA_CLEANINGOPTIONSFRAME_H_
|
||||||
|
#define _WIN_EDA_CLEANINGOPTIONSFRAME_H_
|
||||||
|
|
||||||
|
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
|
||||||
|
#pragma interface "win_eda_cleaningoptionsframe.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Includes
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin includes
|
||||||
|
#include "wx/valgen.h"
|
||||||
|
////@end includes
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Forward declarations
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin forward declarations
|
||||||
|
////@end forward declarations
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Control identifiers
|
||||||
|
*/
|
||||||
|
|
||||||
|
////@begin control identifiers
|
||||||
|
#define ID_WIN_EDA_CLEANINGOPTIONSFRAME 10000
|
||||||
|
#define ID_CHECKBOX_CLEAN_VIAS 10001
|
||||||
|
#define ID_CHECKBOX_MERGE_SEGMENTS 10003
|
||||||
|
#define ID_CHECKBOX_DELETE_NULL_SEGM 10002
|
||||||
|
#define ID_CHECKBOX1 10005
|
||||||
|
#define ID_CHECKBOX 10004
|
||||||
|
#define ID_BUTTON_EXECUTE 10006
|
||||||
|
#define ID_TEXTCTRL1 10007
|
||||||
|
#define SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_STYLE wxCAPTION|wxRESIZE_BORDER|wxSYSTEM_MENU|wxCLOSE_BOX
|
||||||
|
#define SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_TITLE _("Cleaning options")
|
||||||
|
#define SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_IDNAME ID_WIN_EDA_CLEANINGOPTIONSFRAME
|
||||||
|
#define SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_SIZE wxSize(400, 300)
|
||||||
|
#define SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_POSITION wxDefaultPosition
|
||||||
|
////@end control identifiers
|
||||||
|
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* Win_EDA_CleaningOptionsFrame class declaration
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Win_EDA_CleaningOptionsFrame: public wxDialog
|
||||||
|
{
|
||||||
|
DECLARE_DYNAMIC_CLASS( Win_EDA_CleaningOptionsFrame )
|
||||||
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
public:
|
||||||
|
/// Constructors
|
||||||
|
Win_EDA_CleaningOptionsFrame();
|
||||||
|
Win_EDA_CleaningOptionsFrame( wxWindow* parent, wxWindowID id = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_IDNAME, const wxString& caption = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_TITLE, const wxPoint& pos = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_POSITION, const wxSize& size = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_SIZE, long style = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_STYLE );
|
||||||
|
|
||||||
|
/// Creation
|
||||||
|
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_IDNAME, const wxString& caption = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_TITLE, const wxPoint& pos = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_POSITION, const wxSize& size = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_SIZE, long style = SYMBOL_WIN_EDA_CLEANINGOPTIONSFRAME_STYLE );
|
||||||
|
|
||||||
|
/// Destructor
|
||||||
|
~Win_EDA_CleaningOptionsFrame();
|
||||||
|
|
||||||
|
/// Initialises member variables
|
||||||
|
void Init();
|
||||||
|
|
||||||
|
/// Creates the controls and sizers
|
||||||
|
void CreateControls();
|
||||||
|
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame event handler declarations
|
||||||
|
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame event handler declarations
|
||||||
|
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame member function declarations
|
||||||
|
|
||||||
|
/// Retrieves bitmap resources
|
||||||
|
wxBitmap GetBitmapResource( const wxString& name );
|
||||||
|
|
||||||
|
/// Retrieves icon resources
|
||||||
|
wxIcon GetIconResource( const wxString& name );
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame member function declarations
|
||||||
|
|
||||||
|
/// Should we show tooltips?
|
||||||
|
static bool ShowToolTips();
|
||||||
|
|
||||||
|
////@begin Win_EDA_CleaningOptionsFrame member variables
|
||||||
|
wxCheckBox* m_CleanViasOpt;
|
||||||
|
wxCheckBox* m_MergetSegmOpt;
|
||||||
|
wxCheckBox* m_DeleteNullSegmOpt;
|
||||||
|
wxCheckBox* m_DeleteunconnectedOpt;
|
||||||
|
wxCheckBox* m_ConnectToPadsOpt;
|
||||||
|
////@end Win_EDA_CleaningOptionsFrame member variables
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
// _WIN_EDA_CLEANINGOPTIONSFRAME_H_
|
Loading…
Reference in New Issue