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
c0f2af8a
Commit
c0f2af8a
authored
Feb 19, 2011
by
Marco Mattila
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Tune pcbnew zone properties dialog layout.
parent
640a0685
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
3666 additions
and
2029 deletions
+3666
-2029
dialog_copper_zones.cpp
pcbnew/dialogs/dialog_copper_zones.cpp
+66
-24
dialog_copper_zones.h
pcbnew/dialogs/dialog_copper_zones.h
+6
-1
dialog_copper_zones_base.cpp
pcbnew/dialogs/dialog_copper_zones_base.cpp
+254
-240
dialog_copper_zones_base.fbp
pcbnew/dialogs/dialog_copper_zones_base.fbp
+3222
-1657
dialog_copper_zones_base.h
pcbnew/dialogs/dialog_copper_zones_base.h
+118
-107
No files found.
pcbnew/dialogs/dialog_copper_zones.cpp
View file @
c0f2af8a
...
...
@@ -6,6 +6,8 @@
/// Licence: GNU License
/////////////////////////////////////////////////////////////////////////////
#include <wx/wx.h>
#include <wx/imaglist.h>
#include "fctsys.h"
#include "appl_wxstruct.h"
#include "common.h"
...
...
@@ -18,6 +20,9 @@
#include "dialog_copper_zones.h"
#define LAYER_BITMAP_SIZE_X 20
#define LAYER_BITMAP_SIZE_Y 10
/* the filter to show nets (default * "*").
* static to keep this pattern for an entire pcbnew session
*/
...
...
@@ -38,6 +43,16 @@ dialog_copper_zone::dialog_copper_zone( WinEDA_PcbFrame* parent, ZONE_SETTING* z
SetReturnCode
(
ZONE_ABORT
);
// Will be changed on buttons click
m_LayerSelectionCtrl
=
new
wxListView
(
this
,
wxID_ANY
,
wxDefaultPosition
,
wxDefaultSize
,
wxLC_NO_HEADER
|
wxLC_REPORT
|
wxLC_SINGLE_SEL
|
wxRAISED_BORDER
);
wxListItem
col0
;
col0
.
SetId
(
0
);
m_LayerSelectionCtrl
->
InsertColumn
(
0
,
col0
);
m_layerSizer
->
Add
(
m_LayerSelectionCtrl
,
1
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
initDialog
();
GetSizer
()
->
SetSizeHints
(
this
);
...
...
@@ -89,7 +104,6 @@ void dialog_copper_zone::initDialog()
break
;
}
if
(
m_Zone_Setting
->
m_Zone_Pad_Options
!=
THERMAL_PAD
)
{
m_AntipadSizeValue
->
Enable
(
false
);
...
...
@@ -128,26 +142,34 @@ void dialog_copper_zone::initDialog()
m_ArcApproximationOpt
->
SetSelection
(
m_Zone_Setting
->
m_ArcToSegmentsCount
==
ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF
?
1
:
0
);
/* build copper layers list */
int
layer_cnt
=
board
->
GetCopperLayerCount
();
for
(
int
ii
=
0
;
ii
<
board
->
GetCopperLayerCount
();
ii
++
)
// Build copper layer list and append to layer widget
int
layerCount
=
board
->
GetCopperLayerCount
();
int
layerNumber
,
itemIndex
,
layerColor
;
wxImageList
*
imageList
=
new
wxImageList
(
LAYER_BITMAP_SIZE_X
,
LAYER_BITMAP_SIZE_Y
);
m_LayerSelectionCtrl
->
AssignImageList
(
imageList
,
wxIMAGE_LIST_SMALL
);
for
(
int
ii
=
0
;
ii
<
layerCount
;
ii
++
)
{
int
layer_n
umber
=
LAYER_N_BACK
;
layerN
umber
=
LAYER_N_BACK
;
if
(
layer
_cnt
<=
1
||
ii
<
layer_c
nt
-
1
)
layer
_n
umber
=
ii
;
else
if
(
ii
==
layer
_c
nt
-
1
)
layer
_n
umber
=
LAYER_N_FRONT
;
if
(
layer
Count
<=
1
||
ii
<
layerCou
nt
-
1
)
layer
N
umber
=
ii
;
else
if
(
ii
==
layer
Cou
nt
-
1
)
layer
N
umber
=
LAYER_N_FRONT
;
m_LayerId
[
ii
]
=
layer_number
;
m_LayerId
.
insert
(
m_LayerId
.
begin
(),
layerNumber
)
;
msg
=
board
->
GetLayerName
(
layer_number
).
Trim
();
m_LayerSelectionCtrl
->
InsertItems
(
1
,
&
msg
,
ii
);
msg
=
board
->
GetLayerName
(
layerNumber
).
Trim
();
layerColor
=
board
->
GetLayerColor
(
layerNumber
);
imageList
->
Add
(
makeLayerBitmap
(
layerColor
)
);
itemIndex
=
m_LayerSelectionCtrl
->
InsertItem
(
0
,
msg
,
ii
);
if
(
m_Zone_Setting
->
m_CurrentZone_Layer
==
layer
_n
umber
)
m_LayerSelectionCtrl
->
Se
tSelection
(
ii
);
if
(
m_Zone_Setting
->
m_CurrentZone_Layer
==
layer
N
umber
)
m_LayerSelectionCtrl
->
Se
lect
(
itemIndex
);
}
// Set layer list column width to widget width
m_LayerSelectionCtrl
->
SetColumnWidth
(
0
,
m_LayerSelectionCtrl
->
GetSize
().
x
);
wxString
netNameDoNotShowFilter
=
wxT
(
"N-*"
);
if
(
m_Config
)
{
...
...
@@ -170,6 +192,12 @@ void dialog_copper_zone::initDialog()
/********************************************************************/
void
dialog_copper_zone
::
OnButtonCancelClick
(
wxCommandEvent
&
event
)
/********************************************************************/
{
Close
(
true
);
}
void
dialog_copper_zone
::
OnClose
(
wxCloseEvent
&
event
)
{
EndModal
(
m_OnExitCode
);
}
...
...
@@ -240,7 +268,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
#define CLEARANCE_MAX_VALUE 5000 // in 1/10000 inch
if
(
m_Zone_Setting
->
m_ZoneClearance
>
CLEARANCE_MAX_VALUE
)
{
DisplayError
(
this
,
_
(
"
Error : Zone clearance is set to an unreasonnable value
"
)
);
DisplayError
(
this
,
_
(
"
Clearance must be smaller than 0.5
\"
/ 12.7 mm.
"
)
);
return
false
;
}
...
...
@@ -250,8 +278,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
if
(
m_Zone_Setting
->
m_ZoneMinThickness
<
10
)
{
DisplayError
(
this
,
_
(
"Error :
\n
you must choose a copper min thickness value bigger than 0.001 inch (or 0.0254 mm)"
)
);
_
(
"Minimum width must be larger than 0.001
\"
/ 0.0254 mm."
)
);
return
false
;
}
...
...
@@ -275,8 +302,7 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
if
(
m_Zone_Setting
->
m_ThermalReliefCopperBridgeValue
<=
m_Zone_Setting
->
m_ZoneMinThickness
)
{
DisplayError
(
this
,
_
(
"Error :
\n
you must choose a copper bridge value for thermal reliefs bigger than the min zone thickness"
)
);
_
(
"Thermal relief spoke width is larger than the minimum width."
)
);
return
false
;
}
...
...
@@ -285,22 +311,20 @@ bool dialog_copper_zone::AcceptOptions( bool aPromptForErrors, bool aUseExportab
return
true
;
/* Get the layer selection for this zone */
int
ii
=
m_LayerSelectionCtrl
->
Get
Selection
();
int
ii
=
m_LayerSelectionCtrl
->
Get
FirstSelected
();
if
(
ii
<
0
&&
aPromptForErrors
)
{
DisplayError
(
this
,
_
(
"
Error : you must choose a layer
"
)
);
DisplayError
(
this
,
_
(
"
No layer selected.
"
)
);
return
false
;
}
m_Zone_Setting
->
m_CurrentZone_Layer
=
m_LayerId
[
ii
];
/* Get the net name selection for this zone */
ii
=
m_ListNetNameSelection
->
GetSelection
();
if
(
ii
<
0
&&
aPromptForErrors
)
{
DisplayError
(
this
,
_
(
"
Error : you must choose a net name
"
)
);
DisplayError
(
this
,
_
(
"
No net selected.
"
)
);
return
false
;
}
...
...
@@ -489,3 +513,21 @@ void dialog_copper_zone::buildAvailableListOfNets()
}
}
}
wxBitmap
dialog_copper_zone
::
makeLayerBitmap
(
int
aColor
)
{
wxBitmap
bitmap
(
LAYER_BITMAP_SIZE_X
,
LAYER_BITMAP_SIZE_Y
);
wxBrush
brush
;
wxMemoryDC
iconDC
;
iconDC
.
SelectObject
(
bitmap
);
brush
.
SetColour
(
MakeColour
(
aColor
)
);
brush
.
SetStyle
(
wxSOLID
);
iconDC
.
SetBrush
(
brush
);
iconDC
.
DrawRectangle
(
0
,
0
,
LAYER_BITMAP_SIZE_X
,
LAYER_BITMAP_SIZE_Y
);
return
bitmap
;
}
pcbnew/dialogs/dialog_copper_zones.h
View file @
c0f2af8a
...
...
@@ -3,6 +3,7 @@
#ifndef DIALOG_COPPER_ZONES
#define DIALOG_COPPER_ZONES
#include <wx/wx.h>
#include "dialog_copper_zones_base.h"
/* here is the derivated class from dialog_copper_zone_frame created by wxFormBuilder
...
...
@@ -22,10 +23,12 @@ private:
* true = pad count sort.
*/
long
m_NetFiltering
;
int
m_LayerId
[
LAYER_COUNT
];
// Handle the real layer number from layer name position in m_LayerSelectionCtrl
std
::
vector
<
int
>
m_LayerId
;
// Handle the real layer number from layer
// name position in m_LayerSelectionCtrl
static
wxString
m_netNameShowFilter
;
/* the filter to show nets (default * "*").
* static to keep this pattern for an entire pcbnew session
*/
wxListView
*
m_LayerSelectionCtrl
;
public
:
dialog_copper_zone
(
WinEDA_PcbFrame
*
parent
,
ZONE_SETTING
*
zone_setting
);
...
...
@@ -33,6 +36,7 @@ private:
void
initDialog
();
void
OnButtonOkClick
(
wxCommandEvent
&
event
);
void
OnButtonCancelClick
(
wxCommandEvent
&
event
);
void
OnClose
(
wxCloseEvent
&
event
);
bool
AcceptOptions
(
bool
aPromptForErrors
,
bool
aUseExportableSetupOnly
=
false
);
void
OnNetSortingOptionSelected
(
wxCommandEvent
&
event
);
void
ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
);
...
...
@@ -40,5 +44,6 @@ private:
void
OnRunFiltersButtonClick
(
wxCommandEvent
&
event
);
void
buildAvailableListOfNets
();
void
initListNetsParams
();
wxBitmap
makeLayerBitmap
(
int
aColor
);
};
#endif // #ifndef DIALOG_COPPER_ZONES
pcbnew/dialogs/dialog_copper_zones_base.cpp
View file @
c0f2af8a
This diff is collapsed.
Click to expand it.
pcbnew/dialogs/dialog_copper_zones_base.fbp
View file @
c0f2af8a
This diff is collapsed.
Click to expand it.
pcbnew/dialogs/dialog_copper_zones_base.h
View file @
c0f2af8a
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_copper_zones_base__
#define __dialog_copper_zones_base__
#include <wx/intl.h>
#include <wx/string.h>
#include <wx/radiobox.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/statbox.h>
#include <wx/button.h>
#include <wx/listbox.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class dialog_copper_zone_base
///////////////////////////////////////////////////////////////////////////////
class
dialog_copper_zone_base
:
public
wxDialog
{
DECLARE_EVENT_TABLE
()
private
:
// Private event handlers
void
_wxFB_OnPadsInZoneClick
(
wxCommandEvent
&
event
){
OnPadsInZoneClick
(
event
);
}
void
_wxFB_ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
){
ExportSetupToOtherCopperZones
(
event
);
}
void
_wxFB_OnButtonOkClick
(
wxCommandEvent
&
event
){
OnButtonOkClick
(
event
);
}
void
_wxFB_OnButtonCancelClick
(
wxCommandEvent
&
event
){
OnButtonCancelClick
(
event
);
}
void
_wxFB_OnNetSortingOptionSelected
(
wxCommandEvent
&
event
){
OnNetSortingOptionSelected
(
event
);
}
void
_wxFB_OnRunFiltersButtonClick
(
wxCommandEvent
&
event
){
OnRunFiltersButtonClick
(
event
);
}
protected
:
enum
{
ID_RADIOBOX_FILL_MODE_SELECTION
=
1000
,
wxID_ARC_APPROX
,
wxID_PADS_IN_ZONE_OPTIONS
,
wxID_ANTIPAD_SIZE
,
wxID_COPPER_BRIDGE_VALUE
,
ID_RADIOBOX_OUTLINES_OPTION
,
wxID_BUTTON_EXPORT
,
ID_NET_SORTING_OPTION
,
ID_TEXTCTRL_NETNAMES_FILTER
,
ID_NETNAME_SELECTION
,
ID_LAYER_CHOICE
,
};
wxRadioBox
*
m_FillModeCtrl
;
wxRadioBox
*
m_ArcApproximationOpt
;
wxRadioBox
*
m_PadInZoneOpt
;
wxStaticText
*
m_AntipadSizeText
;
wxTextCtrl
*
m_AntipadSizeValue
;
wxStaticText
*
m_CopperBridgeWidthText
;
wxTextCtrl
*
m_CopperWidthValue
;
wxRadioBox
*
m_OrientEdgesOpt
;
wxRadioBox
*
m_OutlineAppearanceCtrl
;
wxStaticText
*
m_ClearanceValueTitle
;
wxTextCtrl
*
m_ZoneClearanceCtrl
;
wxStaticText
*
m_MinThicknessValueTitle
;
wxTextCtrl
*
m_ZoneMinThicknessCtrl
;
wxButton
*
m_ExportSetupButton
;
wxButton
*
m_OkButton
;
wxButton
*
m_ButtonCancel
;
wxRadioBox
*
m_NetDisplayOption
;
wxStaticText
*
m_staticText5
;
wxTextCtrl
*
m_DoNotShowNetNameFilter
;
wxStaticText
*
m_staticText51
;
wxTextCtrl
*
m_ShowNetNameFilter
;
wxButton
*
m_buttonRunFilter
;
wxStaticText
*
m_staticText2
;
wxListBox
*
m_ListNetNameSelection
;
wxStaticText
*
m_staticText3
;
wxListBox
*
m_LayerSelectionCtrl
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnPadsInZoneClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnButtonOkClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnButtonCancelClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnNetSortingOptionSelected
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
virtual
void
OnRunFiltersButtonClick
(
wxCommandEvent
&
event
){
event
.
Skip
();
}
public
:
dialog_copper_zone_base
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
_
(
"Fill Zones Options"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
566
,
582
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
);
~
dialog_copper_zone_base
();
};
#endif //__dialog_copper_zones_base__
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Nov 18 2010)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_copper_zones_base__
#define __dialog_copper_zones_base__
#include <wx/intl.h>
#include <wx/string.h>
#include <wx/stattext.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/sizer.h>
#include <wx/listbox.h>
#include <wx/choice.h>
#include <wx/textctrl.h>
#include <wx/button.h>
#include <wx/statbox.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class dialog_copper_zone_base
///////////////////////////////////////////////////////////////////////////////
class
dialog_copper_zone_base
:
public
wxDialog
{
DECLARE_EVENT_TABLE
()
private
:
// Private event handlers
void
_wxFB_OnClose
(
wxCloseEvent
&
event
){
OnClose
(
event
);
}
void
_wxFB_OnNetSortingOptionSelected
(
wxCommandEvent
&
event
){
OnNetSortingOptionSelected
(
event
);
}
void
_wxFB_OnRunFiltersButtonClick
(
wxCommandEvent
&
event
){
OnRunFiltersButtonClick
(
event
);
}
void
_wxFB_OnPadsInZoneClick
(
wxCommandEvent
&
event
){
OnPadsInZoneClick
(
event
);
}
void
_wxFB_ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
){
ExportSetupToOtherCopperZones
(
event
);
}
void
_wxFB_OnButtonOkClick
(
wxCommandEvent
&
event
){
OnButtonOkClick
(
event
);
}
void
_wxFB_OnButtonCancelClick
(
wxCommandEvent
&
event
){
OnButtonCancelClick
(
event
);
}
protected
:
enum
{
ID_NETNAME_SELECTION
=
1000
,
ID_M_NETDISPLAYOPTION
,
ID_TEXTCTRL_NETNAMES_FILTER
,
wxID_APPLY_FILTERS
,
ID_M_PADINZONEOPT
,
wxID_ANTIPAD_SIZE
,
wxID_COPPER_BRIDGE_VALUE
,
ID_M_FILLMODECTRL
,
ID_M_ARCAPPROXIMATIONOPT
,
ID_M_ORIENTEDGESOPT
,
ID_M_OUTLINEAPPEARANCECTRL
,
wxID_BUTTON_EXPORT
,
};
wxBoxSizer
*
m_layerSizer
;
wxStaticText
*
m_staticText17
;
wxStaticText
*
m_staticText2
;
wxListBox
*
m_ListNetNameSelection
;
wxStaticText
*
m_staticText16
;
wxChoice
*
m_NetDisplayOption
;
wxStaticText
*
m_staticText5
;
wxTextCtrl
*
m_DoNotShowNetNameFilter
;
wxStaticText
*
m_staticText51
;
wxTextCtrl
*
m_ShowNetNameFilter
;
wxButton
*
m_buttonRunFilter
;
wxStaticText
*
m_ClearanceValueTitle
;
wxTextCtrl
*
m_ZoneClearanceCtrl
;
wxStaticText
*
m_MinThicknessValueTitle
;
wxTextCtrl
*
m_ZoneMinThicknessCtrl
;
wxStaticText
*
m_staticText151
;
wxChoice
*
m_choice7
;
wxStaticText
*
m_staticText161
;
wxTextCtrl
*
m_textCtrl7
;
wxStaticText
*
m_staticText13
;
wxChoice
*
m_PadInZoneOpt
;
wxStaticText
*
m_AntipadSizeText
;
wxTextCtrl
*
m_AntipadSizeValue
;
wxStaticText
*
m_CopperBridgeWidthText
;
wxTextCtrl
*
m_CopperWidthValue
;
wxStaticText
*
m_staticText11
;
wxChoice
*
m_FillModeCtrl
;
wxStaticText
*
m_staticText12
;
wxChoice
*
m_ArcApproximationOpt
;
wxStaticText
*
m_staticText14
;
wxChoice
*
m_OrientEdgesOpt
;
wxStaticText
*
m_staticText15
;
wxChoice
*
m_OutlineAppearanceCtrl
;
wxButton
*
m_ExportSetupButton
;
wxButton
*
m_OkButton
;
wxButton
*
m_ButtonCancel
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnClose
(
wxCloseEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnNetSortingOptionSelected
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnRunFiltersButtonClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnPadsInZoneClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
ExportSetupToOtherCopperZones
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnButtonOkClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnButtonCancelClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
public
:
dialog_copper_zone_base
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
_
(
"Zone Properties"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
550
,
500
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
);
~
dialog_copper_zone_base
();
};
#endif //__dialog_copper_zones_base__
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