2007-06-05 12:10:51 +00:00
/////////////////////////////////////////////////////////////////////////////
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
// Name: dialog_build_BOM.cpp
2008-02-29 15:31:32 +00:00
// Purpose:
2007-06-05 12:10:51 +00:00
// Author: jean-pierre Charras
2008-02-29 15:31:32 +00:00
// Modified by:
2007-06-05 12:10:51 +00:00
// Created: 01/15/06 18:18:44
2008-02-29 15:31:32 +00:00
// RCS-ID:
2007-06-05 12:10:51 +00:00
// Copyright: GNU license
2008-02-29 15:31:32 +00:00
// Licence:
2007-06-05 12:10:51 +00:00
/////////////////////////////////////////////////////////////////////////////
// Generated by DialogBlocks (unregistered), 01/15/06 18:18:44
2008-02-29 15:31:32 +00:00
# if defined (__GNUG__) && !defined (__APPLE__)
2007-06-05 12:10:51 +00:00
# pragma implementation "dialog_build_BOM.h"
# endif
// For compilers that support precompilation, includes "wx/wx.h".
# include "wx/wxprec.h"
# ifdef __BORLANDC__
# pragma hdrstop
# endif
# ifndef WX_PRECOMP
# include "wx/wx.h"
# endif
# include "fctsys.h"
////@begin includes
////@end includes
# include "common.h"
# include "program.h"
# include "libcmp.h"
# include "general.h"
# include "netlist.h"
# include "dialog_build_BOM.h"
# include "protos.h"
////@begin XPM images
////@end XPM images
/* Local variables */
2008-02-29 15:31:32 +00:00
static bool s_ListByRef = TRUE ;
static bool s_ListByValue = TRUE ;
static bool s_ListWithSubCmponents ;
static bool s_ListHierarchicalPinByName ;
static bool s_ListBySheet ;
static bool s_BrowsList ;
static int s_OutputFormOpt ;
static int s_OutputSeparatorOpt ;
static bool s_Add_FpField_state ;
static bool s_Add_F1_state ;
static bool s_Add_F2_state ;
static bool s_Add_F3_state ;
static bool s_Add_F4_state ;
static bool s_Add_F5_state ;
static bool s_Add_F6_state ;
static bool s_Add_F7_state ;
static bool s_Add_F8_state ;
static bool * s_AddFieldList [ ] = {
& s_Add_FpField_state ,
& s_Add_F1_state ,
& s_Add_F2_state ,
& s_Add_F3_state ,
& s_Add_F4_state ,
& s_Add_F5_state ,
& s_Add_F6_state ,
& s_Add_F7_state ,
& s_Add_F8_state ,
NULL
2007-07-02 12:48:10 +00:00
} ;
2008-02-29 15:31:32 +00:00
# define OPTION_BOM_FORMAT wxT( "BomFormat" )
# define OPTION_BOM_SEPARATOR wxT( "BomExportSeparator" )
# define OPTION_BOM_ADD_FIELD wxT( "BomAddField" )
2007-07-02 12:48:10 +00:00
/* list of separators used in bom export to spreadsheet
2007-10-13 05:56:37 +00:00
* ( selected by s_OutputSeparatorOpt , and s_OutputSeparatorOpt radiobox )
*/
2007-07-02 12:48:10 +00:00
static char s_ExportSeparator [ ] = ( " \t ;,. " ) ;
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* WinEDA_Build_BOM_Frame type definition
*/
IMPLEMENT_DYNAMIC_CLASS ( WinEDA_Build_BOM_Frame , wxDialog )
/*!
* WinEDA_Build_BOM_Frame event table definition
*/
BEGIN_EVENT_TABLE ( WinEDA_Build_BOM_Frame , wxDialog )
////@begin WinEDA_Build_BOM_Frame event table entries
2008-04-30 11:52:34 +00:00
EVT_RADIOBOX ( ID_RADIOBOX_SELECT_FORMAT , WinEDA_Build_BOM_Frame : : OnRadioboxSelectFormatSelected )
2007-07-02 12:48:10 +00:00
2008-04-30 11:52:34 +00:00
EVT_BUTTON ( ID_CREATE_LIST , WinEDA_Build_BOM_Frame : : OnCreateListClick )
2007-10-13 05:56:37 +00:00
2008-04-30 11:52:34 +00:00
EVT_BUTTON ( wxID_OK , WinEDA_Build_BOM_Frame : : OnOkClick )
2007-06-05 12:10:51 +00:00
2008-04-30 11:52:34 +00:00
EVT_BUTTON ( wxID_CANCEL , WinEDA_Build_BOM_Frame : : OnCancelClick )
2007-10-13 05:56:37 +00:00
2008-04-30 11:52:34 +00:00
EVT_BUTTON ( wxID_APPLY , WinEDA_Build_BOM_Frame : : OnApplyClick )
2007-06-05 12:10:51 +00:00
////@end WinEDA_Build_BOM_Frame event table entries
END_EVENT_TABLE ( )
/*!
* WinEDA_Build_BOM_Frame constructors
*/
2008-02-29 15:31:32 +00:00
WinEDA_Build_BOM_Frame : : WinEDA_Build_BOM_Frame ( )
{
}
2007-06-05 12:10:51 +00:00
WinEDA_Build_BOM_Frame : : WinEDA_Build_BOM_Frame ( WinEDA_DrawFrame * parent ,
2008-02-29 15:31:32 +00:00
wxWindowID id ,
const wxString & caption ,
const wxPoint & pos ,
const wxSize & size ,
long style )
2007-06-05 12:10:51 +00:00
{
2008-02-29 15:31:32 +00:00
m_Parent = parent ;
/* Get options */
s_OutputFormOpt = m_Parent - > m_Parent - > m_EDA_Config - > Read ( OPTION_BOM_FORMAT , ( long ) 0 ) ;
s_OutputSeparatorOpt = m_Parent - > m_Parent - > m_EDA_Config - > Read ( OPTION_BOM_SEPARATOR , ( long ) 0 ) ;
long addfields = m_Parent - > m_Parent - > m_EDA_Config - > Read ( OPTION_BOM_ADD_FIELD , ( long ) 0 ) ;
for ( int ii = 0 , bitmask = 1 ; s_AddFieldList [ ii ] ! = NULL ; ii + + )
{
if ( ( addfields & bitmask ) )
* s_AddFieldList [ ii ] = true ;
else
* s_AddFieldList [ ii ] = false ;
bitmask < < = 1 ;
}
Create ( parent , id , caption , pos , size , style ) ;
m_OutputFormCtrl - > SetSelection ( s_OutputFormOpt ) ;
m_OutputSeparatorCtrl - > SetSelection ( s_OutputSeparatorOpt ) ;
2008-05-15 15:59:11 +00:00
2008-05-15 13:29:59 +00:00
// Enable/disable options:
2008-02-29 15:31:32 +00:00
if ( s_OutputFormOpt = = 1 )
2008-05-15 13:29:59 +00:00
{
2008-02-29 15:31:32 +00:00
m_OutputSeparatorCtrl - > Enable ( true ) ;
2008-05-15 13:29:59 +00:00
m_ListCmpbyValItems - > Enable ( false ) ;
m_GenListLabelsbyVal - > Enable ( false ) ;
m_GenListLabelsbySheet - > Enable ( false ) ;
}
2008-02-29 15:31:32 +00:00
else
2008-05-15 13:29:59 +00:00
{
2008-02-29 15:31:32 +00:00
m_OutputSeparatorCtrl - > Enable ( false ) ;
2008-05-15 13:29:59 +00:00
m_ListCmpbyValItems - > Enable ( true ) ;
m_GenListLabelsbyVal - > Enable ( true ) ;
m_GenListLabelsbySheet - > Enable ( true ) ;
}
2007-06-05 12:10:51 +00:00
}
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* WinEDA_Build_BOM_Frame creator
*/
2008-02-29 15:31:32 +00:00
bool WinEDA_Build_BOM_Frame : : Create ( wxWindow * parent ,
wxWindowID id ,
const wxString & caption ,
const wxPoint & pos ,
const wxSize & size ,
long style )
2007-06-05 12:10:51 +00:00
{
////@begin WinEDA_Build_BOM_Frame member initialisation
2008-04-30 11:52:34 +00:00
m_ListCmpbyRefItems = NULL ;
m_ListSubCmpItems = NULL ;
m_ListCmpbyValItems = NULL ;
m_GenListLabelsbyVal = NULL ;
2007-06-05 12:10:51 +00:00
m_GenListLabelsbySheet = NULL ;
2008-04-30 11:52:34 +00:00
m_OutputFormCtrl = NULL ;
2007-07-02 12:48:10 +00:00
m_OutputSeparatorCtrl = NULL ;
m_GetListBrowser = NULL ;
2007-06-05 12:10:51 +00:00
m_FieldsToAppendListSizer = NULL ;
2007-10-30 20:40:08 +00:00
m_AddFootprintField = NULL ;
2007-06-05 12:10:51 +00:00
m_AddField1 = NULL ;
m_AddField2 = NULL ;
m_AddField3 = NULL ;
m_AddField4 = NULL ;
m_AddField5 = NULL ;
m_AddField6 = NULL ;
m_AddField7 = NULL ;
m_AddField8 = NULL ;
2008-04-30 11:52:34 +00:00
m_btClose = NULL ;
2007-06-05 12:10:51 +00:00
////@end WinEDA_Build_BOM_Frame member initialisation
////@begin WinEDA_Build_BOM_Frame creation
2008-04-30 11:52:34 +00:00
SetExtraStyle ( wxWS_EX_BLOCK_EVENTS ) ;
2007-06-05 12:10:51 +00:00
wxDialog : : Create ( parent , id , caption , pos , size , style ) ;
CreateControls ( ) ;
2008-04-30 11:52:34 +00:00
if ( GetSizer ( ) )
2007-06-05 12:10:51 +00:00
{
2008-04-30 11:52:34 +00:00
GetSizer ( ) - > SetSizeHints ( this ) ;
2007-06-05 12:10:51 +00:00
}
Centre ( ) ;
////@end WinEDA_Build_BOM_Frame creation
return TRUE ;
}
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* Control creation for WinEDA_Build_BOM_Frame
*/
void WinEDA_Build_BOM_Frame : : CreateControls ( )
2008-02-29 15:31:32 +00:00
{
SetFont ( * g_DialogFont ) ;
2007-06-05 12:10:51 +00:00
////@begin WinEDA_Build_BOM_Frame content construction
2008-04-30 11:52:34 +00:00
// Generated by DialogBlocks, 29/04/2008 20:58:26 (unregistered)
2007-06-05 12:10:51 +00:00
WinEDA_Build_BOM_Frame * itemDialog1 = this ;
2008-04-30 11:52:34 +00:00
wxBoxSizer * itemBoxSizer2 = new wxBoxSizer ( wxVERTICAL ) ;
itemDialog1 - > SetSizer ( itemBoxSizer2 ) ;
wxBoxSizer * itemBoxSizer3 = new wxBoxSizer ( wxHORIZONTAL ) ;
itemBoxSizer2 - > Add ( itemBoxSizer3 , 0 , wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT , 5 ) ;
wxBoxSizer * itemBoxSizer4 = new wxBoxSizer ( wxVERTICAL ) ;
itemBoxSizer3 - > Add ( itemBoxSizer4 , 0 , wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM , 5 ) ;
wxStaticBox * itemStaticBoxSizer5Static = new wxStaticBox ( itemDialog1 , wxID_ANY , _ ( " List items: " ) ) ;
wxStaticBoxSizer * itemStaticBoxSizer5 = new wxStaticBoxSizer ( itemStaticBoxSizer5Static , wxVERTICAL ) ;
itemBoxSizer4 - > Add ( itemStaticBoxSizer5 , 0 , wxGROW | wxALL , 5 ) ;
m_ListCmpbyRefItems = new wxCheckBox ( itemDialog1 , ID_CHECKBOX1 , _ ( " Components by Reference " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_ListCmpbyRefItems - > SetValue ( true ) ;
itemStaticBoxSizer5 - > Add ( m_ListCmpbyRefItems , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
m_ListSubCmpItems = new wxCheckBox ( itemDialog1 , ID_CHECKBOX2 , _ ( " Sub Components (i.e. U2A, U2B ...) " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_ListSubCmpItems - > SetValue ( false ) ;
itemStaticBoxSizer5 - > Add ( m_ListSubCmpItems , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
m_ListCmpbyValItems = new wxCheckBox ( itemDialog1 , ID_CHECKBOX3 , _ ( " Components by Value " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_ListCmpbyValItems - > SetValue ( true ) ;
itemStaticBoxSizer5 - > Add ( m_ListCmpbyValItems , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
m_GenListLabelsbyVal = new wxCheckBox ( itemDialog1 , ID_CHECKBOX4 , _ ( " Hierachy Pins by Name " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_GenListLabelsbyVal - > SetValue ( false ) ;
itemStaticBoxSizer5 - > Add ( m_GenListLabelsbyVal , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
m_GenListLabelsbySheet = new wxCheckBox ( itemDialog1 , ID_CHECKBOX5 , _ ( " Hierachy Pins by Sheets " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_GenListLabelsbySheet - > SetValue ( false ) ;
itemStaticBoxSizer5 - > Add ( m_GenListLabelsbySheet , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
wxArrayString m_OutputFormCtrlStrings ;
2008-04-30 11:52:34 +00:00
m_OutputFormCtrlStrings . Add ( _ ( " List " ) ) ;
m_OutputFormCtrlStrings . Add ( _ ( " Text for spreadsheet import " ) ) ;
m_OutputFormCtrl = new wxRadioBox ( itemDialog1 , ID_RADIOBOX_SELECT_FORMAT , _ ( " Output format: " ) , wxDefaultPosition , wxDefaultSize , m_OutputFormCtrlStrings , 1 , wxRA_SPECIFY_COLS ) ;
m_OutputFormCtrl - > SetSelection ( 0 ) ;
itemBoxSizer4 - > Add ( m_OutputFormCtrl , 0 , wxGROW | wxLEFT | wxRIGHT | wxTOP , 5 ) ;
2007-07-02 12:48:10 +00:00
wxArrayString m_OutputSeparatorCtrlStrings ;
2008-04-30 11:52:34 +00:00
m_OutputSeparatorCtrlStrings . Add ( _ ( " Tab " ) ) ;
m_OutputSeparatorCtrlStrings . Add ( _ ( " ; " ) ) ;
m_OutputSeparatorCtrlStrings . Add ( _ ( " , " ) ) ;
m_OutputSeparatorCtrl = new wxRadioBox ( itemDialog1 , ID_RADIOBOX_SEPARATOR , _ ( " Field separator for spreadsheet import: " ) , wxDefaultPosition , wxDefaultSize , m_OutputSeparatorCtrlStrings , 1 , wxRA_SPECIFY_ROWS ) ;
m_OutputSeparatorCtrl - > SetSelection ( 0 ) ;
itemBoxSizer4 - > Add ( m_OutputSeparatorCtrl , 0 , wxGROW | wxLEFT | wxRIGHT | wxBOTTOM , 5 ) ;
wxStaticBox * itemStaticBoxSizer13Static = new wxStaticBox ( itemDialog1 , wxID_ANY , _ ( " Options: " ) ) ;
wxStaticBoxSizer * itemStaticBoxSizer13 = new wxStaticBoxSizer ( itemStaticBoxSizer13Static , wxHORIZONTAL ) ;
itemBoxSizer4 - > Add ( itemStaticBoxSizer13 , 0 , wxGROW | wxALL , 5 ) ;
m_GetListBrowser = new wxCheckBox ( itemDialog1 , ID_CHECKBOX6 , _ ( " Launch list browser " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_GetListBrowser - > SetValue ( false ) ;
itemStaticBoxSizer13 - > Add ( m_GetListBrowser , 0 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
wxBoxSizer * itemBoxSizer15 = new wxBoxSizer ( wxVERTICAL ) ;
itemBoxSizer3 - > Add ( itemBoxSizer15 , 0 , wxALIGN_TOP | wxLEFT | wxTOP | wxBOTTOM , 5 ) ;
wxStaticBox * itemStaticBoxSizer16Static = new wxStaticBox ( itemDialog1 , wxID_ANY , _ ( " Fields to add: " ) ) ;
m_FieldsToAppendListSizer = new wxStaticBoxSizer ( itemStaticBoxSizer16Static , wxVERTICAL ) ;
itemBoxSizer15 - > Add ( m_FieldsToAppendListSizer , 0 , wxALIGN_LEFT | wxALL , 5 ) ;
m_AddFootprintField = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FOOTPRINT_FIELD , _ ( " Footprint " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddFootprintField - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddFootprintField , 0 , wxGROW | wxALL , 5 ) ;
m_AddField1 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD1 , _ ( " Field 1 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField1 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField1 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField2 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD2 , _ ( " Field 2 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField2 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField2 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField3 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD3 , _ ( " Field 3 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField3 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField3 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField4 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD4 , _ ( " Field 4 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField4 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField4 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField5 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD5 , _ ( " Field 5 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField5 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField5 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField6 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD6 , _ ( " Field 6 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField6 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField6 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField7 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD7 , _ ( " Field 7 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField7 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField7 , 0 , wxGROW | wxALL , 5 ) ;
m_AddField8 = new wxCheckBox ( itemDialog1 , ID_CHECKBOX_FIELD8 , _ ( " Field 8 " ) , wxDefaultPosition , wxDefaultSize , wxCHK_2STATE ) ;
m_AddField8 - > SetValue ( false ) ;
m_FieldsToAppendListSizer - > Add ( m_AddField8 , 0 , wxGROW | wxALL , 5 ) ;
itemBoxSizer15 - > Add ( 5 , 5 , 0 , wxGROW | wxALL , 10 ) ;
wxButton * itemButton27 = new wxButton ( itemDialog1 , ID_CREATE_LIST , _ ( " Create &List " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
2007-10-30 20:40:08 +00:00
itemButton27 - > SetDefault ( ) ;
2008-04-30 11:52:34 +00:00
itemButton27 - > SetForegroundColour ( wxColour ( 166 , 0 , 0 ) ) ;
itemBoxSizer15 - > Add ( itemButton27 , 0 , wxALIGN_CENTER_HORIZONTAL | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-04-30 11:52:34 +00:00
wxBoxSizer * itemBoxSizer28 = new wxBoxSizer ( wxHORIZONTAL ) ;
itemBoxSizer2 - > Add ( itemBoxSizer28 , 0 , wxALIGN_CENTER_HORIZONTAL | wxLEFT | wxRIGHT | wxBOTTOM , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-04-30 11:52:34 +00:00
wxButton * itemButton29 = new wxButton ( itemDialog1 , wxID_OK , _ ( " &OK " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
itemButton29 - > SetForegroundColour ( wxColour ( 255 , 0 , 0 ) ) ;
itemBoxSizer28 - > Add ( itemButton29 , 0 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
2008-04-30 11:52:34 +00:00
m_btClose = new wxButton ( itemDialog1 , wxID_CANCEL , _ ( " &Close " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
m_btClose - > SetForegroundColour ( wxColour ( 0 , 0 , 255 ) ) ;
itemBoxSizer28 - > Add ( m_btClose , 0 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
2007-10-13 05:56:37 +00:00
2008-04-30 11:52:34 +00:00
wxButton * itemButton31 = new wxButton ( itemDialog1 , wxID_APPLY , _ ( " &Apply " ) , wxDefaultPosition , wxDefaultSize , 0 ) ;
itemBoxSizer28 - > Add ( itemButton31 , 0 , wxALIGN_CENTER_VERTICAL | wxALL , 5 ) ;
2007-06-05 12:10:51 +00:00
// Set validators
2008-04-30 11:52:34 +00:00
m_ListCmpbyRefItems - > SetValidator ( wxGenericValidator ( & s_ListByRef ) ) ;
m_ListSubCmpItems - > SetValidator ( wxGenericValidator ( & s_ListWithSubCmponents ) ) ;
m_ListCmpbyValItems - > SetValidator ( wxGenericValidator ( & s_ListByValue ) ) ;
m_GenListLabelsbyVal - > SetValidator ( wxGenericValidator ( & s_ListHierarchicalPinByName ) ) ;
m_GenListLabelsbySheet - > SetValidator ( wxGenericValidator ( & s_ListBySheet ) ) ;
m_OutputFormCtrl - > SetValidator ( wxGenericValidator ( & s_OutputFormOpt ) ) ;
m_OutputSeparatorCtrl - > SetValidator ( wxGenericValidator ( & s_OutputSeparatorOpt ) ) ;
m_GetListBrowser - > SetValidator ( wxGenericValidator ( & s_BrowsList ) ) ;
m_AddFootprintField - > SetValidator ( wxGenericValidator ( & s_Add_FpField_state ) ) ;
m_AddField1 - > SetValidator ( wxGenericValidator ( & s_Add_F1_state ) ) ;
m_AddField2 - > SetValidator ( wxGenericValidator ( & s_Add_F2_state ) ) ;
m_AddField3 - > SetValidator ( wxGenericValidator ( & s_Add_F3_state ) ) ;
m_AddField4 - > SetValidator ( wxGenericValidator ( & s_Add_F4_state ) ) ;
m_AddField5 - > SetValidator ( wxGenericValidator ( & s_Add_F5_state ) ) ;
m_AddField6 - > SetValidator ( wxGenericValidator ( & s_Add_F6_state ) ) ;
m_AddField7 - > SetValidator ( wxGenericValidator ( & s_Add_F7_state ) ) ;
m_AddField8 - > SetValidator ( wxGenericValidator ( & s_Add_F8_state ) ) ;
2007-06-05 12:10:51 +00:00
////@end WinEDA_Build_BOM_Frame content construction
2008-04-30 11:52:34 +00:00
m_btClose - > SetFocus ( ) ;
2007-06-05 12:10:51 +00:00
}
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* Should we show tooltips ?
*/
bool WinEDA_Build_BOM_Frame : : ShowToolTips ( )
{
return TRUE ;
}
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* Get bitmap resources
*/
wxBitmap WinEDA_Build_BOM_Frame : : GetBitmapResource ( const wxString & name )
{
// Bitmap retrieval
////@begin WinEDA_Build_BOM_Frame bitmap retrieval
2008-04-30 11:52:34 +00:00
wxUnusedVar ( name ) ;
2007-06-05 12:10:51 +00:00
return wxNullBitmap ;
////@end WinEDA_Build_BOM_Frame bitmap retrieval
}
2008-02-29 15:31:32 +00:00
2007-06-05 12:10:51 +00:00
/*!
* Get icon resources
*/
wxIcon WinEDA_Build_BOM_Frame : : GetIconResource ( const wxString & name )
{
// Icon retrieval
////@begin WinEDA_Build_BOM_Frame icon retrieval
2008-04-30 11:52:34 +00:00
wxUnusedVar ( name ) ;
2007-06-05 12:10:51 +00:00
return wxNullIcon ;
////@end WinEDA_Build_BOM_Frame icon retrieval
}
2007-10-13 05:56:37 +00:00
/*!
* wxEVT_COMMAND_RADIOBOX_SELECTED event handler for ID_RADIOBOX_SELECT_FORMAT
*/
void WinEDA_Build_BOM_Frame : : OnRadioboxSelectFormatSelected ( wxCommandEvent & event )
{
2008-02-29 15:31:32 +00:00
if ( m_OutputFormCtrl - > GetSelection ( ) = = 1 )
2008-05-15 13:29:59 +00:00
{
2008-02-29 15:31:32 +00:00
m_OutputSeparatorCtrl - > Enable ( true ) ;
2008-05-15 13:29:59 +00:00
m_ListCmpbyValItems - > Enable ( false ) ;
m_GenListLabelsbyVal - > Enable ( false ) ;
m_GenListLabelsbySheet - > Enable ( false ) ;
}
2008-02-29 15:31:32 +00:00
else
2008-05-15 13:29:59 +00:00
{
2008-02-29 15:31:32 +00:00
m_OutputSeparatorCtrl - > Enable ( false ) ;
2008-05-15 13:29:59 +00:00
m_ListCmpbyValItems - > Enable ( true ) ;
m_GenListLabelsbyVal - > Enable ( true ) ;
m_GenListLabelsbySheet - > Enable ( true ) ;
}
2007-10-13 05:56:37 +00:00
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for ID_CREATE_LIST
*/
void WinEDA_Build_BOM_Frame : : OnCreateListClick ( wxCommandEvent & event )
{
2008-05-15 13:29:59 +00:00
char ExportSeparatorSymbol = s_ExportSeparator [ 0 ] ;
if ( m_OutputSeparatorCtrl - > GetSelection ( ) > 0 )
ExportSeparatorSymbol = s_ExportSeparator [ m_OutputSeparatorCtrl - > GetSelection ( ) ] ;
bool ExportFileType = m_OutputFormCtrl - > GetSelection ( ) = = 0 ? false : true ;
2008-05-15 15:59:11 +00:00
2008-05-15 13:29:59 +00:00
SavePreferences ( ) ;
Create_BOM_Lists ( ExportFileType , m_ListSubCmpItems - > GetValue ( ) ,
ExportSeparatorSymbol , m_GetListBrowser - > GetValue ( ) ) ;
2007-10-13 05:56:37 +00:00
}
2007-06-05 12:10:51 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
*/
void WinEDA_Build_BOM_Frame : : OnOkClick ( wxCommandEvent & event )
{
2007-10-13 05:56:37 +00:00
SavePreferences ( ) ;
EndModal ( 0 ) ;
2007-06-05 12:10:51 +00:00
}
/*!
2007-10-13 05:56:37 +00:00
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
2007-06-05 12:10:51 +00:00
*/
2007-10-13 05:56:37 +00:00
void WinEDA_Build_BOM_Frame : : OnCancelClick ( wxCommandEvent & event )
2007-06-05 12:10:51 +00:00
{
2007-10-13 05:56:37 +00:00
EndModal ( - 1 ) ;
2007-06-05 12:10:51 +00:00
}
2007-10-13 05:56:37 +00:00
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_APPLY
*/
void WinEDA_Build_BOM_Frame : : OnApplyClick ( wxCommandEvent & event )
2007-06-05 12:10:51 +00:00
{
2007-10-13 05:56:37 +00:00
SavePreferences ( ) ;
}
2007-06-05 12:10:51 +00:00
2007-10-13 05:56:37 +00:00
/**************************************************/
void WinEDA_Build_BOM_Frame : : SavePreferences ( )
/**************************************************/
{
2008-02-29 15:31:32 +00:00
// Determine current settings of "List items" and "Options" checkboxes
// (NOTE: These 6 settings are restored when the dialog box is next
// invoked, but are *not* still saved after EESchema is next shut down.)
s_ListByRef = m_ListCmpbyRefItems - > GetValue ( ) ;
s_ListWithSubCmponents = m_ListSubCmpItems - > GetValue ( ) ;
s_ListByValue = m_ListCmpbyValItems - > GetValue ( ) ;
s_ListHierarchicalPinByName = m_GenListLabelsbyVal - > GetValue ( ) ;
s_ListBySheet = m_GenListLabelsbySheet - > GetValue ( ) ;
s_BrowsList = m_GetListBrowser - > GetValue ( ) ;
// Determine current settings of both radiobutton groups
s_OutputFormOpt = m_OutputFormCtrl - > GetSelection ( ) ;
s_OutputSeparatorOpt = m_OutputSeparatorCtrl - > GetSelection ( ) ;
if ( s_OutputSeparatorOpt < 0 )
s_OutputSeparatorOpt = 0 ;
2008-05-15 15:59:11 +00:00
// Determine current settings of all "Fields to add" checkboxes
s_Add_FpField_state = m_AddFootprintField - > GetValue ( ) ;
2008-02-29 15:31:32 +00:00
s_Add_F1_state = m_AddField1 - > GetValue ( ) ;
s_Add_F2_state = m_AddField2 - > GetValue ( ) ;
s_Add_F3_state = m_AddField3 - > GetValue ( ) ;
s_Add_F4_state = m_AddField4 - > GetValue ( ) ;
s_Add_F5_state = m_AddField5 - > GetValue ( ) ;
s_Add_F6_state = m_AddField6 - > GetValue ( ) ;
s_Add_F7_state = m_AddField7 - > GetValue ( ) ;
s_Add_F8_state = m_AddField8 - > GetValue ( ) ;
// Now save current settings of both radiobutton groups
m_Parent - > m_Parent - > m_EDA_Config - > Write ( OPTION_BOM_FORMAT , ( long ) s_OutputFormOpt ) ;
m_Parent - > m_Parent - > m_EDA_Config - > Write ( OPTION_BOM_SEPARATOR , ( long ) s_OutputSeparatorOpt ) ;
2008-05-15 15:59:11 +00:00
// Now save current settings of all "Fields to add" checkboxes
2008-02-29 15:31:32 +00:00
long addfields = 0 ;
for ( int ii = 0 , bitmask = 1 ; s_AddFieldList [ ii ] ! = NULL ; ii + + )
{
if ( * s_AddFieldList [ ii ] )
addfields | = bitmask ;
bitmask < < = 1 ;
}
m_Parent - > m_Parent - > m_EDA_Config - > Write ( OPTION_BOM_ADD_FIELD , addfields ) ;
2007-10-13 05:56:37 +00:00
}