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
69c5bdea
Commit
69c5bdea
authored
Dec 13, 2007
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
highlight tool HitTest()ing prefers pads over tracks
parent
0760976f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
57 additions
and
20 deletions
+57
-20
change_log.txt
change_log.txt
+13
-2
collectors.cpp
pcbnew/collectors.cpp
+10
-0
collectors.h
pcbnew/collectors.h
+6
-0
surbrill.cpp
pcbnew/surbrill.cpp
+28
-18
No files found.
change_log.txt
View file @
69c5bdea
...
...
@@ -5,6 +5,17 @@ Please add newer entries at the top, list the date and your name with
email address.
2007-Dec-13 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
* surbrill.cpp's int WinEDA_PcbFrame::Select_High_Light( wxDC* DC )
was re-written to use the GENERAL_COLLECTOR, and the scanList is set to
give pads a higher search priority than tracks, vias or pads.
The objective was to use the pad if possible, rather than a track on a pad,
so the pad can be sent to eeschema. Finding the track only (even though
on a pad) would not send anything to eeschema.
2007-Dec-12 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+pcbnew
...
...
@@ -25,8 +36,8 @@ email address.
2007-Dec-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
================================================================================
+cvpcb:
listboxes.cpp FootprintListBox::m_ActiveFootprint member was not initialized.
Can crash cvpcb (WINDOWS only, i believe)
listboxes.cpp FootprintListBox::m_ActiveFootprint member was not initialized.
Can crash cvpcb (WINDOWS only, i believe)
2007-Dec-09 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr>
...
...
pcbnew/collectors.cpp
View file @
69c5bdea
...
...
@@ -92,6 +92,16 @@ const KICAD_T GENERAL_COLLECTOR::PadsOrModules[] = {
EOT
};
const
KICAD_T
GENERAL_COLLECTOR
::
PadsOrTracks
[]
=
{
TYPEPAD
,
TYPEVIA
,
TYPETRACK
,
TYPEZONE
,
EOT
};
const
KICAD_T
GENERAL_COLLECTOR
::
ModulesAndTheirItems
[]
=
{
TYPETEXTEMODULE
,
TYPEEDGEMODULE
,
...
...
pcbnew/collectors.h
View file @
69c5bdea
...
...
@@ -226,6 +226,12 @@ public:
*/
static
const
KICAD_T
PadsOrModules
[];
/**
* A scan list for PADs, TRACKs, VIAs, or ZONEs
*/
static
const
KICAD_T
PadsOrTracks
[];
/**
* A scan list for MODULEs and their items (for Modedit)
*/
...
...
pcbnew/surbrill.cpp
View file @
69c5bdea
...
...
@@ -9,6 +9,8 @@
#include "pcbnew.h"
#include "protos.h"
#include "collectors.h"
#define Pad_fill (Pad_Fill_Item.State == RUN)
...
...
@@ -88,32 +90,40 @@ int WinEDA_PcbFrame::Select_High_Light( wxDC* DC )
/* Localise track ou pad et met en surbrillance le net correspondant
* Retourne le netcode, ou -1 si pas de net localis�*/
{
TRACK
*
pt_piste
;
D_PAD
*
pt_pad
;
int
masquelayer
=
g_TabOneLayerMask
[
GetScreen
()
->
m_Active_Layer
];
int
code
=
-
1
;
if
(
g_HightLigt_Status
)
Hight_Light
(
DC
);
pt_piste
=
Locate_Pistes
(
m_Pcb
->
m_Track
,
masquelayer
,
CURSEUR_OFF_GRILLE
);
if
(
pt_piste
)
{
code
=
g_HightLigth_NetCode
=
pt_piste
->
GetNet
();
Hight_Light
(
DC
);
}
else
// use this scheme because of pad is higher priority than tracks in the
// search, and finding a pad, instead of a track on a pad,
// allows us to fire a message to eescema.
GENERAL_COLLECTORS_GUIDE
guide
=
GetCollectorsGuide
();
// tweak the collector
m_Collector
->
Collect
(
m_Pcb
,
GENERAL_COLLECTOR
::
PadsOrTracks
,
GetScreen
()
->
RefPos
(
true
),
guide
);
BOARD_ITEM
*
item
=
(
*
m_Collector
)[
0
];
if
(
item
)
{
pt_pad
=
Locate_Any_Pad
(
m_Pcb
,
CURSEUR_OFF_GRILLE
);
if
(
pt_pad
!=
NULL
)
switch
(
item
->
Type
()
)
{
code
=
g_HightLigth_NetCode
=
pt_pad
->
GetNet
();
case
TYPEPAD
:
g_HightLigth_NetCode
=
((
D_PAD
*
)
item
)
->
GetNet
();
Hight_Light
(
DC
);
SendMessageToEESCHEMA
(
pt_pad
);
SendMessageToEESCHEMA
(
item
);
return
g_HightLigth_NetCode
;
default
:
g_HightLigth_NetCode
=
((
TRACK
*
)
item
)
->
GetNet
();
Hight_Light
(
DC
);
return
g_HightLigth_NetCode
;
}
}
return
code
;
return
-
1
;
// HitTest() failed.
}
...
...
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