Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
bf3b8f56
Commit
bf3b8f56
authored
Nov 22, 2012
by
jean-pierre charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BOM list code cleanup.
parent
eb3ba806
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
2496 additions
and
1662 deletions
+2496
-1662
BOM_lister.h
eeschema/BOM_lister.h
+78
-0
build_BOM.cpp
eeschema/build_BOM.cpp
+145
-52
dialog_build_BOM.cpp
eeschema/dialogs/dialog_build_BOM.cpp
+54
-139
dialog_build_BOM.h
eeschema/dialogs/dialog_build_BOM.h
+29
-12
dialog_build_BOM_base.cpp
eeschema/dialogs/dialog_build_BOM_base.cpp
+148
-155
dialog_build_BOM_base.fbp
eeschema/dialogs/dialog_build_BOM_base.fbp
+1966
-1230
dialog_build_BOM_base.h
eeschema/dialogs/dialog_build_BOM_base.h
+76
-74
No files found.
eeschema/BOM_lister.h
0 → 100644
View file @
bf3b8f56
/**
* @file BOM_lister.h
*/
/* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 2012 Jean-Pierre Charras jp.charras at wanadoo.fr
* Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _BOM_LISTER_H_
#define _BOM_LISTER_H_
#include <netlist.h>
// A helper class to build item lists for BOM,
// and write lists on files
class
BOM_LISTER
{
BOM_LABEL_LIST
m_labelList
;
// a list of global and hierarchical labels
FILE
*
m_outFile
;
// the output file for BOM generation
char
m_separatorSymbol
;
// the separator used for csv files ( usually \t ; or , )
bool
m_outputFmtCsv
;
// true to create Csv files, false to create text lists
bool
m_includeSubComponents
;
// true to list each part
// of a multiple part per package component
// false to list only once this kind of component
std
::
vector
<
int
>
m_fieldIDactive
;
// list of field IDs to print
public
:
BOM_LISTER
()
{
m_outFile
=
NULL
;
m_separatorSymbol
=
'\t'
;
m_outputFmtCsv
=
false
;
m_includeSubComponents
=
false
;
}
void
SetIncludeSubCmp
(
bool
aIncludeSubCmp
)
{
m_includeSubComponents
=
aIncludeSubCmp
;
}
void
CreateCsvBOMList
(
char
aSeparator
,
FILE
*
aFile
);
void
PrintComponentsListByPart
(
SCH_REFERENCE_LIST
&
aList
);
void
AddFieldIdToPrintList
(
int
aFieldId
);
void
ClearFieldIdPrintList
()
{
m_fieldIDactive
.
clear
();
}
/**
* Function PrintGlobalAndHierarchicalLabelsList
* print the list of global and hierarchical labels bu sheet or by name
* @param aSortBySheet = true to print by sheet name order
* false to print by label name order
* @param aFile = the file to write to (will be NOT clesed)
*/
void
PrintGlobalAndHierarchicalLabelsList
(
FILE
*
aFile
,
bool
aSortBySheet
);
private
:
bool
isFieldPrintable
(
int
aFieldId
);
void
buildGlobalAndHierarchicalLabelsList
();
};
#endif // _BOM_LISTER_H_
eeschema/build_BOM.cpp
View file @
bf3b8f56
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 20
09 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 201
1
Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-201
1
KiCad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 20
12 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 201
2
Wayne Stambaugh <stambaughw@verizon.net>
* Copyright (C) 1992-201
2
KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
...
...
@@ -33,63 +33,97 @@
#include <fctsys.h>
#include <class_sch_screen.h>
#include <kicad_string.h>
#include <general.h>
#include <sch_sheet.h>
#include <sch_component.h>
#include <template_fieldnames.h>
#include <netlist.h>
#include <BOM_lister.h>
/* Fill aList with labels
*/
void
GenListeGLabels
(
BOM_LABEL_LIST
&
aList
)
void
BOM_LISTER
::
CreateCsvBOMList
(
char
aSeparator
,
FILE
*
aFile
)
{
// Build the sheet list
m_outFile
=
aFile
;
m_separatorSymbol
=
aSeparator
;
SCH_REFERENCE_LIST
cmplist
;
SCH_SHEET_LIST
sheetList
;
BOM_LABEL
label
;
for
(
SCH_SHEET_PATH
*
path
=
sheetList
.
GetFirst
();
path
;
path
=
sheetList
.
GetNext
()
)
{
SCH_ITEM
*
schItem
=
(
SCH_ITEM
*
)
path
->
LastDrawList
();
sheetList
.
GetComponents
(
cmplist
,
false
);
while
(
schItem
)
{
switch
(
schItem
->
Type
()
)
{
case
SCH_HIERARCHICAL_LABEL_T
:
case
SCH_GLOBAL_LABEL_T
:
aList
.
push_back
(
BOM_LABEL
(
schItem
->
Type
(),
schItem
,
*
path
)
);
break
;
// sort component list by ref and remove sub components
cmplist
.
RemoveSubComponentsFromList
();
case
SCH_SHEET_T
:
{
SCH_SHEET
*
sheet
=
(
SCH_SHEET
*
)
schItem
;
// sort component list by value
cmplist
.
SortByValueOnly
(
);
PrintComponentsListByPart
(
cmplist
)
;
BOOST_FOREACH
(
SCH_SHEET_PIN
&
sheetPin
,
sheet
->
GetPins
()
)
fclose
(
m_outFile
);
m_outFile
=
NULL
;
}
void
BOM_LISTER
::
PrintComponentsListByPart
(
SCH_REFERENCE_LIST
&
aList
)
{
unsigned
int
index
=
0
;
while
(
index
<
aList
.
GetCount
()
)
{
SCH_COMPONENT
*
component
=
aList
[
index
].
GetComponent
();
wxString
referenceListStr
;
int
qty
=
1
;
referenceListStr
.
append
(
aList
[
index
].
GetRef
()
);
for
(
unsigned
int
i
=
index
+
1
;
i
<
aList
.
GetCount
();
)
{
if
(
*
(
aList
[
i
].
GetComponent
())
==
*
component
)
{
aList
.
push_back
(
BOM_LABEL
(
SCH_SHEET_PIN_T
,
&
sheetPin
,
*
path
)
);
referenceListStr
.
append
(
wxT
(
" "
)
+
aList
[
i
].
GetRef
()
);
aList
.
RemoveItem
(
i
);
qty
++
;
}
else
i
++
;
// Increment index only when current item is not removed from the list
}
break
;
default:
break
;
}
// Write value, quantity and list of references
fprintf
(
m_outFile
,
"%s%c%d%c
\"
%s
\"
"
,
TO_UTF8
(
component
->
GetField
(
VALUE
)
->
GetText
()
),
m_separatorSymbol
,
qty
,
m_separatorSymbol
,
TO_UTF8
(
referenceListStr
)
);
schItem
=
schItem
->
Next
();
for
(
int
i
=
FOOTPRINT
;
i
<
component
->
GetFieldCount
();
i
++
)
{
if
(
isFieldPrintable
(
i
)
)
fprintf
(
m_outFile
,
"%c%s"
,
m_separatorSymbol
,
TO_UTF8
(
component
->
GetField
(
i
)
->
GetText
()
)
);
}
fprintf
(
m_outFile
,
"
\n
"
);
index
++
;
}
}
bool
BOM_LISTER
::
isFieldPrintable
(
int
aFieldId
)
{
for
(
unsigned
ii
=
0
;
ii
<
m_fieldIDactive
.
size
();
ii
++
)
if
(
m_fieldIDactive
[
ii
]
==
aFieldId
)
return
true
;
return
false
;
}
void
BOM_LISTER
::
AddFieldIdToPrintList
(
int
aFieldId
)
{
for
(
unsigned
ii
=
0
;
ii
<
m_fieldIDactive
.
size
();
ii
++
)
if
(
m_fieldIDactive
[
ii
]
==
aFieldId
)
return
;
m_fieldIDactive
.
push_back
(
aFieldId
);
}
/* compare function for sorting labels
* sort by
* value
* if same value: by sheet
*/
bool
SortLabelsByValue
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
)
static
bool
SortLabelsByValue
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
)
{
int
ii
;
...
...
@@ -108,7 +142,7 @@ bool SortLabelsByValue( const BOM_LABEL& obj1, const BOM_LABEL& obj2 )
* by sheet
* in a sheet, by alphabetic order
*/
bool
SortLabelsBySheet
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
)
static
bool
SortLabelsBySheet
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
)
{
int
ii
;
...
...
@@ -122,41 +156,101 @@ bool SortLabelsBySheet( const BOM_LABEL& obj1, const BOM_LABEL& obj2 )
return
ii
<
0
;
}
void
BOM_LISTER
::
buildGlobalAndHierarchicalLabelsList
()
{
m_labelList
.
clear
();
// Explore the flat sheet list
SCH_SHEET_LIST
sheetList
;
for
(
SCH_SHEET_PATH
*
path
=
sheetList
.
GetFirst
();
path
;
path
=
sheetList
.
GetNext
()
)
{
SCH_ITEM
*
schItem
=
(
SCH_ITEM
*
)
path
->
LastDrawList
();
for
(
;
schItem
;
schItem
=
schItem
->
Next
()
)
{
switch
(
schItem
->
Type
()
)
{
case
SCH_HIERARCHICAL_LABEL_T
:
case
SCH_GLOBAL_LABEL_T
:
m_labelList
.
push_back
(
BOM_LABEL
(
schItem
->
Type
(),
schItem
,
*
path
)
);
break
;
case
SCH_SHEET_T
:
{
SCH_SHEET
*
sheet
=
(
SCH_SHEET
*
)
schItem
;
BOOST_FOREACH
(
SCH_SHEET_PIN
&
sheetPin
,
sheet
->
GetPins
()
)
{
m_labelList
.
push_back
(
BOM_LABEL
(
SCH_SHEET_PIN_T
,
&
sheetPin
,
*
path
)
);
}
}
break
;
int
PrintListeGLabel
(
FILE
*
f
,
BOM_LABEL_LIST
&
aList
)
default
:
break
;
}
}
}
}
void
BOM_LISTER
::
PrintGlobalAndHierarchicalLabelsList
(
FILE
*
aFile
,
bool
aSortBySheet
)
{
m_outFile
=
aFile
;
buildGlobalAndHierarchicalLabelsList
();
wxString
msg
;
if
(
aSortBySheet
)
{
sort
(
m_labelList
.
begin
(),
m_labelList
.
end
(),
SortLabelsBySheet
);
msg
.
Printf
(
_
(
"
\n
#Global, Hierarchical Labels and PinSheets \
( order = Sheet Number ) count = %d
\n
"
),
m_labelList
.
size
()
);
}
else
{
sort
(
m_labelList
.
begin
(),
m_labelList
.
end
(),
SortLabelsByValue
);
msg
.
Printf
(
_
(
"
\n
#Global, Hierarchical Labels and PinSheets ( \
order = Alphab. ) count = %d
\n\n
"
),
m_labelList
.
size
()
);
}
fprintf
(
m_outFile
,
"%s"
,
TO_UTF8
(
msg
)
);
SCH_LABEL
*
label
;
SCH_SHEET_PIN
*
pinsheet
;
wxString
msg
,
sheetpath
;
wxString
sheetpath
;
wxString
labeltype
;
for
(
unsigned
ii
=
0
;
ii
<
a
List
.
size
();
ii
++
)
for
(
unsigned
ii
=
0
;
ii
<
m_label
List
.
size
();
ii
++
)
{
switch
(
a
List
[
ii
].
GetType
()
)
switch
(
m_label
List
[
ii
].
GetType
()
)
{
case
SCH_HIERARCHICAL_LABEL_T
:
case
SCH_GLOBAL_LABEL_T
:
label
=
(
SCH_LABEL
*
)(
a
List
[
ii
].
GetLabel
());
label
=
(
SCH_LABEL
*
)(
m_label
List
[
ii
].
GetLabel
());
if
(
a
List
[
ii
].
GetType
()
==
SCH_HIERARCHICAL_LABEL_T
)
if
(
m_label
List
[
ii
].
GetType
()
==
SCH_HIERARCHICAL_LABEL_T
)
labeltype
=
wxT
(
"Hierarchical"
);
else
labeltype
=
wxT
(
"Global "
);
sheetpath
=
a
List
[
ii
].
GetSheetPath
().
PathHumanReadable
();
sheetpath
=
m_label
List
[
ii
].
GetSheetPath
().
PathHumanReadable
();
msg
.
Printf
(
_
(
"> %-28.28s %s (Sheet %s) pos: %3.3f, %3.3f
\n
"
),
GetChars
(
label
->
GetText
()
),
GetChars
(
labeltype
),
GetChars
(
sheetpath
),
GetChars
(
labeltype
),
GetChars
(
sheetpath
),
(
float
)
label
->
m_Pos
.
x
/
1000
,
(
float
)
label
->
m_Pos
.
y
/
1000
);
fputs
(
TO_UTF8
(
msg
),
f
);
fputs
(
TO_UTF8
(
msg
),
m_outFile
);
break
;
case
SCH_SHEET_PIN_T
:
{
pinsheet
=
(
SCH_SHEET_PIN
*
)
a
List
[
ii
].
GetLabel
();
pinsheet
=
(
SCH_SHEET_PIN
*
)
m_label
List
[
ii
].
GetLabel
();
int
jj
=
pinsheet
->
GetShape
();
if
(
jj
<
0
)
...
...
@@ -170,11 +264,11 @@ int PrintListeGLabel( FILE* f, BOM_LABEL_LIST& aList )
msg
.
Printf
(
_
(
"> %-28.28s PinSheet %-7.7s (Sheet %s) pos: %3.3f, %3.3f
\n
"
),
GetChars
(
pinsheet
->
GetText
()
),
GetChars
(
labtype
),
GetChars
(
a
List
[
ii
].
GetSheetPath
().
PathHumanReadable
()
),
GetChars
(
m_label
List
[
ii
].
GetSheetPath
().
PathHumanReadable
()
),
(
float
)
pinsheet
->
m_Pos
.
x
/
1000
,
(
float
)
pinsheet
->
m_Pos
.
y
/
1000
);
fputs
(
TO_UTF8
(
msg
),
f
);
fputs
(
TO_UTF8
(
msg
),
m_outFile
);
}
break
;
...
...
@@ -185,6 +279,5 @@ int PrintListeGLabel( FILE* f, BOM_LABEL_LIST& aList )
}
msg
=
_
(
"#End labels
\n
"
);
fputs
(
TO_UTF8
(
msg
),
f
);
return
0
;
fputs
(
TO_UTF8
(
msg
),
m_outFile
);
}
eeschema/dialogs/dialog_build_BOM.cpp
View file @
bf3b8f56
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 20
08 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com
* Copyright (C) 20
12 Jean-Pierre Charras, jp.charras at wanadoo.fr
* Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
...
...
@@ -35,7 +35,6 @@
#include <wxstruct.h>
#include <build_version.h>
#include <general.h>
#include <netlist.h>
#include <template_fieldnames.h>
#include <sch_component.h>
...
...
@@ -45,14 +44,7 @@
#include <wx/valgen.h>
#include <dialog_build_BOM.h>
#include <protos.h>
extern
void
GenListeGLabels
(
std
::
vector
<
BOM_LABEL
>&
aList
);
extern
bool
SortLabelsByValue
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
);
extern
bool
SortLabelsBySheet
(
const
BOM_LABEL
&
obj1
,
const
BOM_LABEL
&
obj2
);
extern
int
PrintListeGLabel
(
FILE
*
f
,
std
::
vector
<
BOM_LABEL
>&
aList
);
#include <BOM_lister.h>
/* Local variables */
...
...
@@ -118,10 +110,10 @@ static char s_ExportSeparator[] = ("\t;,.");
DIALOG_BUILD_BOM
::
DIALOG_BUILD_BOM
(
EDA_DRAW_FRAME
*
parent
)
:
DIALOG_BUILD_BOM_BASE
(
parent
)
{
m_
C
onfig
=
wxGetApp
().
GetSettings
();
wxASSERT
(
m_
C
onfig
!=
NULL
);
m_
c
onfig
=
wxGetApp
().
GetSettings
();
wxASSERT
(
m_
c
onfig
!=
NULL
);
m_
P
arent
=
parent
;
m_
p
arent
=
parent
;
Init
();
...
...
@@ -142,18 +134,18 @@ void DIALOG_BUILD_BOM::Init()
SetFocus
();
/* Get options */
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_REF
,
&
s_ListByRef
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_VALUE
,
&
s_ListByValue
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_HPINS
,
&
s_ListHierarchicalPinByName
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
&
s_ListWithSubCmponents
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
&
s_ListWithSubCmponents
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_SUB_CMP
,
&
s_ListWithSubCmponents
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
&
s_ListHierarchicalPinBySheet
);
m_
C
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
&
s_ListHierarchicalPinByName
);
s_OutputFormOpt
=
m_Config
->
Read
(
OPTION_BOM_FORMAT
,
(
long
)
0
);
m_
C
onfig
->
Read
(
OPTION_BOM_LAUNCH_BROWSER
,
&
s_BrowseCreatedList
);
s_OutputSeparatorOpt
=
m_
Config
->
Read
(
OPTION_BOM_SEPARATOR
,
(
long
)
0
);
long
addfields
=
m_
Config
->
Read
(
OPTION_BOM_ADD_FIELD
,
(
long
)
0
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_REF
,
&
s_ListByRef
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_VALUE
,
&
s_ListByValue
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_HPINS
,
&
s_ListHierarchicalPinByName
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
&
s_ListWithSubCmponents
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
&
s_ListWithSubCmponents
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_SUB_CMP
,
&
s_ListWithSubCmponents
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
&
s_ListHierarchicalPinBySheet
);
m_
c
onfig
->
Read
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
&
s_ListHierarchicalPinByName
);
s_OutputFormOpt
=
m_config
->
Read
(
OPTION_BOM_FORMAT
,
0l
);
m_
c
onfig
->
Read
(
OPTION_BOM_LAUNCH_BROWSER
,
&
s_BrowseCreatedList
);
s_OutputSeparatorOpt
=
m_
config
->
Read
(
OPTION_BOM_SEPARATOR
,
0l
);
long
addfields
=
m_
config
->
Read
(
OPTION_BOM_ADD_FIELD
,
0l
);
for
(
int
ii
=
0
,
bitmask
=
1
;
s_AddFieldList
[
ii
]
!=
NULL
;
ii
++
)
{
...
...
@@ -264,8 +256,6 @@ void DIALOG_BUILD_BOM::OnCancelClick( wxCommandEvent& event )
void
DIALOG_BUILD_BOM
::
SavePreferences
()
{
wxASSERT
(
m_Config
!=
NULL
);
// Determine current settings of "List items" and "Options" checkboxes
s_ListByRef
=
m_ListCmpbyRefItems
->
GetValue
();
s_ListWithSubCmponents
=
m_ListSubCmpItems
->
GetValue
();
...
...
@@ -296,16 +286,16 @@ void DIALOG_BUILD_BOM::SavePreferences()
s_Add_Alls_state
=
m_AddAllFields
->
GetValue
();
// Now save current settings of both radiobutton groups
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_REF
,
s_ListByRef
);
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_VALUE
,
s_ListByValue
);
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_HPINS
,
s_ListHierarchicalPinByName
);
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
s_ListHierarchicalPinBySheet
);
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
s_ListHierarchicalPinByName
);
m_
C
onfig
->
Write
(
OPTION_BOM_LIST_SUB_CMP
,
s_ListWithSubCmponents
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_REF
,
s_ListByRef
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_VALUE
,
s_ListByValue
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_HPINS
,
s_ListHierarchicalPinByName
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_HPINS_BY_SHEET
,
s_ListHierarchicalPinBySheet
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_HPINS_BY_NAME_
,
s_ListHierarchicalPinByName
);
m_
c
onfig
->
Write
(
OPTION_BOM_LIST_SUB_CMP
,
s_ListWithSubCmponents
);
m_
C
onfig
->
Write
(
OPTION_BOM_FORMAT
,
(
long
)
s_OutputFormOpt
);
m_
C
onfig
->
Write
(
OPTION_BOM_SEPARATOR
,
(
long
)
s_OutputSeparatorOpt
);
m_
C
onfig
->
Write
(
OPTION_BOM_LAUNCH_BROWSER
,
(
long
)
s_BrowseCreatedList
);
m_
c
onfig
->
Write
(
OPTION_BOM_FORMAT
,
(
long
)
s_OutputFormOpt
);
m_
c
onfig
->
Write
(
OPTION_BOM_SEPARATOR
,
(
long
)
s_OutputSeparatorOpt
);
m_
c
onfig
->
Write
(
OPTION_BOM_LAUNCH_BROWSER
,
(
long
)
s_BrowseCreatedList
);
// Now save current settings of all "Fields to add" checkboxes
long
addfields
=
0
;
...
...
@@ -318,7 +308,7 @@ void DIALOG_BUILD_BOM::SavePreferences()
bitmask
<<=
1
;
}
m_
C
onfig
->
Write
(
OPTION_BOM_ADD_FIELD
,
addfields
);
m_
c
onfig
->
Write
(
OPTION_BOM_ADD_FIELD
,
addfields
);
}
...
...
@@ -371,7 +361,7 @@ void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile,
fn
=
dlg
.
GetPath
();
// remember path+filename+ext for subsequent runs.
m_
L
istFileName
=
dlg
.
GetPath
();
m_
l
istFileName
=
dlg
.
GetPath
();
// Close dialog, then show the list (if so requested)
...
...
@@ -395,7 +385,7 @@ void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile,
if
(
aRunBrowser
)
{
wxString
editorname
=
wxGetApp
().
GetEditorName
();
wxString
filename
=
m_
L
istFileName
;
wxString
filename
=
m_
l
istFileName
;
AddDelimiterString
(
filename
);
ExecuteFile
(
this
,
editorname
,
filename
);
}
...
...
@@ -449,29 +439,22 @@ bool DIALOG_BUILD_BOM::IsFieldChecked(int aFieldId)
void
DIALOG_BUILD_BOM
::
CreatePartsList
(
)
{
FILE
*
f
;
wxString
msg
;
if
(
(
f
=
wxFopen
(
m_
L
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
if
(
(
f
=
wxFopen
(
m_
l
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
{
wxString
msg
;
msg
=
_
(
"Failed to open file "
);
msg
<<
m_
L
istFileName
;
msg
<<
m_
l
istFileName
;
DisplayError
(
this
,
msg
);
return
;
}
SCH_REFERENCE_LIST
cmplist
;
SCH_SHEET_LIST
sheetList
;
sheetList
.
GetComponents
(
cmplist
,
false
);
// sort component list by ref and remove sub components
cmplist
.
RemoveSubComponentsFromList
();
// sort component list by value
cmplist
.
SortByValueOnly
(
);
PrintComponentsListByPart
(
f
,
cmplist
,
false
);
fclose
(
f
);
BOM_LISTER
bom_lister
;
// Set the list of fields to add to list
for
(
int
ii
=
FOOTPRINT
,
ii
<
FIELD8
;
ii
++
)
if
IsFieldChecked
(
ii
)
bom_lister
.
AddFieldIdToPrintList
(
ii
);
bom_lister
.
CreateCsvBOMList
(
s_ExportSeparatorSymbol
,
f
);
}
...
...
@@ -486,10 +469,10 @@ void DIALOG_BUILD_BOM::CreateExportList( bool aIncludeSubComponents )
FILE
*
f
;
wxString
msg
;
if
(
(
f
=
wxFopen
(
m_
L
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
if
(
(
f
=
wxFopen
(
m_
l
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
{
msg
=
_
(
"Failed to open file "
);
msg
<<
m_
L
istFileName
;
msg
<<
m_
l
istFileName
;
DisplayError
(
this
,
msg
);
return
;
}
...
...
@@ -515,7 +498,7 @@ void DIALOG_BUILD_BOM::CreateExportList( bool aIncludeSubComponents )
/*
* GenereListeOfItems()
* Main function to create the list of components and/or labels
* (global labels
and pin sheets"
)
* (global labels
, hierarchical labels and pin sheets
)
*/
void
DIALOG_BUILD_BOM
::
GenereListeOfItems
(
bool
aIncludeSubComponents
)
{
...
...
@@ -523,10 +506,10 @@ void DIALOG_BUILD_BOM::GenereListeOfItems( bool aIncludeSubComponents )
int
itemCount
;
wxString
msg
;
if
(
(
f
=
wxFopen
(
m_
L
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
if
(
(
f
=
wxFopen
(
m_
l
istFileName
,
wxT
(
"wt"
)
)
)
==
NULL
)
{
msg
=
_
(
"Failed to open file "
);
msg
<<
m_
L
istFileName
;
msg
<<
m_
l
istFileName
;
DisplayError
(
this
,
msg
);
return
;
}
...
...
@@ -561,39 +544,14 @@ void DIALOG_BUILD_BOM::GenereListeOfItems( bool aIncludeSubComponents )
}
}
/*************************************************/
/* Create list of global labels and pins sheets */
/*************************************************/
std
::
vector
<
BOM_LABEL
>
listOfLabels
;
GenListeGLabels
(
listOfLabels
);
// Create list of global labels, hierrachical labels and pins sheets
BOM_LISTER
bom_lister
;
if
(
(
itemCount
=
listOfLabels
.
size
()
)
>
0
)
{
if
(
m_GenListLabelsbySheet
->
GetValue
()
)
{
sort
(
listOfLabels
.
begin
(),
listOfLabels
.
end
(),
SortLabelsBySheet
);
msg
.
Printf
(
_
(
"
\n
#Global, Hierarchical Labels and PinSheets \
( order = Sheet Number ) count = %d
\n
"
),
itemCount
);
fprintf
(
f
,
"%s"
,
TO_UTF8
(
msg
)
);
PrintListeGLabel
(
f
,
listOfLabels
);
}
bom_lister
.
PrintGlobalAndHierarchicalLabelsList
(
f
,
true
);
if
(
m_GenListLabelsbyVal
->
GetValue
()
)
{
sort
(
listOfLabels
.
begin
(),
listOfLabels
.
end
(),
SortLabelsByValue
);
msg
.
Printf
(
_
(
"
\n
#Global, Hierarchical Labels and PinSheets ( \
order = Alphab. ) count = %d
\n\n
"
),
itemCount
);
fprintf
(
f
,
"%s"
,
TO_UTF8
(
msg
)
);
PrintListeGLabel
(
f
,
listOfLabels
);
}
}
bom_lister
.
PrintGlobalAndHierarchicalLabelsList
(
f
,
false
);
msg
=
_
(
"
\n
#End List
\n
"
);
fprintf
(
f
,
"%s"
,
TO_UTF8
(
msg
)
);
...
...
@@ -763,11 +721,11 @@ int DIALOG_BUILD_BOM::PrintComponentsListByRef( FILE* f,
{
#if defined(KICAD_GOST)
strCur
.
Printf
(
wxT
(
"%c%s"
),
s_ExportSeparatorSymbol
,
GetChars
(
msg
)
);
msg
=
m_
P
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
msg
=
m_
p
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
strCur
.
Printf
(
wxT
(
"%c%s)"
),
s_ExportSeparatorSymbol
,
GetChars
(
msg
)
);
#else
fprintf
(
f
,
"%c%s"
,
s_ExportSeparatorSymbol
,
TO_UTF8
(
msg
)
);
msg
=
m_
P
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
msg
=
m_
p
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
fprintf
(
f
,
"%c%s)"
,
s_ExportSeparatorSymbol
,
TO_UTF8
(
msg
)
);
#endif
...
...
@@ -775,7 +733,7 @@ int DIALOG_BUILD_BOM::PrintComponentsListByRef( FILE* f,
else
{
fprintf
(
f
,
" (Sheet %s)"
,
TO_UTF8
(
msg
)
);
msg
=
m_
P
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
msg
=
m_
p
arent
->
GetXYSheetReferences
(
comp
->
GetPosition
()
);
fprintf
(
f
,
" (loc %s)"
,
TO_UTF8
(
msg
)
);
}
}
...
...
@@ -865,49 +823,6 @@ int DIALOG_BUILD_BOM::PrintComponentsListByRef( FILE* f,
}
int
DIALOG_BUILD_BOM
::
PrintComponentsListByPart
(
FILE
*
aFile
,
SCH_REFERENCE_LIST
&
aList
,
bool
aIncludeSubComponents
)
{
unsigned
int
index
=
0
;
while
(
index
<
aList
.
GetCount
()
)
{
SCH_COMPONENT
*
component
=
aList
[
index
].
GetComponent
();
wxString
referenceListStr
;
int
qty
=
1
;
referenceListStr
.
append
(
aList
[
index
].
GetRef
()
);
for
(
unsigned
int
i
=
index
+
1
;
i
<
aList
.
GetCount
();
)
{
if
(
*
(
aList
[
i
].
GetComponent
())
==
*
component
)
{
referenceListStr
.
append
(
wxT
(
" "
)
+
aList
[
i
].
GetRef
()
);
aList
.
RemoveItem
(
i
);
qty
++
;
}
else
i
++
;
// Increment index only when current item is not removed from the list
}
// Write value, quantity and list of references
fprintf
(
aFile
,
"%15s%c%3d%c
\"
%s
\"
"
,
TO_UTF8
(
component
->
GetField
(
VALUE
)
->
GetText
()
),
s_ExportSeparatorSymbol
,
qty
,
s_ExportSeparatorSymbol
,
TO_UTF8
(
referenceListStr
)
);
// Write the rest of the fields if required
#if defined( KICAD_GOST )
fprintf
(
aFile
,
"%c%20s"
,
s_ExportSeparatorSymbol
,
TO_UTF8
(
component
->
GetField
(
DATASHEET
)
->
GetText
()
)
);
#endif
for
(
int
i
=
FOOTPRINT
;
i
<
component
->
GetFieldCount
();
i
++
)
if
(
IsFieldChecked
(
i
)
)
fprintf
(
aFile
,
"%c%15s"
,
s_ExportSeparatorSymbol
,
TO_UTF8
(
component
->
GetField
(
i
)
->
GetText
()
)
);
fprintf
(
aFile
,
"
\n
"
);
index
++
;
}
return
0
;
}
int
DIALOG_BUILD_BOM
::
PrintComponentsListByVal
(
FILE
*
f
,
SCH_REFERENCE_LIST
&
aList
,
bool
aIncludeSubComponents
)
...
...
@@ -968,7 +883,7 @@ int DIALOG_BUILD_BOM::PrintComponentsListByVal( FILE* f,
{
msg
=
aList
[
ii
].
GetSheetPath
().
PathHumanReadable
();
fprintf
(
f
,
" (Sheet %s)"
,
TO_UTF8
(
msg
)
);
msg
=
m_
P
arent
->
GetXYSheetReferences
(
DrawLibItem
->
GetPosition
()
);
msg
=
m_
p
arent
->
GetXYSheetReferences
(
DrawLibItem
->
GetPosition
()
);
fprintf
(
f
,
" (loc %s)"
,
TO_UTF8
(
msg
)
);
}
}
...
...
eeschema/dialogs/dialog_build_BOM.h
View file @
bf3b8f56
/////////////////////////////////////////////////////////////////////////////
// Name: dialog_build_BOM.h
// Copyright: GNU license
// Licence:
/////////////////////////////////////////////////////////////////////////////
/**
* @file dialog_build_BOM.h
*/
/* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#ifndef _DIALOG_BUILD_BOM_H_
#define _DIALOG_BUILD_BOM_H_
...
...
@@ -14,13 +35,12 @@ class EDA_DRAW_FRAME;
class
SCH_COMPONENT
;
class
wxConfig
;
class
DIALOG_BUILD_BOM
:
public
DIALOG_BUILD_BOM_BASE
{
private
:
EDA_DRAW_FRAME
*
m_
P
arent
;
wxConfig
*
m_
C
onfig
;
wxString
m_
L
istFileName
;
// The full filename of the file report.
EDA_DRAW_FRAME
*
m_
p
arent
;
wxConfig
*
m_
c
onfig
;
wxString
m_
l
istFileName
;
// The full filename of the file report.
private
:
void
OnRadioboxSelectFormatSelected
(
wxCommandEvent
&
event
);
...
...
@@ -62,9 +82,6 @@ private:
int
PrintComponentsListByVal
(
FILE
*
f
,
SCH_REFERENCE_LIST
&
aList
,
bool
aIncludeSubComponents
);
int
PrintComponentsListByPart
(
FILE
*
f
,
SCH_REFERENCE_LIST
&
aList
,
bool
aIncludeSubComponents
);
wxString
PrintFieldData
(
SCH_COMPONENT
*
DrawLibItem
,
bool
CompactForm
=
false
);
bool
IsFieldChecked
(
int
aFieldId
);
...
...
eeschema/dialogs/dialog_build_BOM_base.cpp
View file @
bf3b8f56
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr
21 2008)
// C++ code generated with wxFormBuilder (version Apr
10 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
...
...
@@ -9,7 +9,7 @@
///////////////////////////////////////////////////////////////////////////
DIALOG_BUILD_BOM_BASE
::
DIALOG_BUILD_BOM_BASE
(
wxWindow
*
parent
,
wxWindowID
id
,
const
wxString
&
title
,
const
wxPoint
&
pos
,
const
wxSize
&
size
,
long
style
)
:
wxDialog
(
parent
,
id
,
title
,
pos
,
size
,
style
)
DIALOG_BUILD_BOM_BASE
::
DIALOG_BUILD_BOM_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
);
...
...
@@ -23,25 +23,21 @@ DIALOG_BUILD_BOM_BASE::DIALOG_BUILD_BOM_BASE( wxWindow* parent, wxWindowID id, c
sbListOptionsSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"List items:"
)
),
wxVERTICAL
);
m_ListCmpbyRefItems
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Components by reference"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbListOptionsSizer
->
Add
(
m_ListCmpbyRefItems
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_ListSubCmpItems
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Sub components (i.e. U2A, U2B ...)"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbListOptionsSizer
->
Add
(
m_ListSubCmpItems
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_ListCmpbyValItems
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Components by value"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbListOptionsSizer
->
Add
(
m_ListCmpbyValItems
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_GenListLabelsbyVal
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Hierarchy pins by name"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbListOptionsSizer
->
Add
(
m_GenListLabelsbyVal
,
0
,
wxTOP
|
wxRIGHT
|
wxLEFT
,
5
);
m_GenListLabelsbySheet
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Hierarchy pins by sheets"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbListOptionsSizer
->
Add
(
m_GenListLabelsbySheet
,
0
,
wxALL
,
5
);
sbOptionsSizer
->
Add
(
sbListOptionsSizer
,
0
,
wxEXPAND
,
5
);
wxString
m_OutputFormCtrlChoices
[]
=
{
_
(
"List"
),
_
(
"Text for spreadsheet import"
),
_
(
"Single Part per line"
)
};
...
...
@@ -60,11 +56,12 @@ DIALOG_BUILD_BOM_BASE::DIALOG_BUILD_BOM_BASE( wxWindow* parent, wxWindowID id, c
sbBrowseOptSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"Options:"
)
),
wxVERTICAL
);
m_GetListBrowser
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Launch list browser"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbBrowseOptSizer
->
Add
(
m_GetListBrowser
,
0
,
wxALL
|
wxEXPAND
,
5
);
sbOptionsSizer
->
Add
(
sbBrowseOptSizer
,
0
,
wxEXPAND
|
wxTOP
,
5
);
bMainSizer
->
Add
(
sbOptionsSizer
,
10
,
wxALL
|
wxEXPAND
,
5
);
wxBoxSizer
*
bRightSizer
;
...
...
@@ -77,52 +74,45 @@ DIALOG_BUILD_BOM_BASE::DIALOG_BUILD_BOM_BASE( wxWindow* parent, wxWindowID id, c
sbFixedFieldsSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"System Fields:"
)
),
wxVERTICAL
);
m_AddFootprintField
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Footprint"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbFixedFieldsSizer
->
Add
(
m_AddFootprintField
,
0
,
wxALL
|
wxEXPAND
,
5
);
sbFieldsSelectionSizer
->
Add
(
sbFixedFieldsSizer
,
0
,
wxEXPAND
,
5
);
wxStaticBoxSizer
*
sbUsersFiledsSizer
;
sbUsersFiledsSizer
=
new
wxStaticBoxSizer
(
new
wxStaticBox
(
this
,
wxID_ANY
,
_
(
"Users Fields:"
)
),
wxVERTICAL
);
m_AddField1
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 1"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField1
,
0
,
wxEXPAND
|
wxALL
,
5
);
m_AddField2
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 2"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField2
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField3
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 3"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField3
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField4
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 4"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField4
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField5
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 5"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField5
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField6
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 6"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField6
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField7
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 7"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField7
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddField8
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"Field 8"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddField8
,
0
,
wxBOTTOM
|
wxRIGHT
|
wxLEFT
,
5
);
m_AddAllFields
=
new
wxCheckBox
(
this
,
wxID_ANY
,
_
(
"All existing users fields"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
sbUsersFiledsSizer
->
Add
(
m_AddAllFields
,
0
,
wxALL
,
5
);
sbFieldsSelectionSizer
->
Add
(
sbUsersFiledsSizer
,
0
,
wxEXPAND
|
wxTOP
,
5
);
bRightSizer
->
Add
(
sbFieldsSelectionSizer
,
1
,
wxEXPAND
,
5
);
...
...
@@ -135,8 +125,10 @@ DIALOG_BUILD_BOM_BASE::DIALOG_BUILD_BOM_BASE( wxWindow* parent, wxWindowID id, c
m_buttonCANCEL
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Close"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
bRightSizer
->
Add
(
m_buttonCANCEL
,
0
,
wxALL
|
wxALIGN_CENTER_VERTICAL
|
wxALIGN_CENTER_HORIZONTAL
,
5
);
bMainSizer
->
Add
(
bRightSizer
,
8
,
wxALL
|
wxEXPAND
,
5
);
this
->
SetSizer
(
bMainSizer
);
this
->
Layout
();
...
...
@@ -152,4 +144,5 @@ DIALOG_BUILD_BOM_BASE::~DIALOG_BUILD_BOM_BASE()
m_OutputFormCtrl
->
Disconnect
(
wxEVT_COMMAND_RADIOBOX_SELECTED
,
wxCommandEventHandler
(
DIALOG_BUILD_BOM_BASE
::
OnRadioboxSelectFormatSelected
),
NULL
,
this
);
m_buttonOK
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_BUILD_BOM_BASE
::
OnOkClick
),
NULL
,
this
);
m_buttonCANCEL
->
Disconnect
(
wxEVT_COMMAND_BUTTON_CLICKED
,
wxCommandEventHandler
(
DIALOG_BUILD_BOM_BASE
::
OnCancelClick
),
NULL
,
this
);
}
eeschema/dialogs/dialog_build_BOM_base.fbp
View file @
bf3b8f56
This source diff could not be displayed because it is too large. You can
view the blob
instead.
eeschema/dialogs/dialog_build_BOM_base.h
View file @
bf3b8f56
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr
21 2008)
// C++ code generated with wxFormBuilder (version Apr
10 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __
dialog_build_BOM_base__
#define __
dialog_build_BOM_base__
#ifndef __
DIALOG_BUILD_BOM_BASE_H__
#define __
DIALOG_BUILD_BOM_BASE_H__
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/checkbox.h>
#include <wx/gdicmn.h>
...
...
@@ -27,14 +29,14 @@
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_BUILD_BOM_BASE
///////////////////////////////////////////////////////////////////////////////
class
DIALOG_BUILD_BOM_BASE
:
public
wxDialog
class
DIALOG_BUILD_BOM_BASE
:
public
DIALOG_SHIM
{
private
:
protected
:
enum
{
ID_RADIOBOX_SELECT_FORMAT
=
1000
,
ID_RADIOBOX_SELECT_FORMAT
=
1000
};
wxCheckBox
*
m_ListCmpbyRefItems
;
...
...
@@ -55,20 +57,20 @@ class DIALOG_BUILD_BOM_BASE : public wxDialog
wxCheckBox
*
m_AddField7
;
wxCheckBox
*
m_AddField8
;
wxCheckBox
*
m_AddAllFields
;
wxButton
*
m_buttonOK
;
wxButton
*
m_buttonCANCEL
;
// Virtual event handlers, overide them in your derived class
virtual
void
OnRadioboxSelectFormatSelected
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnOkClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnCancelClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnRadioboxSelectFormatSelected
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnOkClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
virtual
void
OnCancelClick
(
wxCommandEvent
&
event
)
{
event
.
Skip
();
}
public
:
DIALOG_BUILD_BOM_BASE
(
wxWindow
*
parent
,
wxWindowID
id
=
wxID_ANY
,
const
wxString
&
title
=
_
(
"List of Material"
),
const
wxPoint
&
pos
=
wxDefaultPosition
,
const
wxSize
&
size
=
wxSize
(
415
,
382
),
long
style
=
wxDEFAULT_DIALOG_STYLE
|
wxRESIZE_BORDER
);
~
DIALOG_BUILD_BOM_BASE
();
};
#endif //__
dialog_build_BOM_base__
#endif //__
DIALOG_BUILD_BOM_BASE_H__
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment