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
b080f860
Commit
b080f860
authored
Nov 16, 2012
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Pcbnew: enhanced dialog for SVG export
parent
e435a104
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
474 additions
and
269 deletions
+474
-269
dialog_SVG_print.cpp
pcbnew/dialogs/dialog_SVG_print.cpp
+114
-60
dialog_SVG_print.h
pcbnew/dialogs/dialog_SVG_print.h
+9
-5
dialog_SVG_print_base.cpp
pcbnew/dialogs/dialog_SVG_print_base.cpp
+24
-13
dialog_SVG_print_base.fbp
pcbnew/dialogs/dialog_SVG_print_base.fbp
+274
-175
dialog_SVG_print_base.h
pcbnew/dialogs/dialog_SVG_print_base.h
+9
-7
dialog_plot.cpp
pcbnew/dialogs/dialog_plot.cpp
+1
-1
pcbplot.cpp
pcbnew/pcbplot.cpp
+13
-8
pcbplot.h
pcbnew/pcbplot.h
+30
-0
No files found.
pcbnew/dialogs/dialog_SVG_print.cpp
View file @
b080f860
This diff is collapsed.
Click to expand it.
pcbnew/dialogs/dialog_SVG_print.h
View file @
b080f860
...
...
@@ -14,11 +14,14 @@ class wxConfig;
class
DIALOG_SVG_PRINT
:
public
DIALOG_SVG_PRINT_base
{
private
:
PCB_BASE_FRAME
*
m_Parent
;
wxConfig
*
m_Config
;
long
m_PrintMaskLayer
;
wxCheckBox
*
m_BoxSelectLayer
[
32
];
bool
m_printBW
;
PCB_BASE_FRAME
*
m_parent
;
BOARD
*
m_board
;
wxConfig
*
m_config
;
long
m_printMaskLayer
;
wxCheckBox
*
m_boxSelectLayer
[
32
];
bool
m_printBW
;
wxString
m_outputDirectory
;
// Static member to store options
static
bool
m_printMirror
;
static
bool
m_oneFileOnly
;
...
...
@@ -32,6 +35,7 @@ private:
void
initDialog
(
);
void
OnButtonPlot
(
wxCommandEvent
&
event
);
void
OnButtonCancelClick
(
wxCommandEvent
&
event
);
void
OnOutputDirectoryBrowseClicked
(
wxCommandEvent
&
event
);
void
SetPenWidth
();
void
ExportSVGFile
(
bool
aOnlyOneFile
);
bool
PageIsBoardBoundarySize
()
...
...
pcbnew/dialogs/dialog_SVG_print_base.cpp
View file @
b080f860
...
...
@@ -16,6 +16,25 @@ DIALOG_SVG_PRINT_base::DIALOG_SVG_PRINT_base( wxWindow* parent, wxWindowID id, c
wxBoxSizer
*
bMainSizer
;
bMainSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
m_staticTextDir
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Output directory:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticTextDir
->
Wrap
(
-
1
);
bMainSizer
->
Add
(
m_staticTextDir
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
wxBoxSizer
*
bSizer4
;
bSizer4
=
new
wxBoxSizer
(
wxHORIZONTAL
);
m_outputDirectoryName
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_outputDirectoryName
->
SetToolTip
(
_
(
"Enter a filename if you do not want to use default file names
\n
Can be used only when printing the current sheet"
)
);
m_outputDirectoryName
->
SetMinSize
(
wxSize
(
450
,
-
1
)
);
bSizer4
->
Add
(
m_outputDirectoryName
,
1
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
m_browseButton
=
new
wxButton
(
this
,
wxID_ANY
,
_
(
"Browse..."
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bSizer4
->
Add
(
m_browseButton
,
0
,
wxRIGHT
|
wxLEFT
|
wxALIGN_CENTER_VERTICAL
,
5
);
bMainSizer
->
Add
(
bSizer4
,
0
,
wxEXPAND
|
wxBOTTOM
,
5
);
wxBoxSizer
*
bUpperSizer
;
bUpperSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
...
...
@@ -94,24 +113,14 @@ DIALOG_SVG_PRINT_base::DIALOG_SVG_PRINT_base( wxWindow* parent, wxWindowID id, c
bMainSizer
->
Add
(
bUpperSizer
,
0
,
wxEXPAND
,
5
);
m_staticText1
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Filename:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText1
->
Wrap
(
-
1
);
bMainSizer
->
Add
(
m_staticText1
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_FileNameCtrl
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_FileNameCtrl
->
SetToolTip
(
_
(
"Enter a filename if you do not want to use default file names
\n
Can be used only when printing the current sheet"
)
);
m_FileNameCtrl
->
SetMinSize
(
wxSize
(
450
,
-
1
)
);
bMainSizer
->
Add
(
m_FileNameCtrl
,
0
,
wxEXPAND
|
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_staticText2
=
new
wxStaticText
(
this
,
wxID_ANY
,
_
(
"Messages:"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
m_staticText2
->
Wrap
(
-
1
);
bMainSizer
->
Add
(
m_staticText2
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_
M
essagesBox
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
wxTE_MULTILINE
);
m_
M
essagesBox
->
SetMinSize
(
wxSize
(
-
1
,
100
)
);
m_
m
essagesBox
=
new
wxTextCtrl
(
this
,
wxID_ANY
,
wxEmptyString
,
wxDefaultPosition
,
wxDefaultSize
,
wxTE_MULTILINE
);
m_
m
essagesBox
->
SetMinSize
(
wxSize
(
-
1
,
100
)
);
bMainSizer
->
Add
(
m_
M
essagesBox
,
1
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
|
wxEXPAND
,
5
);
bMainSizer
->
Add
(
m_
m
essagesBox
,
1
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
|
wxEXPAND
,
5
);
this
->
SetSizer
(
bMainSizer
);
...
...
@@ -119,6 +128,7 @@ DIALOG_SVG_PRINT_base::DIALOG_SVG_PRINT_base( wxWindow* parent, wxWindowID id, c
// Connect Events
this
->
Connect
(
wxEVT_CLOSE_WINDOW
,
wxCloseEventHandler
(
DIALOG_SVG_PRINT_base
::
OnCloseWindow
)
);
m_browseButton
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnOutputDirectoryBrowseClicked
),
NULL
,
this
);
m_buttonCreateFile
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnButtonPlot
),
NULL
,
this
);
m_buttonQuit
->
Connect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnButtonCancelClick
),
NULL
,
this
);
}
...
...
@@ -127,6 +137,7 @@ DIALOG_SVG_PRINT_base::~DIALOG_SVG_PRINT_base()
{
// Disconnect Events
this
->
Disconnect
(
wxEVT_CLOSE_WINDOW
,
wxCloseEventHandler
(
DIALOG_SVG_PRINT_base
::
OnCloseWindow
)
);
m_browseButton
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnOutputDirectoryBrowseClicked
),
NULL
,
this
);
m_buttonCreateFile
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnButtonPlot
),
NULL
,
this
);
m_buttonQuit
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_SVG_PRINT_base
::
OnButtonCancelClick
),
NULL
,
this
);
...
...
pcbnew/dialogs/dialog_SVG_print_base.fbp
View file @
b080f860
This diff is collapsed.
Click to expand it.
pcbnew/dialogs/dialog_SVG_print_base.h
View file @
b080f860
...
...
@@ -13,17 +13,17 @@
#include <wx/intl.h>
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/gdicmn.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/radiobox.h>
#include <wx/checkbox.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
...
...
@@ -41,6 +41,9 @@ class DIALOG_SVG_PRINT_base : public DIALOG_SHIM
wxID_PRINT_BOARD
=
1000
};
wxStaticText
*
m_staticTextDir
;
wxTextCtrl
*
m_outputDirectoryName
;
wxButton
*
m_browseButton
;
wxStaticBoxSizer
*
m_CopperLayersBoxSizer
;
wxStaticBoxSizer
*
m_TechnicalBoxSizer
;
wxStaticText
*
m_TextPenWidth
;
...
...
@@ -52,13 +55,12 @@ class DIALOG_SVG_PRINT_base : public DIALOG_SHIM
wxRadioBox
*
m_rbFileOpt
;
wxButton
*
m_buttonCreateFile
;
wxButton
*
m_buttonQuit
;
wxStaticText
*
m_staticText1
;
wxTextCtrl
*
m_FileNameCtrl
;
wxStaticText
*
m_staticText2
;
wxTextCtrl
*
m_
M
essagesBox
;
wxTextCtrl
*
m_
m
essagesBox
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnCloseWindow
(
wxCloseEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnOutputDirectoryBrowseClicked
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnButtonPlot
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnButtonCancelClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
...
...
pcbnew/dialogs/dialog_plot.cpp
View file @
b080f860
...
...
@@ -271,7 +271,7 @@ void DIALOG_PLOT::OnOutputDirectoryBrowseClicked( wxCommandEvent& event )
if
(
!
dirName
.
MakeRelativeTo
(
boardFilePath
)
)
wxMessageBox
(
_
(
"Cannot make path relative (target volume different from board file volume)!"
),
"Cannot make path relative (target volume different from board file volume)!"
),
_
(
"Plot Output Directory"
),
wxOK
|
wxICON_ERROR
);
}
...
...
pcbnew/pcbplot.cpp
View file @
b080f860
...
...
@@ -111,8 +111,9 @@ static wxString GetGerberExtension( int layer )/*{{{*/
/* Complete a plot filename: forces the output directory,
* add a suffix to the name and sets the specified extension
* the suffix is usually the layer name
* replaces not allowed chars in suffix by '_'
*/
static
void
BuildPlotFileName
(
wxFileName
*
aFilename
,
void
BuildPlotFileName
(
wxFileName
*
aFilename
,
const
wxString
&
aOutputDir
,
const
wxString
&
aSuffix
,
const
wxString
&
aExtension
)
...
...
@@ -139,10 +140,13 @@ static void BuildPlotFileName( wxFileName *aFilename,
aFilename
->
SetName
(
aFilename
->
GetName
()
+
wxT
(
"-"
)
+
suffix
);
}
/** Fix the output directory pathname to absolute and ensure it exists */
static
bool
EnsureOutputDirectory
(
wxFileName
*
aOutputDir
,
/*{{{*/
const
wxString
&
aBoardFilename
,
wxTextCtrl
*
aMessageBox
)
/*
* Fix the output directory pathname to absolute and ensure it exists
* (Creates it if not exists)
*/
bool
EnsureOutputDirectory
(
wxFileName
*
aOutputDir
,
const
wxString
&
aBoardFilename
,
wxTextCtrl
*
aMessageBox
)
{
wxString
boardFilePath
=
wxFileName
(
aBoardFilename
).
GetPath
();
...
...
@@ -171,13 +175,14 @@ static bool EnsureOutputDirectory( wxFileName *aOutputDir, /*{{{*/
}
else
{
wxMessageBox
(
_
(
"Cannot create output directory!"
),
_
(
"Plot"
),
wxOK
|
wxICON_ERROR
);
if
(
aMessageBox
)
wxMessageBox
(
_
(
"Cannot create output directory!"
),
_
(
"Plot"
),
wxOK
|
wxICON_ERROR
);
return
false
;
}
}
return
true
;
}
/*}}}*/
}
/*
* DIALOG_PLOT:Plot
...
...
pcbnew/pcbplot.h
View file @
b080f860
...
...
@@ -187,6 +187,36 @@ void PlotSilkScreen( BOARD *aBoard, PLOTTER* aPlotter, long aLayerMask,
const
PCB_PLOT_PARAMS
&
aPlotOpt
);
/**
* Function EnsureOutputDirectory (helper function)
* Fix the output directory pathname to absolute and ensure it exists
* (Creates it if not exists)
* @param aOutputDir = the wxFileName to modify
* (contains the absolute or relative to the board path
* @param aBoardFilename = the board full filename
* @param aMessageBox = a wxMessageBox to show meesage (can be NULL)
*/
bool
EnsureOutputDirectory
(
wxFileName
*
aOutputDir
,
const
wxString
&
aBoardFilename
,
wxTextCtrl
*
aMessageBox
);
/**
* Function BuildPlotFileName (helper function)
* Complete a plot filename: forces the output directory,
* add a suffix to the name and sets the specified extension
* the suffix is usually the layer name
* replaces not allowed chars in suffix by '_'
* @param aFilename = the wxFileName to initialize
* Contians the base filename
* @param aOutputDir = the path
* @param aSuffix = the suffix to add to the base filename
* @param aExtension = the file extension
*/
void
BuildPlotFileName
(
wxFileName
*
aFilename
,
const
wxString
&
aOutputDir
,
const
wxString
&
aSuffix
,
const
wxString
&
aExtension
);
// PLOTGERB.CPP
void
SelectD_CODE_For_LineDraw
(
PLOTTER
*
plotter
,
int
aSize
);
...
...
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