DIALOG_BOARD_STATISTICS modifications and fixes - added vias information to dialog - added "save txt report" feature - some code cleanup and readability fixes - fixed issue with dialog moving when checkbox clicked - now dialog saves checkboxes state
This commit is contained in:
parent
dc69cac298
commit
a6b2a44fd6
|
@ -25,45 +25,61 @@
|
|||
|
||||
#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
|
||||
|
||||
/**
|
||||
* Struct containing the dialog last saved state
|
||||
*/
|
||||
struct DIALOG_BOARD_STATISTICS_SAVED_STATE
|
||||
{
|
||||
DIALOG_BOARD_STATISTICS_SAVED_STATE()
|
||||
: excludeNoPins( false ),
|
||||
subtractHoles( false ),
|
||||
saveReportInitialized(false)
|
||||
{
|
||||
}
|
||||
|
||||
// Flags to remember last checkboxes state
|
||||
bool excludeNoPins;
|
||||
bool subtractHoles;
|
||||
|
||||
// Variables to save last report file name and folder
|
||||
bool saveReportInitialized;
|
||||
wxString saveReportFolder;
|
||||
wxString saveReportName;
|
||||
};
|
||||
|
||||
static DIALOG_BOARD_STATISTICS_SAVED_STATE s_savedDialogState;
|
||||
|
||||
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_savedDialogState.excludeNoPins );
|
||||
m_checkBoxSubtractHoles->SetValue( s_savedDialogState.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 +87,27 @@ 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 );
|
||||
}
|
||||
|
||||
wxFileName fn = m_parentFrame->GetBoard()->GetFileName();
|
||||
if( !s_savedDialogState.saveReportInitialized )
|
||||
{
|
||||
fn.SetName( fn.GetName() + "_report" );
|
||||
fn.SetExt( "txt" );
|
||||
s_savedDialogState.saveReportName = fn.GetFullName();
|
||||
s_savedDialogState.saveReportFolder = wxPathOnly( Prj().GetProjectFullName() );
|
||||
s_savedDialogState.saveReportInitialized = true;
|
||||
}
|
||||
}
|
||||
|
||||
void DIALOG_BOARD_STATISTICS::refreshItemsTypes()
|
||||
|
@ -89,8 +126,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 +141,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 +161,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 +197,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;
|
||||
|
@ -189,6 +259,11 @@ void DIALOG_BOARD_STATISTICS::getDataFromPCB()
|
|||
}
|
||||
}
|
||||
|
||||
if( GetUserUnits() == INCHES )
|
||||
m_boardArea /= ( IU_PER_MILS * IU_PER_MILS * 1000000 );
|
||||
else
|
||||
m_boardArea /= ( IU_PER_MM * IU_PER_MM );
|
||||
|
||||
if( boundingBoxCreated )
|
||||
{
|
||||
bbox.Merge( outline.BBox() );
|
||||
|
@ -210,13 +285,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 +315,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 +326,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 +335,152 @@ 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_savedDialogState.excludeNoPins = m_checkBoxExcludeComponentsNoPins->GetValue();
|
||||
s_savedDialogState.subtractHoles = m_checkBoxSubtractHoles->GetValue();
|
||||
refreshItemsTypes();
|
||||
getDataFromPCB();
|
||||
updateWidets();
|
||||
Layout();
|
||||
Fit();
|
||||
}
|
||||
|
||||
void DIALOG_BOARD_STATISTICS::saveReportClicked( wxCommandEvent& event )
|
||||
{
|
||||
FILE* outFile;
|
||||
wxString msg;
|
||||
wxString boardName;
|
||||
|
||||
wxFileName fn = m_parentFrame->GetBoard()->GetFileName();
|
||||
boardName = fn.GetName();
|
||||
wxFileDialog saveFileDialog( this, _( "Save Report File" ), s_savedDialogState.saveReportFolder,
|
||||
s_savedDialogState.saveReportName, _( "text files (*.txt)|*.txt" ),
|
||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
|
||||
|
||||
if( saveFileDialog.ShowModal() == wxID_CANCEL )
|
||||
return;
|
||||
|
||||
s_savedDialogState.saveReportFolder = wxPathOnly( saveFileDialog.GetPath() );
|
||||
s_savedDialogState.saveReportName = saveFileDialog.GetFilename();
|
||||
|
||||
outFile = wxFopen( saveFileDialog.GetPath(), wxT( "wt" ) );
|
||||
|
||||
if( outFile == NULL )
|
||||
{
|
||||
msg.Printf( _( "Unable to create file \"%s\"" ), GetChars( saveFileDialog.GetPath() ) );
|
||||
DisplayErrorMessage( this, msg );
|
||||
return;
|
||||
}
|
||||
msg << _( "PCB statistics report\n" );
|
||||
msg << _( "Date: " ) << wxDateTime::Now().Format() << "\n";
|
||||
msg << _( "Project: " ) << Prj().GetProjectName() << "\n";
|
||||
msg << _( "Board name: " ) << boardName << "\n";
|
||||
|
||||
msg << "\n";
|
||||
msg << "Board\n";
|
||||
|
||||
if( m_hasOutline )
|
||||
{
|
||||
msg << _( "Width: " )
|
||||
<< MessageTextFromValue( m_parentFrame->GetUserUnits(), m_boardWidth, false ) << "\n";
|
||||
msg << _( "Height: " )
|
||||
<< MessageTextFromValue( m_parentFrame->GetUserUnits(), m_boardHeight, false ) << "\n";
|
||||
msg << _( "Area: " )
|
||||
<< wxString::Format( wxT( "%.3f %s²" ), m_boardArea,
|
||||
GetAbbreviatedUnitsLabel( GetUserUnits(), false ) )
|
||||
<< "\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
msg << _( "Width: " ) << _( "unknown" ) << "\n";
|
||||
msg << _( "Height: " ) << _( "unknown" ) << "\n";
|
||||
msg << _( "Area: " ) << _( "unknown" ) << "\n";
|
||||
}
|
||||
|
||||
msg << "\n";
|
||||
msg << "Pads\n";
|
||||
for( auto& type : m_padsTypes )
|
||||
msg << type.title << " " << type.qty << "\n";
|
||||
|
||||
msg << "\n";
|
||||
msg << "Vias\n";
|
||||
for( auto& type : m_viasTypes )
|
||||
msg << type.title << " " << type.qty << "\n";
|
||||
|
||||
// We will save data about components in the table.
|
||||
// We have to calculate column widths
|
||||
size_t colsWidth[4];
|
||||
wxString columns[4] = { "", _( "Front Side" ), _( "Back Side" ), _( "Total" ) };
|
||||
wxString tmp;
|
||||
for( int i = 0; i < 4; i++ )
|
||||
{
|
||||
colsWidth[i] = columns[i].size();
|
||||
}
|
||||
int frontTotal = 0;
|
||||
int backTotal = 0;
|
||||
for( auto& type : m_componentsTypes )
|
||||
{
|
||||
// Get maximum width for left label column
|
||||
colsWidth[0] = std::max( type.title.size(), colsWidth[0] );
|
||||
frontTotal += type.frontSideQty;
|
||||
backTotal += type.backSideQty;
|
||||
}
|
||||
|
||||
// Get maximum width for other columns
|
||||
tmp.Printf( "%d", frontTotal );
|
||||
colsWidth[1] = std::max( tmp.size(), colsWidth[1] );
|
||||
tmp.Printf( "%d", backTotal );
|
||||
colsWidth[2] = std::max( tmp.size(), colsWidth[2] );
|
||||
tmp.Printf( "%d", frontTotal + backTotal );
|
||||
colsWidth[3] = std::max( tmp.size(), colsWidth[3] );
|
||||
|
||||
//Write components amount to file
|
||||
msg << "\n";
|
||||
msg << _( "Components\n" );
|
||||
tmp.Printf( "%-*s | %*s | %*s | %*s |\n", colsWidth[0], columns[0], colsWidth[1], columns[1],
|
||||
colsWidth[2], columns[2], colsWidth[3], columns[3] );
|
||||
msg += tmp;
|
||||
for( auto& type : m_componentsTypes )
|
||||
{
|
||||
tmp.Printf( "%-*s | %*d | %*d | %*d |\n", colsWidth[0], type.title, colsWidth[1],
|
||||
type.frontSideQty, colsWidth[2], type.backSideQty, colsWidth[3],
|
||||
type.backSideQty + type.frontSideQty );
|
||||
msg += tmp;
|
||||
}
|
||||
tmp.Printf( "%-*s | %*d | %*d | %*d |\n", colsWidth[0], _( "Total:" ), colsWidth[1], frontTotal,
|
||||
colsWidth[2], backTotal, colsWidth[3], frontTotal + backTotal );
|
||||
msg += tmp;
|
||||
|
||||
int success = fprintf( outFile, "%s", TO_UTF8( msg ) );
|
||||
if( success < 0 )
|
||||
{
|
||||
msg.Printf( _( "Error writing to file \"%s\"" ), GetChars( saveFileDialog.GetPath() ) );
|
||||
DisplayErrorMessage( this, msg );
|
||||
}
|
||||
fclose( outFile );
|
||||
}
|
||||
|
||||
DIALOG_BOARD_STATISTICS::~DIALOG_BOARD_STATISTICS()
|
||||
|
|
|
@ -30,11 +30,14 @@
|
|||
#include <base_units.h>
|
||||
#include <class_board.h>
|
||||
#include <class_drawsegment.h>
|
||||
#include <class_track.h>
|
||||
#include <confirm.h>
|
||||
#include <dialog_board_statistics_base.h>
|
||||
#include <pad_shapes.h>
|
||||
#include <pcb_base_frame.h>
|
||||
#include <pcb_edit_frame.h>
|
||||
|
||||
#include <project.h>
|
||||
#include <wx/datetime.h>
|
||||
|
||||
/**
|
||||
* Class DIALOG_BOARD_STATISTIC
|
||||
|
@ -45,23 +48,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 +89,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,15 +98,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 checkboxClicked( wxCommandEvent& event ) override;
|
||||
void updateWidets();
|
||||
|
||||
private:
|
||||
PCB_EDIT_FRAME* m_parentFrame;
|
||||
|
@ -116,6 +120,13 @@ 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;
|
||||
|
||||
///> Save board statistics to a file
|
||||
void saveReportClicked( wxCommandEvent& event ) override;
|
||||
void checkboxClicked( wxCommandEvent& event ) override;
|
||||
};
|
||||
|
||||
#endif // __DIALOG_BOARD_STATISTICS_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!
|
||||
|
@ -11,183 +11,237 @@
|
|||
|
||||
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 );
|
||||
fgSizerContents->Add( bSizerComponents, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizerPads;
|
||||
bSizerPads = new wxBoxSizer( wxVERTICAL );
|
||||
wxBoxSizer* bSizerPads;
|
||||
bSizerPads = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxStaticText* padsLabel;
|
||||
padsLabel = new wxStaticText( this, wxID_ANY, _("Pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
padsLabel->Wrap( -1 );
|
||||
bSizerPads->Add( padsLabel, 0, wxALL, 5 );
|
||||
wxStaticText* padsLabel;
|
||||
padsLabel = new wxStaticText( this, wxID_ANY, _("Pads"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
padsLabel->Wrap( -1 );
|
||||
bSizerPads->Add( padsLabel, 0, wxALL, 5 );
|
||||
|
||||
m_gridPads = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
|
||||
m_gridPads = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
|
||||
|
||||
// Grid
|
||||
m_gridPads->CreateGrid( 5, 2 );
|
||||
m_gridPads->EnableEditing( false );
|
||||
m_gridPads->EnableGridLines( false );
|
||||
m_gridPads->EnableDragGridSize( false );
|
||||
m_gridPads->SetMargins( 0, 0 );
|
||||
// Grid
|
||||
m_gridPads->CreateGrid( 5, 2 );
|
||||
m_gridPads->EnableEditing( false );
|
||||
m_gridPads->EnableGridLines( false );
|
||||
m_gridPads->EnableDragGridSize( false );
|
||||
m_gridPads->SetMargins( 0, 0 );
|
||||
|
||||
// Columns
|
||||
m_gridPads->EnableDragColMove( false );
|
||||
m_gridPads->EnableDragColSize( true );
|
||||
m_gridPads->SetColLabelSize( 0 );
|
||||
m_gridPads->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
// Columns
|
||||
m_gridPads->EnableDragColMove( false );
|
||||
m_gridPads->EnableDragColSize( true );
|
||||
m_gridPads->SetColLabelSize( 0 );
|
||||
m_gridPads->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
|
||||
// Rows
|
||||
m_gridPads->EnableDragRowSize( true );
|
||||
m_gridPads->SetRowLabelSize( 0 );
|
||||
m_gridPads->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
|
||||
// Rows
|
||||
m_gridPads->EnableDragRowSize( true );
|
||||
m_gridPads->SetRowLabelSize( 0 );
|
||||
m_gridPads->SetRowLabelAlignment( wxALIGN_RIGHT, wxALIGN_CENTER );
|
||||
|
||||
// Label Appearance
|
||||
m_gridPads->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
// Label Appearance
|
||||
m_gridPads->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
|
||||
// Cell Defaults
|
||||
m_gridPads->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
|
||||
m_gridPads->SetMaxSize( wxSize( -1,300 ) );
|
||||
// Cell Defaults
|
||||
m_gridPads->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
|
||||
m_gridPads->SetMaxSize( wxSize( -1,300 ) );
|
||||
|
||||
bSizerPads->Add( m_gridPads, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
bSizerPads->Add( m_gridPads, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
||||
gbContentsSizer->Add( bSizerPads, wxGBPosition( 0, 1 ), wxGBSpan( 1, 1 ), wxEXPAND, 5 );
|
||||
fgSizerContents->Add( bSizerPads, 1, wxEXPAND, 5 );
|
||||
|
||||
wxBoxSizer* bSizerBrdSize;
|
||||
bSizerBrdSize = new wxBoxSizer( wxVERTICAL );
|
||||
wxBoxSizer* bSizerBrdSize;
|
||||
bSizerBrdSize = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
wxStaticText* boardLabel;
|
||||
boardLabel = new wxStaticText( this, wxID_ANY, _("Board Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
boardLabel->Wrap( -1 );
|
||||
bSizerBrdSize->Add( boardLabel, 0, wxALL, 5 );
|
||||
wxStaticText* boardLabel;
|
||||
boardLabel = new wxStaticText( this, wxID_ANY, _("Board Size"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
boardLabel->Wrap( -1 );
|
||||
bSizerBrdSize->Add( boardLabel, 0, wxALL, 5 );
|
||||
|
||||
m_gridBoard = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
|
||||
m_gridBoard = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
|
||||
|
||||
// Grid
|
||||
m_gridBoard->CreateGrid( 3, 2 );
|
||||
m_gridBoard->EnableEditing( false );
|
||||
m_gridBoard->EnableGridLines( false );
|
||||
m_gridBoard->EnableDragGridSize( false );
|
||||
m_gridBoard->SetMargins( 0, 0 );
|
||||
// Grid
|
||||
m_gridBoard->CreateGrid( 3, 2 );
|
||||
m_gridBoard->EnableEditing( false );
|
||||
m_gridBoard->EnableGridLines( false );
|
||||
m_gridBoard->EnableDragGridSize( false );
|
||||
m_gridBoard->SetMargins( 0, 0 );
|
||||
|
||||
// Columns
|
||||
m_gridBoard->EnableDragColMove( false );
|
||||
m_gridBoard->EnableDragColSize( true );
|
||||
m_gridBoard->SetColLabelSize( 0 );
|
||||
m_gridBoard->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
// Columns
|
||||
m_gridBoard->EnableDragColMove( false );
|
||||
m_gridBoard->EnableDragColSize( true );
|
||||
m_gridBoard->SetColLabelSize( 0 );
|
||||
m_gridBoard->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
|
||||
// Rows
|
||||
m_gridBoard->EnableDragRowSize( true );
|
||||
m_gridBoard->SetRowLabelSize( 0 );
|
||||
m_gridBoard->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
// Rows
|
||||
m_gridBoard->EnableDragRowSize( true );
|
||||
m_gridBoard->SetRowLabelSize( 0 );
|
||||
m_gridBoard->SetRowLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
|
||||
// Label Appearance
|
||||
m_gridBoard->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
// Label Appearance
|
||||
m_gridBoard->SetLabelFont( wxFont( wxNORMAL_FONT->GetPointSize(), wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
|
||||
|
||||
// Cell Defaults
|
||||
m_gridBoard->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
|
||||
m_gridBoard->SetMaxSize( wxSize( -1,300 ) );
|
||||
// Cell Defaults
|
||||
m_gridBoard->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
|
||||
m_gridBoard->SetMaxSize( wxSize( -1,300 ) );
|
||||
|
||||
bSizerBrdSize->Add( m_gridBoard, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||
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 );
|
||||
|
||||
wxBoxSizer* bSizerVias;
|
||||
bSizerVias = new wxBoxSizer( wxVERTICAL );
|
||||
|
||||
viasLabel = new wxStaticText( this, wxID_ANY, _("Vias"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
viasLabel->Wrap( -1 );
|
||||
bSizerVias->Add( viasLabel, 0, wxALL, 5 );
|
||||
|
||||
m_gridVias = new wxGrid( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxVSCROLL );
|
||||
|
||||
// Grid
|
||||
m_gridVias->CreateGrid( 4, 2 );
|
||||
m_gridVias->EnableEditing( false );
|
||||
m_gridVias->EnableGridLines( false );
|
||||
m_gridVias->EnableDragGridSize( false );
|
||||
m_gridVias->SetMargins( 0, 0 );
|
||||
|
||||
// Columns
|
||||
m_gridVias->EnableDragColMove( false );
|
||||
m_gridVias->EnableDragColSize( true );
|
||||
m_gridVias->SetColLabelSize( 0 );
|
||||
m_gridVias->SetColLabelAlignment( wxALIGN_CENTER, wxALIGN_CENTER );
|
||||
|
||||
// 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 ) );
|
||||
|
||||
// Cell Defaults
|
||||
m_gridVias->SetDefaultCellAlignment( wxALIGN_CENTER, wxALIGN_TOP );
|
||||
m_gridVias->SetMaxSize( wxSize( -1,300 ) );
|
||||
|
||||
bSizerVias->Add( m_gridVias, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 );
|
||||
|
||||
|
||||
gbContentsSizer->AddGrowableCol( 0 );
|
||||
gbContentsSizer->AddGrowableCol( 1 );
|
||||
gbContentsSizer->AddGrowableRow( 0 );
|
||||
gbContentsSizer->AddGrowableRow( 1 );
|
||||
|
||||
bMainBoxSizer->Add( gbContentsSizer, 1, wxEXPAND|wxALL, 10 );
|
||||
|
||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bMainBoxSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
|
||||
|
||||
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 );
|
||||
fgSizerContents->Add( bSizerVias, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
bMainBoxSizer->Add( gOptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT, 10 );
|
||||
bMainBoxSizer->Add( fgSizerContents, 1, 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_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bMainBoxSizer->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 10 );
|
||||
|
||||
m_sdbControlSizer = new wxStdDialogButtonSizer();
|
||||
m_sdbControlSizerOK = new wxButton( this, wxID_OK );
|
||||
m_sdbControlSizer->AddButton( m_sdbControlSizerOK );
|
||||
m_sdbControlSizer->Realize();
|
||||
wxGridSizer* gOptionsSizer;
|
||||
gOptionsSizer = new wxGridSizer( 0, 2, 0, 0 );
|
||||
|
||||
bMainBoxSizer->Add( m_sdbControlSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
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 );
|
||||
|
||||
|
||||
this->SetSizer( bMainBoxSizer );
|
||||
this->Layout();
|
||||
bMainBoxSizer->Fit( this );
|
||||
bMainBoxSizer->Add( gOptionsSizer, 0, wxEXPAND|wxLEFT|wxRIGHT, 10 );
|
||||
|
||||
this->Centre( wxBOTH );
|
||||
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||
bMainBoxSizer->Add( m_staticline2, 0, wxEXPAND|wxTOP|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 );
|
||||
wxBoxSizer* bSizer6;
|
||||
bSizer6 = new wxBoxSizer( wxHORIZONTAL );
|
||||
|
||||
|
||||
bSizer6->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
m_buttonSaveReport = new wxButton( this, wxID_ANY, _("Save report"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||
bSizer6->Add( m_buttonSaveReport, 0, wxALL, 5 );
|
||||
|
||||
m_sdbControlSizer = new wxStdDialogButtonSizer();
|
||||
m_sdbControlSizerOK = new wxButton( this, wxID_OK );
|
||||
m_sdbControlSizer->AddButton( m_sdbControlSizerOK );
|
||||
m_sdbControlSizer->Realize();
|
||||
|
||||
bSizer6->Add( m_sdbControlSizer, 0, wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP, 5 );
|
||||
|
||||
|
||||
bMainBoxSizer->Add( bSizer6, 0, wxEXPAND, 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 );
|
||||
m_buttonSaveReport->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::saveReportClicked ), 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 );
|
||||
m_buttonSaveReport->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BOARD_STATISTICS_BASE::saveReportClicked ), NULL, this );
|
||||
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
@ -828,20 +978,114 @@
|
|||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||
<property name="Apply">0</property>
|
||||
<property name="Cancel">0</property>
|
||||
<property name="ContextHelp">0</property>
|
||||
<property name="Help">0</property>
|
||||
<property name="No">0</property>
|
||||
<property name="OK">1</property>
|
||||
<property name="Save">0</property>
|
||||
<property name="Yes">0</property>
|
||||
<object class="wxBoxSizer" expanded="1">
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">m_sdbControlSizer</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="name">bSizer6</property>
|
||||
<property name="orient">wxHORIZONTAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="spacer" expanded="1">
|
||||
<property name="height">0</property>
|
||||
<property name="permission">protected</property>
|
||||
<property name="width">0</property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxButton" 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="bitmap"></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="current"></property>
|
||||
<property name="default">0</property>
|
||||
<property name="default_pane">0</property>
|
||||
<property name="disabled"></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="focus"></property>
|
||||
<property name="font"></property>
|
||||
<property name="gripper">0</property>
|
||||
<property name="hidden">0</property>
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Save report</property>
|
||||
<property name="margins"></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">m_buttonSaveReport</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="position"></property>
|
||||
<property name="pressed"></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="validator_data_type"></property>
|
||||
<property name="validator_style">wxFILTER_NONE</property>
|
||||
<property name="validator_type">wxDefaultValidator</property>
|
||||
<property name="validator_variable"></property>
|
||||
<property name="window_extra_style"></property>
|
||||
<property name="window_name"></property>
|
||||
<property name="window_style"></property>
|
||||
<event name="OnButtonClick">saveReportClicked</event>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALIGN_RIGHT|wxBOTTOM|wxLEFT|wxRIGHT|wxTOP</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||
<property name="Apply">0</property>
|
||||
<property name="Cancel">0</property>
|
||||
<property name="ContextHelp">0</property>
|
||||
<property name="Help">0</property>
|
||||
<property name="No">0</property>
|
||||
<property name="OK">1</property>
|
||||
<property name="Save">0</property>
|
||||
<property name="Yes">0</property>
|
||||
<property name="minimum_size"></property>
|
||||
<property name="name">m_sdbControlSizer</property>
|
||||
<property name="permission">protected</property>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
</object>
|
||||
|
|
|
@ -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,9 +19,11 @@
|
|||
#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/bitmap.h>
|
||||
#include <wx/image.h>
|
||||
#include <wx/icon.h>
|
||||
#include <wx/button.h>
|
||||
#include <wx/dialog.h>
|
||||
|
||||
|
@ -33,27 +35,31 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
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;
|
||||
wxButton* m_buttonSaveReport;
|
||||
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(); }
|
||||
virtual void saveReportClicked( 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();
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue