kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #41652
Re: [PATCH] Board statistics dialog
Damn ><,
don't use last patch, please.
It doesn't count total vias amount. Use this one.
>Понедельник, 22 июля 2019, 22:14 +03:00 от Alexander Shuklin <jasuramme@xxxxxxx>:
>
>Hi,
>thanks for sharing experience, as I never used that translations or wxWidgets before. And I have no idea where else could I get that information. ))
>So, there's the patch with vias information and some tiny improvements.
>
>
>>Понедельник, 22 июля 2019, 13:34 +03:00 от Ian McInerney < ian.s.mcinerney@xxxxxxxx >:
>>
>>
>>
>>On Mon, Jul 22, 2019 at 11:03 AM Dino Ghilardi < dino.ghilardi@xxxxxxxx > wrote:
>>>Hi Alexander,
>>>
>>>One possible solution for the translation could be put the ":" in a
>>>different column of the table and right-align the field description text
>>>(so all the colons will be aligned). A rapid google search shown that in
>>>French and Vietnamese there should be a space before the colon, while in
>>>the rest of the world there is not, so having the translation for the
>>>":" word seems to make sense. Also another question arises: Is there
>>>some language in which the colon should be another character before the
>>>word? (I'm thinking about spanish where the question mark upside-down
>>>appears before a question...)? ...conclusion: keeping "Height:" and
>>>"Height" as two different words seem to be the solution that gives
>>>maximum flexibility to translators.
>>>
>>
>>This actually doesn't give them as much flexibility. When translations are done, they need to examine the entire string that needs translating, so the ":" character should be included in the string. Separating out the two portions is the equivalent of saying that every lanugage will follow the same compositional rules.
>>
>>>Another possible solution (probably better then the one above since it
>>>just removes the problem) is to remove the ":" and have the cell borders
>>>in a different color, just like the tables in the "board setup" dialog
>>>(so that you can also take a look at that code to solve also the color
>>>problem seeing how it was solved there). The advantage of this approach
>>>is also having a more consistent "look" through all the dialogs.
>>>
>>>
>>>
>>>P.S. (a little bit off-topic):
>>>If you move the statistic window and check/uncheck one of the checkboxes
>>>("subctract holes...." or "Exclude components...") the window "jumps" to
>>>the center of the screen (its default position on open): do you have
>>>also this behaviour or it is just on my debian-linux with gtk3?
>>>
>>>
>>>Cheers,
>>>Dino.
>>>
>>>On 22/07/19 10:13, Alexander Shuklin wrote:
>>>> Hi!
>>>> I'll have a look to add vias count to dialog.
>>>> There's some questions:
>>>>
>>>> 1)I don't have too much experience with wxdialogs. There was commit on
>>>> master, which says:
>>>> >> remove settings for fg/bg color: the result is unpredictable: was
>>>> black texts on black background on my computer.
>>>> And now I have all tables with data just in white boxes. Is it how it
>>>> meant to be, or just some misbehavior on different systems? I use
>>>> archlinux x64 OS.
>>>> there's screenshot in attachment
>>>>
>>>> 2) Can we use something like _( "Height" ) + ":" for translation, not _(
>>>> "Height:" )? As far as I understand, now we will need to have 2
>>>> translations, first for "Height" and second for "Height:" but that's
>>>> basically same word.
>>>>
>>>> Воскресенье, 21 июля 2019, 23:42 +03:00 от Dino Ghilardi
>>>> < dino.ghilardi@xxxxxxxx >:
>>>>
>>>> Makes sense.
>>>> Instead of a generic "via count" a more complete table similar to the
>>>> one generated in the drill report file could be useful, but may be it
>>>> can became quite long if a lot of different drill sizes are used (ok,
>>>> scrollbars are made to handle that).
>>>> Also having "vias", "blind vias" and "microvias" count man make sense
>>>> (or at least having something like "microvias used: yes/no"), just to
>>>> have in board statistics the information about the need of an advanced
>>>> pcb manufacturing process.
>>>>
>>>>
>>>> Cheers,
>>>> Dino.
>>>>
>>>>
>>>> On 21/07/19 20:54, Mark Roszko wrote:
>>>> > > Since making every hole in the pcb costs time, manufacturers
>>>> > calculate the price of the PCB using also that number.
>>>> >
>>>> > A long time ago, holes cost alot. These days if your manufacturer is
>>>> > charging alot per hole, you should run far away. Usually
>>>> manufactuers
>>>> > include 20k-40k holes in the base price per panel before they start
>>>> > charging you tiny penny amounts for more in some increments of
>>>> > thousands. The CNC machines these days as blazing fast at making the
>>>> > holes required and they charge more for the drill bit being worn
>>>> down
>>>> > than the time.
>>>> >
>>>> > What does actually cost money is via type and size. Blind vias make
>>>> > layer stackups a pain in the butt and micro vias needing lasers.
>>>> > And also going below some via size can significantly add cost
>>>> even if
>>>> > not at microvia size because it requires different machines with
>>>> more
>>>> > precision and smaller drill bits.
>>>> >
>>>> >
>>>> > If anything I would say to break down the statistics based on via
>>>> type.
>>>> >
>>>> > On Sun, Jul 21, 2019 at 1:55 PM Dino Ghilardi
>>>> < dino.ghilardi@xxxxxxxx <mailto: dino.ghilardi@xxxxxxxx >
>>>> > <mailto: dino.ghilardi@xxxxxxxx >> wrote:
>>>> >
>>>> > I just tried the board statistics dialog and looks good, I like it.
>>>> >
>>>> > A thing I'd like to have to make it better is adding the number
>>>> of vias
>>>> > to the statistics: Since making every hole in the pcb costs time,
>>>> > manufacturers calculate the price of the PCB using also that number.
>>>> >
>>>> > Also the option to save or print a text with the statistics report
>>>> > would
>>>> > be nice.
>>>> >
>>>> >
>>>> > Cheers,
>>>> > Dino.
>>>> >
>>>>
>>>> _______________________________________________
>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>> <mailto: kicad-developers@xxxxxxxxxxxxxxxxxxx >
>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>> More help : https://help.launchpad.net/ListHelp
>>>>
>>>>
>>>>
>>>> --
>>>> Alexander Shuklin
>>>
>>>
>>>_______________________________________________
>>>Mailing list: https://launchpad.net/~kicad-developers
>>>Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>Unsubscribe : https://launchpad.net/~kicad-developers
>>>More help : https://help.launchpad.net/ListHelp
>
>
>--
>Alexander Shuklin
--
Alexander Shuklin
From bedd62efd75bf37453591c250f6cda8385cc162c Mon Sep 17 00:00:00 2001
From: Alexander <alexandr.shuklin@biovitrum.ru>
Date: Mon, 22 Jul 2019 22:04:09 +0300
Subject: [PATCH] Added vias information in board statistics dialog and some
improvements - some code cleanup and readability fixes - fixed issue with
dialog moving when checkbox clicked - now dialog saves checkboxes state
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------2.22.0"
This is a multi-part message in MIME format.
--------------2.22.0
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit
---
pcbnew/dialogs/dialog_board_statistics.cpp | 140 ++++++---
pcbnew/dialogs/dialog_board_statistics.h | 25 +-
.../dialogs/dialog_board_statistics_base.cpp | 290 ++++++++++--------
.../dialogs/dialog_board_statistics_base.fbp | 224 +++++++++++---
pcbnew/dialogs/dialog_board_statistics_base.h | 37 +--
5 files changed, 488 insertions(+), 228 deletions(-)
--------------2.22.0
Content-Type: text/x-patch; name="0001-Added-vias-information-in-board-statistics-dialog-an.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Added-vias-information-in-board-statistics-dialog-an.patch"
diff --git a/pcbnew/dialogs/dialog_board_statistics.cpp b/pcbnew/dialogs/dialog_board_statistics.cpp
index 0a50da31d..e8fde9416 100644
--- a/pcbnew/dialogs/dialog_board_statistics.cpp
+++ b/pcbnew/dialogs/dialog_board_statistics.cpp
@@ -25,45 +25,41 @@
#include "dialog_board_statistics.h"
+#define COL_LABEL 0
+#define COL_AMOUNT 1
+// Defines for components view
+#define ROW_LABEL 0
#define COL_FRONT_SIDE 1
#define COL_BOTTOM_SIDE 2
#define COL_TOTAL 3
+// Defines for board view
+#define ROW_BOARD_WIDTH 0
+#define ROW_BOARD_HEIGHT 1
+#define ROW_BOARD_AREA 2
+
+// Flags to remember last checkboxes state
+static bool s_excludeNoPins = false;
+static bool s_subtractHoles = false;
+
DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS( PCB_EDIT_FRAME* aParentFrame )
: DIALOG_BOARD_STATISTICS_BASE( aParentFrame )
{
m_parentFrame = aParentFrame;
- // Remove wxgrid's selection boxes
- m_gridComponents->SetCellHighlightPenWidth( 0 );
- m_gridPads->SetCellHighlightPenWidth( 0 );
- m_gridBoard->SetCellHighlightPenWidth( 0 );
- m_gridComponents->SetColMinimalAcceptableWidth( 80 );
- m_gridPads->SetColMinimalAcceptableWidth( 80 );
- m_gridBoard->SetColMinimalAcceptableWidth( 80 );
+ m_checkBoxExcludeComponentsNoPins->SetValue( s_excludeNoPins );
+ m_checkBoxSubtractHoles->SetValue( s_subtractHoles );
// Make labels for grids
wxFont headingFont = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT );
headingFont.SetSymbolicSize( wxFONTSIZE_SMALL );
- m_gridComponents->SetCellValue( 0, COL_FRONT_SIDE, _( "Front Side" ) );
- m_gridComponents->SetCellFont( 0, COL_FRONT_SIDE, headingFont );
- m_gridComponents->SetCellValue( 0, COL_BOTTOM_SIDE, _( "Bottom Side" ) );
- m_gridComponents->SetCellFont( 0, COL_BOTTOM_SIDE, headingFont );
- m_gridComponents->SetCellValue( 0, COL_TOTAL, _( "Total" ) );
- m_gridComponents->SetCellFont( 0, COL_TOTAL, headingFont );
-
- m_gridComponents->SetCellAlignment( 0, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridComponents->SetCellAlignment( 1, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridComponents->SetCellAlignment( 2, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridComponents->SetCellAlignment( 3, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridComponents->SetCellAlignment( 4, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
-
- m_gridPads->SetCellAlignment( 0, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridPads->SetCellAlignment( 1, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridPads->SetCellAlignment( 2, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridPads->SetCellAlignment( 3, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
- m_gridPads->SetCellAlignment( 4, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
+ m_gridComponents->SetCellValue( ROW_LABEL, COL_FRONT_SIDE, _( "Front Side" ) );
+ m_gridComponents->SetCellFont( ROW_LABEL, COL_FRONT_SIDE, headingFont );
+ m_gridComponents->SetCellValue( ROW_LABEL, COL_BOTTOM_SIDE, _( "Bottom Side" ) );
+ m_gridComponents->SetCellFont( ROW_LABEL, COL_BOTTOM_SIDE, headingFont );
+ m_gridComponents->SetCellValue( ROW_LABEL, COL_TOTAL, _( "Total" ) );
+ m_gridComponents->SetCellFont( ROW_LABEL, COL_TOTAL, headingFont );
m_gridBoard->SetCellValue( 0, 0, _( "Width:" ) );
m_gridBoard->SetCellAlignment( 0, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
@@ -71,6 +67,17 @@ DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS( PCB_EDIT_FRAME* aParentFrame )
m_gridBoard->SetCellAlignment( 1, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
m_gridBoard->SetCellValue( 2, 0, _( "Area:" ) );
m_gridBoard->SetCellAlignment( 2, 0, wxALIGN_LEFT, wxALIGN_CENTRE );
+
+
+ wxGrid* grids[] = { m_gridComponents, m_gridPads, m_gridVias, m_gridBoard };
+ for( auto& grid : grids )
+ {
+ // Remove wxgrid's selection boxes
+ grid->SetCellHighlightPenWidth( 0 );
+ grid->SetColMinimalAcceptableWidth( 80 );
+ for( int i = 0; i < grid->GetNumberRows(); i++ )
+ grid->SetCellAlignment( i, COL_LABEL, wxALIGN_LEFT, wxALIGN_CENTRE );
+ }
}
void DIALOG_BOARD_STATISTICS::refreshItemsTypes()
@@ -89,8 +96,13 @@ void DIALOG_BOARD_STATISTICS::refreshItemsTypes()
m_padsTypes.push_back( padsType_t( PAD_ATTRIB_CONN, _( "Connector:" ) ) );
m_padsTypes.push_back( padsType_t( PAD_ATTRIB_HOLE_NOT_PLATED, _( "NPTH:" ) ) );
+ m_viasTypes.clear();
+ m_viasTypes.push_back( viasType_t( VIA_THROUGH, _( "Through hole:" ) ) );
+ m_viasTypes.push_back( viasType_t( VIA_BLIND_BURIED, _( "Blind/buried:" ) ) );
+ m_viasTypes.push_back( viasType_t( VIA_MICROVIA, _( "Micro via:" ) ) );
+
// If there not enough rows in grids, append some
- size_t appendRows = m_componentsTypes.size() + 2 - m_gridComponents->GetNumberRows();
+ int appendRows = m_componentsTypes.size() + 2 - m_gridComponents->GetNumberRows();
if( appendRows > 0 )
m_gridComponents->AppendRows( appendRows );
@@ -99,6 +111,10 @@ void DIALOG_BOARD_STATISTICS::refreshItemsTypes()
if( appendRows > 0 )
m_gridPads->AppendRows( appendRows );
+
+ appendRows = m_viasTypes.size() + 1 - m_gridVias->GetNumberRows();
+ if( appendRows )
+ m_gridVias->AppendRows( appendRows );
}
bool DIALOG_BOARD_STATISTICS::TransferDataToWindow()
@@ -115,6 +131,7 @@ void DIALOG_BOARD_STATISTICS::getDataFromPCB()
{
auto board = m_parentFrame->GetBoard();
+ // Get modules and pads count
for( MODULE* module : board->Modules() )
{
auto& pads = module->Pads();
@@ -150,6 +167,29 @@ void DIALOG_BOARD_STATISTICS::getDataFromPCB()
}
}
+ // Get vias count
+ VIA* via;
+ for( auto& track : board->Tracks() )
+ {
+ if( track->Type() == PCB_VIA_T )
+ {
+ via = dynamic_cast<VIA*>( track );
+
+ // We have to check if cast was successful
+ if( via )
+ {
+ for( auto& type : m_viasTypes )
+ {
+ if( via->GetViaType() == type.attribute )
+ {
+ type.qty++;
+ break;
+ }
+ }
+ }
+ }
+ }
+
bool boundingBoxCreated = false; //flag if bounding box initialized
BOX2I bbox;
SHAPE_POLY_SET polySet;
@@ -210,13 +250,28 @@ void DIALOG_BOARD_STATISTICS::updateWidets()
int currentRow = 0;
for( auto& type : m_padsTypes )
{
- m_gridPads->SetCellValue( currentRow, 0, type.title );
- m_gridPads->SetCellValue( currentRow, 1, wxString::Format( wxT( "%i " ), type.qty ) );
+ m_gridPads->SetCellValue( currentRow, COL_LABEL, type.title );
+ m_gridPads->SetCellValue(
+ currentRow, COL_AMOUNT, wxString::Format( wxT( "%i " ), type.qty ) );
totalPads += type.qty;
currentRow++;
}
- m_gridPads->SetCellValue( currentRow, 0, _( "Total" ) );
- m_gridPads->SetCellValue( currentRow, 1, wxString::Format( wxT( "%i " ), totalPads ) );
+ m_gridPads->SetCellValue( currentRow, COL_LABEL, _( "Total:" ) );
+ m_gridPads->SetCellValue( currentRow, COL_AMOUNT, wxString::Format( wxT( "%i " ), totalPads ) );
+
+ int totalVias = 0;
+ currentRow = 0;
+ for( auto& type : m_viasTypes )
+ {
+ m_gridVias->SetCellValue( currentRow, COL_LABEL, type.title );
+ m_gridVias->SetCellValue(
+ currentRow, COL_AMOUNT, wxString::Format( wxT( "%i " ), type.qty ) );
+ totalVias += type.qty;
+ currentRow++;
+ }
+ m_gridVias->SetCellValue( currentRow, COL_LABEL, _( "Total:" ) );
+ m_gridVias->SetCellValue( currentRow, COL_AMOUNT, wxString::Format( wxT( "%i " ), totalVias ) );
+
int totalFront = 0;
int totalBack = 0;
@@ -225,7 +280,7 @@ void DIALOG_BOARD_STATISTICS::updateWidets()
currentRow = 1;
for( auto& type : m_componentsTypes )
{
- m_gridComponents->SetCellValue( currentRow, 0, type.title );
+ m_gridComponents->SetCellValue( currentRow, COL_LABEL, type.title );
m_gridComponents->SetCellValue(
currentRow, COL_FRONT_SIDE, wxString::Format( wxT( "%i " ), type.frontSideQty ) );
m_gridComponents->SetCellValue(
@@ -236,7 +291,7 @@ void DIALOG_BOARD_STATISTICS::updateWidets()
totalBack += type.backSideQty;
currentRow++;
}
- m_gridComponents->SetCellValue( currentRow, 0, _( "Total" ) );
+ m_gridComponents->SetCellValue( currentRow, COL_LABEL, _( "Total:" ) );
m_gridComponents->SetCellValue( currentRow, COL_FRONT_SIDE,
wxString::Format( wxT( "%i " ), totalFront ) );
m_gridComponents->SetCellValue( currentRow, COL_BOTTOM_SIDE, wxString::Format( wxT( "%i " ), totalBack ) );
@@ -245,34 +300,41 @@ void DIALOG_BOARD_STATISTICS::updateWidets()
if( m_hasOutline )
{
- m_gridBoard->SetCellValue( 0, 1,
+ m_gridBoard->SetCellValue( ROW_BOARD_WIDTH, COL_AMOUNT,
MessageTextFromValue( m_parentFrame->GetUserUnits(), m_boardWidth, false ) + " " );
- m_gridBoard->SetCellValue( 1, 1,
+ m_gridBoard->SetCellValue( ROW_BOARD_HEIGHT, COL_AMOUNT,
MessageTextFromValue( m_parentFrame->GetUserUnits(), m_boardHeight, false ) + " " );
if( GetUserUnits() == INCHES )
m_boardArea /= ( IU_PER_MILS * IU_PER_MILS * 1000000 );
else
m_boardArea /= ( IU_PER_MM * IU_PER_MM );
- m_gridBoard->SetCellValue( 2, 1,
+ m_gridBoard->SetCellValue( ROW_BOARD_AREA, COL_AMOUNT,
wxString::Format( wxT( "%.3f %s²" ), m_boardArea,
GetAbbreviatedUnitsLabel( GetUserUnits(), false ) ) );
}
else
{
- m_gridBoard->SetCellValue( 0, 1, _( "unknown" ) );
- m_gridBoard->SetCellValue( 1, 1, _( "unknown" ) );
- m_gridBoard->SetCellValue( 2, 1, _( "unknown" ) );
+ m_gridBoard->SetCellValue( ROW_BOARD_WIDTH, COL_AMOUNT, _( "unknown" ) );
+ m_gridBoard->SetCellValue( ROW_BOARD_HEIGHT, COL_AMOUNT, _( "unknown" ) );
+ m_gridBoard->SetCellValue( ROW_BOARD_AREA, COL_AMOUNT, _( "unknown" ) );
}
m_gridComponents->AutoSize();
m_gridPads->AutoSize();
m_gridBoard->AutoSize();
+ m_gridVias->AutoSize();
}
// If any checkbox clicked, we have to refresh dialog data
void DIALOG_BOARD_STATISTICS::checkboxClicked( wxCommandEvent& event )
{
- TransferDataToWindow();
+ s_excludeNoPins = m_checkBoxExcludeComponentsNoPins->GetValue();
+ s_subtractHoles = m_checkBoxSubtractHoles->GetValue();
+ refreshItemsTypes();
+ getDataFromPCB();
+ updateWidets();
+ Layout();
+ Fit();
}
DIALOG_BOARD_STATISTICS::~DIALOG_BOARD_STATISTICS()
diff --git a/pcbnew/dialogs/dialog_board_statistics.h b/pcbnew/dialogs/dialog_board_statistics.h
index 5f26cd280..a30a573c2 100644
--- a/pcbnew/dialogs/dialog_board_statistics.h
+++ b/pcbnew/dialogs/dialog_board_statistics.h
@@ -30,6 +30,7 @@
#include <base_units.h>
#include <class_board.h>
#include <class_drawsegment.h>
+#include <class_track.h>
#include <dialog_board_statistics_base.h>
#include <pad_shapes.h>
#include <pcb_base_frame.h>
@@ -45,23 +46,25 @@ class DIALOG_BOARD_STATISTICS : public DIALOG_BOARD_STATISTICS_BASE
{
public:
/**
- * Struct holds information about pad type (such as SMD, THT, NPH
- * and so on), which will be shown in the dialog. Also holds quantity
- * of pads
+ * Struct to hold type information, which will be shown in dialog.
*/
- struct padsType_t
+ template <typename T>
+ struct typeContainer_t
{
- padsType_t( PAD_ATTR_T aAttribute, wxString aTitle )
+ typeContainer_t<T>( T aAttribute, wxString aTitle )
: attribute( aAttribute ),
title( aTitle ),
qty( 0 )
{
}
- PAD_ATTR_T attribute;
+ T attribute;
wxString title;
int qty;
};
+ using padsType_t = typeContainer_t<PAD_ATTR_T>;
+ using viasType_t = typeContainer_t<VIATYPE_T>;
+
/**
* Struct holds information about component type (such as SMD, THT,
* Virtual and so on), which will be shown in the dialog. Holds both
@@ -84,6 +87,7 @@ public:
using componentsTypeList_t = std::deque<componentsType_t>;
using padsTypeList_t = std::deque<padsType_t>;
+ using viasTypeList_t = std::deque<viasType_t>;
DIALOG_BOARD_STATISTICS( PCB_EDIT_FRAME* aParentFrame );
~DIALOG_BOARD_STATISTICS();
@@ -92,13 +96,13 @@ public:
bool TransferDataToWindow() override;
///> Function to fill up all items types to be shown in the dialog.
- void inline refreshItemsTypes();
+ void refreshItemsTypes();
///> Gets data from board
- void inline getDataFromPCB();
+ void getDataFromPCB();
///> Applies data to dialog widgets
- void inline updateWidets();
+ void updateWidets();
void checkboxClicked( wxCommandEvent& event ) override;
@@ -116,6 +120,9 @@ private:
///> Holds all pads types to be shown in the dialog
padsTypeList_t m_padsTypes;
+
+ ///> Holds all vias types to be shown in the dialog
+ viasTypeList_t m_viasTypes;
};
#endif // __DIALOG_BOARD_STATISTICS_H
diff --git a/pcbnew/dialogs/dialog_board_statistics_base.cpp b/pcbnew/dialogs/dialog_board_statistics_base.cpp
index 791fd8999..eab4df548 100644
--- a/pcbnew/dialogs/dialog_board_statistics_base.cpp
+++ b/pcbnew/dialogs/dialog_board_statistics_base.cpp
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jul 10 2019)
+// C++ code generated with wxFormBuilder (version Jun 25 2019)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -11,183 +11,223 @@
DIALOG_BOARD_STATISTICS_BASE::DIALOG_BOARD_STATISTICS_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( wxDefaultSize, wxDefaultSize );
+ this->SetSizeHints( wxDefaultSize, wxDefaultSize );
- wxBoxSizer* bMainBoxSizer;
- bMainBoxSizer = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bMainBoxSizer;
+ bMainBoxSizer = new wxBoxSizer( wxVERTICAL );
- wxGridBagSizer* gbContentsSizer;
- gbContentsSizer = new wxGridBagSizer( 10, 20 );
- gbContentsSizer->SetFlexibleDirection( wxBOTH );
- gbContentsSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
+ wxFlexGridSizer* fgSizerContents;
+ fgSizerContents = new wxFlexGridSizer( 0, 2, 0, 0 );
+ fgSizerContents->AddGrowableCol( 0 );
+ fgSizerContents->AddGrowableCol( 1 );
+ fgSizerContents->AddGrowableRow( 0 );
+ fgSizerContents->AddGrowableRow( 1 );
+ fgSizerContents->SetFlexibleDirection( wxBOTH );
+ fgSizerContents->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_ALL );
- wxBoxSizer* bSizer2;
- bSizer2 = new wxBoxSizer( wxVERTICAL );
+ wxBoxSizer* bSizerComponents;
+ bSizerComponents = new wxBoxSizer( wxVERTICAL );
- wxStaticText* componentsLabel;
- componentsLabel = new wxStaticText( this, wxID_ANY, _("Components"), wxDefaultPosition, wxDefaultSize, 0 );
- componentsLabel->Wrap( -1 );
- bSizer2->Add( componentsLabel, 0, wxALL, 5 );
+ wxStaticText* componentsLabel;
+ componentsLabel = new wxStaticText( this, wxID_ANY, _("Components"), wxDefaultPosition, wxDefaultSize, 0 );
+ componentsLabel->Wrap( -1 );
+ bSizerComponents->Add( componentsLabel, 0, wxALL, 5 );
- m_gridComponents = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
+ m_gridComponents = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
- // Grid
- m_gridComponents->CreateGrid( 5, 4 );
- m_gridComponents->EnableEditing( false );
- m_gridComponents->EnableGridLines( false );
- m_gridComponents->EnableDragGridSize( false );
- m_gridComponents->SetMargins( 0, 0 );
+ // Grid
+ m_gridComponents->CreateGrid( 5, 4 );
+ m_gridComponents->EnableEditing( false );
+ m_gridComponents->EnableGridLines( false );
+ m_gridComponents->EnableDragGridSize( false );
+ m_gridComponents->SetMargins( 0, 0 );
- // Columns
- m_gridComponents->EnableDragColMove( false );
- m_gridComponents->EnableDragColSize( true );
- m_gridComponents->SetColLabelSize( 0 );
- m_gridComponents->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Columns
+ m_gridComponents->EnableDragColMove( false );
+ m_gridComponents->EnableDragColSize( true );
+ m_gridComponents->SetColLabelSize( 0 );
+ m_gridComponents->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Rows
- m_gridComponents->EnableDragRowSize( true );
- m_gridComponents->SetRowLabelSize( 0 );
- m_gridComponents->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Rows
+ m_gridComponents->EnableDragRowSize( true );
+ m_gridComponents->SetRowLabelSize( 0 );
+ m_gridComponents->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Label Appearance
- m_gridComponents->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ // Label Appearance
+ m_gridComponents->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- // Cell Defaults
- m_gridComponents->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
- bSizer2->Add( m_gridComponents, 0, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ // Cell Defaults
+ m_gridComponents->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
+ m_gridComponents->SetMaxSize( wxSize( -1,300 ) );
+ bSizerComponents->Add( m_gridComponents, 1, wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
- gbContentsSizer->Add( bSizer2, wxGBPosition( 0, 0 ), wxGBSpan( 2, 1 ), wxEXPAND, 5 );
- wxBoxSizer* bSizerPads;
- bSizerPads = new wxBoxSizer( wxVERTICAL );
+ fgSizerContents->Add( bSizerComponents, 1, wxEXPAND, 5 );
- wxStaticText* padsLabel;
- padsLabel = new wxStaticText( this, wxID_ANY, _("Pads"), wxDefaultPosition, wxDefaultSize, 0 );
- padsLabel->Wrap( -1 );
- bSizerPads->Add( padsLabel, 0, wxALL, 5 );
+ wxBoxSizer* bSizerPads;
+ bSizerPads = new wxBoxSizer( wxVERTICAL );
- m_gridPads = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
+ wxStaticText* padsLabel;
+ padsLabel = new wxStaticText( this, wxID_ANY, _("Pads"), wxDefaultPosition, wxDefaultSize, 0 );
+ padsLabel->Wrap( -1 );
+ bSizerPads->Add( padsLabel, 0, wxALL, 5 );
- // Grid
- m_gridPads->CreateGrid( 5, 2 );
- m_gridPads->EnableEditing( false );
- m_gridPads->EnableGridLines( false );
- m_gridPads->EnableDragGridSize( false );
- m_gridPads->SetMargins( 0, 0 );
+ m_gridPads = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
- // Columns
- m_gridPads->EnableDragColMove( false );
- m_gridPads->EnableDragColSize( true );
- m_gridPads->SetColLabelSize( 0 );
- m_gridPads->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Grid
+ m_gridPads->CreateGrid( 5, 2 );
+ m_gridPads->EnableEditing( false );
+ m_gridPads->EnableGridLines( false );
+ m_gridPads->EnableDragGridSize( false );
+ m_gridPads->SetMargins( 0, 0 );
- // Rows
- m_gridPads->EnableDragRowSize( true );
- m_gridPads->SetRowLabelSize( 0 );
- m_gridPads->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
+ // Columns
+ m_gridPads->EnableDragColMove( false );
+ m_gridPads->EnableDragColSize( true );
+ m_gridPads->SetColLabelSize( 0 );
+ m_gridPads->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Label Appearance
- m_gridPads->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ // Rows
+ m_gridPads->EnableDragRowSize( true );
+ m_gridPads->SetRowLabelSize( 0 );
+ m_gridPads->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
- // Cell Defaults
- m_gridPads->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
- m_gridPads->SetMaxSize( wxSize( -1,300 ) );
+ // Label Appearance
+ m_gridPads->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizerPads->Add( m_gridPads, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ // Cell Defaults
+ m_gridPads->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
+ m_gridPads->SetMaxSize( wxSize( -1,300 ) );
+ bSizerPads->Add( m_gridPads, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
- gbContentsSizer->Add( bSizerPads, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
- wxBoxSizer* bSizerBrdSize;
- bSizerBrdSize = new wxBoxSizer( wxVERTICAL );
+ fgSizerContents->Add( bSizerPads, 1, wxEXPAND, 5 );
- wxStaticText* boardLabel;
- boardLabel = new wxStaticText( this, wxID_ANY, _("Board Size"), wxDefaultPosition, wxDefaultSize, 0 );
- boardLabel->Wrap( -1 );
- bSizerBrdSize->Add( boardLabel, 0, wxALL, 5 );
+ wxBoxSizer* bSizerBrdSize;
+ bSizerBrdSize = new wxBoxSizer( wxVERTICAL );
- m_gridBoard = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
+ wxStaticText* boardLabel;
+ boardLabel = new wxStaticText( this, wxID_ANY, _("Board Size"), wxDefaultPosition, wxDefaultSize, 0 );
+ boardLabel->Wrap( -1 );
+ bSizerBrdSize->Add( boardLabel, 0, wxALL, 5 );
- // Grid
- m_gridBoard->CreateGrid( 3, 2 );
- m_gridBoard->EnableEditing( false );
- m_gridBoard->EnableGridLines( false );
- m_gridBoard->EnableDragGridSize( false );
- m_gridBoard->SetMargins( 0, 0 );
+ m_gridBoard = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
- // Columns
- m_gridBoard->EnableDragColMove( false );
- m_gridBoard->EnableDragColSize( true );
- m_gridBoard->SetColLabelSize( 0 );
- m_gridBoard->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Grid
+ m_gridBoard->CreateGrid( 3, 2 );
+ m_gridBoard->EnableEditing( false );
+ m_gridBoard->EnableGridLines( false );
+ m_gridBoard->EnableDragGridSize( false );
+ m_gridBoard->SetMargins( 0, 0 );
- // Rows
- m_gridBoard->EnableDragRowSize( true );
- m_gridBoard->SetRowLabelSize( 0 );
- m_gridBoard->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Columns
+ m_gridBoard->EnableDragColMove( false );
+ m_gridBoard->EnableDragColSize( true );
+ m_gridBoard->SetColLabelSize( 0 );
+ m_gridBoard->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Label Appearance
- m_gridBoard->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
+ // Rows
+ m_gridBoard->EnableDragRowSize( true );
+ m_gridBoard->SetRowLabelSize( 0 );
+ m_gridBoard->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- // Cell Defaults
- m_gridBoard->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
- m_gridBoard->SetMaxSize( wxSize( -1,300 ) );
+ // Label Appearance
+ m_gridBoard->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bSizerBrdSize->Add( m_gridBoard, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
+ // Cell Defaults
+ m_gridBoard->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
+ m_gridBoard->SetMaxSize( wxSize( -1,300 ) );
+ bSizerBrdSize->Add( m_gridBoard, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
- gbContentsSizer->Add( bSizerBrdSize, wxGBPosition( 1, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
+ fgSizerContents->Add( bSizerBrdSize, 1, wxEXPAND, 5 );
- gbContentsSizer->AddGrowableCol( 0 );
- gbContentsSizer->AddGrowableCol( 1 );
- gbContentsSizer->AddGrowableRow( 0 );
- gbContentsSizer->AddGrowableRow( 1 );
+ wxBoxSizer* bSizerVias;
+ bSizerVias = new wxBoxSizer( wxVERTICAL );
- bMainBoxSizer->Add( gbContentsSizer, 1, wxEXPAND|wxALL, 10 );
+ viasLabel = new wxStaticText( this, wxID_ANY, _("Vias"), wxDefaultPosition, wxDefaultSize, 0 );
+ viasLabel->Wrap( -1 );
+ bSizerVias->Add( viasLabel, 0, wxALL, 5 );
- m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bMainBoxSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
+ m_gridVias = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
- wxGridSizer* gOptionsSizer;
- gOptionsSizer = new wxGridSizer( 0, 2, 0, 0 );
+ // Grid
+ m_gridVias->CreateGrid( 4, 2 );
+ m_gridVias->EnableEditing( false );
+ m_gridVias->EnableGridLines( false );
+ m_gridVias->EnableDragGridSize( false );
+ m_gridVias->SetMargins( 0, 0 );
- m_checkBoxSubtractHoles = new wxCheckBox( this, wxID_ANY, _("Subtract holes from board area"), wxDefaultPosition, wxDefaultSize, 0 );
- gOptionsSizer->Add( m_checkBoxSubtractHoles, 0, wxALL|wxEXPAND, 5 );
+ // Columns
+ m_gridVias->EnableDragColMove( false );
+ m_gridVias->EnableDragColSize( true );
+ m_gridVias->SetColLabelSize( 0 );
+ m_gridVias->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
- m_checkBoxExcludeComponentsNoPins = new wxCheckBox( this, wxID_ANY, _("Exclude components with no pins"), wxDefaultPosition, wxDefaultSize, 0 );
- gOptionsSizer->Add( m_checkBoxExcludeComponentsNoPins, 0, wxALL|wxEXPAND, 5 );
+ // Rows
+ m_gridVias->EnableDragRowSize( true );
+ m_gridVias->SetRowLabelSize( 0 );
+ m_gridVias->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
+ // Label Appearance
+ m_gridVias->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
- bMainBoxSizer->Add( gOptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT, 10 );
+ // Cell Defaults
+ m_gridVias->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
+ m_gridVias->SetMaxSize( wxSize( -1,300 ) );
- m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
- bMainBoxSizer->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
+ bSizerVias->Add( m_gridVias, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
- m_sdbControlSizer = new wxStdDialogButtonSizer();
- m_sdbControlSizerOK = new wxButton( this, wxID_OK );
- m_sdbControlSizer->AddButton( m_sdbControlSizerOK );
- m_sdbControlSizer->Realize();
- bMainBoxSizer->Add( m_sdbControlSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP, 5 );
+ fgSizerContents->Add( bSizerVias, 1, wxEXPAND, 5 );
- this->SetSizer( bMainBoxSizer );
- this->Layout();
- bMainBoxSizer->Fit( this );
+ bMainBoxSizer->Add( fgSizerContents, 1, wxEXPAND|wxLEFT|wxRIGHT, 10 );
- this->Centre( wxBOTH );
+ m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bMainBoxSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
- // Connect Events
- m_checkBoxSubtractHoles->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
- m_checkBoxExcludeComponentsNoPins->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
+ wxGridSizer* gOptionsSizer;
+ gOptionsSizer = new wxGridSizer( 0, 2, 0, 0 );
+
+ m_checkBoxSubtractHoles = new wxCheckBox( this, wxID_ANY, _("Subtract holes from board area"), wxDefaultPosition, wxDefaultSize, 0 );
+ gOptionsSizer->Add( m_checkBoxSubtractHoles, 0, wxALL|wxEXPAND, 5 );
+
+ m_checkBoxExcludeComponentsNoPins = new wxCheckBox( this, wxID_ANY, _("Exclude components with no pins"), wxDefaultPosition, wxDefaultSize, 0 );
+ gOptionsSizer->Add( m_checkBoxExcludeComponentsNoPins, 0, wxALL|wxEXPAND, 5 );
+
+
+ bMainBoxSizer->Add( gOptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT, 10 );
+
+ m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
+ bMainBoxSizer->Add( m_staticline2, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 );
+
+ m_sdbControlSizer = new wxStdDialogButtonSizer();
+ m_sdbControlSizerOK = new wxButton( this, wxID_OK );
+ m_sdbControlSizer->AddButton( m_sdbControlSizerOK );
+ m_sdbControlSizer->Realize();
+
+ bMainBoxSizer->Add( m_sdbControlSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP, 5 );
+
+
+ this->SetSizer( bMainBoxSizer );
+ this->Layout();
+ bMainBoxSizer->Fit( this );
+
+ this->Centre( wxBOTH );
+
+ // Connect Events
+ m_checkBoxSubtractHoles->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
+ m_checkBoxExcludeComponentsNoPins->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
}
DIALOG_BOARD_STATISTICS_BASE::~DIALOG_BOARD_STATISTICS_BASE()
{
- // Disconnect Events
- m_checkBoxSubtractHoles->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
- m_checkBoxExcludeComponentsNoPins->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
+ // Disconnect Events
+ m_checkBoxSubtractHoles->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
+ m_checkBoxExcludeComponentsNoPins->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::checkboxClicked ), NULL, this );
}
diff --git a/pcbnew/dialogs/dialog_board_statistics_base.fbp b/pcbnew/dialogs/dialog_board_statistics_base.fbp
index 8184de0ba..211b861df 100644
--- a/pcbnew/dialogs/dialog_board_statistics_base.fbp
+++ b/pcbnew/dialogs/dialog_board_statistics_base.fbp
@@ -14,7 +14,6 @@
<property name="file">dialog_board_statistics_base</property>
<property name="first_id">1000</property>
<property name="help_provider">none</property>
- <property name="image_path_wrapper_function_name"></property>
<property name="indent_with_spaces"></property>
<property name="internationalize">1</property>
<property name="name">DIALOG_BOARD_STATISTCS_BASE</property>
@@ -26,7 +25,6 @@
<property name="skip_php_events">1</property>
<property name="skip_python_events">1</property>
<property name="ui_table">UI</property>
- <property name="use_array_enum">0</property>
<property name="use_enum">0</property>
<property name="use_microsoft_bom">0</property>
<object class="Dialog" expanded="1">
@@ -62,29 +60,27 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">10</property>
- <property name="flag">wxEXPAND|wxALL</property>
+ <property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">1</property>
- <object class="wxGridBagSizer" expanded="1">
- <property name="empty_cell_size"></property>
+ <object class="wxFlexGridSizer" expanded="1">
+ <property name="cols">2</property>
<property name="flexible_direction">wxBOTH</property>
<property name="growablecols">0,1</property>
<property name="growablerows">0,1</property>
- <property name="hgap">20</property>
+ <property name="hgap">0</property>
<property name="minimum_size"></property>
- <property name="name">gbContentsSizer</property>
- <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
+ <property name="name">fgSizerContents</property>
+ <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_ALL</property>
<property name="permission">none</property>
- <property name="vgap">10</property>
- <object class="gbsizeritem" expanded="1">
+ <property name="rows">0</property>
+ <property name="vgap">0</property>
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="colspan">1</property>
- <property name="column">0</property>
<property name="flag">wxEXPAND</property>
- <property name="row">0</property>
- <property name="rowspan">2</property>
+ <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
- <property name="name">bSizer2</property>
+ <property name="name">bSizerComponents</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
@@ -150,8 +146,8 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxRIGHT|wxLEFT</property>
- <property name="proportion">0</property>
+ <property name="flag">wxALIGN_CENTER|wxALIGN_CENTER_HORIZONTAL|wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+ <property name="proportion">1</property>
<object class="wxGrid" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@@ -207,7 +203,7 @@
<property name="margin_width">0</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
- <property name="maximum_size">-1,-1</property>
+ <property name="maximum_size">-1,300</property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
@@ -238,13 +234,10 @@
</object>
</object>
</object>
- <object class="gbsizeritem" expanded="1">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="colspan">1</property>
- <property name="column">1</property>
<property name="flag">wxEXPAND</property>
- <property name="row">0</property>
- <property name="rowspan">1</property>
+ <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerPads</property>
@@ -313,8 +306,8 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
- <property name="proportion">0</property>
+ <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+ <property name="proportion">1</property>
<object class="wxGrid" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@@ -401,13 +394,10 @@
</object>
</object>
</object>
- <object class="gbsizeritem" expanded="1">
+ <object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="colspan">1</property>
- <property name="column">1</property>
<property name="flag">wxEXPAND</property>
- <property name="row">1</property>
- <property name="rowspan">1</property>
+ <property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerBrdSize</property>
@@ -476,8 +466,8 @@
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
- <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
- <property name="proportion">0</property>
+ <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+ <property name="proportion">1</property>
<object class="wxGrid" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
@@ -564,6 +554,166 @@
</object>
</object>
</object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxEXPAND</property>
+ <property name="proportion">1</property>
+ <object class="wxBoxSizer" expanded="1">
+ <property name="minimum_size"></property>
+ <property name="name">bSizerVias</property>
+ <property name="orient">wxVERTICAL</property>
+ <property name="permission">none</property>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxALL</property>
+ <property name="proportion">0</property>
+ <object class="wxStaticText" expanded="1">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label">Vias</property>
+ <property name="markup">0</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size"></property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">viasLabel</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="style"></property>
+ <property name="subclass">; ; forward_declare</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style"></property>
+ <property name="wrap">-1</property>
+ </object>
+ </object>
+ <object class="sizeritem" expanded="1">
+ <property name="border">5</property>
+ <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT</property>
+ <property name="proportion">1</property>
+ <object class="wxGrid" expanded="1">
+ <property name="BottomDockable">1</property>
+ <property name="LeftDockable">1</property>
+ <property name="RightDockable">1</property>
+ <property name="TopDockable">1</property>
+ <property name="aui_layer"></property>
+ <property name="aui_name"></property>
+ <property name="aui_position"></property>
+ <property name="aui_row"></property>
+ <property name="autosize_cols">0</property>
+ <property name="autosize_rows">0</property>
+ <property name="best_size"></property>
+ <property name="bg"></property>
+ <property name="caption"></property>
+ <property name="caption_visible">1</property>
+ <property name="cell_bg"></property>
+ <property name="cell_font"></property>
+ <property name="cell_horiz_alignment">wxALIGN_CENTER</property>
+ <property name="cell_text"></property>
+ <property name="cell_vert_alignment">wxALIGN_TOP</property>
+ <property name="center_pane">0</property>
+ <property name="close_button">1</property>
+ <property name="col_label_horiz_alignment">wxALIGN_CENTER</property>
+ <property name="col_label_size">0</property>
+ <property name="col_label_values"></property>
+ <property name="col_label_vert_alignment">wxALIGN_CENTER</property>
+ <property name="cols">2</property>
+ <property name="column_sizes"></property>
+ <property name="context_help"></property>
+ <property name="context_menu">1</property>
+ <property name="default_pane">0</property>
+ <property name="dock">Dock</property>
+ <property name="dock_fixed">0</property>
+ <property name="docking">Left</property>
+ <property name="drag_col_move">0</property>
+ <property name="drag_col_size">1</property>
+ <property name="drag_grid_size">0</property>
+ <property name="drag_row_size">1</property>
+ <property name="editing">0</property>
+ <property name="enabled">1</property>
+ <property name="fg"></property>
+ <property name="floatable">1</property>
+ <property name="font"></property>
+ <property name="grid_line_color"></property>
+ <property name="grid_lines">0</property>
+ <property name="gripper">0</property>
+ <property name="hidden">0</property>
+ <property name="id">wxID_ANY</property>
+ <property name="label_bg"></property>
+ <property name="label_font">,90,90,-1,70,0</property>
+ <property name="label_text"></property>
+ <property name="margin_height">0</property>
+ <property name="margin_width">0</property>
+ <property name="max_size"></property>
+ <property name="maximize_button">0</property>
+ <property name="maximum_size">-1,300</property>
+ <property name="min_size"></property>
+ <property name="minimize_button">0</property>
+ <property name="minimum_size"></property>
+ <property name="moveable">1</property>
+ <property name="name">m_gridVias</property>
+ <property name="pane_border">1</property>
+ <property name="pane_position"></property>
+ <property name="pane_size"></property>
+ <property name="permission">protected</property>
+ <property name="pin_button">1</property>
+ <property name="pos"></property>
+ <property name="resize">Resizable</property>
+ <property name="row_label_horiz_alignment">wxALIGN_CENTER</property>
+ <property name="row_label_size">0</property>
+ <property name="row_label_values"></property>
+ <property name="row_label_vert_alignment">wxALIGN_CENTER</property>
+ <property name="row_sizes"></property>
+ <property name="rows">4</property>
+ <property name="show">1</property>
+ <property name="size"></property>
+ <property name="subclass">; ; forward_declare</property>
+ <property name="toolbar_pane">0</property>
+ <property name="tooltip"></property>
+ <property name="window_extra_style"></property>
+ <property name="window_name"></property>
+ <property name="window_style">wxVSCROLL</property>
+ </object>
+ </object>
+ </object>
+ </object>
</object>
</object>
<object class="sizeritem" expanded="1">
@@ -628,7 +778,7 @@
<property name="border">10</property>
<property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
<property name="proportion">0</property>
- <object class="wxGridSizer" expanded="1">
+ <object class="wxGridSizer" expanded="0">
<property name="cols">2</property>
<property name="hgap">0</property>
<property name="minimum_size"></property>
@@ -636,11 +786,11 @@
<property name="permission">none</property>
<property name="rows">0</property>
<property name="vgap">0</property>
- <object class="sizeritem" expanded="1">
+ <object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
- <object class="wxCheckBox" expanded="1">
+ <object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@@ -701,11 +851,11 @@
<event name="OnCheckBox">checkboxClicked</event>
</object>
</object>
- <object class="sizeritem" expanded="1">
+ <object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
- <object class="wxCheckBox" expanded="1">
+ <object class="wxCheckBox" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
diff --git a/pcbnew/dialogs/dialog_board_statistics_base.h b/pcbnew/dialogs/dialog_board_statistics_base.h
index 4b31a4006..5b5f96f96 100644
--- a/pcbnew/dialogs/dialog_board_statistics_base.h
+++ b/pcbnew/dialogs/dialog_board_statistics_base.h
@@ -1,5 +1,5 @@
///////////////////////////////////////////////////////////////////////////
-// C++ code generated with wxFormBuilder (version Jul 10 2019)
+// C++ code generated with wxFormBuilder (version Jun 25 2019)
// http://www.wxformbuilder.org/
//
// PLEASE DO *NOT* EDIT THIS FILE!
@@ -19,7 +19,6 @@
#include <wx/settings.h>
#include <wx/grid.h>
#include <wx/sizer.h>
-#include <wx/gbsizer.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
#include <wx/button.h>
@@ -33,27 +32,29 @@
///////////////////////////////////////////////////////////////////////////////
class DIALOG_BOARD_STATISTICS_BASE : public DIALOG_SHIM
{
- private:
+ private:
- protected:
- wxGrid* m_gridComponents;
- wxGrid* m_gridPads;
- wxGrid* m_gridBoard;
- wxStaticLine* m_staticline1;
- wxCheckBox* m_checkBoxSubtractHoles;
- wxCheckBox* m_checkBoxExcludeComponentsNoPins;
- wxStaticLine* m_staticline2;
- wxStdDialogButtonSizer* m_sdbControlSizer;
- wxButton* m_sdbControlSizerOK;
+ protected:
+ wxGrid* m_gridComponents;
+ wxGrid* m_gridPads;
+ wxGrid* m_gridBoard;
+ wxStaticText* viasLabel;
+ wxGrid* m_gridVias;
+ wxStaticLine* m_staticline1;
+ wxCheckBox* m_checkBoxSubtractHoles;
+ wxCheckBox* m_checkBoxExcludeComponentsNoPins;
+ wxStaticLine* m_staticline2;
+ wxStdDialogButtonSizer* m_sdbControlSizer;
+ wxButton* m_sdbControlSizerOK;
- // Virtual event handlers, overide them in your derived class
- virtual void checkboxClicked( wxCommandEvent& event ) { event.Skip(); }
+ // Virtual event handlers, overide them in your derived class
+ virtual void checkboxClicked( wxCommandEvent& event ) { event.Skip(); }
- public:
+ public:
- DIALOG_BOARD_STATISTICS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Board Statistics"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
- ~DIALOG_BOARD_STATISTICS_BASE();
+ DIALOG_BOARD_STATISTICS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Board Statistics"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE );
+ ~DIALOG_BOARD_STATISTICS_BASE();
};
--------------2.22.0--
Follow ups
References