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
86923ed6
Commit
86923ed6
authored
Apr 07, 2015
by
Mikhail Karpenko
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP: add teardrops dialog
parent
19908464
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1219 additions
and
35 deletions
+1219
-35
wxPcbStruct.h
include/wxPcbStruct.h
+5
-1
CMakeLists.txt
pcbnew/CMakeLists.txt
+2
-0
class_teardrop.cpp
pcbnew/class_teardrop.cpp
+10
-23
class_teardrop.h
pcbnew/class_teardrop.h
+1
-1
dialog_teardrops.cpp
pcbnew/dialogs/dialog_teardrops.cpp
+98
-0
dialog_teardrops.h
pcbnew/dialogs/dialog_teardrops.h
+52
-0
dialog_teardrops_base.cpp
pcbnew/dialogs/dialog_teardrops_base.cpp
+137
-0
dialog_teardrops_base.fbp
pcbnew/dialogs/dialog_teardrops_base.fbp
+823
-0
dialog_teardrops_base.h
pcbnew/dialogs/dialog_teardrops_base.h
+71
-0
pcbframe.cpp
pcbnew/pcbframe.cpp
+20
-10
No files found.
include/wxPcbStruct.h
View file @
86923ed6
...
...
@@ -636,7 +636,11 @@ public:
*/
void
ShowDesignRulesEditor
(
wxCommandEvent
&
event
);
void
ShowTeardropsWnd
(
wxCommandEvent
&
event
);
/**
* @brief ShowTeardropsEditor displays the teardrops editor window.
* @param [in] event contains information about command events
*/
void
ShowTeardropsEditor
(
wxCommandEvent
&
event
);
/* toolbars update UI functions: */
...
...
pcbnew/CMakeLists.txt
View file @
86923ed6
...
...
@@ -139,6 +139,8 @@ set( PCBNEW_DIALOGS
footprint_wizard_frame.cpp
dialogs/dialog_footprint_wizard_list_base.cpp
dialogs/dialog_footprint_wizard_list.cpp
dialogs/dialog_teardrops_base.cpp
dialogs/dialog_teardrops.cpp
dialogs/wizard_add_fplib_base.cpp
dialogs/wizard_add_fplib.cpp
)
...
...
pcbnew/class_teardrop.cpp
View file @
86923ed6
#include "class_teardrop.h"
#include "class_board.h"
#include "class_board_item.h"
#include "class_undoredo_container.h"
TEARDROP
::
TEARDROP
(
BOARD_ITEM
*
aParent
)
:
TRACK
(
aParent
,
PCB_TRACE_T
)
...
...
@@ -26,7 +27,8 @@ bool TEARDROP::Create(TRACK &aTrack, ENDPOINT_T endPoint, TEARDROP_TYPE type = T
result
=
CurvedSegments
(
aTrack
,
*
aVia
,
upperSegment
,
lowerSegment
);
}
if
(
result
==
true
)
{
result
=
BuildTracks
(
aTrack
,
upperSegment
,
lowerSegment
);
result
=
BuildTracks
(
aTrack
,
upperSegment
,
m_upperSegment
);
result
=
BuildTracks
(
aTrack
,
lowerSegment
,
m_lowerSegment
);
}
return
result
;
...
...
@@ -151,37 +153,22 @@ VIA *TEARDROP::GetViaOnEnd(TRACK &aTrack, ENDPOINT_T endPoint)
return
NULL
;
}
bool
TEARDROP
::
BuildTracks
(
TRACK
&
aTrack
,
std
::
vector
<
VECTOR2I
>
upperSegments
,
std
::
vector
<
VECTOR2I
>
lowerSegment
s
)
bool
TEARDROP
::
BuildTracks
(
TRACK
&
aTrack
,
std
::
vector
<
VECTOR2I
>
points
,
std
::
vector
<
TRACK
*>
track
s
)
{
BOARD
*
board
=
aTrack
.
GetBoard
();
wxPoint
currentPoint
(
0
,
0
);
wxPoint
prevPoint
(
upperSegments
[
0
].
x
,
upperSegme
nts
[
0
].
y
);
for
(
size_t
i
=
0
;
i
<
upperSegme
nts
.
size
();
i
++
)
{
TRACK
*
track
=
new
TRACK
(
board
);
wxPoint
prevPoint
(
points
[
0
].
x
,
poi
nts
[
0
].
y
);
for
(
size_t
i
=
1
;
i
<
poi
nts
.
size
();
i
++
)
{
TRACK
*
track
=
new
TRACK
(
aTrack
);
track
->
SetWidth
(
aTrack
.
GetWidth
());
track
->
SetLayer
(
aTrack
.
GetLayer
());
track
->
SetNetCode
(
aTrack
.
GetNetCode
());
currentPoint
.
x
=
upperSegme
nts
[
i
].
x
;
currentPoint
.
y
=
upperSegme
nts
[
i
].
y
;
currentPoint
.
x
=
poi
nts
[
i
].
x
;
currentPoint
.
y
=
poi
nts
[
i
].
y
;
track
->
SetStart
(
prevPoint
);
track
->
SetEnd
(
currentPoint
);
board
->
Add
(
track
);
m_upperSegment
.
push_back
(
track
);
prevPoint
=
currentPoint
;
}
currentPoint
=
wxPoint
(
0
,
0
);
prevPoint
=
wxPoint
(
lowerSegments
[
0
].
x
,
lowerSegments
[
0
].
y
);
for
(
size_t
i
=
0
;
i
<
lowerSegments
.
size
();
i
++
)
{
TRACK
*
track
=
new
TRACK
(
board
);
track
->
SetWidth
(
aTrack
.
GetWidth
());
track
->
SetLayer
(
aTrack
.
GetLayer
());
track
->
SetNetCode
(
aTrack
.
GetNetCode
());
currentPoint
.
x
=
lowerSegments
[
i
].
x
;
currentPoint
.
y
=
lowerSegments
[
i
].
y
;
track
->
SetStart
(
prevPoint
);
track
->
SetEnd
(
currentPoint
);
board
->
Add
(
track
);
m_lowerSegment
.
push_back
(
track
);
tracks
.
push_back
(
track
);
prevPoint
=
currentPoint
;
}
...
...
pcbnew/class_teardrop.h
View file @
86923ed6
...
...
@@ -98,7 +98,7 @@ private:
bool
SetVector
(
TRACK
&
aTrack
,
const
VIA
&
aVia
,
VECTOR2I
&
startPoint
,
VECTOR2I
&
endPoint
);
VIA
*
GetViaOnEnd
(
TRACK
&
aTrack
,
ENDPOINT_T
endPoint
);
bool
BuildTracks
(
TRACK
&
aTrack
,
std
::
vector
<
VECTOR2I
>
upperSegments
,
std
::
vector
<
VECTOR2I
>
lowerSegment
s
);
bool
BuildTracks
(
TRACK
&
aTrack
,
const
std
::
vector
<
VECTOR2I
>
points
,
std
::
vector
<
TRACK
*>
track
s
);
};
#endif // CLASS_TEARDROP_H
pcbnew/dialogs/dialog_teardrops.cpp
0 → 100644
View file @
86923ed6
#include "dialog_teardrops.h"
DIALOG_TEARDROPS
::
DIALOG_TEARDROPS
(
PCB_EDIT_FRAME
*
aParent
,
TEARDROPS_SETTINGS
*
settings
)
:
DIALOG_TEARDROPS_BASE
(
aParent
)
{
m_parent
=
aParent
;
m_settings
=
settings
;
if
(
m_settings
!=
NULL
)
{
InitDialogSettings
();
}
}
void
DIALOG_TEARDROPS
::
InitDialogSettings
()
{
wxASSERT
(
m_settings
!=
NULL
);
if
(
m_modeRemove
->
GetValue
()
==
true
)
{
m_settings
->
m_mode
=
TEARDROPS_MODE_REMOVE
;
}
else
{
m_settings
->
m_mode
=
TEARDROPS_MODE_ADD
;
}
if
(
m_tracksAll
->
GetValue
()
==
true
)
{
m_settings
->
m_track
=
TEARDROPS_TRACKS_ALL
;
}
else
{
m_settings
->
m_track
=
TEARDROPS_TRACKS_SELECTED
;
}
m_settings
->
m_type
=
static_cast
<
TEARDROPS_TYPE
>
(
m_choiceStyle
->
GetSelection
());
m_settings
->
m_scope
=
TEARDROPS_SCOPE_NONE
;
if
(
m_scopeVias
->
IsChecked
()
==
true
)
{
m_settings
->
m_scope
=
static_cast
<
TEARDROPS_SCOPE
>
(
m_settings
->
m_scope
|
TEARDROPS_SCOPE_VIAS
);
}
if
(
m_scopePads
->
IsChecked
()
==
true
)
{
m_settings
->
m_scope
=
static_cast
<
TEARDROPS_SCOPE
>
(
m_settings
->
m_scope
|
TEARDROPS_SCOPE_PADS
);
}
if
(
m_scopeTracks
->
IsChecked
()
==
true
)
{
m_settings
->
m_scope
=
static_cast
<
TEARDROPS_SCOPE
>
(
m_settings
->
m_scope
|
TEARDROPS_SCOPE_TRACKS
);
}
}
void
DIALOG_TEARDROPS
::
OnModeAdd
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
m_settings
->
m_mode
=
TEARDROPS_MODE_ADD
;
}
}
void
DIALOG_TEARDROPS
::
OnModeRemove
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
m_settings
->
m_mode
=
TEARDROPS_MODE_REMOVE
;
}
}
void
DIALOG_TEARDROPS
::
OnTracksAll
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
m_settings
->
m_track
=
TEARDROPS_TRACKS_ALL
;
}
}
void
DIALOG_TEARDROPS
::
OnTracksSelected
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
m_settings
->
m_track
=
TEARDROPS_TRACKS_SELECTED
;
}
}
void
DIALOG_TEARDROPS
::
OnScopeVias
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
if
(
m_scopeVias
->
IsChecked
())
{
m_settings
->
m_scope
=
static_cast
<
TEARDROPS_SCOPE
>
(
m_settings
->
m_scope
|
TEARDROPS_SCOPE_VIAS
);
}
else
{
m_settings
->
m_scope
=
static_cast
<
TEARDROPS_SCOPE
>
(
m_settings
->
m_scope
&
(
~
TEARDROPS_SCOPE_VIAS
));
}
}
}
void
DIALOG_TEARDROPS
::
OnStyleChanged
(
wxCommandEvent
&
event
)
{
if
(
m_settings
!=
NULL
)
{
m_settings
->
m_type
=
static_cast
<
TEARDROPS_TYPE
>
(
m_choiceStyle
->
GetSelection
());
// if (selection == TEARDROPS_TYPE_STRAIGHT) {
// m_settings->m_type= TEARDROPS_TYPE_STRAIGHT;
// }
// else if (selection == TEARDROPS_TYPE_CURVED) {
// m_settings->m_type = TEARDROPS_TYPE_CURVED;
// }
// else {
// m_settings->m_type = TEARDROPS_TYPE_NONE;
// }
}
}
pcbnew/dialogs/dialog_teardrops.h
0 → 100644
View file @
86923ed6
#ifndef DIALOG_TEARDROPS_H
#define DIALOG_TEARDROPS_H
#include "dialog_shim.h"
#include "dialog_teardrops_base.h"
#include "wxPcbStruct.h"
class
DIALOG_TEARDROPS
:
public
DIALOG_TEARDROPS_BASE
{
public
:
typedef
enum
{
TEARDROPS_MODE_ADD
,
TEARDROPS_MODE_REMOVE
}
TEARDROPS_MODE
;
typedef
enum
{
TEARDROPS_TRACKS_ALL
,
TEARDROPS_TRACKS_SELECTED
}
TEARDROPS_TRACKS
;
typedef
enum
{
TEARDROPS_TYPE_NONE
=
-
1
,
TEARDROPS_TYPE_STRAIGHT
,
TEARDROPS_TYPE_CURVED
}
TEARDROPS_TYPE
;
typedef
enum
{
TEARDROPS_SCOPE_NONE
,
TEARDROPS_SCOPE_VIAS
=
1
,
TEARDROPS_SCOPE_PADS
=
2
,
TEARDROPS_SCOPE_TRACKS
=
4
}
TEARDROPS_SCOPE
;
typedef
struct
{
TEARDROPS_MODE
m_mode
;
TEARDROPS_TRACKS
m_track
;
TEARDROPS_SCOPE
m_scope
;
TEARDROPS_TYPE
m_type
;
}
TEARDROPS_SETTINGS
;
DIALOG_TEARDROPS
(
PCB_EDIT_FRAME
*
aParent
,
TEARDROPS_SETTINGS
*
settings
);
void
OnModeAdd
(
wxCommandEvent
&
event
);
void
OnModeRemove
(
wxCommandEvent
&
event
);
void
OnTracksAll
(
wxCommandEvent
&
event
);
void
OnTracksSelected
(
wxCommandEvent
&
event
);
void
OnStyleChanged
(
wxCommandEvent
&
event
);
void
OnScopeVias
(
wxCommandEvent
&
event
);
private
:
PCB_EDIT_FRAME
*
m_parent
;
TEARDROPS_SETTINGS
*
m_settings
;
void
InitDialogSettings
();
};
#endif // DIALOG_TEARDROPS_H
pcbnew/dialogs/dialog_teardrops_base.cpp
0 → 100644
View file @
86923ed6
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jan 29 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#include "dialog_teardrops_base.h"
///////////////////////////////////////////////////////////////////////////
DIALOG_TEARDROPS_BASE
::
DIALOG_TEARDROPS_BASE
(
wxWindow
*
parent
,
wxWindowID
id
,
const
wxString
&
title
,
const
wxPoint
&
pos
,
const
wxSize
&
size
,
long
style
)
:
DIALOG_SHIM
(
parent
,
id
,
title
,
pos
,
size
,
style
)
{
this
->
SetSizeHints
(
wxSize
(
-
1
,
-
1
),
wxDefaultSize
);
wxBoxSizer
*
bSizer7
;
bSizer7
=
new
wxBoxSizer
(
wxVERTICAL
);
wxBoxSizer
*
bSizer13
;
bSizer13
=
new
wxBoxSizer
(
wxHORIZONTAL
);
wxBoxSizer
*
m_settingsSizer
;
m_settingsSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
wxStaticBoxSizer
*
m_modeSizer
;
m_modeSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
wxT
(
"Mode"
)
),
wxVERTICAL
);
m_modeAdd
=
new
wxRadioButton
(
this
,
wxID_ANY
,
wxT
(
"Add teardrops"
),
wxDefaultPosition
,
wxDefaultSize
,
wxRB_GROUP
);
m_modeSizer
->
Add
(
m_modeAdd
,
0
,
0
,
5
);
m_modeRemove
=
new
wxRadioButton
(
this
,
wxID_ANY
,
wxT
(
"Remove teardrops"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_modeSizer
->
Add
(
m_modeRemove
,
0
,
0
,
5
);
m_settingsSizer
->
Add
(
m_modeSizer
,
1
,
wxEXPAND
,
5
);
wxStaticBoxSizer
*
m_tracksSizer
;
m_tracksSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
wxT
(
"Tracks"
)
),
wxVERTICAL
);
m_tracksAll
=
new
wxRadioButton
(
this
,
wxID_ANY
,
wxT
(
"All tracks"
),
wxDefaultPosition
,
wxDefaultSize
,
wxRB_GROUP
);
m_tracksSizer
->
Add
(
m_tracksAll
,
0
,
0
,
5
);
m_tracksSelected
=
new
wxRadioButton
(
this
,
wxID_ANY
,
wxT
(
"Selected tracks only"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_tracksSizer
->
Add
(
m_tracksSelected
,
0
,
0
,
5
);
m_settingsSizer
->
Add
(
m_tracksSizer
,
1
,
wxEXPAND
,
5
);
wxStaticBoxSizer
*
m_optionsSizer
;
m_optionsSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
wxT
(
"Options"
)
),
wxVERTICAL
);
m_checkIgnore
=
new
wxCheckBox
(
this
,
wxID_ANY
,
wxT
(
"Ignore DRC"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_checkIgnore
->
SetValue
(
true
);
m_checkIgnore
->
Hide
();
m_optionsSizer
->
Add
(
m_checkIgnore
,
0
,
0
,
5
);
wxBoxSizer
*
m_styleSizer
;
m_styleSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
m_staticStyle
=
new
wxStaticText
(
this
,
wxID_ANY
,
wxT
(
"Teardrop style"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticStyle
->
Wrap
(
-
1
);
m_styleSizer
->
Add
(
m_staticStyle
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALIGN_LEFT
|
wxALL
,
5
);
wxString
m_choiceStyleChoices
[]
=
{
wxT
(
"Straight"
),
wxT
(
"Curved"
)
};
int
m_choiceStyleNChoices
=
sizeof
(
m_choiceStyleChoices
)
/
sizeof
(
wxString
);
m_choiceStyle
=
new
wxChoice
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
m_choiceStyleNChoices
,
m_choiceStyleChoices
,
0
);
m_choiceStyle
->
SetSelection
(
0
);
m_styleSizer
->
Add
(
m_choiceStyle
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
|
wxTOP
,
5
);
m_optionsSizer
->
Add
(
m_styleSizer
,
1
,
wxEXPAND
,
5
);
m_settingsSizer
->
Add
(
m_optionsSizer
,
1
,
wxEXPAND
,
5
);
bSizer13
->
Add
(
m_settingsSizer
,
1
,
wxEXPAND
,
5
);
wxBoxSizer
*
m_scopeSizer
;
m_scopeSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
wxStaticBoxSizer
*
sbSizer16
;
sbSizer16
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
wxT
(
"Scope"
)
),
wxVERTICAL
);
m_scopeVias
=
new
wxCheckBox
(
this
,
wxID_ANY
,
wxT
(
"Vias"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_scopeVias
->
SetValue
(
true
);
sbSizer16
->
Add
(
m_scopeVias
,
0
,
wxALL
,
5
);
m_scopePads
=
new
wxCheckBox
(
this
,
wxID_ANY
,
wxT
(
"Pads"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_scopePads
->
Enable
(
false
);
m_scopePads
->
Hide
();
sbSizer16
->
Add
(
m_scopePads
,
0
,
wxALL
,
5
);
m_scopeTracks
=
new
wxCheckBox
(
this
,
wxID_ANY
,
wxT
(
"Tracks"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_scopeTracks
->
Enable
(
false
);
m_scopeTracks
->
Hide
();
sbSizer16
->
Add
(
m_scopeTracks
,
0
,
wxALL
,
5
);
m_scopeSizer
->
Add
(
sbSizer16
,
1
,
wxEXPAND
,
5
);
bSizer13
->
Add
(
m_scopeSizer
,
1
,
wxEXPAND
,
5
);
bSizer7
->
Add
(
bSizer13
,
1
,
wxEXPAND
,
5
);
m_staticline1
=
new
wxStaticLine
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
wxLI_HORIZONTAL
);
bSizer7
->
Add
(
m_staticline1
,
0
,
wxEXPAND
|
wxALL
,
5
);
m_sdbSizer
=
new
wxStdDialogButtonSizer
();
m_sdbSizerOK
=
new
wxButton
(
this
,
wxID_OK
);
m_sdbSizer
->
AddButton
(
m_sdbSizerOK
);
m_sdbSizerCancel
=
new
wxButton
(
this
,
wxID_CANCEL
);
m_sdbSizer
->
AddButton
(
m_sdbSizerCancel
);
m_sdbSizer
->
Realize
();
bSizer7
->
Add
(
m_sdbSizer
,
0
,
wxEXPAND
,
5
);
this
->
SetSizer
(
bSizer7
);
this
->
Layout
();
this
->
Centre
(
wxBOTH
);
// Connect Events
m_modeAdd
->
Connect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnModeAdd
),
NULL
,
this
);
m_modeRemove
->
Connect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnModeRemove
),
NULL
,
this
);
m_tracksAll
->
Connect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnTracksAll
),
NULL
,
this
);
m_tracksSelected
->
Connect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnTracksSelected
),
NULL
,
this
);
m_choiceStyle
->
Connect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnStyleChanged
),
NULL
,
this
);
m_scopeVias
->
Connect
(
wxEVT_COMMAND_CHECKBOX_CLICKED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnScopeVias
),
NULL
,
this
);
}
DIALOG_TEARDROPS_BASE
::~
DIALOG_TEARDROPS_BASE
()
{
// Disconnect Events
m_modeAdd
->
Disconnect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnModeAdd
),
NULL
,
this
);
m_modeRemove
->
Disconnect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnModeRemove
),
NULL
,
this
);
m_tracksAll
->
Disconnect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnTracksAll
),
NULL
,
this
);
m_tracksSelected
->
Disconnect
(
wxEVT_COMMAND_RADIOBUTTON_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnTracksSelected
),
NULL
,
this
);
m_choiceStyle
->
Disconnect
(
wxEVT_COMMAND_CHOICE_SELECTED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnStyleChanged
),
NULL
,
this
);
m_scopeVias
->
Disconnect
(
wxEVT_COMMAND_CHECKBOX_CLICKED
,
wxCommandEventHandler
(
DIALOG_TEARDROPS_BASE
::
OnScopeVias
),
NULL
,
this
);
}
pcbnew/dialogs/dialog_teardrops_base.fbp
0 → 100644
View file @
86923ed6
This diff is collapsed.
Click to expand it.
pcbnew/dialogs/dialog_teardrops_base.h
0 → 100644
View file @
86923ed6
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Jan 29 2014)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_teardrops_base__
#define __dialog_teardrops_base__
class
DIALOG_SHIM
;
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/radiobut.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/checkbox.h>
#include <wx/stattext.h>
#include <wx/choice.h>
#include <wx/statline.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_TEARDROPS_BASE
///////////////////////////////////////////////////////////////////////////////
class
DIALOG_TEARDROPS_BASE
:
public
DIALOG_SHIM
{
private
:
protected
:
wxRadioButton
*
m_modeAdd
;
wxRadioButton
*
m_modeRemove
;
wxRadioButton
*
m_tracksAll
;
wxRadioButton
*
m_tracksSelected
;
wxCheckBox
*
m_checkIgnore
;
wxStaticText
*
m_staticStyle
;
wxChoice
*
m_choiceStyle
;
wxCheckBox
*
m_scopeVias
;
wxCheckBox
*
m_scopePads
;
wxCheckBox
*
m_scopeTracks
;
wxStaticLine
*
m_staticline1
;
wxStdDialogButtonSizer
*
m_sdbSizer
;
wxButton
*
m_sdbSizerOK
;
wxButton
*
m_sdbSizerCancel
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnModeAdd
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnModeRemove
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnTracksAll
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnTracksSelected
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnStyleChanged
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnScopeVias
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
public
:
DIALOG_TEARDROPS_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
wxT
(
"Teardrops"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
615
,
329
),
long
style
=
wxDEFAULT_DIALOG_STYLE
);
~
DIALOG_TEARDROPS_BASE
();
};
#endif //__dialog_teardrops_base__
pcbnew/pcbframe.cpp
View file @
86923ed6
...
...
@@ -62,7 +62,7 @@
#include <class_track.h>
#include <class_board.h>
#include <class_module.h>
#include <class_teardrop.h>
//
#include <class_teardrop.h>
#include <worksheet_viewitem.h>
#include <ratsnest_data.h>
#include <ratsnest_viewitem.h>
...
...
@@ -73,6 +73,8 @@
#include <scripting/python_console_frame.h>
#include "dialog_teardrops.h"
#if defined(KICAD_SCRIPTING) || defined(KICAD_SCRIPTING_WXPYTHON)
#include <python_scripting.h>
#endif
...
...
@@ -207,7 +209,7 @@ BEGIN_EVENT_TABLE( PCB_EDIT_FRAME, PCB_BASE_FRAME )
EVT_TOOL
(
ID_TOOLBARH_PCB_MODE_MODULE
,
PCB_EDIT_FRAME
::
OnSelectAutoPlaceMode
)
EVT_TOOL
(
ID_TOOLBARH_PCB_MODE_TRACKS
,
PCB_EDIT_FRAME
::
OnSelectAutoPlaceMode
)
EVT_TOOL
(
ID_TOOLBARH_PCB_FREEROUTE_ACCESS
,
PCB_EDIT_FRAME
::
Access_to_External_Tool
)
EVT_TOOL
(
ID_TEARDROPS_WINDOW
,
PCB_EDIT_FRAME
::
ShowTeardrops
Wnd
)
EVT_TOOL
(
ID_TEARDROPS_WINDOW
,
PCB_EDIT_FRAME
::
ShowTeardrops
Editor
)
// has meaning only with KICAD_SCRIPTING_WXPYTHON enabled
...
...
@@ -722,16 +724,24 @@ void PCB_EDIT_FRAME::ShowDesignRulesEditor( wxCommandEvent& event )
OnModify
();
}
}
void
PCB_EDIT_FRAME
::
ShowTeardrops
Wnd
(
wxCommandEvent
&
event
)
void
PCB_EDIT_FRAME
::
ShowTeardrops
Editor
(
wxCommandEvent
&
event
)
{
BOARD_ITEM
*
item
=
GetScreen
()
->
GetCurItem
()
;
if
((
item
!=
NULL
)
&&
(
item
->
Type
()
==
PCB_TRACE_T
))
{
TEARDROP
*
td
=
new
TEARDROP
(
item
);
TRACK
*
track
=
static_cast
<
TRACK
*>
(
item
);
td
->
Create
(
*
track
,
ENDPOINT_START
,
TEARDROP
::
TEARDROP_CURVED
);
td
->
Create
(
*
track
,
ENDPOINT_END
,
TEARDROP
::
TEARDROP_CURVED
);
DIALOG_TEARDROPS
::
TEARDROPS_SETTINGS
settings
;
DIALOG_TEARDROPS
*
dlg_teardrops
=
new
DIALOG_TEARDROPS
(
this
,
&
settings
);
int
retVal
=
dlg_teardrops
->
ShowModal
(
);
if
(
retVal
==
wxID_OK
)
{
}
m_canvas
->
Refresh
();
// BOARD_ITEM *item = GetScreen()->GetCurItem();
// if ((item != NULL) && (item->Type() == PCB_TRACE_T)) {
// TEARDROP *td = new TEARDROP(item);
// TRACK *track = static_cast<TRACK *>(item);
// td->Create(*track, ENDPOINT_START, TEARDROP::TEARDROP_CURVED);
// td->Create(*track, ENDPOINT_END, TEARDROP::TEARDROP_CURVED);
// }
// m_canvas->Refresh();
}
void
PCB_EDIT_FRAME
::
LoadSettings
(
wxConfigBase
*
aCfg
)
...
...
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