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
ef3d0491
Commit
ef3d0491
authored
Sep 15, 2007
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
see change_log.txt 2007-Sep-14 UPDATE
parent
cd81e546
Changes
18
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
1094 additions
and
1036 deletions
+1094
-1036
change_log.txt
change_log.txt
+9
-1
edit_component_in_schematic.cpp
eeschema/edit_component_in_schematic.cpp
+2
-1
editpart.cpp
eeschema/editpart.cpp
+2
-1
find.cpp
eeschema/find.cpp
+5
-3
libedit_onleftclick.cpp
eeschema/libedit_onleftclick.cpp
+275
-264
libframe.cpp
eeschema/libframe.cpp
+668
-638
export_to_pcbnew.cpp
gerbview/export_to_pcbnew.cpp
+1
-1
base_struct.h
include/base_struct.h
+9
-18
drawpanel_wxstruct.h
include/drawpanel_wxstruct.h
+1
-1
pcbstruct.h
include/pcbstruct.h
+1
-1
wxstruct.h
include/wxstruct.h
+7
-21
class_board.cpp
pcbnew/class_board.cpp
+2
-2
class_track.h
pcbnew/class_track.h
+4
-2
collectors.cpp
pcbnew/collectors.cpp
+8
-5
controle.cpp
pcbnew/controle.cpp
+49
-12
editrack.cpp
pcbnew/editrack.cpp
+2
-2
onrightclick.cpp
pcbnew/onrightclick.cpp
+48
-62
drawpanel.cpp
share/drawpanel.cpp
+1
-1
No files found.
change_log.txt
View file @
ef3d0491
...
@@ -10,7 +10,15 @@ email address.
...
@@ -10,7 +10,15 @@ email address.
+ pcbnew
+ pcbnew
* controle.cpp, added Function AllAreModulesAndReturnSmallestIfSo() which is
* controle.cpp, added Function AllAreModulesAndReturnSmallestIfSo() which is
called from PcbGeneralLocateAndDisplay()
called from PcbGeneralLocateAndDisplay()
* onrightclick.cpp changed to calls to BOARD_ITEM::MenuText()
* onrightclick.cpp changed to calls to BOARD_ITEM::MenuText(), and switched
to member functions for createPopupMenus() so we can get all the state
information we need for the proper menus.
* BOARD_ITEM::MenuText() got new argument BOARD*, and elaboration for
TRACKs and VIAs and Pcb Graphics.
* Fixed a problem in GENERAL_COLLECTOR::Inspect() so it now knows that MODULEs
have their own visibility controls (same for pads and pcb texts). This
interpretation must always match the drawing code's interpretation.
* Made TRACK::TRACK( const TRACK& ) protected to enforce use of TRACK::Copy()
2007-Sep-13 UPDATE Dick Hollenbeck <dick@softplc.com>
2007-Sep-13 UPDATE Dick Hollenbeck <dick@softplc.com>
...
...
eeschema/edit_component_in_schematic.cpp
View file @
ef3d0491
...
@@ -53,7 +53,8 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
...
@@ -53,7 +53,8 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
{
{
WinEDA_ComponentPropertiesFrame
*
frame
=
WinEDA_ComponentPropertiesFrame
*
frame
=
new
WinEDA_ComponentPropertiesFrame
(
parent
,
cmp
);
new
WinEDA_ComponentPropertiesFrame
(
parent
,
cmp
);
frame
->
ShowModal
();
frame
->
Destroy
();
frame
->
ShowModal
();
frame
->
Destroy
();
}
}
parent
->
DrawPanel
->
MouseToCursorSchema
();
parent
->
DrawPanel
->
MouseToCursorSchema
();
...
...
eeschema/editpart.cpp
View file @
ef3d0491
...
@@ -125,7 +125,8 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
...
@@ -125,7 +125,8 @@ void InstallCmpeditFrame( WinEDA_SchematicFrame* parent, wxPoint& pos,
{
{
WinEDA_ComponentPropertiesFrame
*
frame
=
WinEDA_ComponentPropertiesFrame
*
frame
=
new
WinEDA_ComponentPropertiesFrame
(
parent
,
pos
,
cmp
);
new
WinEDA_ComponentPropertiesFrame
(
parent
,
pos
,
cmp
);
frame
->
ShowModal
();
frame
->
Destroy
();
frame
->
ShowModal
();
frame
->
Destroy
();
}
}
parent
->
DrawPanel
->
m_IgnoreMouseEvents
=
FALSE
;
parent
->
DrawPanel
->
m_IgnoreMouseEvents
=
FALSE
;
}
}
...
...
eeschema/find.cpp
View file @
ef3d0491
...
@@ -519,7 +519,8 @@ int WinEDA_FindFrame::ExploreAllLibraries( const wxString& wildmask, wxString& F
...
@@ -519,7 +519,8 @@ int WinEDA_FindFrame::ExploreAllLibraries( const wxString& wildmask, wxString& F
while
(
GetLine
(
file
,
Line
,
&
LineNum
,
sizeof
(
Line
)
)
)
while
(
GetLine
(
file
,
Line
,
&
LineNum
,
sizeof
(
Line
)
)
)
{
{
if
(
strnicmp
(
Line
,
"DEF"
,
3
)
==
0
)
if
(
strnicmp
(
Line
,
"DEF"
,
3
)
==
0
)
{
/* Read one DEF part from library: DEF 74LS00 U 0 30 Y Y 4 0 N */
{
/* Read one DEF part from library: DEF 74LS00 U 0 30 Y Y 4 0 N */
strtok
(
Line
,
"
\t\r\n
"
);
strtok
(
Line
,
"
\t\r\n
"
);
name
=
strtok
(
NULL
,
"
\t\r\n
"
);
name
=
strtok
(
NULL
,
"
\t\r\n
"
);
wxString
st_name
=
CONV_FROM_UTF8
(
name
);
wxString
st_name
=
CONV_FROM_UTF8
(
name
);
...
@@ -533,7 +534,8 @@ int WinEDA_FindFrame::ExploreAllLibraries( const wxString& wildmask, wxString& F
...
@@ -533,7 +534,8 @@ int WinEDA_FindFrame::ExploreAllLibraries( const wxString& wildmask, wxString& F
}
}
}
}
else
if
(
strnicmp
(
Line
,
"ALIAS"
,
5
)
==
0
)
else
if
(
strnicmp
(
Line
,
"ALIAS"
,
5
)
==
0
)
{
/* Read one ALIAS part from library: ALIAS 74HC00 74HCT00 7400 74LS37 */
{
/* Read one ALIAS part from library: ALIAS 74HC00 74HCT00 7400 74LS37 */
strtok
(
Line
,
"
\t\r\n
"
);
strtok
(
Line
,
"
\t\r\n
"
);
while
(
(
name
=
strtok
(
NULL
,
"
\t\r\n
"
)
)
!=
NULL
)
while
(
(
name
=
strtok
(
NULL
,
"
\t\r\n
"
)
)
!=
NULL
)
{
{
...
...
eeschema/libedit_onleftclick.cpp
View file @
ef3d0491
This diff is collapsed.
Click to expand it.
eeschema/libframe.cpp
View file @
ef3d0491
This diff is collapsed.
Click to expand it.
gerbview/export_to_pcbnew.cpp
View file @
ef3d0491
...
@@ -177,7 +177,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* File,
...
@@ -177,7 +177,7 @@ static int SavePcbFormatAscii( WinEDA_GerberFrame* frame, FILE* File,
}
}
else
// a true TRACK
else
// a true TRACK
{
{
newtrack
=
new
TRACK
(
*
track
);
newtrack
=
track
->
Copy
(
);
newtrack
->
SetLayer
(
pcb_layer_number
);
newtrack
->
SetLayer
(
pcb_layer_number
);
}
}
...
...
include/base_struct.h
View file @
ef3d0491
...
@@ -85,6 +85,7 @@ enum SEARCH_RESULT {
...
@@ -85,6 +85,7 @@ enum SEARCH_RESULT {
class
EDA_BaseStruct
;
class
EDA_BaseStruct
;
class
WinEDA_DrawFrame
;
class
WinEDA_DrawFrame
;
class
BOARD
;
/**
/**
* Class INSPECTOR
* Class INSPECTOR
...
@@ -433,20 +434,6 @@ public:
...
@@ -433,20 +434,6 @@ public:
}
}
/**
* Function IsOnOneOfTheseLayers
* returns true if this object is on one of the given layers. Is virtual so
* objects like D_PAD, which reside on multiple layers, can do their own
* form of testing.
* @param aLayerMask The bit-mapped set of layers to test for.
* @return bool - true if on one of the given layers, else false.
*/
virtual
bool
IsOnOneOfTheseLayers
(
int
aLayerMask
)
const
{
return
(
(
1
<<
m_Layer
)
&
aLayerMask
)
!=
0
;
}
/**
/**
* Function IsLocked
* Function IsLocked
* @return bool - true if the object is locked, else false
* @return bool - true if the object is locked, else false
...
@@ -456,13 +443,17 @@ public:
...
@@ -456,13 +443,17 @@ public:
return
false
;
// only MODULEs can be locked at this time.
return
false
;
// only MODULEs can be locked at this time.
}
}
/**
/**
* Function MenuText
* Function MenuText
* @return wxString - The text to use in any menu type UI control which
* returns the text to use in any menu type UI control which must uniquely
* must identify this item.
* identify this item.
* @todo: make this virtual and split into each derived class
* @param aBoard The PCB in which this item resides, needed for Net lookup.
* @return wxString
* @todo: maybe: make this virtual and split into each derived class
*/
*/
wxString
MenuText
()
const
;
wxString
MenuText
(
const
BOARD
*
aBoard
)
const
;
/**
/**
* Function MenuIcon
* Function MenuIcon
...
...
include/drawpanel_wxstruct.h
View file @
ef3d0491
...
@@ -38,7 +38,7 @@ public:
...
@@ -38,7 +38,7 @@ public:
bool
m_AutoPAN_Enable
;
// TRUE pour autoriser auto pan (autorisation g��ale)
bool
m_AutoPAN_Enable
;
// TRUE pour autoriser auto pan (autorisation g��ale)
bool
m_AutoPAN_Request
;
// TRUE pour auto pan (lorsque auto pan n�essaire)
bool
m_AutoPAN_Request
;
// TRUE pour auto pan (lorsque auto pan n�essaire)
bool
m_IgnoreMouseEvents
;
// TRUE pour ne par traiter les evenements souri
s
int
m_IgnoreMouseEvents
;
///< when non-zero, then ignore mouse event
s
bool
m_Block_Enable
;
// TRUE pour autoriser Bloc Commandes (autorisation g��ale)
bool
m_Block_Enable
;
// TRUE pour autoriser Bloc Commandes (autorisation g��ale)
int
m_CanStartBlock
;
// >= 0 (ou >= n) si un bloc peut demarrer
int
m_CanStartBlock
;
// >= 0 (ou >= n) si un bloc peut demarrer
...
...
include/pcbstruct.h
View file @
ef3d0491
...
@@ -287,7 +287,7 @@ public:
...
@@ -287,7 +287,7 @@ public:
* @param aNetcode A netcode to search for.
* @param aNetcode A netcode to search for.
* @return EQUIPOT* - the net or NULL if not found.
* @return EQUIPOT* - the net or NULL if not found.
*/
*/
EQUIPOT
*
FindNet
(
int
aNetcode
);
EQUIPOT
*
FindNet
(
int
aNetcode
)
const
;
/**
/**
...
...
include/wxstruct.h
View file @
ef3d0491
...
@@ -557,27 +557,13 @@ private:
...
@@ -557,27 +557,13 @@ private:
bool
m_SelViaSizeBox_Changed
;
bool
m_SelViaSizeBox_Changed
;
wxMenu
*
m_FilesMenu
;
wxMenu
*
m_FilesMenu
;
#if 0 && defined(DEBUG)
// we'll use lower case function names for private member functions.
/**
void
createPopUpMenuForFootprints
(
MODULE
*
aModule
,
wxMenu
*
aPopMenu
);
* Function onRightClickBuilder
void
createPopUpMenuForFpTexts
(
TEXTE_MODULE
*
aText
,
wxMenu
*
aPopMenu
);
* is a helper function for private use by OnRightClick(). It helps build
void
createPopUpMenuForFpPads
(
D_PAD
*
aPad
,
wxMenu
*
aPopMenu
);
* the hierarchical menu.
void
createPopupMenuForTracks
(
TRACK
*
aTrack
,
wxMenu
*
aPopMenu
);
* @param collectorNdx The index into the COLLECTOR that \a aItem represents.
void
createPopUpMenuForTexts
(
TEXTE_PCB
*
Text
,
wxMenu
*
menu
);
* @param aItem The BOARD_ITEM to provide menu support for, or NULL if
void
createPopUpBlockMenu
(
wxMenu
*
menu
);
* nothing was under the mouse.
* @param pPopMenu What to populate with choices.
*/
void onRightClickBuilder( int collectorNdx, BOARD_ITEM* aItem, wxMenu* aPopMenu );
void popUpMenuForFootprints( int collectorNdx, MODULE* aModule, wxMenu* aPopMenu );
void popUpMenuForFpTexts( int collectorNdx, TEXTE_MODULE* aText, wxMenu* aPopMenu );
void popUpMenuForFpPads( int collectorNdx, D_PAD* aPad, wxMenu* aPopMenu );
void popupMenuForTracks( int collectorNdx, TRACK* aTrack, wxMenu* aPopMenu );
#endif
public
:
public
:
WinEDA_PcbFrame
(
wxWindow
*
father
,
WinEDA_App
*
parent
,
const
wxString
&
title
,
WinEDA_PcbFrame
(
wxWindow
*
father
,
WinEDA_App
*
parent
,
const
wxString
&
title
,
...
...
pcbnew/class_board.cpp
View file @
ef3d0491
...
@@ -450,7 +450,7 @@ SEARCH_RESULT BOARD::Visit( INSPECTOR* inspector, const void* testData,
...
@@ -450,7 +450,7 @@ SEARCH_RESULT BOARD::Visit( INSPECTOR* inspector, const void* testData,
}
}
/*
/*
now using PcbGeneralLocateAndDisplay()
// see pcbstruct.h
// see pcbstruct.h
BOARD_ITEM* BOARD::FindPadOrModule( const wxPoint& refPos, int layer )
BOARD_ITEM* BOARD::FindPadOrModule( const wxPoint& refPos, int layer )
{
{
...
@@ -534,7 +534,7 @@ BOARD_ITEM* BOARD::FindPadOrModule( const wxPoint& refPos, int layer )
...
@@ -534,7 +534,7 @@ BOARD_ITEM* BOARD::FindPadOrModule( const wxPoint& refPos, int layer )
* @param anetcode The netcode to search for.
* @param anetcode The netcode to search for.
* @return EQUIPOT* - the net or NULL if not found.
* @return EQUIPOT* - the net or NULL if not found.
*/
*/
EQUIPOT
*
BOARD
::
FindNet
(
int
anetcode
)
EQUIPOT
*
BOARD
::
FindNet
(
int
anetcode
)
const
{
{
if
(
anetcode
<=
0
)
if
(
anetcode
<=
0
)
return
NULL
;
return
NULL
;
...
...
pcbnew/class_track.h
View file @
ef3d0491
...
@@ -39,16 +39,18 @@ public:
...
@@ -39,16 +39,18 @@ public:
// chain = 0 indique une connexion non encore traitee
// chain = 0 indique une connexion non encore traitee
int
m_Param
;
// Auxiliary variable ( used in some computations )
int
m_Param
;
// Auxiliary variable ( used in some computations )
protected
:
TRACK
(
const
TRACK
&
track
);
// protected so Copy() is used instead.
public
:
public
:
TRACK
(
BOARD_ITEM
*
StructFather
,
KICAD_T
idtype
=
TYPETRACK
);
TRACK
(
BOARD_ITEM
*
StructFather
,
KICAD_T
idtype
=
TYPETRACK
);
TRACK
(
const
TRACK
&
track
);
/**
/**
* Function Copy
* Function Copy
* will copy this object whether it is a TRACK or a SEGVIA returning
* will copy this object whether it is a TRACK or a SEGVIA returning
* the corresponding type.
* the corresponding type.
* @return - TRACK* or SEGVIA*, typed as the least common demoninator: TRACK
* @return - TRACK*, SEGVIA*, or SEGZONE*, declared as the least common
* demoninator: TRACK
*/
*/
TRACK
*
Copy
()
const
;
TRACK
*
Copy
()
const
;
...
...
pcbnew/collectors.cpp
View file @
ef3d0491
...
@@ -192,7 +192,6 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
...
@@ -192,7 +192,6 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
break
;
break
;
}
}
// common tests:
// common tests:
if
(
module
)
// true from case TYPEPAD, TYPETEXTEMODULE, or TYPEMODULE
if
(
module
)
// true from case TYPEPAD, TYPETEXTEMODULE, or TYPEMODULE
...
@@ -208,7 +207,9 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
...
@@ -208,7 +207,9 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
{
{
int
layer
=
item
->
GetLayer
();
int
layer
=
item
->
GetLayer
();
if
(
m_Guide
->
IsLayerVisible
(
layer
)
||
!
m_Guide
->
IgnoreNonVisibleLayers
()
)
// Modules and their subcomponents: text and pads are not sensitive to the layer
// visibility controls. They all have their own separate visibility controls
if
(
module
||
m_Guide
->
IsLayerVisible
(
layer
)
||
!
m_Guide
->
IgnoreNonVisibleLayers
()
)
{
{
if
(
!
m_Guide
->
IsLayerLocked
(
layer
)
||
!
m_Guide
->
IgnoreLockedLayers
()
)
if
(
!
m_Guide
->
IsLayerLocked
(
layer
)
||
!
m_Guide
->
IgnoreLockedLayers
()
)
{
{
...
@@ -233,7 +234,9 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
...
@@ -233,7 +234,9 @@ SEARCH_RESULT GENERAL_COLLECTOR::Inspect( EDA_BaseStruct* testItem, const void*
int
layer
=
item
->
GetLayer
();
int
layer
=
item
->
GetLayer
();
if
(
m_Guide
->
IsLayerVisible
(
layer
)
||
!
m_Guide
->
IgnoreNonVisibleLayers
()
)
// Modules and their subcomponents: text and pads are not sensitive to the layer
// visibility controls. They all have their own separate visibility controls
if
(
module
||
m_Guide
->
IsLayerVisible
(
layer
)
||
!
m_Guide
->
IgnoreNonVisibleLayers
()
)
{
{
if
(
!
m_Guide
->
IsLayerLocked
(
layer
)
||
!
m_Guide
->
IgnoreLockedLayers
()
)
if
(
!
m_Guide
->
IsLayerLocked
(
layer
)
||
!
m_Guide
->
IgnoreLockedLayers
()
)
{
{
...
...
pcbnew/controle.cpp
View file @
ef3d0491
...
@@ -124,10 +124,11 @@ void RemoteCommand( const char* cmdline )
...
@@ -124,10 +124,11 @@ void RemoteCommand( const char* cmdline )
// @todo: move this to proper source file.
// @todo: move this to proper source file.
wxString
BOARD_ITEM
::
MenuText
()
const
wxString
BOARD_ITEM
::
MenuText
(
const
BOARD
*
aPcb
)
const
{
{
wxString
text
;
wxString
text
;
const
BOARD_ITEM
*
item
=
this
;
const
BOARD_ITEM
*
item
=
this
;
EQUIPOT
*
net
;
switch
(
item
->
Type
()
)
switch
(
item
->
Type
()
)
{
{
...
@@ -140,11 +141,13 @@ wxString BOARD_ITEM::MenuText() const
...
@@ -140,11 +141,13 @@ wxString BOARD_ITEM::MenuText() const
break
;
break
;
case
TYPEPAD
:
case
TYPEPAD
:
text
<<
_
(
"Pad"
)
<<
wxT
(
" "
)
<<
((
D_PAD
*
)
item
)
->
ReturnStringPadName
()
<<
_
(
" of "
)
<<
GetParent
()
->
MenuText
();
text
<<
_
(
"Pad"
)
<<
wxT
(
" "
)
<<
((
D_PAD
*
)
item
)
->
ReturnStringPadName
()
<<
_
(
" of "
)
// << GetParent()->MenuText( aPcb );
<<
((
MODULE
*
)
GetParent
())
->
GetReference
();
break
;
break
;
case
TYPEDRAWSEGMENT
:
case
TYPEDRAWSEGMENT
:
text
<<
_
(
"P
Graphic"
);
text
<<
_
(
"P
cb Graphic"
)
<<
_
(
" on "
)
<<
ReturnPcbLayerName
(
item
->
GetLayer
()
);
// @todo: extend text
break
;
break
;
case
TYPETEXTE
:
case
TYPETEXTE
:
...
@@ -163,29 +166,63 @@ wxString BOARD_ITEM::MenuText() const
...
@@ -163,29 +166,63 @@ wxString BOARD_ITEM::MenuText() const
break
;
break
;
case
TEXT_is_VALUE
:
case
TEXT_is_VALUE
:
text
<<
_
(
"Value"
)
<<
wxT
(
" "
)
<<
((
TEXTE_MODULE
*
)
item
)
->
m_Text
<<
_
(
" of "
)
<<
GetParent
()
->
MenuText
();
text
<<
_
(
"Value"
)
<<
wxT
(
" "
)
<<
((
TEXTE_MODULE
*
)
item
)
->
m_Text
<<
_
(
" of "
)
// << GetParent()->MenuText( aPcb );
<<
((
MODULE
*
)
GetParent
())
->
GetReference
();
break
;
break
;
default
:
default
:
// wrap this one in quotes:
text
<<
_
(
"Text"
)
<<
wxT
(
" "
)
<<
((
TEXTE_MODULE
*
)
item
)
->
m_Text
<<
_
(
" of "
)
<<
GetParent
()
->
MenuText
();
text
<<
_
(
"Text"
)
<<
wxT
(
"
\"
"
)
<<
((
TEXTE_MODULE
*
)
item
)
->
m_Text
<<
wxT
(
"
\"
"
)
<<
_
(
" of "
)
// << GetParent()->MenuText( aPcb );
<<
((
MODULE
*
)
GetParent
())
->
GetReference
();
break
;
break
;
}
}
break
;
break
;
case
TYPEEDGEMODULE
:
case
TYPEEDGEMODULE
:
text
<<
_
(
"MGraphic"
);
// @todo: expand on the text
text
<<
_
(
"Graphic"
)
<<
wxT
(
" "
);
const
wxChar
*
cp
;
switch
(
((
EDGE_MODULE
*
)
item
)
->
m_Shape
)
{
case
S_SEGMENT
:
cp
=
_
(
"Line"
);
break
;
case
S_RECT
:
cp
=
_
(
"Rect"
);
break
;
case
S_ARC
:
cp
=
_
(
"Arc"
);
break
;
case
S_CIRCLE
:
cp
=
_
(
"Circle"
);
break
;
/* used?
case S_ARC_RECT: cp = wxT("arc_rect"); break;
case S_SPOT_OVALE: cp = wxT("spot_oval"); break;
case S_SPOT_CIRCLE: cp = wxT("spot_circle"); break;
case S_SPOT_RECT: cp = wxT("spot_rect"); break;
case S_POLYGON: cp = wxT("polygon"); break;
*/
default
:
cp
=
wxT
(
"??EDGE??"
);
break
;
}
text
<<
*
cp
<<
_
(
" of "
)
// << GetParent()->MenuText( aPcb );
<<
((
MODULE
*
)
GetParent
())
->
GetReference
();
break
;
break
;
case
TYPETRACK
:
case
TYPETRACK
:
text
<<
_
(
"Track"
);
// @todo: expand on the text
text
<<
_
(
"Track"
)
<<
wxT
(
" "
)
<<
((
TRACK
*
)
item
)
->
m_NetCode
;
net
=
aPcb
->
FindNet
(
((
TRACK
*
)
item
)
->
m_NetCode
);
if
(
net
)
{
text
<<
wxT
(
" ["
)
<<
net
->
m_Netname
<<
wxT
(
"]"
);
}
text
<<
_
(
" on "
)
<<
ReturnPcbLayerName
(
item
->
GetLayer
()
);
break
;
break
;
case
TYPEZONE
:
case
TYPEZONE
:
text
<<
_
(
"Zone"
)
;
// @todo: expand on the text
text
<<
_
(
"Zone"
)
<<
_
(
" on "
)
<<
ReturnPcbLayerName
(
item
->
GetLayer
()
);
break
;
break
;
case
TYPEVIA
:
case
TYPEVIA
:
text
<<
_
(
"Via"
);
// @todo: expand on text
text
<<
_
(
"Via"
)
<<
wxT
(
" "
)
<<
((
SEGVIA
*
)
item
)
->
m_NetCode
;
net
=
aPcb
->
FindNet
(
((
TRACK
*
)
item
)
->
m_NetCode
);
if
(
net
)
{
text
<<
wxT
(
" ["
)
<<
net
->
m_Netname
<<
wxT
(
"]"
);
}
break
;
break
;
case
TYPEMARQUEUR
:
case
TYPEMARQUEUR
:
...
@@ -201,7 +238,7 @@ wxString BOARD_ITEM::MenuText() const
...
@@ -201,7 +238,7 @@ wxString BOARD_ITEM::MenuText() const
break
;
break
;
case
TYPEEDGEZONE
:
case
TYPEEDGEZONE
:
text
<<
_
(
"
Graphic"
);
// @todo: extend text
text
<<
_
(
"
Edge Zone"
)
<<
_
(
" on "
)
<<
ReturnPcbLayerName
(
item
->
GetLayer
()
);
// @todo: extend text
break
;
break
;
default
:
default
:
...
@@ -418,7 +455,7 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay()
...
@@ -418,7 +455,7 @@ BOARD_ITEM* WinEDA_BasePcbFrame::PcbGeneralLocateAndDisplay()
item
=
(
*
m_Collector
)[
i
];
item
=
(
*
m_Collector
)[
i
];
text
=
item
->
MenuText
();
text
=
item
->
MenuText
(
m_Pcb
);
xpm
=
item
->
MenuIcon
();
xpm
=
item
->
MenuIcon
();
ADD_MENUITEM
(
&
itemMenu
,
ID_POPUP_PCB_ITEM_SELECTION_START
+
i
,
text
,
xpm
);
ADD_MENUITEM
(
&
itemMenu
,
ID_POPUP_PCB_ITEM_SELECTION_START
+
i
,
text
,
xpm
);
...
...
pcbnew/editrack.cpp
View file @
ef3d0491
...
@@ -147,7 +147,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
...
@@ -147,7 +147,7 @@ TRACK* WinEDA_PcbFrame::Begin_Route( TRACK* track, wxDC* DC )
if
(
g_TwoSegmentTrackBuild
)
if
(
g_TwoSegmentTrackBuild
)
{
{
// Create 2 segments
// Create 2 segments
g_CurrentTrackSegment
=
new
TRACK
(
*
g_CurrentTrackSegment
);
g_CurrentTrackSegment
=
g_CurrentTrackSegment
->
Copy
(
);
g_TrackSegmentCount
++
;
g_TrackSegmentCount
++
;
g_CurrentTrackSegment
->
Pback
=
g_FirstTrackSegment
;
g_CurrentTrackSegment
->
Pback
=
g_FirstTrackSegment
;
g_FirstTrackSegment
->
Pnext
=
g_CurrentTrackSegment
;
g_FirstTrackSegment
->
Pnext
=
g_CurrentTrackSegment
;
...
@@ -797,7 +797,7 @@ void EnsureEndTrackOnPad( D_PAD* Pad )
...
@@ -797,7 +797,7 @@ void EnsureEndTrackOnPad( D_PAD* Pad )
if
(
!
g_CurrentTrackSegment
->
IsNull
()
)
if
(
!
g_CurrentTrackSegment
->
IsNull
()
)
{
{
/* Must create a new segment, from track end to pad center */
/* Must create a new segment, from track end to pad center */
g_CurrentTrackSegment
=
new
TRACK
(
*
lasttrack
);
g_CurrentTrackSegment
=
lasttrack
->
Copy
(
);
g_TrackSegmentCount
++
;
g_TrackSegmentCount
++
;
lasttrack
->
Pnext
=
g_CurrentTrackSegment
;
lasttrack
->
Pnext
=
g_CurrentTrackSegment
;
g_CurrentTrackSegment
->
Pback
=
lasttrack
;
g_CurrentTrackSegment
->
Pback
=
lasttrack
;
...
...
pcbnew/onrightclick.cpp
View file @
ef3d0491
...
@@ -55,19 +55,6 @@
...
@@ -55,19 +55,6 @@
#include "Flag.xpm"
#include "Flag.xpm"
/* local functions */
static
void
CreatePopupMenuForTracks
(
TRACK
*
Track
,
wxPoint
CursorPosition
,
wxMenu
*
PopMenu
);
static
void
CreatePopUpMenuForFootprints
(
MODULE
*
Footprint
,
wxMenu
*
menu
,
bool
full_menu
);
static
void
CreatePopUpMenuForFpTexts
(
TEXTE_MODULE
*
FpText
,
wxMenu
*
menu
);
static
void
CreatePopUpMenuForPads
(
D_PAD
*
Pad
,
wxMenu
*
menu
);
static
void
CreatePopUpMenuForTexts
(
TEXTE_PCB
*
Text
,
wxMenu
*
menu
);
static
void
CreatePopUpBlockMenu
(
wxMenu
*
menu
);
/*****/
/********************************************/
/********************************************/
static
wxMenu
*
Append_Track_Width_List
()
static
wxMenu
*
Append_Track_Width_List
()
/********************************************/
/********************************************/
...
@@ -168,7 +155,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -168,7 +155,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
if
(
(
item
&&
item
->
m_Flags
)
||
BlockActive
)
if
(
(
item
&&
item
->
m_Flags
)
||
BlockActive
)
{
{
if
(
BlockActive
)
if
(
BlockActive
)
C
reatePopUpBlockMenu
(
aPopMenu
);
c
reatePopUpBlockMenu
(
aPopMenu
);
else
else
{
{
ADD_MENUITEM
(
aPopMenu
,
ID_POPUP_CANCEL_CURRENT_COMMAND
,
ADD_MENUITEM
(
aPopMenu
,
ID_POPUP_CANCEL_CURRENT_COMMAND
,
...
@@ -194,10 +181,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -194,10 +181,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
switch
(
item
->
Type
()
)
switch
(
item
->
Type
()
)
{
{
case
TYPEMODULE
:
case
TYPEMODULE
:
if
(
!
flags
)
createPopUpMenuForFootprints
(
(
MODULE
*
)
item
,
aPopMenu
);
CreatePopUpMenuForFootprints
(
(
MODULE
*
)
item
,
aPopMenu
,
TRUE
);
else
CreatePopUpMenuForFootprints
(
(
MODULE
*
)
item
,
aPopMenu
,
FALSE
);
if
(
m_HTOOL_current_state
==
ID_TOOLBARH_PCB_AUTOPLACE
)
if
(
m_HTOOL_current_state
==
ID_TOOLBARH_PCB_AUTOPLACE
)
{
{
...
@@ -219,37 +203,11 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -219,37 +203,11 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
break
;
break
;
case
TYPEPAD
:
case
TYPEPAD
:
CreatePopUpMenuForPads
(
(
D_PAD
*
)
item
,
aPopMenu
);
createPopUpMenuForFpPads
(
(
D_PAD
*
)
item
,
aPopMenu
);
if
(
m_HTOOL_current_state
==
ID_TOOLBARH_PCB_AUTOROUTE
)
{
if
(
!
flags
)
{
aPopMenu
->
Append
(
ID_POPUP_PCB_AUTOROUTE_PAD
,
_
(
"Autoroute Pad"
)
);
aPopMenu
->
Append
(
ID_POPUP_PCB_AUTOROUTE_NET
,
_
(
"Autoroute Net"
)
);
}
}
if
(
!
flags
)
{
MODULE
*
module
=
(
MODULE
*
)
item
->
m_Parent
;
if
(
module
)
{
aPopMenu
->
AppendSeparator
();
CreatePopUpMenuForFootprints
(
module
,
aPopMenu
,
TRUE
);
}
}
break
;
break
;
case
TYPETEXTEMODULE
:
case
TYPETEXTEMODULE
:
CreatePopUpMenuForFpTexts
(
(
TEXTE_MODULE
*
)
item
,
aPopMenu
);
createPopUpMenuForFpTexts
(
(
TEXTE_MODULE
*
)
item
,
aPopMenu
);
if
(
!
flags
)
{
MODULE
*
module
=
(
MODULE
*
)
item
->
m_Parent
;
if
(
module
)
{
aPopMenu
->
AppendSeparator
();
CreatePopUpMenuForFootprints
(
module
,
aPopMenu
,
TRUE
);
}
}
break
;
break
;
case
TYPEDRAWSEGMENT
:
case
TYPEDRAWSEGMENT
:
...
@@ -278,14 +236,13 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -278,14 +236,13 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
break
;
break
;
case
TYPETEXTE
:
case
TYPETEXTE
:
C
reatePopUpMenuForTexts
(
(
TEXTE_PCB
*
)
item
,
aPopMenu
);
c
reatePopUpMenuForTexts
(
(
TEXTE_PCB
*
)
item
,
aPopMenu
);
break
;
break
;
case
TYPETRACK
:
case
TYPETRACK
:
case
TYPEVIA
:
case
TYPEVIA
:
locate_track
=
TRUE
;
locate_track
=
TRUE
;
CreatePopupMenuForTracks
(
(
TRACK
*
)
item
,
GetScreen
()
->
m_Curseur
,
createPopupMenuForTracks
(
(
TRACK
*
)
item
,
aPopMenu
);
aPopMenu
);
break
;
break
;
case
TYPEZONE
:
case
TYPEZONE
:
...
@@ -469,7 +426,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
...
@@ -469,7 +426,7 @@ void WinEDA_PcbFrame::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu )
/****************************************/
/****************************************/
void
C
reatePopUpBlockMenu
(
wxMenu
*
menu
)
void
WinEDA_PcbFrame
::
c
reatePopUpBlockMenu
(
wxMenu
*
menu
)
/****************************************/
/****************************************/
/* Create Pop sub menu for block commands
/* Create Pop sub menu for block commands
...
@@ -494,13 +451,14 @@ void CreatePopUpBlockMenu( wxMenu* menu )
...
@@ -494,13 +451,14 @@ void CreatePopUpBlockMenu( wxMenu* menu )
/********************************************************************/
/********************************************************************/
void
CreatePopupMenuForTracks
(
TRACK
*
Track
,
wxPoint
CursorPosition
,
void
WinEDA_PcbFrame
::
createPopupMenuForTracks
(
TRACK
*
Track
,
wxMenu
*
PopMenu
)
wxMenu
*
PopMenu
)
/*******************************************************************/
/*******************************************************************/
/* Create command lines for a popup menu, for track editing
/* Create command lines for a popup menu, for track editing
*/
*/
{
{
wxPoint
cursorPosition
=
GetScreen
()
->
m_Curseur
;
int
flags
=
Track
->
m_Flags
;
int
flags
=
Track
->
m_Flags
;
if
(
flags
==
0
)
if
(
flags
==
0
)
...
@@ -532,7 +490,7 @@ void CreatePopupMenuForTracks( TRACK* Track, wxPoint CursorPosition,
...
@@ -532,7 +490,7 @@ void CreatePopupMenuForTracks( TRACK* Track, wxPoint CursorPosition,
}
}
else
else
{
{
if
(
Track
->
IsPointOnEnds
(
C
ursorPosition
,
-
1
)
!=
0
)
if
(
Track
->
IsPointOnEnds
(
c
ursorPosition
,
-
1
)
!=
0
)
{
{
ADD_MENUITEM
(
PopMenu
,
ID_POPUP_PCB_MOVE_TRACK_NODE
,
ADD_MENUITEM
(
PopMenu
,
ID_POPUP_PCB_MOVE_TRACK_NODE
,
_
(
"Move Node"
),
move_xpm
);
_
(
"Move Node"
),
move_xpm
);
...
@@ -623,7 +581,7 @@ void CreatePopupMenuForTracks( TRACK* Track, wxPoint CursorPosition,
...
@@ -623,7 +581,7 @@ void CreatePopupMenuForTracks( TRACK* Track, wxPoint CursorPosition,
/*********************************************************************************/
/*********************************************************************************/
void
CreatePopUpMenuForFootprints
(
MODULE
*
aModule
,
wxMenu
*
menu
,
bool
full_
menu
)
void
WinEDA_PcbFrame
::
createPopUpMenuForFootprints
(
MODULE
*
aModule
,
wxMenu
*
menu
)
/*********************************************************************************/
/*********************************************************************************/
/* Create the wxMenuitem list for footprint editing
/* Create the wxMenuitem list for footprint editing
...
@@ -632,12 +590,12 @@ void CreatePopUpMenuForFootprints( MODULE* aModule, wxMenu* menu, bool full_menu
...
@@ -632,12 +590,12 @@ void CreatePopUpMenuForFootprints( MODULE* aModule, wxMenu* menu, bool full_menu
wxMenu
*
sub_menu_footprint
;
wxMenu
*
sub_menu_footprint
;
int
flags
=
aModule
->
m_Flags
;
int
flags
=
aModule
->
m_Flags
;
wxString
msg
=
aModule
->
MenuText
();
wxString
msg
=
aModule
->
MenuText
(
m_Pcb
);
sub_menu_footprint
=
new
wxMenu
;
sub_menu_footprint
=
new
wxMenu
;
ADD_MENUITEM_WITH_SUBMENU
(
menu
,
sub_menu_footprint
,
-
1
,
msg
,
module_xpm
);
ADD_MENUITEM_WITH_SUBMENU
(
menu
,
sub_menu_footprint
,
-
1
,
msg
,
module_xpm
);
if
(
full_menu
)
if
(
!
flags
)
{
{
ADD_MENUITEM
(
sub_menu_footprint
,
ID_POPUP_PCB_MOVE_MODULE_REQUEST
,
ADD_MENUITEM
(
sub_menu_footprint
,
ID_POPUP_PCB_MOVE_MODULE_REQUEST
,
_
(
"Move (M)"
),
Move_Module_xpm
);
_
(
"Move (M)"
),
Move_Module_xpm
);
...
@@ -663,7 +621,7 @@ void CreatePopUpMenuForFootprints( MODULE* aModule, wxMenu* menu, bool full_menu
...
@@ -663,7 +621,7 @@ void CreatePopUpMenuForFootprints( MODULE* aModule, wxMenu* menu, bool full_menu
/********************************************************************/
/********************************************************************/
void
C
reatePopUpMenuForFpTexts
(
TEXTE_MODULE
*
FpText
,
wxMenu
*
menu
)
void
WinEDA_PcbFrame
::
c
reatePopUpMenuForFpTexts
(
TEXTE_MODULE
*
FpText
,
wxMenu
*
menu
)
/********************************************************************/
/********************************************************************/
/* Create the wxMenuitem list for editing texts on footprints
/* Create the wxMenuitem list for editing texts on footprints
...
@@ -672,7 +630,7 @@ void CreatePopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
...
@@ -672,7 +630,7 @@ void CreatePopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
wxMenu
*
sub_menu_Fp_text
;
wxMenu
*
sub_menu_Fp_text
;
int
flags
=
FpText
->
m_Flags
;
int
flags
=
FpText
->
m_Flags
;
wxString
msg
=
FpText
->
MenuText
();
wxString
msg
=
FpText
->
MenuText
(
m_Pcb
);
sub_menu_Fp_text
=
new
wxMenu
;
sub_menu_Fp_text
=
new
wxMenu
;
...
@@ -690,18 +648,28 @@ void CreatePopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
...
@@ -690,18 +648,28 @@ void CreatePopUpMenuForFpTexts( TEXTE_MODULE* FpText, wxMenu* menu )
if
(
FpText
->
m_Type
==
TEXT_is_DIVERS
)
if
(
FpText
->
m_Type
==
TEXT_is_DIVERS
)
ADD_MENUITEM
(
sub_menu_Fp_text
,
ID_POPUP_PCB_DELETE_TEXTMODULE
,
ADD_MENUITEM
(
sub_menu_Fp_text
,
ID_POPUP_PCB_DELETE_TEXTMODULE
,
_
(
"Delete"
),
delete_xpm
);
_
(
"Delete"
),
delete_xpm
);
if
(
!
flags
)
{
MODULE
*
module
=
(
MODULE
*
)
FpText
->
GetParent
();
if
(
module
)
{
menu
->
AppendSeparator
();
createPopUpMenuForFootprints
(
module
,
menu
);
}
}
}
}
/***************************************************************/
/***************************************************************/
void
CreatePopUpMenuFor
Pads
(
D_PAD
*
Pad
,
wxMenu
*
menu
)
void
WinEDA_PcbFrame
::
createPopUpMenuForFp
Pads
(
D_PAD
*
Pad
,
wxMenu
*
menu
)
/***************************************************************/
/***************************************************************/
/* Create pop menu for pads */
/* Create pop menu for pads */
{
{
wxMenu
*
sub_menu_Pad
;
wxMenu
*
sub_menu_Pad
;
int
flags
=
Pad
->
m_Flags
;
int
flags
=
Pad
->
m_Flags
;
wxString
msg
=
Pad
->
MenuText
();
wxString
msg
=
Pad
->
MenuText
(
m_Pcb
);
sub_menu_Pad
=
new
wxMenu
;
sub_menu_Pad
=
new
wxMenu
;
ADD_MENUITEM_WITH_SUBMENU
(
menu
,
sub_menu_Pad
,
-
1
,
msg
,
pad_xpm
);
ADD_MENUITEM_WITH_SUBMENU
(
menu
,
sub_menu_Pad
,
-
1
,
msg
,
pad_xpm
);
...
@@ -729,18 +697,36 @@ void CreatePopUpMenuForPads( D_PAD* Pad, wxMenu* menu )
...
@@ -729,18 +697,36 @@ void CreatePopUpMenuForPads( D_PAD* Pad, wxMenu* menu )
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_DELETE_PAD
,
ADD_MENUITEM
(
sub_menu_Pad
,
ID_POPUP_PCB_DELETE_PAD
,
_
(
"delete"
),
Delete_Pad_xpm
);
_
(
"delete"
),
Delete_Pad_xpm
);
}
}
if
(
m_HTOOL_current_state
==
ID_TOOLBARH_PCB_AUTOROUTE
)
{
if
(
!
flags
)
{
menu
->
Append
(
ID_POPUP_PCB_AUTOROUTE_PAD
,
_
(
"Autoroute Pad"
)
);
menu
->
Append
(
ID_POPUP_PCB_AUTOROUTE_NET
,
_
(
"Autoroute Net"
)
);
}
}
if
(
!
flags
)
{
MODULE
*
module
=
(
MODULE
*
)
Pad
->
GetParent
();
if
(
module
)
{
menu
->
AppendSeparator
();
createPopUpMenuForFootprints
(
module
,
menu
);
}
}
}
}
/*************************************************************/
/*************************************************************/
void
C
reatePopUpMenuForTexts
(
TEXTE_PCB
*
Text
,
wxMenu
*
menu
)
void
WinEDA_PcbFrame
::
c
reatePopUpMenuForTexts
(
TEXTE_PCB
*
Text
,
wxMenu
*
menu
)
/*************************************************************/
/*************************************************************/
/* Create pop menu for pcb texts */
/* Create pop menu for pcb texts */
{
{
wxMenu
*
sub_menu_Text
;
wxMenu
*
sub_menu_Text
;
int
flags
=
Text
->
m_Flags
;
int
flags
=
Text
->
m_Flags
;
wxString
msg
=
Text
->
MenuText
();
wxString
msg
=
Text
->
MenuText
(
m_Pcb
);
sub_menu_Text
=
new
wxMenu
;
sub_menu_Text
=
new
wxMenu
;
...
...
share/drawpanel.cpp
View file @
ef3d0491
...
@@ -57,7 +57,7 @@ WinEDA_DrawPanel::WinEDA_DrawPanel( WinEDA_DrawFrame* parent, int id,
...
@@ -57,7 +57,7 @@ WinEDA_DrawPanel::WinEDA_DrawPanel( WinEDA_DrawFrame* parent, int id,
m_CanStartBlock
=
-
1
;
// Command block can start if >= 0
m_CanStartBlock
=
-
1
;
// Command block can start if >= 0
m_AbortEnable
=
m_AbortRequest
=
FALSE
;
m_AbortEnable
=
m_AbortRequest
=
FALSE
;
m_AutoPAN_Enable
=
TRUE
;
m_AutoPAN_Enable
=
TRUE
;
m_IgnoreMouseEvents
=
FALSE
;
m_IgnoreMouseEvents
=
0
;
ManageCurseur
=
NULL
;
ManageCurseur
=
NULL
;
ForceCloseManageCurseur
=
NULL
;
ForceCloseManageCurseur
=
NULL
;
...
...
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