Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
baa278a3
Commit
baa278a3
authored
Jul 09, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
More about ERC and markers in eeschema ( work in progress )
parent
e4656c44
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
463 additions
and
314 deletions
+463
-314
class_marker_base.cpp
common/class_marker_base.cpp
+28
-24
dialog_display_info_HTML_base.cpp
common/dialog_display_info_HTML_base.cpp
+12
-3
dialog_display_info_HTML_base.fbp
common/dialog_display_info_HTML_base.fbp
+57
-5
class_marker_sch.cpp
eeschema/class_marker_sch.cpp
+17
-6
controle.cpp
eeschema/controle.cpp
+0
-11
erc.cpp
eeschema/erc.cpp
+57
-41
load_one_schematic_file.cpp
eeschema/load_one_schematic_file.cpp
+3
-2
onleftclick.cpp
eeschema/onleftclick.cpp
+6
-0
class_marker_base.h
include/class_marker_base.h
+32
-26
dialog_display_info_HTML_base.h
include/dialog_display_info_HTML_base.h
+8
-1
kicad.mo
internat/fr/kicad.mo
+0
-0
kicad.po
internat/fr/kicad.po
+243
-195
No files found.
common/class_marker_base.cpp
View file @
baa278a3
...
@@ -18,8 +18,10 @@
...
@@ -18,8 +18,10 @@
// Default marquer shape:
// Default marquer shape:
#define M_SHAPE_SCALE 6 // default scaling factor for MarkerShapeCorners coordinates
#define M_SHAPE_SCALE 6 // default scaling factor for MarkerShapeCorners coordinates
#define CORNERS_COUNT 8
#define CORNERS_COUNT 8
// corners of the default shape
/* corners of the default shape
static
wxPoint
MarkerShapeCorners
[
CORNERS_COUNT
]
=
* real coordinates are these values * .m_ScalingFactor
*/
static
const
wxPoint
MarkerShapeCorners
[
CORNERS_COUNT
]
=
{
{
wxPoint
(
0
,
0
),
wxPoint
(
0
,
0
),
wxPoint
(
8
,
1
),
wxPoint
(
8
,
1
),
...
@@ -39,13 +41,20 @@ void MARKER_BASE::init()
...
@@ -39,13 +41,20 @@ void MARKER_BASE::init()
{
{
m_MarkerType
=
0
;
m_MarkerType
=
0
;
m_Color
=
RED
;
m_Color
=
RED
;
wxPoint
start
=
MarkerShapeCorners
[
0
];
wxPoint
end
=
MarkerShapeCorners
[
0
];
for
(
unsigned
ii
=
0
;
ii
<
CORNERS_COUNT
;
ii
++
)
for
(
unsigned
ii
=
0
;
ii
<
CORNERS_COUNT
;
ii
++
)
{
{
wxPoint
corner
=
MarkerShapeCorners
[
ii
];
wxPoint
corner
=
MarkerShapeCorners
[
ii
];
m_Corners
.
push_back
(
corner
);
m_Corners
.
push_back
(
corner
);
m_Size
.
x
=
MAX
(
m_Size
.
x
,
corner
.
x
);
start
.
x
=
MIN
(
start
.
x
,
corner
.
x
);
m_Size
.
y
=
MAX
(
m_Size
.
y
,
corner
.
y
);
start
.
y
=
MIN
(
start
.
y
,
corner
.
y
);
end
.
x
=
MAX
(
end
.
x
,
corner
.
x
);
end
.
y
=
MAX
(
end
.
y
,
corner
.
y
);
}
}
m_ShapeBoundingBox
.
SetOrigin
(
start
);
m_ShapeBoundingBox
.
SetEnd
(
end
);
}
}
...
@@ -103,24 +112,15 @@ void MARKER_BASE::SetData( int aErrorCode, const wxPoint& aMarkerPos,
...
@@ -103,24 +112,15 @@ void MARKER_BASE::SetData( int aErrorCode, const wxPoint& aMarkerPos,
}
}
/**********************************************/
/**********************************************
********
/
bool
MARKER_BASE
::
HitTestMarker
(
const
wxPoint
&
refPos
)
bool
MARKER_BASE
::
HitTestMarker
(
const
wxPoint
&
refPos
)
/**********************************************/
/**********************************************
********
/
{
{
int
dx
=
refPos
.
x
-
m_Pos
.
x
;
wxPoint
rel_pos
=
refPos
-
m_Pos
;
int
dy
=
refPos
.
y
-
m_Pos
.
y
;
rel_pos
.
x
/=
m_ScalingFactor
;
rel_pos
.
y
/=
m_ScalingFactor
;
wxSize
Realsize
=
m_Size
;
Realsize
.
x
*=
m_ScalingFactor
;
return
m_ShapeBoundingBox
.
Inside
(
rel_pos
);
Realsize
.
y
*=
m_ScalingFactor
;
/* is refPos in the box: Marker size to right an bottom,
* or size/2 to left or top */
if
(
dx
<=
Realsize
.
x
&&
dy
<=
Realsize
.
y
&&
dx
>=
-
Realsize
.
x
/
2
&&
dy
>=
-
Realsize
.
y
/
2
)
return
true
;
else
return
false
;
}
}
/**
/**
...
@@ -132,10 +132,14 @@ bool MARKER_BASE::HitTestMarker( const wxPoint& refPos )
...
@@ -132,10 +132,14 @@ bool MARKER_BASE::HitTestMarker( const wxPoint& refPos )
*/
*/
EDA_Rect
MARKER_BASE
::
GetBoundingBoxMarker
()
EDA_Rect
MARKER_BASE
::
GetBoundingBoxMarker
()
{
{
wxSize
Realsize
=
m_Size
;
wxSize
realsize
=
m_ShapeBoundingBox
.
GetSize
();
Realsize
.
x
*=
m_ScalingFactor
;
wxPoint
realposition
=
m_ShapeBoundingBox
.
GetPosition
();
Realsize
.
y
*=
m_ScalingFactor
;
realsize
.
x
*=
m_ScalingFactor
;
return
EDA_Rect
(
m_Pos
,
Realsize
);
realsize
.
y
*=
m_ScalingFactor
;
realposition
.
x
*=
m_ScalingFactor
;
realposition
.
y
*=
m_ScalingFactor
;
realposition
+=
m_Pos
;
return
EDA_Rect
(
m_Pos
,
realsize
);
}
}
/**********************************************************************/
/**********************************************************************/
...
...
common/dialog_display_info_HTML_base.cpp
View file @
baa278a3
...
@@ -11,20 +11,29 @@
...
@@ -11,20 +11,29 @@
DIALOG_DISPLAY_HTML_TEXT_BASE
::
DIALOG_DISPLAY_HTML_TEXT_BASE
(
wxWindow
*
parent
,
wxWindowID
id
,
const
wxString
&
title
,
const
wxPoint
&
pos
,
const
wxSize
&
size
,
long
style
)
:
wxDialog
(
parent
,
id
,
title
,
pos
,
size
,
style
)
DIALOG_DISPLAY_HTML_TEXT_BASE
::
DIALOG_DISPLAY_HTML_TEXT_BASE
(
wxWindow
*
parent
,
wxWindowID
id
,
const
wxString
&
title
,
const
wxPoint
&
pos
,
const
wxSize
&
size
,
long
style
)
:
wxDialog
(
parent
,
id
,
title
,
pos
,
size
,
style
)
{
{
this
->
SetSizeHints
(
wx
DefaultSize
,
wxDefaultSize
);
this
->
SetSizeHints
(
wx
Size
(
400
,
170
)
,
wxDefaultSize
);
wxBoxSizer
*
bMainSizer
;
wxBoxSizer
*
bMainSizer
;
bMainSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
bMainSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
m_htmlWindow
=
new
wxHtmlWindow
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
wxHW_SCROLLBAR_AUTO
);
m_htmlWindow
=
new
wxHtmlWindow
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
wxHW_SCROLLBAR_AUTO
);
m_htmlWindow
->
SetMinSize
(
wxSize
(
400
,
150
)
);
bMainSizer
->
Add
(
m_htmlWindow
,
1
,
wxALL
|
wxEXPAND
,
5
);
bMainSizer
->
Add
(
m_htmlWindow
,
1
,
wxALL
|
wxEXPAND
,
5
);
m_buttonClose
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Close"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_buttonClose
->
SetDefault
();
bMainSizer
->
Add
(
m_buttonClose
,
0
,
wxALL
|
wxALIGN_RIGHT
,
5
);
this
->
SetSizer
(
bMainSizer
);
this
->
SetSizer
(
bMainSizer
);
this
->
Layout
();
this
->
Layout
();
// Connect Events
m_htmlWindow
->
Connect
(
wxEVT_COMMAND_HTML_LINK_CLICKED
,
wxHtmlLinkEventHandler
(
DIALOG_DISPLAY_HTML_TEXT_BASE
::
OnHTMLLinkClicked
),
NULL
,
this
);
m_buttonClose
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_DISPLAY_HTML_TEXT_BASE
::
OnCloseButtonClick
),
NULL
,
this
);
}
}
DIALOG_DISPLAY_HTML_TEXT_BASE
::~
DIALOG_DISPLAY_HTML_TEXT_BASE
()
DIALOG_DISPLAY_HTML_TEXT_BASE
::~
DIALOG_DISPLAY_HTML_TEXT_BASE
()
{
{
// Disconnect Events
m_htmlWindow
->
Disconnect
(
wxEVT_COMMAND_HTML_LINK_CLICKED
,
wxHtmlLinkEventHandler
(
DIALOG_DISPLAY_HTML_TEXT_BASE
::
OnHTMLLinkClicked
),
NULL
,
this
);
m_buttonClose
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_DISPLAY_HTML_TEXT_BASE
::
OnCloseButtonClick
),
NULL
,
this
);
}
}
common/dialog_display_info_HTML_base.fbp
View file @
baa278a3
...
@@ -29,10 +29,10 @@
...
@@ -29,10 +29,10 @@
<property
name=
"hidden"
>
0
</property>
<property
name=
"hidden"
>
0
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
>
400,170
</property>
<property
name=
"name"
>
DIALOG_DISPLAY_HTML_TEXT_BASE
</property>
<property
name=
"name"
>
DIALOG_DISPLAY_HTML_TEXT_BASE
</property>
<property
name=
"pos"
></property>
<property
name=
"pos"
></property>
<property
name=
"size"
>
291,165
</property>
<property
name=
"size"
>
431,170
</property>
<property
name=
"style"
>
wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
</property>
<property
name=
"style"
>
wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER
</property>
<property
name=
"subclass"
></property>
<property
name=
"subclass"
></property>
<property
name=
"title"
></property>
<property
name=
"title"
></property>
...
@@ -71,7 +71,7 @@
...
@@ -71,7 +71,7 @@
<event
name=
"OnSize"
></event>
<event
name=
"OnSize"
></event>
<event
name=
"OnUpdateUI"
></event>
<event
name=
"OnUpdateUI"
></event>
<object
class=
"wxBoxSizer"
expanded=
"1"
>
<object
class=
"wxBoxSizer"
expanded=
"1"
>
<property
name=
"minimum_size"
></property>
<property
name=
"minimum_size"
>
-1,-1
</property>
<property
name=
"name"
>
bMainSizer
</property>
<property
name=
"name"
>
bMainSizer
</property>
<property
name=
"orient"
>
wxVERTICAL
</property>
<property
name=
"orient"
>
wxVERTICAL
</property>
<property
name=
"permission"
>
none
</property>
<property
name=
"permission"
>
none
</property>
...
@@ -88,7 +88,7 @@
...
@@ -88,7 +88,7 @@
<property
name=
"hidden"
>
0
</property>
<property
name=
"hidden"
>
0
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"id"
>
wxID_ANY
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
>
400,150
</property>
<property
name=
"minimum_size"
>
-1,-1
</property>
<property
name=
"name"
>
m_htmlWindow
</property>
<property
name=
"name"
>
m_htmlWindow
</property>
<property
name=
"permission"
>
public
</property>
<property
name=
"permission"
>
public
</property>
<property
name=
"pos"
></property>
<property
name=
"pos"
></property>
...
@@ -104,7 +104,59 @@
...
@@ -104,7 +104,59 @@
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnHtmlCellClicked"
></event>
<event
name=
"OnHtmlCellClicked"
></event>
<event
name=
"OnHtmlCellHover"
></event>
<event
name=
"OnHtmlCellHover"
></event>
<event
name=
"OnHtmlLinkClicked"
></event>
<event
name=
"OnHtmlLinkClicked"
>
OnHTMLLinkClicked
</event>
<event
name=
"OnKeyDown"
></event>
<event
name=
"OnKeyUp"
></event>
<event
name=
"OnKillFocus"
></event>
<event
name=
"OnLeaveWindow"
></event>
<event
name=
"OnLeftDClick"
></event>
<event
name=
"OnLeftDown"
></event>
<event
name=
"OnLeftUp"
></event>
<event
name=
"OnMiddleDClick"
></event>
<event
name=
"OnMiddleDown"
></event>
<event
name=
"OnMiddleUp"
></event>
<event
name=
"OnMotion"
></event>
<event
name=
"OnMouseEvents"
></event>
<event
name=
"OnMouseWheel"
></event>
<event
name=
"OnPaint"
></event>
<event
name=
"OnRightDClick"
></event>
<event
name=
"OnRightDown"
></event>
<event
name=
"OnRightUp"
></event>
<event
name=
"OnSetFocus"
></event>
<event
name=
"OnSize"
></event>
<event
name=
"OnUpdateUI"
></event>
</object>
</object>
<object
class=
"sizeritem"
expanded=
"1"
>
<property
name=
"border"
>
5
</property>
<property
name=
"flag"
>
wxALL|wxALIGN_RIGHT
</property>
<property
name=
"proportion"
>
0
</property>
<object
class=
"wxButton"
expanded=
"1"
>
<property
name=
"bg"
></property>
<property
name=
"context_help"
></property>
<property
name=
"default"
>
1
</property>
<property
name=
"enabled"
>
1
</property>
<property
name=
"fg"
></property>
<property
name=
"font"
></property>
<property
name=
"hidden"
>
0
</property>
<property
name=
"id"
>
wxID_CANCEL
</property>
<property
name=
"label"
>
Close
</property>
<property
name=
"maximum_size"
></property>
<property
name=
"minimum_size"
></property>
<property
name=
"name"
>
m_buttonClose
</property>
<property
name=
"permission"
>
protected
</property>
<property
name=
"pos"
></property>
<property
name=
"size"
></property>
<property
name=
"style"
></property>
<property
name=
"subclass"
></property>
<property
name=
"tooltip"
></property>
<property
name=
"window_extra_style"
></property>
<property
name=
"window_name"
></property>
<property
name=
"window_style"
></property>
<event
name=
"OnButtonClick"
>
OnCloseButtonClick
</event>
<event
name=
"OnChar"
></event>
<event
name=
"OnEnterWindow"
></event>
<event
name=
"OnEraseBackground"
></event>
<event
name=
"OnKeyDown"
></event>
<event
name=
"OnKeyDown"
></event>
<event
name=
"OnKeyUp"
></event>
<event
name=
"OnKeyUp"
></event>
<event
name=
"OnKillFocus"
></event>
<event
name=
"OnKillFocus"
></event>
...
...
eeschema/class_marker_sch.cpp
View file @
baa278a3
...
@@ -86,19 +86,30 @@ void MARKER_SCH::Show( int nestLevel, std::ostream& os )
...
@@ -86,19 +86,30 @@ void MARKER_SCH::Show( int nestLevel, std::ostream& os )
* writes the data structures for this object out to a FILE in "*.brd" format.
* writes the data structures for this object out to a FILE in "*.brd" format.
* @param aFile The FILE to write to.
* @param aFile The FILE to write to.
* @return bool - true if success writing else false.
* @return bool - true if success writing else false.
* Currently: do nothing (markers are no more saved in files)
*/
*/
bool
MARKER_SCH
::
Save
(
FILE
*
aFile
)
const
bool
MARKER_SCH
::
Save
(
FILE
*
aFile
)
const
{
{
bool
success
=
true
;
bool
success
=
true
;
wxString
msg
=
GetReporter
().
GetMainText
();
#if 0
wxString msg = m_drc.GetMainText();
if
(
fprintf
(
aFile
,
"Kmarq %c %-4d %-4d
\"
%s
\"
F=%X T=%X
\n
"
,
if( fprintf( aFile, "Kmarq %c %-4d %-4d \"%s\"",
GetMarkerType() + 'A', GetPos().x, GetPos().y,
GetMarkerType() + 'A', GetPos().x, GetPos().y,
CONV_TO_UTF8
(
msg
),
GetErrorLevel
(),
GetReporter
().
GetErrorCode
()
)
==
EOF
)
CONV_TO_UTF8( msg ) ) == EOF )
{
success = false;
success = false;
}
if ( m_drc.HasSecondItem() )
{
msg = GetReporter().GetAuxiliaryText();
if( fprintf( aFile, " \"%s\" %-4d %-4d",
GetMarkerType() + 'A', m_drc.GetPointB().x, m_drc.GetPointB().y,
CONV_TO_UTF8( msg ) ) == EOF )
success = false;
}
if( fprintf( aFile, " F=%X T=%X\n",
GetErrorLevel(), GetReporter().GetErrorCode() ) == EOF )
#endif
return
success
;
return
success
;
}
}
...
@@ -149,7 +160,7 @@ void MARKER_SCH::DisplayMarkerInfo( WinEDA_SchematicFrame* aFrame )
...
@@ -149,7 +160,7 @@ void MARKER_SCH::DisplayMarkerInfo( WinEDA_SchematicFrame* aFrame )
wxString
msg
=
GetReporter
().
ShowHtml
();
wxString
msg
=
GetReporter
().
ShowHtml
();
DIALOG_DISPLAY_HTML_TEXT_BASE
infodisplay
(
aFrame
,
-
1
,
wxEmptyString
,
DIALOG_DISPLAY_HTML_TEXT_BASE
infodisplay
(
aFrame
,
-
1
,
wxEmptyString
,
wxGetMousePosition
(),
wxSize
(
550
,
1
3
0
)
);
wxGetMousePosition
(),
wxSize
(
550
,
1
7
0
)
);
infodisplay
.
m_htmlWindow
->
SetPage
(
msg
);
infodisplay
.
m_htmlWindow
->
SetPage
(
msg
);
infodisplay
.
ShowModal
();
infodisplay
.
ShowModal
();
...
...
eeschema/controle.cpp
View file @
baa278a3
...
@@ -124,17 +124,6 @@ SCH_ITEM* WinEDA_SchematicFrame:: SchematicGeneralLocateAndDisplay( const wxPoin
...
@@ -124,17 +124,6 @@ SCH_ITEM* WinEDA_SchematicFrame:: SchematicGeneralLocateAndDisplay( const wxPoin
wxString
msg
;
wxString
msg
;
int
ii
;
int
ii
;
DrawStruct
=
(
SCH_ITEM
*
)
PickStruct
(
refpoint
,
GetScreen
(),
MARKERITEM
);
if
(
DrawStruct
)
{
MARKER_SCH
*
Marker
=
(
MARKER_SCH
*
)
DrawStruct
;
Text
=
Marker
->
GetReporter
().
GetErrorText
();
ii
=
Marker
->
GetMarkerType
();
msg
=
NameMarqueurType
[
ii
];
msg
<<
wxT
(
" "
)
<<
Text
;
Affiche_Message
(
msg
);
return
DrawStruct
;
}
DrawStruct
=
(
SCH_ITEM
*
)
PickStruct
(
refpoint
,
GetScreen
(),
NOCONNECTITEM
);
DrawStruct
=
(
SCH_ITEM
*
)
PickStruct
(
refpoint
,
GetScreen
(),
NOCONNECTITEM
);
if
(
DrawStruct
)
if
(
DrawStruct
)
{
{
...
...
eeschema/erc.cpp
View file @
baa278a3
...
@@ -165,6 +165,53 @@ static int MinimalReq[PIN_NMAX][PIN_NMAX] =
...
@@ -165,6 +165,53 @@ static int MinimalReq[PIN_NMAX][PIN_NMAX] =
};
};
/**Function TestDuplicateSheetNames( )
* inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).
*/
int
TestDuplicateSheetNames
(
)
{
int
err_count
=
0
;
EDA_ScreenList
ScreenList
;
// Created the list of screen
for
(
SCH_SCREEN
*
Screen
=
ScreenList
.
GetFirst
();
Screen
!=
NULL
;
Screen
=
ScreenList
.
GetNext
()
)
{
for
(
SCH_ITEM
*
ref_item
=
Screen
->
EEDrawList
;
ref_item
!=
NULL
;
ref_item
=
ref_item
->
Next
()
)
{
// search for a scheet;
if
(
ref_item
->
Type
()
!=
DRAW_SHEET_STRUCT_TYPE
)
continue
;
for
(
SCH_ITEM
*
item_to_test
=
ref_item
->
Next
();
item_to_test
!=
NULL
;
item_to_test
=
item_to_test
->
Next
()
)
{
if
(
item_to_test
->
Type
()
!=
DRAW_SHEET_STRUCT_TYPE
)
continue
;
// We have found a second sheet: compare names
if
(
(
(
DrawSheetStruct
*
)
ref_item
)
->
m_SheetName
.
CmpNoCase
(
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_SheetName
)
==
0
)
{
/* Create a new marker type ERC error*/
MARKER_SCH
*
Marker
=
new
MARKER_SCH
();
Marker
->
m_TimeStamp
=
GetTimeStamp
();
Marker
->
SetData
(
ERCE_DUPLICATE_SHEET_NAME
,
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_Pos
,
_
(
"Duplicate Sheet name"
),
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_Pos
);
Marker
->
SetMarkerType
(
MARK_ERC
);
Marker
->
SetErrorLevel
(
ERR
);
Marker
->
SetNext
(
Screen
->
EEDrawList
);
Screen
->
EEDrawList
=
Marker
;
err_count
++
;
}
}
}
}
return
err_count
;
}
/**************************************************/
/**************************************************/
void
DIALOG_ERC
::
TestErc
(
wxArrayString
*
aMessagesList
)
void
DIALOG_ERC
::
TestErc
(
wxArrayString
*
aMessagesList
)
/**************************************************/
/**************************************************/
...
@@ -219,43 +266,10 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList )
...
@@ -219,43 +266,10 @@ void DIALOG_ERC::TestErc( wxArrayString* aMessagesList )
/* Test duplicate sheet names
/* Test duplicate sheet names
* inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).
* inside a given sheet, one cannot have sheets with duplicate names (file names can be duplicated).
* Test screens is enought
*/
*/
for
(
SCH_SCREEN
*
Screen
=
ScreenList
.
GetFirst
();
Screen
!=
NULL
;
Screen
=
ScreenList
.
GetNext
()
)
int
errcnt
=
TestDuplicateSheetNames
(
);
{
g_EESchemaVar
.
NbErrorErc
+=
errcnt
;
for
(
SCH_ITEM
*
ref_item
=
Screen
->
EEDrawList
;
ref_item
!=
NULL
;
ref_item
=
ref_item
->
Next
()
)
g_EESchemaVar
.
NbWarningErc
+=
errcnt
;
{
// serach for a scheet;
if
(
ref_item
->
Type
()
!=
DRAW_SHEET_STRUCT_TYPE
)
continue
;
for
(
SCH_ITEM
*
item_to_test
=
ref_item
->
Next
();
item_to_test
!=
NULL
;
item_to_test
=
item_to_test
->
Next
()
)
{
if
(
item_to_test
->
Type
()
!=
DRAW_SHEET_STRUCT_TYPE
)
continue
;
// We have found a second sheet: compare names
if
(
(
(
DrawSheetStruct
*
)
ref_item
)
->
m_SheetName
.
CmpNoCase
(
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_SheetName
)
==
0
)
{
/* Create a new marker type ERC error*/
MARKER_SCH
*
Marker
=
new
MARKER_SCH
();
Marker
->
SetData
(
ERCE_DUPLICATE_SHEET_NAME
,
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_Pos
,
_
(
"Duplicate Sheet name"
),
(
(
DrawSheetStruct
*
)
item_to_test
)
->
m_Pos
);
Marker
->
SetMarkerType
(
MARK_ERC
);
Marker
->
SetErrorLevel
(
ERR
);
Marker
->
SetNext
(
Screen
->
EEDrawList
);
Screen
->
EEDrawList
=
Marker
;
g_EESchemaVar
.
NbErrorErc
++
;
g_EESchemaVar
.
NbWarningErc
++
;
}
}
}
}
m_Parent
->
BuildNetListBase
();
m_Parent
->
BuildNetListBase
();
...
@@ -388,6 +402,7 @@ static void Diagnose( WinEDA_DrawPanel* aPanel,
...
@@ -388,6 +402,7 @@ static void Diagnose( WinEDA_DrawPanel* aPanel,
/* Creation du nouveau marqueur type Erreur ERC */
/* Creation du nouveau marqueur type Erreur ERC */
Marker
=
new
MARKER_SCH
();
Marker
=
new
MARKER_SCH
();
Marker
->
m_TimeStamp
=
GetTimeStamp
();
Marker
->
SetMarkerType
(
MARK_ERC
);
Marker
->
SetMarkerType
(
MARK_ERC
);
Marker
->
SetErrorLevel
(
WAR
);
Marker
->
SetErrorLevel
(
WAR
);
...
@@ -430,7 +445,8 @@ static void Diagnose( WinEDA_DrawPanel* aPanel,
...
@@ -430,7 +445,8 @@ static void Diagnose( WinEDA_DrawPanel* aPanel,
if
(
aMinConn
==
NOC
)
/* 1 seul element dans le net */
if
(
aMinConn
==
NOC
)
/* 1 seul element dans le net */
{
{
msg
.
Printf
(
_
(
"Cmp %s, Pin %s (%s) Unconnected"
),
msg
.
Printf
(
_
(
"Cmp %s, Pin %s (%s) Unconnected"
),
cmp_ref
.
GetData
(),
string_pinnum
.
GetData
(),
MsgPinElectricType
[
ii
]
);
cmp_ref
.
GetData
(),
string_pinnum
.
GetData
(),
MsgPinElectricType
[
ii
]
);
Marker
->
SetData
(
ERCE_PIN_NOT_CONNECTED
,
Marker
->
SetData
(
ERCE_PIN_NOT_CONNECTED
,
aNetItemRef
->
m_Start
,
aNetItemRef
->
m_Start
,
msg
,
msg
,
...
@@ -522,15 +538,15 @@ static void TestOthersItems( WinEDA_DrawPanel* panel,
...
@@ -522,15 +538,15 @@ static void TestOthersItems( WinEDA_DrawPanel* panel,
NetItemTst
=
netstart
;
NetItemTst
=
netstart
;
local_minconn
=
NOC
;
local_minconn
=
NOC
;
/*
Examen de la liste des Pins connectees a
NetItemRef */
/*
Test pins Pins connected to
NetItemRef */
for
(
;
;
NetItemTst
++
)
for
(
;
;
NetItemTst
++
)
{
{
if
(
NetItemRef
==
NetItemTst
)
if
(
NetItemRef
==
NetItemTst
)
continue
;
continue
;
/*
Est - on toujours dans le meme net ?
*/
/*
We examine only a given net. We stop the search if the net changes
*/
if
(
(
NetItemTst
>=
Lim
)
//
fin de liste (donc fin de net)
if
(
(
NetItemTst
>=
Lim
)
//
End of list
||
(
NetItemRef
->
GetNet
()
!=
NetItemTst
->
GetNet
()
)
)
//
fin de
net
||
(
NetItemRef
->
GetNet
()
!=
NetItemTst
->
GetNet
()
)
)
//
End of
net
{
{
/* Fin de netcode trouve: Tst connexion minimum */
/* Fin de netcode trouve: Tst connexion minimum */
if
(
(
*
MinConnexion
<
NET_NC
)
if
(
(
*
MinConnexion
<
NET_NC
)
...
...
eeschema/load_one_schematic_file.cpp
View file @
baa278a3
...
@@ -50,7 +50,6 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen,
...
@@ -50,7 +50,6 @@ bool WinEDA_SchematicFrame::LoadOneEEFile( SCH_SCREEN* screen,
DrawPolylineStruct
*
PolylineStruct
;
DrawPolylineStruct
*
PolylineStruct
;
EDA_DrawLineStruct
*
SegmentStruct
;
EDA_DrawLineStruct
*
SegmentStruct
;
DrawBusEntryStruct
*
RaccordStruct
;
DrawBusEntryStruct
*
RaccordStruct
;
MARKER_SCH
*
Marker
;
DrawNoConnectStruct
*
NoConnectStruct
;
DrawNoConnectStruct
*
NoConnectStruct
;
int
LineCount
;
int
LineCount
;
wxString
MsgDiag
;
/* Error and log messages */
wxString
MsgDiag
;
/* Error and log messages */
...
@@ -325,6 +324,7 @@ at line %d, aborted" ),
...
@@ -325,6 +324,7 @@ at line %d, aborted" ),
break
;
break
;
case
'K'
:
/* It is a Marker item. */
case
'K'
:
/* It is a Marker item. */
#if 0 // Markers are no more read from file
if( sscanf( SLine, "%s %d %d", Name1, &pos.x, &pos.y ) != 3 )
if( sscanf( SLine, "%s %d %d", Name1, &pos.x, &pos.y ) != 3 )
{
{
MsgDiag.Printf( wxT( "EESchema file marker struct error line %d, aborted" ),
MsgDiag.Printf( wxT( "EESchema file marker struct error line %d, aborted" ),
...
@@ -338,7 +338,7 @@ at line %d, aborted" ),
...
@@ -338,7 +338,7 @@ at line %d, aborted" ),
char BufLine[1024];
char BufLine[1024];
BufLine[0] = 0;
BufLine[0] = 0;
int errtype = 0;
int errtype = 0;
Marker
=
new
MARKER_SCH
(
);
M
ARKER_SCH* M
arker = new MARKER_SCH( );
ii = ReadDelimitedText( BufLine, Line, 1024 );
ii = ReadDelimitedText( BufLine, Line, 1024 );
int type = (TypeMarker) ( (Name1[0] & 255) - 'A' );
int type = (TypeMarker) ( (Name1[0] & 255) - 'A' );
if( type < 0 || type >= MARK_NMAX)
if( type < 0 || type >= MARK_NMAX)
...
@@ -360,6 +360,7 @@ at line %d, aborted" ),
...
@@ -360,6 +360,7 @@ at line %d, aborted" ),
Marker->SetNext( screen->EEDrawList );
Marker->SetNext( screen->EEDrawList );
screen->EEDrawList = Marker;
screen->EEDrawList = Marker;
}
}
#endif
break
;
break
;
case
'T'
:
/* It is a text item. */
case
'T'
:
/* It is a text item. */
...
...
eeschema/onleftclick.cpp
View file @
baa278a3
...
@@ -12,6 +12,8 @@
...
@@ -12,6 +12,8 @@
#include "program.h"
#include "program.h"
#include "libcmp.h"
#include "libcmp.h"
#include "general.h"
#include "general.h"
#include "class_marker_sch.h"
#include "protos.h"
#include "protos.h"
static
wxArrayString
s_CmpNameList
;
static
wxArrayString
s_CmpNameList
;
...
@@ -369,6 +371,10 @@ void WinEDA_SchematicFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
...
@@ -369,6 +371,10 @@ void WinEDA_SchematicFrame::OnLeftDClick( wxDC* DC, const wxPoint& MousePos )
DrawPanel
->
MouseToCursorSchema
();
DrawPanel
->
MouseToCursorSchema
();
break
;
break
;
case
DRAW_MARKER_STRUCT_TYPE
:
((
MARKER_SCH
*
)
DrawStruct
)
->
DisplayMarkerInfo
(
this
);
break
;
default
:
default
:
break
;
break
;
}
}
...
...
include/class_marker_base.h
View file @
baa278a3
...
@@ -10,20 +10,20 @@
...
@@ -10,20 +10,20 @@
class
MARKER_BASE
class
MARKER_BASE
{
{
public
:
public
:
wxPoint
m_Pos
;
///< position of the marker
wxPoint
m_Pos
;
///< position of the marker
protected
:
protected
:
std
::
vector
<
wxPoint
>
m_Corners
;
///< Corner list for shape definition (a polygon)
std
::
vector
<
wxPoint
>
m_Corners
;
///< Corner list for shape definition (a polygon)
int
m_MarkerType
;
///< Can be used as a flag
int
m_MarkerType
;
///< Can be used as a flag
EDA_Colors
m_Color
;
///< color
EDA_Colors
m_Color
;
///< color
wxSize
m_Size
;
///< Size of the graphic symbol
, used for Hit Tests
EDA_Rect
m_ShapeBoundingBox
;
///< Bounding box of the graphic symbol, relative to the position of the shape
, used for Hit Tests
int
m_ScalingFactor
;
///< Scaling factor for m_Size and m_Corners (can set the physical size
int
m_ScalingFactor
;
///< Scaling factor for m_Size and m_Corners (can set the physical size
DRC_ITEM
m_drc
;
DRC_ITEM
m_drc
;
void
init
();
void
init
();
public
:
public
:
MARKER_BASE
(
);
MARKER_BASE
();
/**
/**
* Constructor
* Constructor
...
@@ -35,9 +35,10 @@ public:
...
@@ -35,9 +35,10 @@ public:
* @param bPos The position of the second of two objects
* @param bPos The position of the second of two objects
*/
*/
MARKER_BASE
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
MARKER_BASE
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
,
const
wxString
&
bText
,
const
wxPoint
&
bPos
);
const
wxString
&
bText
,
const
wxPoint
&
bPos
);
/**
/**
* Constructor
* Constructor
* @param aErrorCode The categorizing identifier for an error
* @param aErrorCode The categorizing identifier for an error
* @param aMarkerPos The position of the MARKER on the BOARD
* @param aMarkerPos The position of the MARKER on the BOARD
...
@@ -45,14 +46,14 @@ public:
...
@@ -45,14 +46,14 @@ public:
* @param aPos The position of the object
* @param aPos The position of the object
*/
*/
MARKER_BASE
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
MARKER_BASE
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
);
const
wxString
&
aText
,
const
wxPoint
&
aPos
);
~
MARKER_BASE
();
~
MARKER_BASE
();
/** Function DrawMarker
/** Function DrawMarker
*/
*/
void
DrawMarker
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
int
DrawMode
,
const
wxPoint
&
offset
);
void
DrawMarker
(
WinEDA_DrawPanel
*
panel
,
wxDC
*
DC
,
int
DrawMode
,
const
wxPoint
&
offset
);
/**
/**
...
@@ -68,22 +69,24 @@ public:
...
@@ -68,22 +69,24 @@ public:
/** Function SetColor
/** Function SetColor
* Set the color of this marker
* Set the color of this marker
*/
*/
void
SetColor
(
EDA_Colors
aColor
)
void
SetColor
(
EDA_Colors
aColor
)
{
{
m_Color
=
aColor
;
m_Color
=
aColor
;
}
}
/** Function to set/get error levels (warning, fatal ..)
/** Function to set/get error levels (warning, fatal ..)
* this value is stored in m_MarkerType
* this value is stored in m_MarkerType
*/
*/
void
SetErrorLevel
(
int
aErrorLevel
)
void
SetErrorLevel
(
int
aErrorLevel
)
{
{
m_MarkerType
&=
~
0xFF00
;
m_MarkerType
&=
~
0xFF00
;
aErrorLevel
&=
0xFF
;
aErrorLevel
&=
0xFF
;
m_MarkerType
|=
aErrorLevel
<<
8
;
m_MarkerType
|=
aErrorLevel
<<
8
;
}
}
int
GetErrorLevel
(
)
const
int
GetErrorLevel
()
const
{
{
return
(
m_MarkerType
>>
8
)
&
0xFF
;
return
(
m_MarkerType
>>
8
)
&
0xFF
;
}
}
...
@@ -92,18 +95,20 @@ public:
...
@@ -92,18 +95,20 @@ public:
/** Functions to set/get marker type (DRC, ERC, or other)
/** Functions to set/get marker type (DRC, ERC, or other)
* this value is stored in m_MarkerType
* this value is stored in m_MarkerType
*/
*/
void
SetMarkerType
(
int
aMarkerType
)
void
SetMarkerType
(
int
aMarkerType
)
{
{
m_MarkerType
&=
~
0xFF
;
m_MarkerType
&=
~
0xFF
;
aMarkerType
&=
0xFF
;
aMarkerType
&=
0xFF
;
m_MarkerType
|=
aMarkerType
;
m_MarkerType
|=
aMarkerType
;
}
}
int
GetMarkerType
(
)
const
int
GetMarkerType
()
const
{
{
return
m_MarkerType
&
0xFF
;
return
m_MarkerType
&
0xFF
;
}
}
/**
/**
* Function SetData
* Function SetData
* fills in all the reportable data associated with a MARKER.
* fills in all the reportable data associated with a MARKER.
...
@@ -115,8 +120,8 @@ public:
...
@@ -115,8 +120,8 @@ public:
* @param bPos The position of the second of two objects
* @param bPos The position of the second of two objects
*/
*/
void
SetData
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
void
SetData
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
,
const
wxString
&
bText
,
const
wxPoint
&
bPos
);
const
wxString
&
bText
,
const
wxPoint
&
bPos
);
/**
/**
* Function SetData
* Function SetData
...
@@ -127,7 +132,7 @@ public:
...
@@ -127,7 +132,7 @@ public:
* @param aPos The position of the object
* @param aPos The position of the object
*/
*/
void
SetData
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
void
SetData
(
int
aErrorCode
,
const
wxPoint
&
aMarkerPos
,
const
wxString
&
aText
,
const
wxPoint
&
aPos
);
const
wxString
&
aText
,
const
wxPoint
&
aPos
);
/** Function SetAuxiliaryData
/** Function SetAuxiliaryData
...
@@ -140,6 +145,7 @@ public:
...
@@ -140,6 +145,7 @@ public:
m_drc
.
SetAuxiliaryData
(
aAuxiliaryText
,
aAuxiliaryPos
);
m_drc
.
SetAuxiliaryData
(
aAuxiliaryText
,
aAuxiliaryPos
);
}
}
/**
/**
* Function GetReporter
* Function GetReporter
* returns the DRC_ITEM held within this MARKER so that its
* returns the DRC_ITEM held within this MARKER so that its
...
@@ -158,8 +164,8 @@ public:
...
@@ -158,8 +164,8 @@ public:
* @param ref_pos A wxPoint to test
* @param ref_pos A wxPoint to test
* @return bool - true if a hit, else false
* @return bool - true if a hit, else false
*/
*/
bool
HitTestMarker
(
const
wxPoint
&
ref_pos
);
bool
HitTestMarker
(
const
wxPoint
&
ref_pos
);
/**
/**
* Function GetBoundingBoxMarker
* Function GetBoundingBoxMarker
* returns the orthogonal, bounding box of this object for display purposes.
* returns the orthogonal, bounding box of this object for display purposes.
...
...
include/dialog_display_info_HTML_base.h
View file @
baa278a3
...
@@ -16,6 +16,7 @@
...
@@ -16,6 +16,7 @@
#include <wx/colour.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/settings.h>
#include <wx/string.h>
#include <wx/string.h>
#include <wx/button.h>
#include <wx/sizer.h>
#include <wx/sizer.h>
#include <wx/dialog.h>
#include <wx/dialog.h>
...
@@ -30,10 +31,16 @@ class DIALOG_DISPLAY_HTML_TEXT_BASE : public wxDialog
...
@@ -30,10 +31,16 @@ class DIALOG_DISPLAY_HTML_TEXT_BASE : public wxDialog
private
:
private
:
protected
:
protected
:
wxButton
*
m_buttonClose
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnHTMLLinkClicked
(
wxHtmlLinkEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnCloseButtonClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
public
:
public
:
wxHtmlWindow
*
m_htmlWindow
;
wxHtmlWindow
*
m_htmlWindow
;
DIALOG_DISPLAY_HTML_TEXT_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
wxEmptyString
,
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
291
,
165
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
);
DIALOG_DISPLAY_HTML_TEXT_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
wxEmptyString
,
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
431
,
180
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
);
~
DIALOG_DISPLAY_HTML_TEXT_BASE
();
~
DIALOG_DISPLAY_HTML_TEXT_BASE
();
};
};
...
...
internat/fr/kicad.mo
View file @
baa278a3
No preview for this file type
internat/fr/kicad.po
View file @
baa278a3
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment