Merge lp:~kicad-gost-committers/kicad/kicad into lp:kicad/product

Proposed by Alexander Lunev
Status: Rejected
Rejected by: Chris Pavlina
Proposed branch: lp:~kicad-gost-committers/kicad/kicad
Merge into: lp:kicad/product
Diff against target: 176611 lines (+37823/-68720)
140 files modified
.bzrignore (+1/-0)
CMakeLists.txt (+44/-1)
CMakeModules/CreateBzrVersionHeader.cmake (+5/-1)
CMakeModules/FindOpenOffice.cmake (+192/-0)
common/build_version.cpp (+4/-0)
common/class_plotter.cpp (+5/-0)
common/dialog_about/AboutDialog_main.cpp (+3/-0)
common/gr_basic.cpp (+8/-0)
common/kiway.cpp (+8/-0)
cvpcb/cvframe.cpp (+8/-0)
cvpcb/cvpcb_mainframe.h (+3/-0)
cvpcb/readwrite_dlgs.cpp (+37/-1)
demos/CMakeLists.txt (+1/-0)
demos/GOST/multivibrator-comp-idx-kicad_uno_iface.log (+103/-0)
demos/GOST/multivibrator-spec-kicad_uno_iface.log (+180/-0)
demos/GOST/multivibrator.sch (+250/-0)
eeschema/BOM/BOM_lister.h (+190/-0)
eeschema/BOM/build_BOM.cpp (+736/-0)
eeschema/BOM/dialogs/dialog_build_BOM.cpp (+592/-0)
eeschema/BOM/dialogs/dialog_build_BOM.h (+93/-0)
eeschema/BOM/dialogs/dialog_build_BOM_base.cpp (+157/-0)
eeschema/BOM/dialogs/dialog_build_BOM_base.fbp (+2060/-0)
eeschema/BOM/dialogs/dialog_build_BOM_base.h (+83/-0)
eeschema/CMakeLists.txt (+54/-0)
eeschema/GOST-doc-gen/CMakeLists.txt (+129/-0)
eeschema/GOST-doc-gen/GOST_comp_manager.cpp (+1051/-0)
eeschema/GOST-doc-gen/GOST_comp_manager.h (+96/-0)
eeschema/GOST-doc-gen/common_doc_iface.h (+55/-0)
eeschema/GOST-doc-gen/common_funcs.cpp (+493/-0)
eeschema/GOST-doc-gen/common_funcs.h (+60/-0)
eeschema/GOST-doc-gen/component.cpp (+435/-0)
eeschema/GOST-doc-gen/component.h (+103/-0)
eeschema/GOST-doc-gen/component_db.cpp (+913/-0)
eeschema/GOST-doc-gen/component_db.h (+134/-0)
eeschema/GOST-doc-gen/dialogs/frame_GOST_doc_gen_base.cpp (+234/-0)
eeschema/GOST-doc-gen/dialogs/frame_GOST_doc_gen_base.fbp (+1642/-0)
eeschema/GOST-doc-gen/dialogs/frame_GOST_doc_gen_base.h (+106/-0)
eeschema/GOST-doc-gen/dictionaries.cpp (+135/-0)
eeschema/GOST-doc-gen/dictionaries.h (+58/-0)
eeschema/GOST-doc-gen/doc_common.cpp (+1349/-0)
eeschema/GOST-doc-gen/doc_common.h (+218/-0)
eeschema/GOST-doc-gen/doc_common.py (+244/-0)
eeschema/GOST-doc-gen/doc_component_index.cpp (+229/-0)
eeschema/GOST-doc-gen/doc_component_index.h (+45/-0)
eeschema/GOST-doc-gen/doc_specification.cpp (+649/-0)
eeschema/GOST-doc-gen/doc_specification.h (+57/-0)
eeschema/GOST-doc-gen/oo_iface.cxx (+320/-0)
eeschema/GOST-doc-gen/oo_iface.hxx (+118/-0)
eeschema/GOST-doc-gen/oo_python_uno_iface.cpp (+212/-0)
eeschema/GOST-doc-gen/oo_python_uno_iface.h (+57/-0)
eeschema/GOST-doc-gen/rpc_doc_iface.cpp (+286/-0)
eeschema/GOST-doc-gen/rpc_doc_iface.h (+66/-0)
eeschema/GOST-doc-gen/uno_iface.py (+207/-0)
eeschema/component_references_lister.cpp (+221/-0)
eeschema/general.h (+16/-0)
eeschema/help_common_strings.h (+6/-0)
eeschema/libedit.cpp (+4/-0)
eeschema/menubar.cpp (+25/-0)
eeschema/pinedit.cpp (+9/-1)
eeschema/sch_junction.cpp (+1/-1)
eeschema/sch_reference_list.h (+71/-0)
eeschema/schframe.cpp (+32/-0)
eeschema/schframe.h (+12/-0)
eeschema/tool_viewlib.cpp (+4/-0)
extra/pcad2kicadsch/CMakeLists.txt (+117/-0)
extra/pcad2kicadsch/Info.plist (+52/-0)
extra/pcad2kicadsch/README.txt (+62/-0)
extra/pcad2kicadsch/dialogs/pcad2kicad_frame_base.cpp (+64/-0)
extra/pcad2kicadsch/dialogs/pcad2kicad_frame_base.fbp (+475/-0)
extra/pcad2kicadsch/dialogs/pcad2kicad_frame_base.h (+61/-0)
extra/pcad2kicadsch/pcad2kicad.cpp (+134/-0)
extra/pcad2kicadsch/pcad2kicad.h (+56/-0)
extra/pcad2kicadsch/pcad2kicad_frame.cpp (+207/-0)
extra/pcad2kicadsch/pcad2kicadsch.rc (+1/-0)
extra/pcad2kicadsch/sch.cpp (+244/-0)
extra/pcad2kicadsch/sch.h (+66/-0)
extra/pcad2kicadsch/sch_arc.cpp (+142/-0)
extra/pcad2kicadsch/sch_arc.h (+62/-0)
extra/pcad2kicadsch/sch_bus.cpp (+97/-0)
extra/pcad2kicadsch/sch_bus.h (+51/-0)
extra/pcad2kicadsch/sch_component.cpp (+64/-0)
extra/pcad2kicadsch/sch_component.h (+63/-0)
extra/pcad2kicadsch/sch_junction.cpp (+83/-0)
extra/pcad2kicadsch/sch_junction.h (+57/-0)
extra/pcad2kicadsch/sch_line.cpp (+240/-0)
extra/pcad2kicadsch/sch_line.h (+63/-0)
extra/pcad2kicadsch/sch_module.cpp (+419/-0)
extra/pcad2kicadsch/sch_module.h (+79/-0)
extra/pcad2kicadsch/sch_pin.cpp (+259/-0)
extra/pcad2kicadsch/sch_pin.h (+69/-0)
extra/pcad2kicadsch/sch_port.cpp (+94/-0)
extra/pcad2kicadsch/sch_port.h (+56/-0)
extra/pcad2kicadsch/sch_sheet.cpp (+423/-0)
extra/pcad2kicadsch/sch_sheet.h (+67/-0)
extra/pcad2kicadsch/sch_symbol.cpp (+446/-0)
extra/pcad2kicadsch/sch_symbol.h (+75/-0)
extra/pcad2kicadsch/sch_text.cpp (+108/-0)
extra/pcad2kicadsch/sch_text.h (+55/-0)
include/common.h (+20/-0)
include/frame_type.h (+4/-0)
include/id.h (+5/-0)
include/kiway.h (+3/-1)
pcbnew/hotkeys.cpp (+7/-4)
pcbnew/hotkeys.h (+1/-0)
pcbnew/hotkeys_board_editor.cpp (+7/-0)
pcbnew/kicad_netlist_reader.cpp (+42/-0)
pcbnew/legacy_netlist_reader.cpp (+5/-1)
pcbnew/onrightclick.cpp (+5/-2)
pcbnew/pcad2kicadpcb_plugin/examples/CK1202_V1.kicad_pcb (+18172/-0)
pcbnew/pcad2kicadpcb_plugin/examples/CK1202_V1.pcb (+0/-66655)
pcbnew/pcad2kicadpcb_plugin/examples/files.txt (+0/-6)
pcbnew/pcad2kicadpcb_plugin/pcad2kicad_common.h (+0/-88)
pcbnew/pcad2kicadpcb_plugin/pcb_arc.h (+0/-61)
pcbnew/pcad2kicadpcb_plugin/pcb_copper_pour.cpp (+0/-112)
pcbnew/pcad2kicadpcb_plugin/pcb_copper_pour.h (+0/-54)
pcbnew/pcad2kicadpcb_plugin/pcb_cutout.cpp (+0/-74)
pcbnew/pcad2kicadpcb_plugin/pcb_cutout.h (+0/-53)
pcbnew/pcad2kicadpcb_plugin/pcb_keepout.cpp (+0/-76)
pcbnew/pcad2kicadpcb_plugin/pcb_keepout.h (+0/-52)
pcbnew/pcad2kicadpcb_plugin/pcb_line.h (+0/-62)
pcbnew/pcad2kicadpcb_plugin/pcb_module.h (+0/-75)
pcbnew/pcad2kicadpcb_plugin/pcb_net.cpp (+0/-104)
pcbnew/pcad2kicadpcb_plugin/pcb_net.h (+0/-68)
pcbnew/pcad2kicadpcb_plugin/pcb_pad.h (+0/-64)
pcbnew/pcad2kicadpcb_plugin/pcb_pad_shape.cpp (+0/-142)
pcbnew/pcad2kicadpcb_plugin/pcb_pad_shape.h (+0/-61)
pcbnew/pcad2kicadpcb_plugin/pcb_plane.cpp (+0/-95)
pcbnew/pcad2kicadpcb_plugin/pcb_plane.h (+0/-53)
pcbnew/pcad2kicadpcb_plugin/pcb_polygon.h (+0/-75)
pcbnew/pcad2kicadpcb_plugin/pcb_text.cpp (+0/-133)
pcbnew/pcad2kicadpcb_plugin/pcb_text.h (+0/-59)
pcbnew/pcad2kicadpcb_plugin/pcb_via.cpp (+0/-139)
pcbnew/pcad2kicadpcb_plugin/pcb_via.h (+0/-54)
pcbnew/pcad2kicadpcb_plugin/pcb_via_shape.cpp (+0/-88)
pcbnew/pcad2kicadpcb_plugin/pcb_via_shape.h (+0/-52)
pcbnew/pcad2kicadpcb_plugin/s_expr_loader.cpp (+0/-115)
pcbnew/pcad2kicadpcb_plugin/s_expr_loader.h (+0/-37)
pcbnew/pcb_netlist.h (+13/-0)
scripting/python_scripting.cpp (+3/-0)
template/kicad.pro (+6/-0)
To merge this branch: bzr merge lp:~kicad-gost-committers/kicad/kicad
Reviewer Review Type Date Requested Status
Wayne Stambaugh Disapprove
jean-pierre charras Needs Information
Review via email: mp+163239@code.launchpad.net

Description of the change

1) implemented document generator conforming to Russian standards (the root regulating document is "GOST 2.001-93"). The generator forms component index and specification documents by means of OpenOffice or LibreOffice

2) implemented component manager (contains only English words and could be used by any KiCad user for general purpose). Features:
   - listing all components and displaying the full component string in the form how it would be printed in the resultant documents
   - adding new circuit variants
   - viewing and working with components in various planes (full list, constant part, variable part for given variant)
   - assigning components to variants
   - possibility to assign a component "not installed" status. This status will be displayed in the component index document and as a result such components will not be printed in the specification document
   - editing component attributes (Title, Value, Type, Precision and so on)
   - components with reference description like "A1C1" are formed into sets and appropriately printed in the resultant documents
   - possibility to edit components as a group by means of multiple selection in the main table of the component manager
   - all changes made in both the eeshema and the component manager are mutually reflected to each other (invisibly to a user)
   - initiating immediate generation of GOST documents from the component manager

To post a comment you must log in.
4111. By Alexander Lunev

merge with lp:kicad branch

Revision history for this message
jean-pierre charras (jp-charras) wrote :

Alexander,
This is a very large patch (6400 lines), without any explanation, and not comments in sources.

What is the purpose of this patch?

Many strings are not in English, which could be internationalized.
When not in English, most of developpers cannot understand them (Note there is not French strings in Kicad, and I am a French guy).

review: Needs Information
Revision history for this message
Alexander Lunev (al-lunev) wrote :

The explanation was provided: "Implemented document generator conforming to Russian standards."
The root regulating document of these standards is "ГОСТ 2.001-93" (http://www.gostedu.ru/5588.html).

There are comments in sources but not in all places.
Some of the places do not need to be documented in the code because the code is written according to the standards. The standards are the main source of comments. If some code does not conform to the standards then it is buggy and should be corrected according to the standards.

The purpose of this new feature is to automatically generate component index and specification documents by means of OpenOffice or LibreOffice and according to Russian standards.

As you can see, all this code is put into KICAD_GOST conditional compilation section. This section is intended for Russian speaking people only and only for countries where the mentioned above standards are valid. Such countries are Russia, Belarus, Ukraine, Moldova, Kazakhstan, Azerbaijan, Armenia, Kyrgyzstan, Uzbekistan, Tajikistan, Georgia, and Turkmenistan (http://en.wikipedia.org/wiki/GOST).

Thus the strings which are in Russian are put into the resulting forms. The format of these forms is dictated by Russian standards and it must be as it is.

4112. By Alexander Lunev

uno_iface.py: supported Python 3

Revision history for this message
jean-pierre charras (jp-charras) wrote :

"Implemented document generator" has not a lot of meaning, it covers many things.
And your main link is a russian doc. I am still not able to know what is doing your patch.
Is something a like a Bill of Material ?

If yes, now the right approach is to use the generic xml netlist to extract the schematic info, and external tools (scripts, or other tools) to parse this netlist and create the doc, not to add code inside the existing kicad code.
This is fully transparent for the user.
See Eeschema, chapter 14 for more info.
There are also few examples in python in sources.

I do not agree with the sentence:
"This section is intended for Russian speaking people only and only for countries where the mentioned above standards are valid"
I am talking about Kicad code. It should be readable by all developpers.
You can use English sentences, and internationalization to see them in Russian form or other languages.
When they should be in a given language, at least they can be defined under an English #define keyword

4113. By Alexander Lunev

fixed an issue with UTF8 encoding

Revision history for this message
Alexander Lunev (al-lunev) wrote :

""Implemented document generator" has not a lot of meaning, it covers many things."

Instead I wrote "Implemented document generator conforming to Russian standards". This means that the generator forms documents according to the set of Russian standards.
In this specific sphere (electronic circuit diagrams and accompanying documentation) we have only one valid standard in Russia. Its name, if translate it to English, is "Unified system for design documentation". The root regulating document of the standard is "ГОСТ 2.001-93". "ГОСТ" can be transliterated to English as "GOST". That is why there is cmake KICAD_GOST option in KiCad.
This new feature (generator) is intended only for Russia users and users of other countries which use the same standard (the standard is in Russian).

"Is something a like a Bill of Material ?
If yes, now the right approach is to use the generic xml netlist to extract the schematic info, and external tools (scripts, or other tools) to parse this netlist and create the doc, not to add code inside the existing kicad code.
This is fully transparent for the user."

Yes, it is like a BOM.
Using an intermediate file is NOT the right approach. It is only possible approach and can be considered as a minimum goal.
And it is not transparent to an ordinary user.

It is transparent to an ordinary user if a user clicks one button and everything works, the user immediately takes the generated documents. It is a more elaborate and difficult task. Moreover, this task has been already completed.

Among cons of using an intermediate file are:
1) e-mails like this: "[kicad-users] Python library script "pcbnew" - where is it?"
2) choosing correct settings by a user in KiCad to generate the right form of an intermediate file
3) synchronizing the source code of GOST-doc-gen and rebuilding it every time when the format of an intermediate file is changed

And I do not understand you. In case of pcad2kicad, standalone executable and an intermediate xml file are bad. But here all these "devils" are good!?

"You can use English sentences, and internationalization to see them in Russian form or other languages."

What for?
Languages other than Russian are not used for these literals.

Revision history for this message
jean-pierre charras (jp-charras) wrote :

The intermediate file is not an intermediate file:
it is *the* new netlist format, which exists under 2 format:
a S-expression format (easy to parse with the s-expr internal parser)
a xml format: the same file, easy to parse with external xml parsers.
This netlist contains all data to create BOM and boards ...
Many post processings uses a netlist, so I do not understand why is NOT the right approach.

And yes, using this approach is fully transparent to the user, once the comand line is initialized (see the netlist dialog). Only one click to generate the file. And the user does not know there is an intermediate file (kicad already uses intermediate files).

Yours cons are irrelevant:
1 - the guy has not even had a look to files in kicad (kicad/python)
2 - there is no setting (just a command line which could be predefined)
3 - intermediate file does not change as fast as the kicad internal code.

For kicad2pcad, you forgot what I said you:
1 - Pcbnew includes a plugin mechanism to import files, use it.
2 - the file to convert was a S-expr files, and pcbnew has a very good S-expr parser. Why to write your S-expr code parser to create an inttermediate file with a new parser, this was duplicate and/or useless code.

This is very different from the BOM generation

About Russian literals, one time more, I am saying I am talking about internal Kicad code.
Your patch come with not comments, and many sentences not readable for non Russian contributors
It means this work cannot be modified and used by some other contributor which want mo modify the BOM to make their own BOM format.
Each company has its BOM format, therefore GOST format is only one of multiple existing formats.
Creating code which cannot be understood by contributors is not the spirit of free open source software.

Besides, the patch creates a heavy dependance of Kicad sources with openoffice/libreoffice sdk.
This is a *major drawback*.
This can be easily avoided by a fully external script.

If it is only for Russian users, no problem with Russian literals.
But if it is only for Russian users, there is no room for this patch inside Kicad code.
Code inside Kicad is made for everybody.

Therefore I cannot accept your patch.

Revision history for this message
Alexander Lunev (al-lunev) wrote :
Download full text (6.8 KiB)

Now I generated netlist file and there are not at least the following fields:
TITLE_BLOCK.GetTitle()
TITLE_BLOCK.GetComment1()
TITLE_BLOCK.GetComment2()
TITLE_BLOCK.GetComment3()
TITLE_BLOCK.GetComment4()
and so on.
These fields and many other are necessary for GOST-doc-gen. All the necessary fields are easily accessible inside of KiCad eeschema.

"And yes, using this approach is fully transparent to the user, once the comand line is initialized (see the netlist dialog). Only one click to generate the file. And the user does not know there is an intermediate file"

And what is next?
1) A user clicked 2) the user does not know there is an intermediate file 3) and what is next? Where are the resultant GOST documents?

"Yours cons are irrelevant:
1 - the guy has not even had a look to files in kicad (kicad/python)
2 - there is no setting (just a command line which could be predefined)
3 - intermediate file does not change as fast as the kicad internal code."

1,2 - explain, please, the whole picture in detail (from the click up to getting the resultant GOST documents).
3 - file formats of KiCad change quite often. In case of embedding GOST-doc-gen inside of eeschema sources, any changes in eeschema will be synchronously made in both the eeschema and GOST-doc-gen part. And it is transparent to a user because a user does not need to search for compatible GOST-doc-gen executible if such even exists. Taking the same benefit for pcad2kicad into a account I agreed with Wayne to transform standalone executable into pcad2kicad Pcbnew plugin.

And I do not understand why you are so insisting on separating everything from KiCad.
According to your logic, may be let us remove Gerber or VRML generation from Pcbnew? Because it is enough to have the external kicad_pcb file format? May be let us have external tools to generate Gerber and so on?

By the way, where is pcad2kicadsch in the KiCad source tree?
The whole year has already passed however pcad2kicadsch still lives as a separate project. And all this despite all your and the rest of KiCad admin caprices were satisfied!

"About Russian literals, one time more, I am saying I am talking about internal Kicad code.
Your patch come with not comments, and many sentences not readable for non Russian contributors
It means this work cannot be modified and used by some other contributor which want mo modify the BOM to make their own BOM format.
Each company has its BOM format, therefore GOST format is only one of multiple existing formats."

Once more again, "Your patch come with not comments" is not the truth. There are comments but in not all places. I am going to add more comments.
I doubt that adopting my work by other non Russian speaking contributors for countries which do not use the GOST makes sense. I mean the specific part of code which implements GOST requirements and contains Russian literals.

I suggest you to compile KICAD_GOST version and take a look at generated forms (no source dependencies, only OpenOffice or LibreOffice needs to be installed). There is a sample circuit in demos (demos/GOST/multivibrator.sch).
If you really thinks that such forms of documents can be adopted then no problem, I, of...

Read more...

4114. By Alexander Lunev

added GOST component manager

4115. By Alexander Lunev

fixed an issue with processing the first line of the main table (listCtrl);
fixed an issue with eeschema not asking to save project if component attributes actually changed;
supported floating window of component manager (from now on the component manager can lose focus without the need to close its windows)

Revision history for this message
Konstantin Baranovskiy (baranovskiykonstantin) wrote :

@jean-pierre charras, function GOST_doc_gen really a very important tool in the design of electronic circuits and implemented it qualitatively (thanks to Alexander Lunev). I see no reason to give up the proposed functionality. All the more so implemented interfaces can be used by other developers to implement new features.

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

This merge request is a highly domain specific (GOST) solution that's only purpose it to create a BOM in the GOST format. Given the support issues with our current BOM output (not the generic netlist support), the last thing we need is yet another BOM generator that users will complain about. Check the users mailing list on Yahoo if you don't believe this is an issue. It also pulls in the OpenOffice API and RPC as optional build dependencies which I have no interest in supporting. It increases the number of #ifdef GOST/#endif conditional code which the project has been working at reducing. The eventual goal is to add user definable borders and title blocks which would eliminate all of the GOST code except the reference designators used in component sub-parts which could probably be replace with some type of user definable string substitution. If this was implemented as script called by the new netlist post processing support I would be more inclined to include it as a good example of how to export a BOM into an OpenOffice file. Adding the title block information to information to the XML netlist probably would be that objectionable and then you would have all of the information you need to generate your OpenOffice file using ptyhon-uno. I recommend that this be kept as a user specific branch.

review: Disapprove
Revision history for this message
Alexander Lunev (al-lunev) wrote :

Wayne, you disappointed me once again.
The first time was with pcad2kicad standalone executable.

The situation has repeated. When a hard work is already completed and ready to use by many users around the world, you suggest to throw it away not concerning the users and me of course.

You also said nothing about the component manager:

"implemented component manager (contains only English words and could be used by any KiCad user for general purpose). Features:
   - listing all components and displaying the full component string in the form how it would be printed in the resultant documents
   - adding new circuit variants
   - viewing and working with components in various planes (full list, constant part, variable part for given variant)
   - assigning components to variants
   - possibility to assign a component "not installed" status. This status will be displayed in the component index document and as a result such components will not be printed in the specification document
   - editing component attributes (Title, Value, Type, Precision and so on)
   - components with reference description like "A1C1" are formed into sets and appropriately printed in the resultant documents
   - possibility to edit components as a group by means of multiple selection in the main table of the component manager
   - all changes made in both the eeshema and the component manager are mutually reflected to each other (invisibly to a user)
   - initiating immediate generation of GOST documents from the component manager"

Revision history for this message
Wayne Stambaugh (stambaughw) wrote :

On 5/13/2013 6:43 PM, Alexander Lunev wrote:
> Wayne, you disappointed me once again.
> The first time was with pcad2kicad standalone executable.
>
> The situation has repeated. When a hard work is already completed and ready to use by many users around the world, you suggest to throw it away not concerning the users and me of course.
>
> You also said nothing about the component manager:
>
> "implemented component manager (contains only English words and could be used by any KiCad user for general purpose). Features:
> - listing all components and displaying the full component string in the form how it would be printed in the resultant documents
> - adding new circuit variants
> - viewing and working with components in various planes (full list, constant part, variable part for given variant)
> - assigning components to variants
> - possibility to assign a component "not installed" status. This status will be displayed in the component index document and as a result such components will not be printed in the specification document
> - editing component attributes (Title, Value, Type, Precision and so on)
> - components with reference description like "A1C1" are formed into sets and appropriately printed in the resultant documents
> - possibility to edit components as a group by means of multiple selection in the main table of the component manager
> - all changes made in both the eeshema and the component manager are mutually reflected to each other (invisibly to a user)
> - initiating immediate generation of GOST documents from the component manager"
>

Alexander,

Please let me make it clear that this will be my last response to this
merge request. I made my decision based on what I feel is best for the
project. I expect at times my decisions will disappoint but that is not
the goal.

At no point did I ever tell you to throw away any of your code. That
doesn't even sound like something I would say. Regarding pcad2kicad, I
suggested that it be refactored as a plug-in which was accepted in KiCad
so I fail to see any issue there. I also did not tell you to throw away
this merge request. I only suggested that it maintained in a separate
branch. I am not sure how this hurts users as long as your branch is
available to the public. The choice to throw away this code would be yours.

As a lead developer, even I would not have started on a project like
this without consulting the other lead developers at a minimum for
input. The decision to take on this project was yours alone and you
gave no consideration to the fact that it could get rejected.

I looks to me as though your "component manager" is spreadsheet view of
component properties similar to OrCad which is useful. I'm not sure why
you chose to implement it with the OpenOffice SDK and RPC instead of
wxGrid which would have been a better fit for the project. This single
decision alone probably would have made this merge request worth
considering. This most certainly would have been suggest if you would
have let other developers know what your intentions were before you started.

Best Regards,

Wayne

4116. By Konstantin Baranovskiy

in GOST part was fixed numbering of parts elements (numbers instead of letters) in library viewer and in message's panels;
small fix in GOST_doc_gen.

4117. By Alexander Lunev

temporarily discarded using a floating (independent) window of the component manager because of crashing issues

4118. By Alexander Lunev

merge with revision 4153 of lp:kicad branch

4119. By Alexander Lunev

supported OpenOffice/LibreOffice installations distributed with Python as a bundle in case of Linux OS

4120. By Alexander Lunev

merge with revision 4155 of lp:kicad branch

4121. By Alexander Lunev

merge with lp:~kicad-gost-committers/kicad/pcad2kicad branch

4122. By Alexander Lunev

added "eeschema->Tools->Run pcad2kicadsch converter" menu item;
added a link to the KiCad about dialog referencing the Internet forum dedicated to KiCad Russian support, including GOST support

4123. By Alexander Lunev

fixed compilation warnings

4124. By Alexander Lunev

improved odt file loading diagnostics

4125. By Alexander Lunev

added optional uno_iface.py logging to a file

4126. By Alexander Lunev

merge with revision 4157 of lp:kicad branch

4127. By Alexander Lunev

added Info.plist file for pcad2kicadsch Mac OS support;
copied eeschema/eeschema.icns to extra/pcad2kicadsch/pcad2kicadsch.icns;
copied eeschema/eeschema_doc.icns to extra/pcad2kicadsch/pcad2kicadsch_doc.icns

4128. By Alexander Lunev

merge with revision 4168 of lp:kicad branch

4129. By Alexander Lunev

GOST-doc-gen: generating documents in hidden mode to prevent a user from closing office before the document is formed;
added progress dialog

4130. By Alexander Lunev

GOST-doc-gen: supported Company field

4131. By Alexander Lunev

merge with revision 4171 of lp:kicad branch

4132. By Alexander Lunev

recovered "eeschema->Tools->Generate Bill of Materials" menu item due to user requests to do this

4133. By Alexander Lunev

GOST-doc-gen: fixed an issue with long strings w/o tokens;
supported parentheses to make line feeds if necessary;
added workaround for eeschema bug (Value field is assigned to Chip Name field by default on the component adding from a library)

4134. By Alexander Lunev

merge with revision 4182 of lp:kicad branch

4135. By Alexander Lunev

merge with revision 4184 of lp:kicad branch

4136. By Alexander Lunev

merge with revision 4192 of lp:kicad branch

4137. By Alexander Lunev

merge with revision 4199 of lp:kicad branch

4138. By Alexander Lunev

added CK1202_V1.kicad_pcb file as an output reference to test pcad2kicadpcb converter.
The file was converted from the original CK1202_V1.pcb P-Cad pcb file by pcad2kicadpcb

4139. By Alexander Lunev

fixed an issue in s_expr_loader.cpp which resulted in not working of the following features:
1) text fields (graphic elements) of pcad2kicad sch library conversion (supported in rev. 3671 of pcad2kicad branch)
2) stand-alone texts of pcad2kicadpcb (supported in rev. 3658 of pcad2kicad branch)

The bug was introduced in rev. 3681 of pcad2kicad branch (applied S-expressions DSNLEXER to load P-Cad ASCII files)

4140. By Alexander Lunev

supported stand-alone text and lines for pcad2kicad schematic conversion;
updated CK1202_V1.kicad_pcb file corresponding to the previous commit

4141. By Alexander Lunev

fixed compile error in case of wxWidgets version < 2.9.0

4142. By Alexander Lunev

fixed an issue with scaling added in rev. 3677 of pcad2kicad branch (added scaling metric coordinates to fit inch grid for sch pcad2kicad conversion because kicad schematic does not support metric grid).
The scaling was broken in rev. 3696 of pcad2kicad branch (applied BIU conversion).

4143. By Alexander Lunev

changed build version postfix from GOST to GOST-COMMITTERS meaning that the build is based on lp:~kicad-gost-committers/kicad/kicad branch

4144. By Alexander Lunev

moved all BOM related stuff ("eeschema->Tools->Generate Bill of Materials" menu item) to eeschema/BOM directory

4145. By Alexander Lunev

merge with revision 4200 of lp:kicad branch

4146. By Alexander Lunev

merge with revision 4209 of lp:kicad branch

4147. By Alexander Lunev

started bilingual support in GOST-doc-gen and component manager

4148. By Alexander Lunev

supported grammar rule for russian letter after soft consonant in the end of a word

4149. By Alexander Lunev

merge with revision 4212 of lp:kicad branch

4150. By Alexander Lunev

wrapped all functions of doc_common, doc_component_index and doc_specification c++ modules into classes

4151. By Alexander Lunev

merge with revision 4145 of lp:~kicad-gost-committers/kicad/GOST-doc-gen-new-templates branch

4152. By Alexander Lunev

GOST-doc-gen: further adaptation to the new templates in order to fit a text into fields

4153. By Alexander Lunev

merge with revision 4214 of lp:kicad branch;
recovered sortByValueOnly(), splitRefStr() and engStrToDouble() methods needed by eeschema/BOM/build_BOM.cpp;
from now on there are two Generate BOM items in the eeschema/Tools menu (both the old and new implementations)

4154. By Alexander Lunev

merge with revision 4215 of lp:kicad branch

4155. By Alexander Lunev

GOST-doc-gen: fixed an issue with Python 3

4156. By Alexander Lunev

pcad2kicadpcb: fixed an issue with setting the Reference and Value of a module

4157. By Alexander Lunev

merge with revision 4217 of lp:kicad branch

4158. By Alexander Lunev

experimental support for ChipName, Value and Type fields in cvpcb compatible with GOST-doc-gen

4159. By Alexander Lunev

GOST-doc-gen: supported additional measure units

4160. By Alexander Lunev

pcad2kicad: added check for file format

4161. By Alexander Lunev

pcad2kicadsch: added space replacement with underscore in Chip Names;
fixed an issue with stand-alone text of pcad2kicad schematic library conversion

4162. By Alexander Lunev

GOST component manager: implemented unconditional saving Value and Type attributes even if they contain an empty string

4163. By Alexander Lunev

GOST-doc-gen: supported auto-splitting the string of collumn "Name" printed in the component index document;
centered the text of a group name in the component index document

4164. By Alexander Lunev

merge with revision 4223 of lp:kicad branch

4165. By Alexander Lunev

GOST-doc-gen: fixed an issue with centering/underlining printed text

4166. By Alexander Lunev

GOST-doc-gen: supported capacitor values w/o specifying pF unit in them

4167. By Alexander Lunev

enhanced support for ChipName, Value and Type fields in cvpcb compatible with GOST-doc-gen

4168. By Alexander Lunev

merge with revision 4231 of lp:kicad branch

4169. By Alexander Lunev

Component manager: warn once while editing a field of selected components if the components have different parameters

4170. By Alexander Lunev

GOST-doc-gen: fixed an issue with sorting component values depending on locale

4171. By Alexander Lunev

GOST component manager: added initial setting Type attribute by the content of Chip Name field if the Type attribute contain an empty string

4172. By Alexander Lunev

Component manager: corrected NPO to NP0 in Subtype combobox

4173. By Alexander Lunev

merge with revision 4236 of lp:kicad branch

4174. By Alexander Lunev

Component manager: added exclusion of subcomponents

4175. By Alexander Lunev

merge with revision 4237 of lp:kicad branch

4176. By Alexander Lunev

decoupled Component manager window from EESchema one.

4177. By Alexander Lunev

implemented autopointing the cursor in both EESchema and Pcbnew according to the selected component in Component manager

4178. By Alexander Lunev

pcad2kicadsch: supported conversion of attributes

4179. By Alexander Lunev

merge with revision 4241 of lp:kicad branch

4180. By Alexander Lunev

merge with revision 4242 of lp:kicad branch

4181. By Konstantin Baranovskiy

Started porting GOST-doc-gen to the python.
DOC_COMMON::ChangeWordForm(...) and dictionaries was done.

4182. By Alexander Lunev

added kicad_uno_iface log files in case of generation of component index and specification documents based on Multivibrator demo circuit. These log files are for unit testing

4183. By Alexander Lunev

added USE_PYTHON_GOSTDOCGEN compilation option;
implemented common ImportPyModule() function;
added importing doc_common.py module to start replacement of GOST-doc-gen c++ implementation with Python one

4184. By Alexander Lunev

corrected setting a field position by Component Manager

4185. By Alexander Lunev

Component Manager: from now on the processing of Value attribute is transparent;
added component attribute validation on Component Manager opening: if it detects that some components have equal Chip Name and Value attributes then it warns that Value attributes will be copied to Type ones including their position, orientation and visibility. After that Value attributes will be cleared. If some of components do not have Type attribute then such attributes will be created.

4186. By Alexander Lunev

fixed some issues with Component Manager. Some of the issues took place only under Ubuntu 10.04 (wxWidgets 2.8.10)

4187. By Alexander Lunev

merge with revision 4243 of lp:kicad branch

4188. By Alexander Lunev

merge with revision 4245 of lp:kicad branch

4189. By Alexander Lunev

merge with revision 4248 of lp:kicad branch

4190. By Alexander Lunev

merge with revision 4251 of lp:kicad branch

4191. By Alexander Lunev

merge with revision 4252 of lp:kicad branch

4192. By Alexander Lunev

merge with revision 4254 of lp:kicad branch

4193. By Alexander Lunev

merge with revision 4255 of lp:kicad branch

4194. By Alexander Lunev

merge with revision 4256 of lp:kicad branch

4195. By Alexander Lunev

merge with revision 4261 of lp:kicad branch

4196. By Alexander Lunev

merge with revision 4262 of lp:kicad branch

4197. By Alexander Lunev

merge with revision 4264 of lp:kicad branch

4198. By Alexander Lunev

merge with revision 4267 of lp:kicad branch

4199. By mmcx

fixed an issue with Component Manager hang-up on fast or multiple component selection

4200. By Alexander Lunev

merge with revision 4268 of lp:kicad branch

4201. By Alexander Lunev

merge with revision 4272 of lp:kicad branch

4202. By Alexander Lunev

merge with revision 4276 of lp:kicad branch

4203. By Alexander Lunev

merge with revision 4279 of lp:kicad branch

4204. By Alexander Lunev

merge with revision 4282 of lp:kicad branch

4205. By Alexander Lunev

merge with revision 4283 of lp:kicad branch

4206. By Alexander Lunev

merge with revision 4285 of lp:kicad branch

4207. By Alexander Lunev

merge with revision 4293 of lp:kicad branch

4208. By Alexander Lunev

merge with revision 4294 of lp:kicad branch

4209. By Alexander Lunev

merge with revision 4309 of lp:kicad branch

4210. By Alexander Lunev

merge with revision 4311 of lp:kicad branch

4211. By Alexander Lunev

merge with revision 4312 of lp:kicad branch

4212. By Alexander Lunev

merge with revision 4313 of lp:kicad branch

4213. By Alexander Lunev

merge with revision 4316 of lp:kicad branch

4214. By Konstantin Baranovskiy

Porting GOST-doc-gen to python:
doc_common.cpp
  SortStringArray()
  ExtractAbsoluteValue()
done.

4215. By Andrey Fedorushkov

add my commit

4216. By Andrey Fedorushkov

merge from bzr4357 lp:kicad

4217. By Andrey Fedorushkov

merge from bzr4357 lp:kicad :: add picad2kicadpcb bzr version control

4218. By Andrey Fedorushkov

fix pcad2kicadpcb: load function

4219. By Andrey Fedorushkov

fix build version

4220. By Andrey Fedorushkov

fix conflicts

4221. By Andrey Fedorushkov

merge to kicad-testing bzr 4415

4222. By Andrey Fedorushkov

fix CMakeLists.txt

4223. By Andrey Fedorushkov

fix build-version

4224. By Andrey Fedorushkov

merge from bzr4431 kicad-testing

4225. By Andrey Fedorushkov

merge from bzr4453-testing

4226. By Andrey Fedorushkov

merge from bzr4476 testing kicad-committers

4227. By Andrey Fedorushkov

merge from bzr4995 kicad-testing

4228. By Andrey Fedorushkov

add new template file

4229. By Andrey Fedorushkov

fix merge from bzr4495 kicad-testing

4230. By Andrey Fedorushkov

merge from bzr4496 kicad-testing, fix typos in template dir

4231. By Andrey Fedorushkov

merge from bzr4497 kicad-testing

4232. By Andrey Fedorushkov

fix error build autoplace.cpp

4233. By Andrey Fedorushkov

merge from bzr4499 kicad-testing

4234. By Andrey Fedorushkov

fix parts range

4235. By Andrey Fedorushkov

merge from bzr4503 kicad-testing

4236. By Andrey Fedorushkov

merge from bzr4505 kicad-testing

4237. By Andrey Fedorushkov

merge from bzr4509 kicad-testing

4238. By Andrey Fedorushkov

merge from bzr4512 kicad-testing

4239. By Andrey Fedorushkov

merge from bzr4513 kicad-testing, rem internal translate in main CMakeLists.txt

4240. By Andrey Fedorushkov

merge from bzr4520, pcbnew: libedit - fix create new module

4241. By Andrey Fedorushkov

add internat

4242. By Andrey Fedorushkov

fix segfault pcbnew

4243. By Andrey Fedorushkov

fix bzr rev

4244. By Andrey Fedorushkov

merge from bzr4558

4245. By Andrey Fedorushkov

merge from bzr4577

4246. By Andrey Fedorushkov

merge from bzr4619 kicad-testing

4247. By Alexander Lunev

added INTERNAT CMake option to prevent "add_subdirectory given source "internat" which is not an existing" error

4248. By Alexander Lunev

merge with revision 4623 of lp:kicad branch

4249. By Alexander Lunev

merge with revision 4624 of lp:kicad branch

4250. By Alexander Lunev

merge with revision 4628 of lp:kicad branch

4251. By Alexander Lunev

merge with revision 4633 of lp:kicad branch

4252. By Alexander Lunev

merge with revision 4635 of lp:kicad branch

4253. By Alexander Lunev

merge with revision 4655 of lp:kicad branch

4254. By Alexander Lunev

merge with revision 4669 of lp:kicad branch

4255. By Alexander Lunev

merge with revision 4701 of lp:kicad branch

4256. By Alexander Lunev

merge with revision 4708 of lp:kicad branch

4257. By Alexander Lunev

merge with revision 4741 of lp:kicad branch

4258. By Alexander Lunev

updated CK1202_V1.kicad_pcb file as an output reference to test pcad2kicadpcb converter

4259. By Alexander Lunev

temporary workaround for static initialization order fiasco

4260. By Alexander Lunev

merge with revision 4742 of lp:kicad branch

4261. By Alexander Lunev

merge with revision 4756 of lp:kicad branch

4262. By Alexander Lunev

merge with revision 4757 of lp:kicad branch

4263. By Alexander Lunev

KICAD_GOST adaptation to KIWAY

4264. By Alexander Lunev

added changes missed in my previous commit

4265. By Alexander Lunev

merge with revision 4809 of lp:kicad branch and further KICAD_GOST adaptation to KIWAY

4266. By Alexander Lunev

removed temporary workaround for static initialization order fiasco due to the issue fixed in revision 4799 of lp:kicad branch

4267. By Alexander Lunev

merge with revision 4810 of lp:kicad branch

4268. By Alexander Lunev

merge with revision 4813 of lp:kicad branch

4269. By Alexander Lunev

merge with revision 4817 of lp:kicad branch

4270. By Alexander Lunev

merge with revision 4825 of lp:kicad branch

4271. By Alexander Lunev

merge with revision 4841 of lp:kicad branch

4272. By Alexander Lunev

merge with revision 4842 of lp:kicad branch

4273. By Alexander Lunev

merge with revision 4845 of lp:kicad branch

4274. By Alexander Lunev

merge with revision 4859 of lp:kicad branch

4275. By Alexander Lunev

merge with revision 4864 of lp:kicad branch

4276. By Alexander Lunev

merge with revision 4866 of lp:kicad branch

4277. By Alexander Lunev

GOST-doc-gen: support for LibreOffice 4.0 - 4.5 on Windows

4278. By Alexander Lunev

merge with revision 4952 of lp:kicad branch

4279. By Alexander Lunev

merge with revision 4955 of lp:kicad branch

4280. By Alexander Lunev

corrected a typo in FindOOInstallationPath() (MinGW compilation case)

4281. By Alexander Lunev

fixed bug #1335547: pcad2kicadsch does not start

4282. By Alexander Lunev

merge with revision 4965 of lp:kicad branch

4283. By Alexander Lunev

merge with revision 4969 of lp:kicad branch

4284. By Alexander Lunev

merge with revision 4973 of lp:kicad branch

4285. By Alexander Lunev

merge with revision 4977 of lp:kicad branch

4286. By Alexander Lunev

merge with revision 4985 of lp:kicad branch

4287. By Alexander Lunev

merge with revision 4989 of lp:kicad branch

4288. By Alexander Lunev

fixed bug #1335435: kicad segment fault when use GOST Tools

4289. By Alexander Lunev

GOST-doc-gen: added check for unspecified component reference

4290. By Alexander Lunev

merge with revision 5005 of lp:kicad branch

4291. By Alexander Lunev

merge with revision 5023 of lp:kicad branch

4292. By Alexander Lunev

merge with revision 5060 of lp:kicad branch

4293. By Alexander Lunev

merge with revision 5070 of lp:kicad branch

4294. By Konstantin Baranovskiy

merge with revision 5113 of lp:kicad branch

4295. By Eldar Khayrullin

Fix compile error after merging with lp:kicad #5113

4296. By Eldar Khayrullin

Improvement in generating GOST documents:
* automatical correction of decimal number (adds letter "П" before "Э3" if present, else adds "ПЭ3");
* removing extra information from name of schematic if present ("Схема электрическая...").

4297. By Konstantin Baranovskiy

Fixed automatic correction of the decimal number. Now does nothing if this field is empty.

4298. By Konstantin Baranovskiy

For component list to design name appends "Перечень элементов" according to GOST 2.701-2008 page 9 item 5.7.4.

4299. By Konstantin Baranovskiy

Changed frame of the sheet of the registration the changes from form 2 to 2a (GOST 2.104).
Improved automatic correction of the suffixes of the decimal numbers in specification.

4300. By Konstantin Baranovskiy

Added automatic definition the type of the schematic for specification generation (see GOST 2.701-2008 page 3, table 2).

4301. By Konstantin Baranovskiy

Corrected filling the designation's (decimal number) field on second and next pages of the specification and the component list documents.

4302. By Konstantin Baranovskiy

merge with revision 5207 of lp:kicad branch

4303. By Konstantin Baranovskiy

Fixed compilation without KICAD_GOST option.

4304. By Konstantin Baranovskiy

merge with revision 5210 of lp:kicad branch

4305. By Konstantin Baranovskiy

merge with revision 5215 of lp:kicad branch

4306. By Konstantin Baranovskiy

merge with revision 5223 of lp:kicad branch

4307. By Konstantin Baranovskiy

merge with revision 5224 of lp:kicad branch

4308. By Alexander Lunev

merge with revision 4309 of lp:~quasiyoke/kicad/kicad branch

4309. By Alexander Lunev

merge with revision 5307 of lp:kicad branch

4310. By Alexander Lunev

recovered BOM_LABEL class which has been removed in lp:kicad branch (it is necessary for eeschema BOM generation in GOST KiCad branch

4311. By Alexander Lunev

adapted pcad2kicadsch to removed old build configuration since kiway is now the only way to build kicad;
eliminated a warning during pcad2kicadsch compilation

4312. By Alexander Lunev

merge with revision 5319 of lp:kicad branch

4313. By Eldar Khayrullin

default use GOST part id notation ".1" (see GOST 2.702-75 and GOST 2.710-81)

4314. By Eldar Khayrullin

default use GOST minimal recomended line width - 0.3 mm (see GOST 2.701-2008 p.5.5) and thickened (see GOST 2.751-73) width for bus - 0.6 mm

4315. By Eldar Khayrullin

default use minimal recomended GOST text size 2,5 mm (see GOST 2.304-81) and for library editor pin name/num text size 1,8 mm

4316. By Eldar Khayrullin

on some Linux distrs (e.g. Ubuntu) Kicad GOST Tools not find Office embedded Python. If so, use environment var KIGOSTPYTHON path, otherwise use the system Python. Also fix compile warning

4317. By Eldar Khayrullin

For plotting used minimal recomended GOST dashed line mark length - 2 mm and space - 1 mm (see GOST 2.303-68). Added plotting dashed lines at SVG format

4318. By Eldar Khayrullin

Returned deleted code in rev. 4314, 4315. Instead used check KICAD_GOST definition

4319. By Eldar Khayrullin

Used correction radius (proportional line width) for plotting dashed lines

4320. By Eldar Khayrullin

Used the separator "-" for group refdes (see published in ИУС №2, 2012 correction to GOST 2.701-2008 ).
Added a transistor in list of component index. Fixed some typos

4321. By Eldar Khayrullin

merge with revision 5444 of lp:kicad branch

4322. By Eldar Khayrullin

merge with revision 5484 of lp:kicad branch

4323. By Eldar Khayrullin

Use in eeschema graphic lines with long dashes instead short for getting more better image lines

4324. By Eldar Khayrullin

merge with revision 5511 of lp:kicad branch

4325. By Alexander Lunev

merge with revision 5524 of lp:kicad

4326. By Eldar Khayrullin

merge with revision 5543 of lp:kicad branch

4327. By Eldar Khayrullin

Fix overlapping Quit hotkey in pcbnew

4328. By Alexander Lunev

merge with revision 5569 of lp:kicad branch

4329. By Alexander Lunev

pcad2kicadsch: supported conversion of wires to bus entries

4330. By Eldar Khayrullin

merge with revision 5573 of lp:kicad branch

4331. By Eldar Khayrullin

merge with revision 5593 of lp:kicad branch

4332. By Eldar Khayrullin

merge with revision 5609 of lp:kicad branch

4333. By Eldar Khayrullin <email address hidden>

merge with revision 5622 of lp:kicad branch

4334. By Eldar Khayrullin

merge with revision 5635 of lp:kicad branch

4335. By Eldar Khayrullin

merge with revision 5648 of lp:kicad branch

4336. By Eldar Khayrullin

merge with revision 5654 of lp:kicad branch

4337. By Eldar Khayrullin

Fix compile error after merge with branch lp:kicad

4338. By Eldar Khayrullin

Merge with revision 5678 of lp:kicad branch

4339. By Eldar Khayrullin

Merge with rev. 5690 of lp:kicad

4340. By Eldar Khayrullin

Merge with rev. 5717 of lp:kicad

4341. By Eldar Khayrullin

Merge with lp:kicad(BZR5743)

4342. By Eldar Khayrullin

Make some strings are to translatable for pcad2kicad utility

4343. By Eldar Khayrullin

Make some strings are to translatable for GOST tools

4344. By Eldar Khayrullin

Make translatable GOST-doc-gen messages

4345. By Eldar Khayrullin

Translate pcad2kicad

4346. By Eldar Khayrullin

Merge with lp:kicad (BZR5795)

Unmerged revisions

4496. By Eldar Khayrullin

PCAD to sch use for metric grid convenient conversion: 0.25mm to 0.254mm

4495. By Eldar Khayrullin

pcad2kicadsch: merge import font properties from master branch

4494. By Eldar Khayrullin

pcad2kicadsch: import IEEE symbols

4493. By Eldar Khayrullin

pcad2kicadsch: replace slashes to '_' in symbols and footprint names

4492. By Eldar Khayrullin

pcad2kicadsch: use fp-lib-table (Note: Archive Footprints from imported pcb to {prj_name}.pretty)

4491. By Eldar Khayrullin

pcad2kicadsch: use new sym-lib-table

4490. By Eldar Khayrullin

pcad2kicadsch: fix not connected Wire Labels

4489. By Eldar Khayrullin

pcad2kicadsch: set Footprint field in library

4488. By Eldar Khayrullin

pcad2kicadsch: set Footprint field in sch symbols

4487. By Eldar Khayrullin

pcad2kicadsch: individual for each pin a visibility name/number

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file '.bzrignore'
--- .bzrignore 2015-04-30 08:46:03 +0000
+++ .bzrignore 2015-06-20 07:42:20 +0000
@@ -48,3 +48,4 @@
48bitmaps_png/tmp48bitmaps_png/tmp
49common/pcb_keywords.cpp49common/pcb_keywords.cpp
50include/pcb_lexer.h50include/pcb_lexer.h
51include/openoffice
5152
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2015-06-11 20:42:48 +0000
+++ CMakeLists.txt 2015-06-20 07:42:20 +0000
@@ -23,6 +23,20 @@
23# reports.23# reports.
24#24#
2525
26# Russian GOST patch
27option( wxUSE_UNICODE "enable/disable building unicode (default OFF)" )
28option( KICAD_GOST "enable/disable building using GOST notation for multiple gates per package (default OFF)" )
29option( USE_INTERNAT "this option needs to be clarified (default OFF)" )
30option( USE_RPC_DOC_SERVER "enable/disable building GOST document generator using RPC document server (default ON)" ON )
31option( USE_OPENOFFICE_SDK "enable/disable building GOST document generator with use of OpenOffice/LibreOffice SDK (default OFF)" )
32option( USE_PYTHON_GOSTDOCGEN "enable/disable building Python based GOST document generator (default OFF)" )
33# USE_RPC_DOC_SERVER and USE_OPENOFFICE_SDK are suboptions of KICAD_GOST option.
34# These suboptions select an approach how to interact with OpenOffice / LibreOffice.
35# It is recommended to set the suboptions as follows: USE_RPC_DOC_SERVER=ON and USE_OPENOFFICE_SDK=OFF.
36# Other suboption combinations suffer from building and incompatibility issues. They are kept as spare approaches.
37
38option( USE_PCAD2KICAD "PCad to Kicad converter (default ON). Warning, this is experimental" ON )
39
26# The desire is to migrate designs *away from* case independence, and to create designs which use40# The desire is to migrate designs *away from* case independence, and to create designs which use
27# literally (case specific) interpreted component names. But for backwards compatibility,41# literally (case specific) interpreted component names. But for backwards compatibility,
28# you may turn OFF this option if you really must. (Remember that with KiCad using text42# you may turn OFF this option if you really must. (Remember that with KiCad using text
@@ -270,6 +284,26 @@
270284
271endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )285endif( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
272286
287if( wxUSE_UNICODE )
288 add_definitions( -DwxUSE_UNICODE )
289endif()
290
291if( KICAD_GOST )
292 add_definitions( -DKICAD_GOST )
293endif()
294
295if( USE_RPC_DOC_SERVER )
296 add_definitions( -DUSE_RPC_DOC_SERVER )
297endif()
298
299if( USE_OPENOFFICE_SDK )
300 add_definitions( -DUSE_OPENOFFICE_SDK )
301endif()
302
303if(USE_PCAD2KICAD)
304 add_definitions(-DUSE_PCAD2KICAD)
305endif(USE_PCAD2KICAD)
306
273if( KICAD_KEEPCASE )307if( KICAD_KEEPCASE )
274 add_definitions( -DKICAD_KEEPCASE )308 add_definitions( -DKICAD_KEEPCASE )
275endif()309endif()
@@ -398,6 +432,7 @@
398 KICAD_PLUGINS432 KICAD_PLUGINS
399 KICAD_DATA433 KICAD_DATA
400 KICAD_DOCS434 KICAD_DOCS
435 KICAD_INTERNAT
401 KICAD_DEMOS436 KICAD_DEMOS
402 KICAD_TEMPLATE )437 KICAD_TEMPLATE )
403438
@@ -596,7 +631,8 @@
596631
597632
598# Find Python and other scripting resources633# Find Python and other scripting resources
599if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES )634if( KICAD_SCRIPTING OR KICAD_SCRIPTING_MODULES OR USE_PYTHON_GOSTDOCGEN OR
635 ( KICAD_GOST AND NOT USE_RPC_DOC_SERVER AND NOT USE_OPENOFFICE_SDK ) )
600 # force a python version < 3.0636 # force a python version < 3.0
601 set( PythonInterp_FIND_VERSION 2.6 )637 set( PythonInterp_FIND_VERSION 2.6 )
602 set( PythonLibs_FIND_VERSION 2.6 )638 set( PythonLibs_FIND_VERSION 2.6 )
@@ -746,6 +782,9 @@
746782
747#add_subdirectory( new )783#add_subdirectory( new )
748784
785if( KICAD_GOST )
786add_subdirectory( extra/pcad2kicadsch )
787endif( KICAD_GOST )
749788
750# Make all libs and executables depend on ExternalProject_Add( boost ),789# Make all libs and executables depend on ExternalProject_Add( boost ),
751# except perhaps bitmap lib. This allows a multi-threaded build to succeed.790# except perhaps bitmap lib. This allows a multi-threaded build to succeed.
@@ -781,6 +820,10 @@
781#############820#############
782# Resources #821# Resources #
783#############822#############
823if( USE_INTERNAT )
824add_subdirectory( internat )
825endif( USE_INTERNAT )
826
784add_subdirectory( demos )827add_subdirectory( demos )
785add_subdirectory( template )828add_subdirectory( template )
786829
787830
=== modified file 'CMakeModules/CreateBzrVersionHeader.cmake'
--- CMakeModules/CreateBzrVersionHeader.cmake 2013-12-28 11:29:20 +0000
+++ CMakeModules/CreateBzrVersionHeader.cmake 2015-06-20 07:42:20 +0000
@@ -63,7 +63,11 @@
63 if( Kicad_REPO_LAST_CHANGED_DATE )63 if( Kicad_REPO_LAST_CHANGED_DATE )
64 string( REGEX REPLACE "^([0-9]+)\\-([0-9]+)\\-([0-9]+)" "\\1-\\2-\\3"64 string( REGEX REPLACE "^([0-9]+)\\-([0-9]+)\\-([0-9]+)" "\\1-\\2-\\3"
65 _kicad_bzr_date ${Kicad_REPO_LAST_CHANGED_DATE} )65 _kicad_bzr_date ${Kicad_REPO_LAST_CHANGED_DATE} )
66 set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION})" )66 if( KICAD_GOST )
67 set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION} GOST-COMMITTERS)" )
68 else( KICAD_GOST )
69 set( KICAD_BUILD_VERSION "(${_kicad_bzr_date} BZR ${Kicad_REPO_REVISION})" )
70 endif( KICAD_GOST )
6771
68 # Definition to conditionally use date and revision returned from the72 # Definition to conditionally use date and revision returned from the
69 # Bazaar log command instead of hand coded date and revision in73 # Bazaar log command instead of hand coded date and revision in
7074
=== added file 'CMakeModules/FindOpenOffice.cmake'
--- CMakeModules/FindOpenOffice.cmake 1970-01-01 00:00:00 +0000
+++ CMakeModules/FindOpenOffice.cmake 2015-06-20 07:42:20 +0000
@@ -0,0 +1,192 @@
1# - Try to find OpenOffice.org SDK, installed from repositories or from "vanilla" distribution
2# Once done this will define
3#
4# OpenOffice_FOUND - System has OpenOffice.org with SDK
5# OpenOffice_VERSION - Version of OpenOffice.org with SDK
6# OOO_PREFIX - Prefix of OpenOffice.org installation
7# OOO_BASIS_DIR - "basis" directory of OpenOffice.org
8# OOO_PROGRAM_DIR - "program" directory of OpenOffice.org
9# OOO_URE_DIR - "ure" directory of OpenOffice.org
10# OOO_SDK_DIR - "sdk" directory of OpenOffice.org
11# OOO_INCLUDE_DIR - include directory of OpenOffice.org
12# UNOPKG_EXECUTABLE - Absolute path of unopkg tool
13#
14# Copyright (c) 2010 Konstantin Tokarev <annulen@gmail.com>
15# Copyright (c) 2013 Alexander Lunev <al.lunev@yahoo.com>
16#
17# Redistribution and use is allowed according to the terms of the New
18# BSD license.
19# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
20
21# TODO: Find Go-oo from Novell
22
23unset(OOO_PREFIX CACHE)
24unset(OOO_BASIS_DIR CACHE)
25unset(OOO_SDK_DIR CACHE)
26unset(OOO_PROGRAM_DIR CACHE)
27unset(UNOPKG_EXECUTABLE CACHE)
28unset(OOO_URE_DIR CACHE)
29unset(OOO_INCLUDE_DIR CACHE)
30
31if(UNIX)
32 set(OOO_PATH_HINTS
33 /usr/lib/openoffice/*
34 /usr/lib/ooo/*
35 /usr/lib64/openoffice/*
36 /usr/lib64/ooo/*
37 /usr/local/openoffice/*
38 /opt/openoffice.org3/*
39 /opt/ooo-dev3/*
40 /usr/lib/libreoffice
41 /usr/lib64/libreoffice
42 )
43elseif(WIN32)
44 set(OOO_PATH_HINTS
45 "C:\\Program Files (x86)\\OpenOffice.org 3"
46 "C:\\Program Files\\OpenOffice.org 3"
47 "C:\\Program Files (x86)\\LibreOffice*"
48 "C:\\Program Files\\LibreOffice*"
49 )
50
51 set(OOO_SDK_PATH_HINTS
52 "C:\\Program Files\\OpenOffice*SDK\\sdk"
53 "C:\\Program Files (x86)\\OpenOffice*SDK\\sdk"
54 "C:\\Program Files\\OpenOffice.org 3\\Basis\\sdk"
55 "C:\\Program Files (x86)\\OpenOffice.org 3\\Basis\\sdk"
56 "C:\\Program Files\\LibreOffice*SDK\\sdk"
57 "C:\\Program Files (x86)\\LibreOffice*SDK\\sdk"
58 )
59
60 set(EXE_EXT ".exe")
61endif(UNIX)
62
63if(OOO_PREFIX)
64 set(OOO_PATH_HINTS
65 "${OOO_PREFIX}/*"
66 ${OOO_PATH_HINTS}
67)
68endif(OOO_PREFIX)
69
70if(WIN32)
71 find_path(OOO_BASIS_DIR
72 NAMES
73 Basis/program/offapi.rdb
74 HINTS
75 ${OOO_PATH_HINTS}
76)
77else(WIN32)
78 find_path(OOO_BASIS_DIR
79 NAMES
80 sdk/bin/idlc
81 HINTS
82 ${OOO_PATH_HINTS}
83)
84endif(WIN32)
85mark_as_advanced(OOO_BASIS_DIR)
86
87if(NOT OOO_BASIS_DIR)
88 if(OpenOffice_FIND_REQUIRED)
89 message(FATAL_ERROR "Could not find OpenOffice.org SDK")
90 endif(OpenOffice_FIND_REQUIRED)
91else(NOT OOO_BASIS_DIR)
92 set(OOO_PREFIX "${OOO_BASIS_DIR}" CACHE STRING "OpenOffice.org root directory")
93
94 if(WIN32)
95 find_path(OOO_SDK_DIR
96 NAMES
97 bin/idlc.exe
98 HINTS
99 ${OOO_SDK_PATH_HINTS}
100 )
101 mark_as_advanced(OOO_SDK_DIR)
102 else(WIN32)
103 set(OOO_SDK_DIR "${OOO_BASIS_DIR}/sdk" CACHE STRING "OpenOffice.org SDK root directory")
104 endif(WIN32)
105
106 message(STATUS "Found OpenOffice.org SDK: ${OOO_SDK_DIR}")
107endif(NOT OOO_BASIS_DIR)
108
109find_path(OOO_PROGRAM_DIR
110 NAMES
111 soffice${EXE_EXT}
112 HINTS
113 "${OOO_PREFIX}/program"
114 "${OOO_PREFIX}/../program"
115)
116mark_as_advanced(OOO_PROGRAM_DIR)
117
118if(NOT OOO_PROGRAM_DIR)
119 if(OpenOffice_FIND_REQUIRED)
120 message(FATAL_ERROR "Could not find OpenOffice.org program directory")
121 endif(OpenOffice_FIND_REQUIRED)
122else(NOT OOO_PROGRAM_DIR)
123 message(STATUS "Found OpenOffice.org program directory: ${OOO_PROGRAM_DIR}")
124endif(NOT OOO_PROGRAM_DIR)
125
126find_file(UNOPKG_EXECUTABLE
127 NAMES
128 unopkg${EXE_EXT}
129 HINTS
130 "${OOO_PREFIX}/program"
131 "${OOO_PREFIX}/../program"
132 NO_DEFAULT_PATH
133)
134mark_as_advanced(UNOPKG_EXECUTABLE)
135
136if(NOT UNOPKG_EXECUTABLE)
137 if(OpenOffice_FIND_REQUIRED)
138 message(FATAL_ERROR "Could not find unopkg executable")
139 endif(OpenOffice_FIND_REQUIRED)
140else(NOT UNOPKG_EXECUTABLE)
141 message(STATUS "Found unopkg executable: ${UNOPKG_EXECUTABLE}")
142endif(NOT UNOPKG_EXECUTABLE)
143
144
145find_path(OOO_URE_DIR
146 NAMES
147 share/java/java_uno.jar
148 java/java_uno.jar
149 HINTS
150 "${OOO_BASIS_DIR}/*"
151)
152mark_as_advanced(OOO_URE_DIR)
153
154if(NOT OOO_URE_DIR)
155 if(OpenOffice_FIND_REQUIRED)
156 message(FATAL_ERROR "Could not find OpenOffice ure directory")
157 endif(OpenOffice_FIND_REQUIRED)
158else(NOT OOO_URE_DIR)
159 set(OOO_URE_JAVA_DIR "${OOO_URE_DIR}/share/java")
160 message(STATUS "Found URE Java path: ${OOO_URE_JAVA_DIR}")
161endif(NOT OOO_URE_DIR)
162
163find_path(OOO_INCLUDE_DIR
164 NAMES
165 com/sun/star/uno/Any.h
166 HINTS
167 "${OOO_SDK_DIR}/include"
168 /usr/include/openoffice
169)
170mark_as_advanced(OOO_INCLUDE_DIR)
171
172if(NOT OOO_INCLUDE_DIR)
173 if(OpenOffice_FIND_REQUIRED)
174 message(FATAL_ERROR "Could not find OpenOffice.org SDK include directory")
175 endif(OpenOffice_FIND_REQUIRED)
176else(NOT OOO_INCLUDE_DIR)
177 message(STATUS "Found OpenOffice.org SDK include directory: ${OOO_INCLUDE_DIR}")
178endif(NOT OOO_INCLUDE_DIR)
179
180if(OOO_PROGRAM_DIR AND OOO_SDK_DIR AND OOO_URE_DIR AND UNOPKG_EXECUTABLE AND OOO_INCLUDE_DIR)
181 set(OpenOffice_FOUND 1)
182
183 if(WIN32)
184 file(READ "${OOO_PROGRAM_DIR}/version.ini" _VERSION_RC_CONTENTS)
185 else(WIN32)
186 file(READ "${OOO_PROGRAM_DIR}/versionrc" _VERSION_RC_CONTENTS)
187 endif(WIN32)
188
189 string(REGEX REPLACE ".*ProductMajor=([0-9]+).*" "\\1" OpenOffice_VERSION "${_VERSION_RC_CONTENTS}")
190else(OOO_PROGRAM_DIR AND OOO_SDK_DIR AND OOO_URE_DIR AND UNOPKG_EXECUTABLE AND OOO_INCLUDE_DIR)
191 set(OpenOffice_FOUND 0)
192endif(OOO_PROGRAM_DIR AND OOO_SDK_DIR AND OOO_URE_DIR AND UNOPKG_EXECUTABLE AND OOO_INCLUDE_DIR)
0193
=== modified file 'common/build_version.cpp'
--- common/build_version.cpp 2015-05-26 06:18:50 +0000
+++ common/build_version.cpp 2015-06-20 07:42:20 +0000
@@ -30,8 +30,12 @@
30#endif30#endif
3131
32#ifndef KICAD_BUILD_VERSION32#ifndef KICAD_BUILD_VERSION
33#if defined KICAD_GOST
34# define KICAD_BUILD_VERSION "(after 2015-may-25 BZR ???? GOST (bzr????-testing))"
35#else
33# define KICAD_BUILD_VERSION "(after 2015-may-25 BZR unknown)"36# define KICAD_BUILD_VERSION "(after 2015-may-25 BZR unknown)"
34#endif37#endif
38#endif
3539
36/**40/**
37 * Function GetBuildVersion41 * Function GetBuildVersion
3842
=== modified file 'common/class_plotter.cpp'
--- common/class_plotter.cpp 2015-03-10 20:00:50 +0000
+++ common/class_plotter.cpp 2015-06-20 07:42:20 +0000
@@ -63,8 +63,13 @@
63 // Temporary init to avoid not initialized vars, will be set later63 // Temporary init to avoid not initialized vars, will be set later
64 m_IUsPerDecimil = 1; // will be set later to the actual value64 m_IUsPerDecimil = 1; // will be set later to the actual value
65 iuPerDeviceUnit = 1; // will be set later to the actual value65 iuPerDeviceUnit = 1; // will be set later to the actual value
66#if defined(KICAD_GOST)
67 m_dashMarkLength_mm = 2.0; // Dashed line parameter in mm: segment
68 m_dashGapLength_mm = 1.0; // Dashed line parameter in mm: gap
69#else
66 m_dashMarkLength_mm = 0.5; // Dashed line parameter in mm: segment70 m_dashMarkLength_mm = 0.5; // Dashed line parameter in mm: segment
67 m_dashGapLength_mm = 0.25; // Dashed line parameter in mm: gap71 m_dashGapLength_mm = 0.25; // Dashed line parameter in mm: gap
72#endif
68}73}
6974
70PLOTTER::~PLOTTER()75PLOTTER::~PLOTTER()
7176
=== modified file 'common/dialog_about/AboutDialog_main.cpp'
--- common/dialog_about/AboutDialog_main.cpp 2015-05-11 16:25:33 +0000
+++ common/dialog_about/AboutDialog_main.cpp 2015-06-20 07:42:20 +0000
@@ -155,6 +155,9 @@
155 description << wxT( "<li>" ) <<155 description << wxT( "<li>" ) <<
156 HtmlHyperlink( wxT( "http://www.kicadlib.org" ),156 HtmlHyperlink( wxT( "http://www.kicadlib.org" ),
157 _( "Repository with additional component libraries" ) ) << wxT( "</li>" );157 _( "Repository with additional component libraries" ) ) << wxT( "</li>" );
158 description << wxT( "<li>" ) <<
159 HtmlHyperlink( wxT( "http://electronix.ru/forum/index.php?showforum=210" ),
160 _( "The Internet forum dedicated to KiCad Russian support, including GOST support" ) ) << wxT( "</li>" );
158 description << wxT( "</ul>" );161 description << wxT( "</ul>" );
159162
160 description << wxT( "</p>" );163 description << wxT( "</p>" );
161164
=== modified file 'common/gr_basic.cpp'
--- common/gr_basic.cpp 2015-03-25 17:27:17 +0000
+++ common/gr_basic.cpp 2015-06-20 07:42:20 +0000
@@ -384,7 +384,11 @@
384void GRDashedLineTo( EDA_RECT* ClipBox, wxDC* DC, int x2, int y2, int width, EDA_COLOR_T Color )384void GRDashedLineTo( EDA_RECT* ClipBox, wxDC* DC, int x2, int y2, int width, EDA_COLOR_T Color )
385{385{
386 s_DC_lastcolor = UNSPECIFIED_COLOR;386 s_DC_lastcolor = UNSPECIFIED_COLOR;
387#if defined(KICAD_GOST)
388 GRSetColorPen( DC, Color, width, wxPENSTYLE_LONG_DASH );
389#else
387 GRSetColorPen( DC, Color, width, wxPENSTYLE_SHORT_DASH );390 GRSetColorPen( DC, Color, width, wxPENSTYLE_SHORT_DASH );
391#endif
388 WinClipAndDrawLine( ClipBox, DC, GRLastMoveToX, GRLastMoveToY, x2, y2, width );392 WinClipAndDrawLine( ClipBox, DC, GRLastMoveToX, GRLastMoveToY, x2, y2, width );
389 s_DC_lastcolor = UNSPECIFIED_COLOR;393 s_DC_lastcolor = UNSPECIFIED_COLOR;
390 GRSetColorPen( DC, Color, width );394 GRSetColorPen( DC, Color, width );
@@ -405,7 +409,11 @@
405 GRLastMoveToX = x2;409 GRLastMoveToX = x2;
406 GRLastMoveToY = y2;410 GRLastMoveToY = y2;
407 s_DC_lastcolor = UNSPECIFIED_COLOR;411 s_DC_lastcolor = UNSPECIFIED_COLOR;
412#if defined(KICAD_GOST)
413 GRSetColorPen( DC, Color, width, wxPENSTYLE_LONG_DASH );
414#else
408 GRSetColorPen( DC, Color, width, wxPENSTYLE_SHORT_DASH );415 GRSetColorPen( DC, Color, width, wxPENSTYLE_SHORT_DASH );
416#endif
409 WinClipAndDrawLine( ClipBox, DC, x1, y1, x2, y2, width );417 WinClipAndDrawLine( ClipBox, DC, x1, y1, x2, y2, width );
410 s_DC_lastcolor = UNSPECIFIED_COLOR;418 s_DC_lastcolor = UNSPECIFIED_COLOR;
411 GRSetColorPen( DC, Color, width );419 GRSetColorPen( DC, Color, width );
412420
=== modified file 'common/kiway.cpp'
--- common/kiway.cpp 2015-03-26 17:27:13 +0000
+++ common/kiway.cpp 2015-06-20 07:42:20 +0000
@@ -105,6 +105,9 @@
105 case FACE_CVPCB: name = KIFACE_PREFIX wxT( "cvpcb" ); break;105 case FACE_CVPCB: name = KIFACE_PREFIX wxT( "cvpcb" ); break;
106 case FACE_GERBVIEW: name = KIFACE_PREFIX wxT( "gerbview" ); break;106 case FACE_GERBVIEW: name = KIFACE_PREFIX wxT( "gerbview" ); break;
107 case FACE_PL_EDITOR: name = KIFACE_PREFIX wxT( "pl_editor" ); break;107 case FACE_PL_EDITOR: name = KIFACE_PREFIX wxT( "pl_editor" ); break;
108#if defined( KICAD_GOST )
109 case FACE_PCAD2KICADSCH: name = KIFACE_PREFIX wxT( "pcad2kicadsch" ); break;
110#endif
108 case FACE_PCB_CALCULATOR: name = KIFACE_PREFIX wxT( "pcb_calculator" ); break;111 case FACE_PCB_CALCULATOR: name = KIFACE_PREFIX wxT( "pcb_calculator" ); break;
109 case FACE_BMP2CMP: name = KIFACE_PREFIX wxT( "bitmap2component" ); break;112 case FACE_BMP2CMP: name = KIFACE_PREFIX wxT( "bitmap2component" ); break;
110113
@@ -257,6 +260,11 @@
257 case FRAME_PL_EDITOR:260 case FRAME_PL_EDITOR:
258 return FACE_PL_EDITOR;261 return FACE_PL_EDITOR;
259262
263#if defined( KICAD_GOST )
264 case FRAME_PCAD2KICADSCH:
265 return FACE_PCAD2KICADSCH;
266#endif
267
260 case FRAME_CALC:268 case FRAME_CALC:
261 return FACE_PCB_CALCULATOR;269 return FACE_PCB_CALCULATOR;
262270
263271
=== modified file 'cvpcb/cvframe.cpp'
--- cvpcb/cvframe.cpp 2015-06-07 18:18:45 +0000
+++ cvpcb/cvframe.cpp 2015-06-20 07:42:20 +0000
@@ -835,10 +835,18 @@
835 {835 {
836 component = m_netlist.GetComponent( i );836 component = m_netlist.GetComponent( i );
837837
838#if defined(KICAD_GOST)
839 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,
840 GetChars( component->GetReference() ),
841 GetChars( FormFullString( component ) ),
842 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
843#else
838 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,844 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,
839 GetChars( component->GetReference() ),845 GetChars( component->GetReference() ),
840 GetChars( component->GetValue() ),846 GetChars( component->GetValue() ),
841 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );847 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
848#endif
849
842 m_compListBox->m_ComponentList.Add( msg );850 m_compListBox->m_ComponentList.Add( msg );
843 }851 }
844852
845853
=== modified file 'cvpcb/cvpcb_mainframe.h'
--- cvpcb/cvpcb_mainframe.h 2015-06-07 18:18:45 +0000
+++ cvpcb/cvpcb_mainframe.h 2015-06-20 07:42:20 +0000
@@ -174,6 +174,9 @@
174174
175 void OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event );175 void OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event );
176176
177#if defined(KICAD_GOST)
178 wxString FormFullString( COMPONENT* aComponent );
179#endif
177 /**180 /**
178 * Function SetNewPkg181 * Function SetNewPkg
179 * links the footprint to the current selected component182 * links the footprint to the current selected component
180183
=== modified file 'cvpcb/readwrite_dlgs.cpp'
--- cvpcb/readwrite_dlgs.cpp 2015-06-07 18:18:45 +0000
+++ cvpcb/readwrite_dlgs.cpp 2015-06-20 07:42:20 +0000
@@ -45,6 +45,28 @@
45#include <fp_conflict_assignment_selector.h>45#include <fp_conflict_assignment_selector.h>
4646
4747
48#if defined(KICAD_GOST)
49wxString CVPCB_MAINFRAME::FormFullString( COMPONENT* aComponent )
50{
51 wxString full_str;
52
53 if( aComponent->GetType() == wxEmptyString )
54 full_str = aComponent->GetName();
55 else
56 full_str = aComponent->GetType();
57
58 if( aComponent->GetValue() != wxT( "~" )
59 && aComponent->GetValue() != aComponent->GetName() )
60 // workaround for eeschema bug (Value field is assigned to Chip Name field by default
61 // on the component adding from a library)
62 {
63 full_str += wxT( " " ) + aComponent->GetValue();
64 }
65
66 return full_str;
67}
68#endif
69
48void CVPCB_MAINFRAME::SetNewPkg( const wxString& aFootprintName )70void CVPCB_MAINFRAME::SetNewPkg( const wxString& aFootprintName )
49{71{
50 COMPONENT* component;72 COMPONENT* component;
@@ -86,10 +108,18 @@
86 component->SetFPID( fpid );108 component->SetFPID( fpid );
87109
88 // create the new component description110 // create the new component description
111
112#if defined(KICAD_GOST)
113 wxString description = wxString::Format( CMP_FORMAT, componentIndex + 1,
114 GetChars( component->GetReference() ),
115 GetChars( FormFullString( component ) ),
116 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
117#else
89 wxString description = wxString::Format( CMP_FORMAT, componentIndex + 1,118 wxString description = wxString::Format( CMP_FORMAT, componentIndex + 1,
90 GetChars( component->GetReference() ),119 GetChars( component->GetReference() ),
91 GetChars( component->GetValue() ),120 GetChars( component->GetValue() ),
92 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );121 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
122#endif
93123
94 // If the component hasn't had a footprint associated with it124 // If the component hasn't had a footprint associated with it
95 // it now has, so we decrement the count of components without125 // it now has, so we decrement the count of components without
@@ -115,7 +145,6 @@
115 DisplayStatus();145 DisplayStatus();
116}146}
117147
118
119/// Return true if the resultant FPID has a certain nickname. The guess148/// Return true if the resultant FPID has a certain nickname. The guess
120/// is only made if this footprint resides in only one library.149/// is only made if this footprint resides in only one library.
121/// @return int - 0 on success, 1 on not found, 2 on ambiguous i.e. multiple matches150/// @return int - 0 on success, 1 on not found, 2 on ambiguous i.e. multiple matches
@@ -344,10 +373,17 @@
344 {373 {
345 COMPONENT* component = m_netlist.GetComponent( i );374 COMPONENT* component = m_netlist.GetComponent( i );
346375
376#if defined(KICAD_GOST)
377 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,
378 GetChars( component->GetReference() ),
379 GetChars( FormFullString( component ) ),
380 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
381#else
347 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,382 msg.Printf( CMP_FORMAT, m_compListBox->GetCount() + 1,
348 GetChars( component->GetReference() ),383 GetChars( component->GetReference() ),
349 GetChars( component->GetValue() ),384 GetChars( component->GetValue() ),
350 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );385 GetChars( FROM_UTF8( component->GetFPID().Format().c_str() ) ) );
386#endif
351387
352 m_compListBox->AppendLine( msg );388 m_compListBox->AppendLine( msg );
353389
354390
=== modified file 'demos/CMakeLists.txt'
--- demos/CMakeLists.txt 2015-04-27 18:02:27 +0000
+++ demos/CMakeLists.txt 2015-06-20 07:42:20 +0000
@@ -1,4 +1,5 @@
1install( DIRECTORY1install( DIRECTORY
2 GOST
2 complex_hierarchy3 complex_hierarchy
3 ecc83 electric4 ecc83 electric
4 flat_hierarchy5 flat_hierarchy
56
=== added directory 'demos/GOST'
=== added file 'demos/GOST/multivibrator-comp-idx-kicad_uno_iface.log'
--- demos/GOST/multivibrator-comp-idx-kicad_uno_iface.log 1970-01-01 00:00:00 +0000
+++ demos/GOST/multivibrator-comp-idx-kicad_uno_iface.log 2015-06-20 07:42:20 +0000
@@ -0,0 +1,103 @@
1('Python version:', (2, 6, 6, 'final', 0))
2Connect
3LoadDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/CompIndexFirstSheet_template.odt}
4SelectTable {0}
5PutCell {3:E4} {Мультивибратор} {0}
6PutCell {3:F1} {АБВГ.000000.001ПЭ3} {0}
7PutCell {0:B1} {АБВГ.000000.001} {0}
8PutCell {3:B4} {Лунев} {0}
9PutCell {3:B5} {Барановский} {0}
10PutCell {3:B8} {Викулов} {0}
11PutCell {3:F6} {ООО "XXXXX"} {0}
12SelectTable {0}
13PutCell {1:A4} {} {0}
14SelectTable {0}
15PutCell {1:A5} {C4} {0}
16PutCell {1:C5} {1} {0}
17PutCell {1:D5} {Не устанавливается} {0}
18SelectTable {0}
19PutCell {1:A6} {} {0}
20SelectTable {0}
21PutCell {1:A7} {} {0}
22PutCell {1:B7} {Резисторы 0805} {2}
23SelectTable {0}
24PutCell {1:A8} {R1} {0}
25PutCell {1:B8} {0805 1 кОм ±5 %} {0}
26PutCell {1:C8} {1} {0}
27PutCell {1:D8} { "Yageo"} {0}
28SelectTable {0}
29PutCell {1:A9} {R2,R3} {0}
30PutCell {1:B9} {0805 100 кОм ±5 %} {0}
31PutCell {1:C9} {2} {0}
32PutCell {1:D9} { "Yageo"} {0}
33SelectTable {0}
34PutCell {1:A10} {R4} {0}
35PutCell {1:B10} {0805 1 кОм ±5 %} {0}
36PutCell {1:C10} {1} {0}
37PutCell {1:D10} { "Yageo"} {0}
38SelectTable {0}
39PutCell {1:A11} {} {0}
40SelectTable {0}
41PutCell {1:A12} {VT1,VT2} {0}
42PutCell {1:B12} {Транзистор PN2222A} {0}
43PutCell {1:C12} {2} {0}
44PutCell {1:D12} {допускается замена} {0}
45PutCell {1:D13} {на MMBT2222A} {0}
46PutCell {1:D14} {"Fairchild"} {0}
47SelectTable {0}
48PutCell {1:A15} {} {0}
49SelectTable {0}
50PutCell {1:A16} {} {0}
51PutCell {1:B16} {Переменные данные для исполнений} {3}
52SelectTable {0}
53PutCell {1:A17} {} {0}
54SelectTable {0}
55PutCell {1:A18} {} {0}
56PutCell {1:B18} {АБВГ.000000.001} {3}
57SelectTable {0}
58PutCell {1:A19} {} {0}
59PutCell {1:B19} {Мультивибратор} {3}
60SelectTable {0}
61PutCell {1:A20} {} {0}
62SelectTable {0}
63PutCell {1:A21} {C1,C2} {0}
64PutCell {1:B21} {Конденсатор 0805-X7R-50 В- 0,1 мкФ ±20 %} {0}
65PutCell {1:C21} {2} {0}
66PutCell {1:D21} { "AVX"} {0}
67SelectTable {0}
68PutCell {1:A22} {} {0}
69SelectTable {0}
70PutCell {1:A23} {} {0}
71PutCell {1:B23} {АБВГ.000000.001-01} {3}
72SelectTable {0}
73PutCell {1:A24} {} {0}
74PutCell {1:B24} {Мультивибратор - 01} {3}
75SelectTable {0}
76PutCell {1:A25} {} {0}
77SelectTable {0}
78PutCell {1:A26} {} {0}
79PutCell {1:B26} {Конденсаторы 0805} {2}
80AppendDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/CompIndexMiddleSheet_template.odt}
81SelectTable {1}
82PutCell {3:G3} {2} {0}
83PutCell {3:F1} {АБВГ.000000.001ПЭ3} {0}
84SelectTable {1}
85PutCell {1:A2} {} {0}
86PutCell {1:B2} {Конденсаторы танталовые тип B} {2}
87SelectTable {1}
88PutCell {1:A3} {C1,C2} {0}
89PutCell {1:B3} {0805-X7R-50 В- 0,22 мкФ ±20 %} {0}
90PutCell {1:C3} {2} {0}
91PutCell {1:D3} { "AVX"} {0}
92SelectTable {1}
93PutCell {1:A4} {C3} {0}
94PutCell {1:B4} {танталовый тип B-16 В- 10 мкФ ±20 %} {0}
95PutCell {1:C4} {1} {0}
96PutCell {1:D4} { "Panasonic"} {0}
97AppendDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/CompIndexLastSheet_template.odt}
98SelectTable {2}
99PutCell {3:I5} {3} {0}
100PutCell {3:F1} {АБВГ.000000.001ПЭ3} {0}
101SelectTable {0}
102PutCell {3:J5} {3} {0}
103Exit
0104
=== added file 'demos/GOST/multivibrator-spec-kicad_uno_iface.log'
--- demos/GOST/multivibrator-spec-kicad_uno_iface.log 1970-01-01 00:00:00 +0000
+++ demos/GOST/multivibrator-spec-kicad_uno_iface.log 2015-06-20 07:42:20 +0000
@@ -0,0 +1,180 @@
1('Python version:', (2, 6, 6, 'final', 0))
2Connect
3LoadDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/SpecificationFirstSheet_template.odt}
4SelectTable {0}
5PutCell {3:E4} {Мультивибратор} {0}
6PutCell {3:F1} {АБВГ.000000.001} {0}
7PutCell {0:B1} {} {0}
8PutCell {3:B4} {Лунев} {0}
9PutCell {3:B5} {Барановский} {0}
10PutCell {3:B8} {Викулов} {0}
11PutCell {3:F6} {ООО "XXXXX"} {0}
12SelectTable {0}
13PutCell {1:A4} {} {0}
14PutCell {1:D4} {} {0}
15SelectTable {0}
16PutCell {1:A5} {} {0}
17PutCell {1:D5} {} {0}
18PutCell {1:E5} {Документация} {3}
19SelectTable {0}
20PutCell {1:A6} {} {0}
21PutCell {1:D6} {} {0}
22SelectTable {0}
23PutCell {1:A7} {} {0}
24PutCell {1:D7} {АБВГ.000000.001 СБ} {0}
25PutCell {1:E7} {Сборочный чертеж} {0}
26SelectTable {0}
27PutCell {1:A8} {} {0}
28PutCell {1:D8} {} {0}
29SelectTable {0}
30PutCell {1:A9} {} {0}
31PutCell {1:D9} {АБВГ.000000.001 Э3} {0}
32PutCell {1:E9} {Схема электрическая} {0}
33PutCell {1:E10} {принципиальная} {0}
34SelectTable {0}
35PutCell {1:A11} {} {0}
36PutCell {1:D11} {} {0}
37SelectTable {0}
38PutCell {1:A12} {A4} {0}
39PutCell {1:D12} {АБВГ.000000.001 ПЭ3} {0}
40PutCell {1:E12} {Перечень элементов} {0}
41SelectTable {0}
42PutCell {1:A13} {} {0}
43PutCell {1:D13} {} {0}
44SelectTable {0}
45PutCell {1:A14} {} {0}
46PutCell {1:D14} {} {0}
47PutCell {1:E14} {Детали} {3}
48SelectTable {0}
49PutCell {1:A15} {} {0}
50PutCell {1:D15} {} {0}
51SelectTable {0}
52PutCell {1:A16} {} {0}
53PutCell {1:C16} {1} {0}
54PutCell {1:D16} {} {0}
55PutCell {1:E16} {Плата печатная} {0}
56PutCell {1:F16} {1} {0}
57SelectTable {0}
58PutCell {1:A17} {} {0}
59PutCell {1:D17} {} {0}
60SelectTable {0}
61PutCell {1:A18} {} {0}
62PutCell {1:D18} {} {0}
63SelectTable {0}
64PutCell {1:A19} {} {0}
65PutCell {1:D19} {} {0}
66PutCell {1:E19} {Прочие изделия} {3}
67SelectTable {0}
68PutCell {1:A20} {} {0}
69PutCell {1:D20} {} {0}
70SelectTable {0}
71PutCell {1:A21} {} {0}
72PutCell {1:D21} {} {0}
73PutCell {1:E21} {Резисторы 0805} {0}
74SelectTable {0}
75PutCell {1:A22} {} {0}
76PutCell {1:C22} {5} {0}
77PutCell {1:D22} {} {0}
78PutCell {1:E22} {0805 1 кОм ±5 %} {0}
79PutCell {1:E23} {Фирма "Yageo"} {0}
80PutCell {1:F22} {2} {0}
81PutCell {1:G22} {R1,R4} {0}
82SelectTable {0}
83PutCell {1:A24} {} {0}
84PutCell {1:C24} {6} {0}
85PutCell {1:D24} {} {0}
86PutCell {1:E24} {0805 100 кОм ±5 %} {0}
87PutCell {1:E25} {Фирма "Yageo"} {0}
88PutCell {1:F24} {2} {0}
89PutCell {1:G24} {R2,R3} {0}
90SelectTable {0}
91PutCell {1:A26} {} {0}
92PutCell {1:D26} {} {0}
93AppendDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/SpecificationMiddleSheet_template.odt}
94SelectTable {1}
95PutCell {3:G3} {2} {0}
96PutCell {3:F1} {АБВГ.000000.001} {0}
97SelectTable {1}
98PutCell {1:A2} {} {0}
99PutCell {1:C2} {7} {0}
100PutCell {1:D2} {} {0}
101PutCell {1:E2} {Транзистор PN2222A} {0}
102PutCell {1:E3} {Фирма "Fairchild"} {0}
103PutCell {1:E4} {допускается замена на} {0}
104PutCell {1:E5} {MMBT2222A} {0}
105PutCell {1:F2} {2} {0}
106PutCell {1:G2} {VT1,VT2} {0}
107SelectTable {1}
108PutCell {1:A6} {} {0}
109PutCell {1:D6} {} {0}
110SelectTable {1}
111PutCell {1:A7} {} {0}
112PutCell {1:D7} {} {0}
113PutCell {1:E7} {Переменные данные} {3}
114PutCell {1:E8} {для исполнений} {3}
115SelectTable {1}
116PutCell {1:A9} {} {0}
117PutCell {1:D9} {} {0}
118SelectTable {1}
119PutCell {1:A10} {} {0}
120PutCell {1:D10} {} {0}
121PutCell {1:E10} {АБВГ.000000.001} {3}
122SelectTable {1}
123PutCell {1:A11} {} {0}
124PutCell {1:D11} {} {0}
125PutCell {1:E11} {Мультивибратор} {3}
126SelectTable {1}
127PutCell {1:A12} {} {0}
128PutCell {1:D12} {} {0}
129SelectTable {1}
130PutCell {1:A13} {} {0}
131PutCell {1:C13} {2} {0}
132PutCell {1:D13} {} {0}
133PutCell {1:E13} {Конденсатор 0805-X7R-50 В-} {0}
134PutCell {1:E14} {0,1 мкФ ±20 %} {0}
135PutCell {1:E15} {Фирма "AVX"} {0}
136PutCell {1:F13} {2} {0}
137PutCell {1:G13} {C1,C2} {0}
138SelectTable {1}
139PutCell {1:A16} {} {0}
140PutCell {1:D16} {} {0}
141SelectTable {1}
142PutCell {1:A17} {} {0}
143PutCell {1:D17} {} {0}
144PutCell {1:E17} {АБВГ.000000.001-01} {3}
145SelectTable {1}
146PutCell {1:A18} {} {0}
147PutCell {1:D18} {} {0}
148PutCell {1:E18} {Мультивибратор - 01} {3}
149SelectTable {1}
150PutCell {1:A19} {} {0}
151PutCell {1:D19} {} {0}
152SelectTable {1}
153PutCell {1:A20} {} {0}
154PutCell {1:C20} {3} {0}
155PutCell {1:D20} {} {0}
156PutCell {1:E20} {Конденсатор 0805-X7R-50 В-} {0}
157PutCell {1:E21} {0,22 мкФ ±20 %} {0}
158PutCell {1:E22} {Фирма "AVX"} {0}
159PutCell {1:F20} {2} {0}
160PutCell {1:G20} {C1,C2} {0}
161SelectTable {1}
162PutCell {1:A23} {} {0}
163PutCell {1:D23} {} {0}
164SelectTable {1}
165PutCell {1:A24} {} {0}
166PutCell {1:C24} {4} {0}
167PutCell {1:D24} {} {0}
168PutCell {1:E24} {Конденсатор} {0}
169PutCell {1:E25} {танталовый тип B-16 В-} {0}
170PutCell {1:E26} {10 мкФ ±20 %} {0}
171PutCell {1:E27} {Фирма "Panasonic"} {0}
172PutCell {1:F24} {1} {0}
173PutCell {1:G24} {C3} {0}
174AppendDocument {file:///usr/local/share/kicad/GOST-doc-gen/templates/CompIndexLastSheet_template.odt}
175SelectTable {2}
176PutCell {3:I5} {3} {0}
177PutCell {3:F1} {АБВГ.000000.001} {0}
178SelectTable {0}
179PutCell {3:J5} {3} {0}
180Exit
0181
=== added file 'demos/GOST/multivibrator.sch'
--- demos/GOST/multivibrator.sch 1970-01-01 00:00:00 +0000
+++ demos/GOST/multivibrator.sch 2015-06-20 07:42:20 +0000
@@ -0,0 +1,250 @@
1EESchema Schematic File Version 2
2LIBS:power
3LIBS:device
4LIBS:transistors
5LIBS:conn
6LIBS:linear
7LIBS:regul
8LIBS:74xx
9LIBS:cmos4000
10LIBS:adc-dac
11LIBS:memory
12LIBS:xilinx
13LIBS:special
14LIBS:microcontrollers
15LIBS:dsp
16LIBS:microchip
17LIBS:analog_switches
18LIBS:motorola
19LIBS:texas
20LIBS:intel
21LIBS:audio
22LIBS:interface
23LIBS:digital-audio
24LIBS:philips
25LIBS:display
26LIBS:cypress
27LIBS:siliconi
28LIBS:opto
29LIBS:atmel
30LIBS:contrib
31LIBS:valves
32EELAYER 24 0
33EELAYER END
34$Descr A4 8268 11693 portrait
35encoding utf-8
36Sheet 1 1
37Title "Мультивибратор"
38Date "21 apr 2013"
39Rev ""
40Comp "ООО \"XXXXX\""
41Comment1 "АБВГ.000000.001"
42Comment2 "Лунев"
43Comment3 "Барановский"
44Comment4 "Викулов"
45$EndDescr
46$Comp
47L PN2222A VT1
48U 1 1 5173A466
49P 3300 5300
50F 0 "VT1" H 3300 5152 40 0000 R CNN
51F 1 "~" H 3300 5450 40 0001 R CNN
52F 2 "TO92" H 3200 5402 29 0001 C CNN
53F 3 "~" H 3300 5300 60 0000 C CNN
54F 4 "Транзистор" H 3300 5300 60 0001 C CNN "Title"
55F 5 "Fairchild" H 3300 5300 60 0001 C CNN "Manufacturer"
56F 6 "допускается замена на MMBT2222A" H 3300 5300 60 0001 C CNN "Note"
57F 7 "PN2222A" H 3300 5300 60 0001 C CNN "Type"
58 1 3300 5300
59 -1 0 0 -1
60$EndComp
61$Comp
62L C C1
63U 1 1 5173A497
64P 3900 5300
65F 0 "C1" H 3900 5400 40 0000 L CNN
66F 1 "<00>0,1 мкФ</00><01>0,22 мкФ</01>" H 3906 5215 40 0001 L CNN
67F 2 "~" H 3938 5150 30 0000 C CNN
68F 3 "~" H 3900 5300 60 0000 C CNN
69F 4 "0805" H 3900 5300 60 0001 C CNN "Type"
70F 5 "-X7R-50 В-" H 3900 5300 60 0001 C CNN "SType"
71F 6 "20%" H 3900 5300 60 0001 C CNN "Precision"
72F 7 "AVX" H 3900 5300 60 0001 C CNN "Manufacturer"
73F 8 "<00>Конденсатор</00><01>Конденсатор</01>" H 3900 5300 60 0001 C CNN "Title"
74 1 3900 5300
75 0 1 1 0
76$EndComp
77$Comp
78L R R1
79U 1 1 5173A4D3
80P 3200 4650
81F 0 "R1" V 3280 4650 40 0000 C CNN
82F 1 "1 кОм" V 3207 4651 40 0001 C CNN
83F 2 "~" V 3130 4650 30 0000 C CNN
84F 3 "~" H 3200 4650 30 0000 C CNN
85F 4 "Резистор" V 3200 4650 60 0001 C CNN "Title"
86F 5 "0805" V 3200 4650 60 0001 C CNN "Type"
87F 6 "5%" V 3200 4650 60 0001 C CNN "Precision"
88F 7 "Yageo" V 3200 4650 60 0001 C CNN "Manufacturer"
89 1 3200 4650
90 1 0 0 -1
91$EndComp
92Wire Wire Line
93 3200 5500 3200 5700
94Wire Wire Line
95 3200 5700 5700 5700
96Wire Wire Line
97 5300 5700 5300 5500
98Wire Wire Line
99 3200 4900 3200 5100
100Wire Wire Line
101 3700 4900 3700 5300
102Wire Wire Line
103 3700 5300 3500 5300
104Wire Wire Line
105 4800 5300 5000 5300
106Wire Wire Line
107 4800 4900 4800 5300
108Wire Wire Line
109 5300 4900 5300 5100
110Wire Wire Line
111 3200 4400 3200 4200
112Wire Wire Line
113 3200 4200 5700 4200
114Wire Wire Line
115 5300 4200 5300 4400
116Wire Wire Line
117 4800 4200 4800 4400
118Connection ~ 4800 4200
119Wire Wire Line
120 3700 4200 3700 4400
121Connection ~ 3700 4200
122Wire Wire Line
123 5300 5000 4100 5000
124Wire Wire Line
125 4100 5000 4100 5300
126Connection ~ 5300 5000
127Wire Wire Line
128 4400 5300 4400 5100
129Wire Wire Line
130 4400 5100 3200 5100
131Wire Wire Line
132 5700 5700 5700 4800
133Connection ~ 5300 5700
134Wire Wire Line
135 5700 4200 5700 4400
136Connection ~ 5300 4200
137$Comp
138L R R2
139U 1 1 5173A7AC
140P 3700 4650
141F 0 "R2" V 3780 4650 40 0000 C CNN
142F 1 "100 кОм" V 3707 4651 40 0001 C CNN
143F 2 "~" V 3630 4650 30 0000 C CNN
144F 3 "~" H 3700 4650 30 0000 C CNN
145F 4 "Резистор" V 3700 4650 60 0001 C CNN "Title"
146F 5 "0805" V 3700 4650 60 0001 C CNN "Type"
147F 6 "5%" V 3700 4650 60 0001 C CNN "Precision"
148F 7 "Yageo" V 3700 4650 60 0001 C CNN "Manufacturer"
149 1 3700 4650
150 1 0 0 -1
151$EndComp
152$Comp
153L C C2
154U 1 1 5173A8F6
155P 4600 5300
156F 0 "C2" H 4600 5400 40 0000 L CNN
157F 1 "<00>0,1 мкФ</00><01>0,22 мкФ</01>" H 4606 5215 40 0001 L CNN
158F 2 "~" H 4638 5150 30 0000 C CNN
159F 3 "~" H 4600 5300 60 0000 C CNN
160F 4 "0805" H 4600 5300 60 0001 C CNN "Type"
161F 5 "-X7R-50 В-" H 4600 5300 60 0001 C CNN "SType"
162F 6 "20%" H 4600 5300 60 0001 C CNN "Precision"
163F 7 "AVX" H 4600 5300 60 0001 C CNN "Manufacturer"
164F 8 "<00>Конденсатор</00><01>Конденсатор</01>" H 4600 5300 60 0001 C CNN "Title"
165 1 4600 5300
166 0 1 1 0
167$EndComp
168$Comp
169L R R3
170U 1 1 5173A96B
171P 4800 4650
172F 0 "R3" V 4880 4650 40 0000 C CNN
173F 1 "100 кОм" V 4807 4651 40 0001 C CNN
174F 2 "~" V 4730 4650 30 0000 C CNN
175F 3 "~" H 4800 4650 30 0000 C CNN
176F 4 "Резистор" V 4800 4650 60 0001 C CNN "Title"
177F 5 "0805" V 4800 4650 60 0001 C CNN "Type"
178F 6 "5%" V 4800 4650 60 0001 C CNN "Precision"
179F 7 "Yageo" V 4800 4650 60 0001 C CNN "Manufacturer"
180 1 4800 4650
181 1 0 0 -1
182$EndComp
183$Comp
184L R R4
185U 1 1 5173A975
186P 5300 4650
187F 0 "R4" V 5380 4650 40 0000 C CNN
188F 1 "1 кОм" V 5307 4651 40 0001 C CNN
189F 2 "~" V 5230 4650 30 0000 C CNN
190F 3 "~" H 5300 4650 30 0000 C CNN
191F 4 "Резистор" V 5300 4650 60 0001 C CNN "Title"
192F 5 "0805" V 5300 4650 60 0001 C CNN "Type"
193F 6 "5%" V 5300 4650 60 0001 C CNN "Precision"
194F 7 "Yageo" V 5300 4650 60 0001 C CNN "Manufacturer"
195 1 5300 4650
196 1 0 0 -1
197$EndComp
198$Comp
199L C C3
200U 1 1 5173A4B5
201P 5700 4600
202F 0 "C3" H 5700 4700 40 0000 L CNN
203F 1 "10 мкФ" H 5706 4515 40 0001 L CNN
204F 2 "~" H 5738 4450 30 0000 C CNN
205F 3 "~" H 5700 4600 60 0000 C CNN
206F 4 "<01>Конденсатор</01>" H 5700 4600 60 0001 C CNN "Title"
207F 5 "танталовый тип B" H 5700 4600 60 0001 C CNN "Type"
208F 6 "-16 В-" H 5700 4600 60 0001 C CNN "SType"
209F 7 "20%" H 5700 4600 60 0001 C CNN "Precision"
210F 8 "Panasonic" H 5700 4600 60 0001 C CNN "Manufacturer"
211 1 5700 4600
212 1 0 0 -1
213$EndComp
214$Comp
215L PN2222A VT2
216U 1 1 5173AAC5
217P 5200 5300
218F 0 "VT2" H 5200 5152 40 0000 R CNN
219F 1 "~" H 5200 5450 40 0001 R CNN
220F 2 "TO92" H 5100 5402 29 0001 C CNN
221F 3 "~" H 5200 5300 60 0000 C CNN
222F 4 "Транзистор" H 5200 5300 60 0001 C CNN "Title"
223F 5 "Fairchild" H 5200 5300 60 0001 C CNN "Manufacturer"
224F 6 "допускается замена на MMBT2222A" H 5200 5300 60 0001 C CNN "Note"
225F 7 "PN2222A" H 5200 5300 60 0001 C CNN "Type"
226 1 5200 5300
227 1 0 0 -1
228$EndComp
229$Comp
230L C C4
231U 1 1 5173B0FE
232P 6100 4600
233F 0 "C4" H 6100 4700 40 0000 L CNN
234F 1 "10 мкФ" H 6106 4515 40 0001 L CNN
235F 2 "~" H 6138 4450 30 0000 C CNN
236F 3 "~" H 6100 4600 60 0000 C CNN
237F 4 "Конденсатор" H 6100 4600 60 0001 C CNN "Title"
238F 5 "танталовый тип B" H 6100 4600 60 0001 C CNN "Type"
239F 6 "-16 В-" H 6100 4600 60 0001 C CNN "SType"
240F 7 "20%" H 6100 4600 60 0001 C CNN "Precision"
241F 8 "Panasonic" H 6100 4600 60 0001 C CNN "Manufacturer"
242F 9 "Не устанавливается" H 6100 4600 60 0001 C CNN "Note"
243 1 6100 4600
244 1 0 0 -1
245$EndComp
246Wire Wire Line
247 5700 4800 6100 4800
248Wire Wire Line
249 5700 4400 6100 4400
250$EndSCHEMATC
0251
=== added directory 'eeschema/BOM'
=== added file 'eeschema/BOM/BOM_lister.h'
--- eeschema/BOM/BOM_lister.h 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/BOM_lister.h 2015-06-20 07:42:20 +0000
@@ -0,0 +1,190 @@
1/**
2 * @file BOM_lister.h
3 */
4
5/* This program source code file is part of KiCad, a free EDA CAD application.
6 *
7 * Copyright (C) 2012 Jean-Pierre Charras jp.charras at wanadoo.fr
8 * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, you may find one here:
22 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
23 * or you may search the http://www.gnu.org website for the version 2 license,
24 * or you may write to the Free Software Foundation, Inc.,
25 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
26 */
27
28#ifndef _BOM_LISTER_H_
29#define _BOM_LISTER_H_
30
31#include <sch_reference_list.h>
32
33
34// A helper class to build item lists for BOM,
35// and write lists on files
36class BOM_LISTER
37{
38private:
39 BOM_LABEL_LIST m_labelList; // a list of global and hierarchical labels
40 PART_LIBS* m_libs;
41 SCH_REFERENCE_LIST m_cmplist; // a flat list of components in the full hierarchy
42 FILE* m_outFile; // the output file for BOM generation
43 char m_separatorSymbol; // the separator used for csv files ( usually \t ; or , )
44 bool m_outputFmtCsv; // true to create Csv files, false to create text lists
45 bool m_includeSubComponents; // true to list each part
46 // of a multiple part per package component
47 // false to list only once this kind of component
48 bool m_csvForm; // true to print less verbose component list
49 // false to print more verbose component list
50 bool m_groupReferences; // true to group in list by reference (when possible,
51 // i.e. when other fields have the same value
52 // false to list one reference per line
53 bool m_printLocation; // true to print component location in list by reference
54 std::vector <int> m_fieldIDactive; // list of field IDs to print
55
56public:
57 BOM_LISTER( PART_LIBS* aLibs )
58 {
59 m_outFile = NULL;
60 m_separatorSymbol = '\t';
61 m_outputFmtCsv = false;
62 m_includeSubComponents = false;
63 m_csvForm = true;
64 m_printLocation = false;
65 m_groupReferences = false;
66 m_libs = aLibs;
67 }
68
69 // Accessors:
70 void SetGroupReferences( bool aGroupRef )
71 {
72 m_groupReferences = aGroupRef;
73 }
74
75 void SetPrintLocation( bool aPrintLoc )
76 {
77 m_printLocation = aPrintLoc;
78 }
79
80 void SetIncludeSubCmp( bool aIncludeSubCmp )
81 {
82 m_includeSubComponents = aIncludeSubCmp;
83 }
84
85 /**
86 * Function SetCvsFormOn
87 * prepare parameters to create a BOM list in comma separated value (cvs)
88 * @param aSeparator = the character used as "csv" separator
89 */
90 void SetCvsFormOn( char aSeparator )
91 {
92 m_csvForm = true;
93 m_separatorSymbol = aSeparator;
94 }
95
96 /**
97 * Function SetCvsFormOff
98 * prepare parameters to create a BOM list in full text readable mode
99 * (not csv format)
100 */
101 void SetCvsFormOff()
102 {
103 m_csvForm = false;
104 }
105
106 void AddFieldIdToPrintList( int aFieldId );
107
108 void ClearFieldIdPrintList() { m_fieldIDactive.clear(); }
109
110 /**
111 * Function CreateCsvBOMListByValues
112 * print the list of components, grouped by values:
113 * One line by value. The format is something like:
114 * value;quantity;references;other fields
115 * 18pF;2;"C404 C405";SM0402
116 * 22nF/25V;4;"C128 C168 C228 C268";SM0402
117 * @param aFile = the file to write to (will be closed)
118 */
119 void CreateCsvBOMListByValues( FILE* aFile );
120
121 /**
122 * Function PrintGlobalAndHierarchicalLabelsList
123 * print the list of global and hierarchical labels by sheet or by name
124 * @param aSortBySheet = true to print by sheet name order
125 * false to print by label name order
126 * @param aFile = the file to write to (will be NOT closed)
127 */
128 void PrintGlobalAndHierarchicalLabelsList( FILE* aFile, bool aSortBySheet );
129
130 /**
131 * Function PrintComponentsListByReferenceHumanReadable
132 * print a BOM list in human readable form
133 * @param aFile = the file to write to (will be NOT closed)
134 */
135 bool PrintComponentsListByReferenceHumanReadable( FILE* aFile );
136
137 /**
138 * Function PrintComponentsListByReferenceCsvForm
139 * print the list of components ordered by references. Generate 2 formats:
140 * - full component list in csv form
141 * - "short" component list in csv form, grouped by common fields values
142 * (mainly component value)
143 * @param aFile = the file to write to (will be NOT closed)
144 */
145 bool PrintComponentsListByReferenceCsvForm( FILE* aFile );
146
147 /**
148 * Function PrintComponentsListByValue
149 * print the list of components, sorted by value, one line per component
150 * not useable for csv format (use CreateCsvBOMListByValues instead)
151 * @param aFile = the file to write to (will be NOT closed)
152 */
153 int PrintComponentsListByValue( FILE* aFile );
154
155private:
156
157 /**
158 * Helper function isFieldPrintable
159 * @return true if the field aFieldId should be printed.
160 * @param aFieldId = the field Id (FOOTPRIN, FIELD4 ...)
161 */
162 bool isFieldPrintable( int aFieldId );
163
164 /**
165 * Helper function buildGlobalAndHierarchicalLabelsList
166 * Populate m_labelList with global and hierarchical labels
167 * and sheet pins labels
168 */
169 void buildGlobalAndHierarchicalLabelsList();
170
171 /**
172 * Helper function returnFieldsString
173 * @return a string containing all selected fields texts,
174 * @param aComponent = the schematic component
175 * separated by the csv separator symbol
176 */
177 const wxString returnFieldsString( SCH_COMPONENT* aComponent );
178
179 /**
180 * Helper function returnURLItemLocation
181 * @param aPathName = the full sheet name of item
182 * @param aPosition = a position (in internal units) to print
183 * @return a formated string to print the full location:
184 * /sheet name/( X Y position)
185 */
186 const wxString returnURLItemLocation( const wxString& aPathName,
187 wxPoint aPosition );
188};
189
190#endif // _BOM_LISTER_H_
0191
=== added file 'eeschema/BOM/build_BOM.cpp'
--- eeschema/BOM/build_BOM.cpp 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/build_BOM.cpp 2015-06-20 07:42:20 +0000
@@ -0,0 +1,736 @@
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
5 * Copyright (C) 2012 Wayne Stambaugh <stambaughw@verizon.net>
6 * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, you may find one here:
20 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
21 * or you may search the http://www.gnu.org website for the version 2 license,
22 * or you may write to the Free Software Foundation, Inc.,
23 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26/**
27 * @file build_BOM.cpp
28 * @brief Code used to generate bill of materials.
29 */
30
31#include <algorithm> // to use sort vector
32#include <vector>
33
34#include <fctsys.h>
35#include <sch_sheet.h>
36#include <sch_component.h>
37#include <template_fieldnames.h>
38#include <class_library.h>
39#include <base_units.h>
40
41#include <BOM_lister.h>
42
43/* Creates the list of components, grouped by values:
44 * One line by value. The format is something like:
45 * value;quantity;references;other fields
46 * 18pF;2;"C404 C405";SM0402
47 * 22nF/25V;4;"C128 C168 C228 C268";SM0402
48 * param aFile = the file to write to (will be closed)
49 */
50void BOM_LISTER::CreateCsvBOMListByValues( FILE* aFile )
51{
52 m_outFile = aFile;
53
54 SCH_SHEET_LIST sheetList;
55
56 sheetList.GetComponents( m_libs, m_cmplist, false );
57
58 // sort component list by ref and remove sub components
59 m_cmplist.RemoveSubComponentsFromList();
60
61 // sort component list by value
62 m_cmplist.SortByValueOnly();
63
64 unsigned int index = 0;
65
66 while( index < m_cmplist.GetCount() )
67 {
68 SCH_COMPONENT* component = m_cmplist[index].GetComp();
69 wxString referenceListStr;
70 int qty = 1;
71 referenceListStr.append( m_cmplist[index].GetRef() );
72
73 for( unsigned int ii = index + 1; ii < m_cmplist.GetCount(); )
74 {
75 if( *( m_cmplist[ii].GetComp() ) == *component )
76 {
77 referenceListStr.append( wxT( " " ) + m_cmplist[ii].GetRef() );
78 m_cmplist.RemoveItem( ii );
79 qty++;
80 }
81 else
82 ii++; // Increment index only when current item is not removed from the list
83 }
84
85 // Write value, quantity and list of references
86 fprintf( m_outFile, "%s%c%d%c\"%s\"",
87 TO_UTF8( component->GetField( VALUE )->GetText() ),
88 m_separatorSymbol, qty,
89 m_separatorSymbol, TO_UTF8( referenceListStr ) );
90
91 for( int ii = FOOTPRINT; ii < component->GetFieldCount(); ii++ )
92 {
93 if( isFieldPrintable( ii ) )
94 fprintf( m_outFile, "%c%s", m_separatorSymbol,
95 TO_UTF8( component->GetField( ii )->GetText() ) );
96 }
97
98 fprintf( m_outFile, "\n" );
99 index++;
100 }
101
102 fclose( m_outFile );
103 m_outFile = NULL;
104}
105
106
107bool BOM_LISTER::isFieldPrintable( int aFieldId )
108{
109 for( unsigned ii = 0; ii < m_fieldIDactive.size(); ii++ )
110 if( m_fieldIDactive[ii] == aFieldId )
111 return true;
112
113
114
115
116 return false;
117}
118
119
120void BOM_LISTER::AddFieldIdToPrintList( int aFieldId )
121{
122 for( unsigned ii = 0; ii < m_fieldIDactive.size(); ii++ )
123 if( m_fieldIDactive[ii] == aFieldId )
124 return;
125
126
127
128
129 m_fieldIDactive.push_back( aFieldId );
130}
131
132
133/* compare function for sorting labels by value, then by sheet
134 */
135static bool SortLabelsByValue( const BOM_LABEL& obj1, const BOM_LABEL& obj2 )
136{
137 int ii = obj1.GetText().CmpNoCase( obj2.GetText() );
138
139 if( ii == 0 )
140 ii = obj1.GetSheetPath().Cmp( obj2.GetSheetPath() );
141
142 return ii < 0;
143}
144
145
146/* compare function for sorting labels by sheet, then by alphabetic order
147 */
148static bool SortLabelsBySheet( const BOM_LABEL& obj1, const BOM_LABEL& obj2 )
149{
150 int ii = obj1.GetSheetPath().Cmp( obj2.GetSheetPath() );
151
152 if( ii == 0 )
153 ii = obj1.GetText().CmpNoCase( obj2.GetText() );
154
155 return ii < 0;
156}
157
158
159// Creates the flat list of global, hierachycal labels and pin sheets
160// and populate m_labelList
161void BOM_LISTER::buildGlobalAndHierarchicalLabelsList()
162{
163 m_labelList.clear();
164
165 // Explore the flat sheet list
166 SCH_SHEET_LIST sheetList;
167
168 for( SCH_SHEET_PATH* path = sheetList.GetFirst(); path; path = sheetList.GetNext() )
169 {
170 SCH_ITEM* schItem = (SCH_ITEM*) path->LastDrawList();
171
172 for( ; schItem; schItem = schItem->Next() )
173 {
174 switch( schItem->Type() )
175 {
176 case SCH_HIERARCHICAL_LABEL_T:
177 case SCH_GLOBAL_LABEL_T:
178 m_labelList.push_back( BOM_LABEL( schItem->Type(), schItem, *path ) );
179 break;
180
181 case SCH_SHEET_T:
182 {
183 SCH_SHEET* sheet = (SCH_SHEET*) schItem;
184
185 BOOST_FOREACH( SCH_SHEET_PIN & sheetPin, sheet->GetPins() ) {
186 m_labelList.push_back( BOM_LABEL( SCH_SHEET_PIN_T,
187 &sheetPin, *path ) );
188 }
189 }
190 break;
191
192 default:
193 break;
194 }
195 }
196 }
197}
198
199
200// Print the flat list of global, hierachycal labels and pin sheets
201// contained by m_labelList
202void BOM_LISTER::PrintGlobalAndHierarchicalLabelsList( FILE* aFile, bool aSortBySheet )
203{
204 m_outFile = aFile;
205
206 buildGlobalAndHierarchicalLabelsList();
207
208 wxString msg;
209
210 if( aSortBySheet )
211 {
212 sort( m_labelList.begin(), m_labelList.end(), SortLabelsBySheet );
213 msg.Printf( _(
214 "\n#Global, Hierarchical Labels and PinSheets \
215( order = Sheet Number ) count = %d\n" ),
216 m_labelList.size() );
217 }
218 else
219 {
220 sort( m_labelList.begin(), m_labelList.end(), SortLabelsByValue );
221 msg.Printf( _(
222 "\n#Global, Hierarchical Labels and PinSheets ( \
223order = Alphab. ) count = %d\n\n" ),
224 m_labelList.size() );
225 }
226
227 fprintf( m_outFile, "%s", TO_UTF8( msg ) );
228
229 SCH_LABEL* label;
230 SCH_SHEET_PIN* pinsheet;
231 wxString sheetpath;
232 wxString labeltype;
233
234 for( unsigned ii = 0; ii < m_labelList.size(); ii++ )
235 {
236 switch( m_labelList[ii].GetType() )
237 {
238 case SCH_HIERARCHICAL_LABEL_T:
239 case SCH_GLOBAL_LABEL_T:
240 label = (SCH_LABEL*) ( m_labelList[ii].GetLabel() );
241
242 if( m_labelList[ii].GetType() == SCH_HIERARCHICAL_LABEL_T )
243 labeltype = wxT( "Hierarchical" );
244 else
245 labeltype = wxT( "Global " );
246
247 sheetpath = m_labelList[ii].GetSheetPath().PathHumanReadable();
248 msg.Printf( wxT( "> %-28.28s %s %s\n" ),
249 GetChars( label->GetText() ),
250 GetChars( labeltype ),
251 GetChars( returnURLItemLocation( sheetpath, label->GetPosition() ) ) );
252
253 fputs( TO_UTF8( msg ), m_outFile );
254 break;
255
256 case SCH_SHEET_PIN_T:
257 pinsheet = (SCH_SHEET_PIN*) m_labelList[ii].GetLabel();
258 labeltype = FROM_UTF8( SheetLabelType[pinsheet->GetShape()] );
259
260 msg.Printf( _( "> %-28.28s PinSheet %-7.7s %s\n" ),
261 GetChars( pinsheet->GetText() ),
262 GetChars( labeltype ),
263 GetChars( returnURLItemLocation( m_labelList[ii].GetSheetPath().
264 PathHumanReadable(),
265 pinsheet->GetPosition() ) ) );
266
267 fputs( TO_UTF8( msg ), m_outFile );
268 break;
269
270 default:
271 break;
272 }
273 }
274
275 msg = _( "#End labels\n" );
276 fputs( TO_UTF8( msg ), m_outFile );
277}
278
279
280/*
281 * Helper function
282 * returns a string containing all selected fields texts,
283 * separated by the csv separator symbol (csv form) or a ;
284 */
285const wxString BOM_LISTER::returnFieldsString( SCH_COMPONENT* aComponent )
286{
287 wxString outStr;
288 wxString tmpStr;
289 wxString text;
290
291 for( int ii = FOOTPRINT; ii <= FIELD8; ii++ )
292 {
293 if( !isFieldPrintable( ii ) )
294 continue;
295
296 if( aComponent->GetFieldCount() > ii )
297 text = aComponent->GetField( ii )->GetText();
298 else
299 text = wxEmptyString;
300
301 if( m_csvForm )
302 tmpStr.Printf( wxT( "%c%s" ), m_separatorSymbol, GetChars( text ) );
303 else
304 tmpStr.Printf( wxT( "; %-12s" ), GetChars( text ) );
305
306 outStr += tmpStr;
307 }
308
309 return outStr;
310}
311
312
313/* print the list of components ordered by references,
314 * full component list in human readable form
315 * param aFile = the file to write to (will be NOT closed)
316 */
317
318/* full list in human readable form sample:
319 * #Cmp ( order = Reference )with sub-composants
320 * | C101 47pF Loc /(X=344,170 mm, Y=116,840 mm); C1 ; field1 ;
321 * | C102 47pF Loc /(X=364,490 mm, Y=116,840 mm); C1 ; ;
322 * | C103 47uF Loc /(X=66,040 mm, Y=231,140 mm); CP6 ; ;
323 */
324
325bool BOM_LISTER::PrintComponentsListByReferenceHumanReadable( FILE* aFile )
326{
327 m_outFile = aFile;
328 bool addDatasheet = isFieldPrintable( DATASHEET );
329
330 // Print component location if needed, but only when
331 // include sub component option is enabled, because for multiple
332 // parts per package there are more than one location per reference
333 bool printLocCmp = m_printLocation && m_includeSubComponents;
334
335 wxString msg;
336
337 if( m_cmplist.GetCount() == 0 ) // Build component list
338 {
339 SCH_SHEET_LIST sheetList;
340 sheetList.GetComponents( m_libs, m_cmplist, false );
341
342 // sort component list
343 m_cmplist.SortByReferenceOnly();
344
345 if( !m_includeSubComponents )
346 m_cmplist.RemoveSubComponentsFromList();
347 }
348 else
349 m_cmplist.SortByReferenceOnly();
350
351 // Print comment line:
352 msg = _( "#Cmp ( order = Reference )" );
353
354 if( m_includeSubComponents )
355 msg << _( " (with SubCmp)" );
356
357 fprintf( m_outFile, "%s\n", TO_UTF8( msg ) );
358
359 wxString subReference; // Unit ident, for mutiple parts per package
360 std::string CmpName;
361
362 // Print list of items
363 for( unsigned ii = 0; ii < m_cmplist.GetCount(); ii++ )
364 {
365 EDA_ITEM* item = m_cmplist[ii].GetComp();
366
367 if( item == NULL )
368 continue;
369
370 if( item->Type() != SCH_COMPONENT_T )
371 continue;
372
373 SCH_COMPONENT* comp = (SCH_COMPONENT*) item;
374
375 bool isMulti = false;
376
377 LIB_PART* entry = m_libs->FindLibPart( comp->GetPartName() );
378
379 if( entry )
380 isMulti = entry->IsMulti();
381
382 CmpName = m_cmplist[ii].GetRefStr();
383
384 if( isMulti && m_includeSubComponents )
385 {
386 subReference = LIB_PART::SubReference( m_cmplist[ii].GetUnit() );
387 CmpName += TO_UTF8( subReference );
388 }
389
390 fprintf( m_outFile, "| %-10s %-12s", CmpName.c_str(),
391 TO_UTF8( comp->GetField( VALUE )->GetText() ) );
392
393 if( addDatasheet )
394 fprintf( m_outFile, "%-20s",
395 TO_UTF8( comp->GetField( DATASHEET )->GetText() ) );
396
397 if( m_includeSubComponents )
398 {
399 if( printLocCmp )
400 {
401 msg = returnURLItemLocation( m_cmplist[ii].GetSheetPath().PathHumanReadable(),
402 comp->GetPosition() );
403 fprintf( m_outFile, "%s", TO_UTF8( msg ) );
404 }
405 }
406
407 wxString tmpStr = returnFieldsString( comp );
408 fprintf( m_outFile, "%s\n", TO_UTF8( tmpStr ) );
409 }
410
411 // Print the last line:
412 fputs( "#End Cmp\n", m_outFile );
413
414 return true;
415}
416
417
418/* print the list of components ordered by references. Generate 2 formats:
419 * - full component list in csv form
420 * - "short" component list in csv form, grouped by common fields values
421 * (mainly component value)
422 * param aFile = the file to write to (will be NOT closed)
423 */
424
425/* full csv format sample:
426 * ref;value;sheet path(location);footprint;field1;field2
427 * C101;47pF;Loc /(X=57,150 mm, Y=74,930 mm);Loc /(X=344,170 mm, Y=116,840 mm));C1;field1;
428 * C102;47pF;Loc /(X=344,170 mm, Y=116,840 mm);Loc /(X=364,490 mm, Y=116,840 mm));C1;;
429 * C103;47uF;Loc /(X=364,490 mm, Y=116,840 mm);Loc /(X=66,040 mm, Y=231,140 mm));CP6;;
430 * C104;47uF;Loc /(X=66,040 mm, Y=231,140 mm);Loc /(X=82,550 mm, Y=231,140 mm));CP6;;
431 */
432/* short csv format sample:
433 * ref;value;footprint;Champ1;Champ2
434 * C101;47pF;C1;field1;;1
435 * C102;47pF;C1;;;1
436 * C103..C106;47uF;CP6;;;4
437 */
438
439bool BOM_LISTER::PrintComponentsListByReferenceCsvForm( FILE* aFile )
440{
441 m_outFile = aFile;
442 bool addDatasheet = isFieldPrintable( DATASHEET );
443
444 // Set option group references, for components having same field values
445 // (same value, same footprint ...)
446 // obviously, this is possible only when print location
447 // and include Sub Components are not enabled.
448 bool groupRefs = m_groupReferences;
449 bool includeSubComponents = m_includeSubComponents && !groupRefs;
450
451 // Print component location if needed, but only when
452 // include sub component option is enabled, because for multiple
453 // parts per package there are more than one location per reference
454 bool printLocCmp = m_printLocation && !groupRefs && m_includeSubComponents;
455
456 wxString msg;
457
458 if( m_cmplist.GetCount() == 0 ) // Build component list
459 {
460 SCH_SHEET_LIST sheetList;
461 sheetList.GetComponents( m_libs, m_cmplist, false );
462
463 // sort component list
464 m_cmplist.SortByReferenceOnly();
465
466 if( !includeSubComponents )
467 m_cmplist.RemoveSubComponentsFromList();
468 }
469 else
470 m_cmplist.SortByReferenceOnly();
471
472 // Print comment line:
473 msg = wxT( "ref" );
474 msg << (wxChar)m_separatorSymbol << wxT( "value" );
475
476 if( addDatasheet )
477 msg << (wxChar)m_separatorSymbol << wxT( "datasheet" );
478
479 if( printLocCmp )
480 msg << (wxChar)m_separatorSymbol << wxT( "sheet path(location)" );
481
482 if( isFieldPrintable( FOOTPRINT ) )
483 msg << (wxChar)m_separatorSymbol << wxT( "footprint" );
484
485 for( int ii = FIELD1; ii <= FIELD8; ii++ )
486 {
487 if( isFieldPrintable( ii ) )
488 msg << (wxChar)m_separatorSymbol << _( "Field" ) << ii - FIELD1 + 1;
489 }
490
491 if( groupRefs )
492 msg << (wxChar)m_separatorSymbol << _( "Item count" );
493
494 fprintf( m_outFile, "%s\n", TO_UTF8( msg ) );
495
496 // Print BOM list
497 wxString strCur;
498 wxString strPred;
499 int amount = 0; // number of items, on the same line
500 wxString cmpName;
501 wxString cmpNameFirst;
502 wxString cmpNameLast;
503
504 // Print list of items, by reference
505 for( unsigned ii = 0; ii < m_cmplist.GetCount(); ii++ )
506 {
507 EDA_ITEM* item = m_cmplist[ii].GetComp();
508
509 if( item == NULL )
510 continue;
511
512 if( item->Type() != SCH_COMPONENT_T )
513 continue;
514
515 SCH_COMPONENT* comp = (SCH_COMPONENT*) item;
516
517 LIB_PART* entry = m_libs->FindLibPart( comp->GetPartName() );
518
519 bool isMulti = false;
520
521 if( entry )
522 isMulti = entry->IsMulti();
523
524 cmpName = m_cmplist[ii].GetRef();
525
526 if( isMulti && includeSubComponents )
527 // Add unit ident, for mutiple parts per package
528 cmpName += LIB_PART::SubReference( m_cmplist[ii].GetUnit() );
529
530 if( groupRefs )
531 {
532 // Store value and datasheet (will be printed later)
533 strCur.Empty();
534 strCur << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->GetText();
535
536 if( addDatasheet )
537 strCur << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->GetText();
538 }
539 else
540 {
541 // Print the current component reference, value and datasheet
542 msg = cmpName;
543 msg << (wxChar)m_separatorSymbol << comp->GetField( VALUE )->GetText();
544
545 if( addDatasheet )
546 msg << (wxChar)m_separatorSymbol << comp->GetField( DATASHEET )->GetText();
547
548 fprintf( m_outFile, "%s", TO_UTF8( msg ) );
549 }
550
551 if( printLocCmp ) // Is allowed only for full list (not grouped)
552 {
553 msg = returnURLItemLocation(
554 m_cmplist[ii].GetSheetPath().PathHumanReadable(),
555 comp->GetPosition() );
556
557 fprintf( m_outFile, "%c%s", m_separatorSymbol, TO_UTF8( msg ) );
558 }
559
560 if( groupRefs )
561 {
562 wxString tmpStr = returnFieldsString( comp );
563 strCur += tmpStr;
564
565 if( strPred.Len() == 0 )
566 cmpNameFirst = cmpName;
567 else
568 {
569 // print a BOM line
570 msg.Empty();
571 if( !strCur.IsSameAs( strPred ) )
572 {
573 switch( amount )
574 {
575 case 1: // One reference to print
576 // format C103;47uF;CP6;;;1
577 msg << cmpNameFirst <<strPred << (wxChar)m_separatorSymbol << amount;
578 break;
579
580 case 2: // 2 references to print
581 // format C103,C104;47uF;CP6;;;2
582 msg << cmpNameFirst << wxT(",") << cmpNameLast
583 << strPred << (wxChar)m_separatorSymbol << amount;
584 break;
585
586 default: // Many references to print :
587 // format: C103..C106;47uF;CP6;;;4
588 msg << cmpNameFirst << wxT("..") << cmpNameLast
589 << strPred << (wxChar)m_separatorSymbol << amount;
590 break;
591 }
592 fprintf( m_outFile, "%s\n", TO_UTF8( msg ) );
593
594 cmpNameFirst = cmpName;
595 amount = 0;
596 }
597 }
598
599 strPred = strCur;
600 cmpNameLast = cmpName;
601 amount++;
602 }
603 else
604 {
605 msg = returnFieldsString( comp );
606 fprintf( m_outFile, "%s\n", TO_UTF8( msg ) );
607 }
608 }
609
610 // Print the last line:
611 if( groupRefs )
612 {
613 msg.Empty();
614 switch( amount )
615 {
616 case 1:
617 msg << cmpNameFirst << strPred << (wxChar)m_separatorSymbol << amount;
618 break;
619
620 case 2:
621 msg << cmpNameFirst << wxT(",") << cmpNameLast
622 << strPred << (wxChar)m_separatorSymbol << amount;
623 break;
624
625 default:
626 msg << cmpNameFirst << wxT("..") << cmpNameFirst << cmpNameLast
627 << strPred << (wxChar)m_separatorSymbol << amount;
628 break;
629 }
630 fprintf( m_outFile, "%s\n", TO_UTF8( msg ) );
631 }
632
633 return true;
634}
635
636
637/* PrintComponentsListByValue
638 * print the list of components, sorted by value, one line per component
639 * param aFile = the file to write to (will be NOT closed)
640 * not useable for csv format (use CreateCsvBOMListByValues instead)
641 * format:
642 * | 10pF C15 Loc /controle/(X=48,260 mm, Y=83,820 mm); <fields>
643 * | 10pF C16 Loc /controle/(X=68,580 mm, Y=83,820 mm); <fields>
644 */
645int BOM_LISTER::PrintComponentsListByValue( FILE* aFile )
646{
647 m_outFile = aFile;
648
649 if( m_cmplist.GetCount() == 0 ) // Build component list
650 {
651 SCH_SHEET_LIST sheetList;
652 sheetList.GetComponents( m_libs, m_cmplist, false );
653
654 if( !m_includeSubComponents )
655 {
656 // sort component list
657 m_cmplist.SortByReferenceOnly();
658 m_cmplist.RemoveSubComponentsFromList();
659 }
660 }
661
662 m_cmplist.SortByValueOnly();
663
664 wxString msg;
665
666 msg = _( "\n#Cmp ( order = Value )" );
667
668 if( m_includeSubComponents )
669 msg << _( " (with SubCmp)" );
670
671 msg << wxT( "\n" );
672
673 fputs( TO_UTF8( msg ), m_outFile );
674
675 std::string cmpName;
676 for( unsigned ii = 0; ii < m_cmplist.GetCount(); ii++ )
677 {
678 EDA_ITEM* schItem = m_cmplist[ii].GetComp();
679
680 if( schItem == NULL )
681 continue;
682
683 if( schItem->Type() != SCH_COMPONENT_T )
684 continue;
685
686 SCH_COMPONENT* drawLibItem = (SCH_COMPONENT*) schItem;
687
688 bool isMulti = false;
689 LIB_PART* entry = m_libs->FindLibPart( drawLibItem->GetPartName() );
690
691 if( entry )
692 isMulti = entry->IsMulti();
693
694 cmpName = m_cmplist[ii].GetRefStr();
695
696 if( isMulti && m_includeSubComponents )
697 // Add unit ident, for mutiple parts per package
698 cmpName += TO_UTF8( LIB_PART::SubReference( m_cmplist[ii].GetUnit() ) );
699
700 fprintf( m_outFile, "| %-12s %-10s",
701 TO_UTF8( drawLibItem->GetField( VALUE )->GetText() ),
702 cmpName.c_str() );
703
704 // print the sheet path and location
705 if( m_includeSubComponents )
706 {
707 msg = returnURLItemLocation( m_cmplist[ii].GetSheetPath().PathHumanReadable(),
708 drawLibItem->GetPosition() );
709 fprintf( m_outFile, "%s", TO_UTF8( msg ) );
710 }
711
712 fprintf( m_outFile, "%s\n", TO_UTF8( returnFieldsString( drawLibItem ) ) );
713 }
714
715 msg = _( "#End Cmp\n" );
716 fputs( TO_UTF8( msg ), m_outFile );
717 return 0;
718}
719
720
721/* returnURLItemLocation
722 * return a formated string to print the full location:
723 * <sheet name>/( X Y position)
724 * param aPathName = the full sheet name of item
725 * param aPosition = a position (in internal units) to print
726 */
727const wxString BOM_LISTER::returnURLItemLocation( const wxString& aPathName,
728 wxPoint aPosition )
729{
730 wxString text;
731
732 text.Printf( wxT( "Loc %s(X=%s, Y=%s)" ), GetChars( aPathName ),
733 GetChars( StringFromValue( g_UserUnit, aPosition.x, true ) ),
734 GetChars( StringFromValue( g_UserUnit, aPosition.y, true ) ) );
735 return text;
736}
0737
=== added directory 'eeschema/BOM/dialogs'
=== added file 'eeschema/BOM/dialogs/dialog_build_BOM.cpp'
--- eeschema/BOM/dialogs/dialog_build_BOM.cpp 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/dialogs/dialog_build_BOM.cpp 2015-06-20 07:42:20 +0000
@@ -0,0 +1,592 @@
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2012 Jean-Pierre Charras, jp.charras at wanadoo.fr
5 * Copyright (C) 1992-2011 KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 2
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, you may find one here:
19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20 * or you may search the http://www.gnu.org website for the version 2 license,
21 * or you may write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23 */
24
25/**
26 * @file dialog_build_BOM.cpp
27 */
28
29#include <fctsys.h>
30#include <kiface_i.h>
31#include <pgm_base.h>
32#include <confirm.h>
33#include <gestfich.h>
34#include <kicad_string.h>
35#include <class_sch_screen.h>
36#include <wxstruct.h>
37#include <build_version.h>
38
39#include <netlist.h>
40#include <template_fieldnames.h>
41#include <sch_component.h>
42#include <sch_sheet.h>
43#include <class_library.h>
44
45#include <wx/valgen.h>
46
47#include <dialog_build_BOM.h>
48#include <BOM_lister.h>
49
50
51/* Local variables */
52static bool s_ListByRef = true;
53static bool s_ListByValue = true;
54static bool s_ListWithSubCmponents;
55static bool s_ListHierarchicalPinByName;
56static bool s_ListHierarchicalPinBySheet;
57static bool s_BrowseCreatedList;
58static int s_OutputFormOpt;
59static int s_OutputSeparatorOpt;
60static bool s_Add_Location = false;
61static bool s_Add_FpField_state = true;
62static bool s_Add_DatasheetField_state;
63static bool s_Add_F1_state;
64static bool s_Add_F2_state;
65static bool s_Add_F3_state;
66static bool s_Add_F4_state;
67static bool s_Add_F5_state;
68static bool s_Add_F6_state;
69static bool s_Add_F7_state;
70static bool s_Add_F8_state;
71static bool s_Add_Alls_state;
72static char s_ExportSeparatorSymbol;
73
74
75static bool* s_AddFieldList[] =
76{
77 &s_Add_FpField_state,
78 &s_Add_F1_state,
79 &s_Add_F2_state,
80 &s_Add_F3_state,
81 &s_Add_F4_state,
82 &s_Add_F5_state,
83 &s_Add_F6_state,
84 &s_Add_F7_state,
85 &s_Add_F8_state,
86 &s_Add_Alls_state,
87 &s_Add_DatasheetField_state,
88 NULL
89};
90
91
92const wxString OPTION_BOM_LIST_REF( wxT("BomListPerRef") );
93const wxString OPTION_BOM_LIST_VALUE( wxT("BomListPerValue") );
94const wxString OPTION_BOM_LIST_HPINS( wxT("BomListPerHPins") );
95const wxString OPTION_BOM_LIST_HPINS_BY_SHEET( wxT("BomListHPinsPerSheet") );
96const wxString OPTION_BOM_LIST_HPINS_BY_NAME_( wxT("BomListHPinsPerName") );
97const wxString OPTION_BOM_LIST_SUB_CMP( wxT("BomListSubCmps") );
98
99const wxString OPTION_BOM_FORMAT( wxT("BomFormat") );
100const wxString OPTION_BOM_LAUNCH_BROWSER( wxT("BomLaunchBrowser") );
101const wxString OPTION_BOM_SEPARATOR( wxT("BomExportSeparator") );
102const wxString OPTION_BOM_ADD_FIELD ( wxT("BomAddField") );
103const wxString OPTION_BOM_ADD_LOCATION ( wxT("BomAddLocation") );
104
105/* list of separators used in bom export to spreadsheet
106 * (selected by s_OutputSeparatorOpt, and s_OutputSeparatorOpt radiobox)
107 */
108static char s_ExportSeparator[] = ("\t;,.");
109
110/*!
111 * DIALOG_BUILD_BOM dialog type definition
112 */
113
114
115DIALOG_BUILD_BOM::DIALOG_BUILD_BOM( SCH_EDIT_FRAME* parent ) :
116 DIALOG_BUILD_BOM_BASE( parent )
117{
118 m_config = Kiface().KifaceSettings();
119 wxASSERT( m_config != NULL );
120
121 m_parent = parent;
122
123 Init();
124
125 if( GetSizer() )
126 {
127 GetSizer()->SetSizeHints( this );
128 }
129 Centre();
130}
131
132
133/*!
134 * Init Controls for DIALOG_BUILD_BOM
135 */
136
137void DIALOG_BUILD_BOM::Init()
138{
139 SetFocus();
140
141 /* Get options */
142 m_config->Read( OPTION_BOM_LIST_REF, &s_ListByRef );
143 m_config->Read( OPTION_BOM_LIST_VALUE , &s_ListByValue );
144 m_config->Read( OPTION_BOM_LIST_HPINS, &s_ListHierarchicalPinByName );
145 m_config->Read( OPTION_BOM_LIST_HPINS_BY_SHEET, &s_ListWithSubCmponents );
146 m_config->Read( OPTION_BOM_LIST_HPINS_BY_NAME_, &s_ListWithSubCmponents );
147 m_config->Read( OPTION_BOM_LIST_SUB_CMP, &s_ListWithSubCmponents );
148 m_config->Read( OPTION_BOM_LIST_HPINS_BY_SHEET, &s_ListHierarchicalPinBySheet );
149 m_config->Read( OPTION_BOM_LIST_HPINS_BY_NAME_, &s_ListHierarchicalPinByName );
150 s_OutputFormOpt = m_config->Read( OPTION_BOM_FORMAT, 0l );
151 m_config->Read( OPTION_BOM_LAUNCH_BROWSER, &s_BrowseCreatedList );
152 s_OutputSeparatorOpt = m_config->Read( OPTION_BOM_SEPARATOR, 0l );
153 m_config->Read( OPTION_BOM_ADD_LOCATION, &s_Add_Location );
154
155 long addfields = m_config->Read( OPTION_BOM_ADD_FIELD, 0l );
156 for( int ii = 0, bitmask = 1; s_AddFieldList[ii] != NULL; ii++ )
157 {
158 if( (addfields & bitmask) )
159 *s_AddFieldList[ii] = true;
160 else
161 *s_AddFieldList[ii] = false;
162
163 bitmask <<= 1;
164 }
165
166 // Set validators
167 m_ListCmpbyRefItems->SetValidator( wxGenericValidator( &s_ListByRef ) );
168 m_ListSubCmpItems->SetValidator( wxGenericValidator( &s_ListWithSubCmponents ) );
169 m_ListCmpbyValItems->SetValidator( wxGenericValidator( &s_ListByValue ) );
170 m_GenListLabelsbyVal->SetValidator( wxGenericValidator( &s_ListHierarchicalPinByName ) );
171 m_GenListLabelsbySheet->SetValidator( wxGenericValidator( &s_ListHierarchicalPinBySheet ) );
172 m_OutputFormCtrl->SetValidator( wxGenericValidator( &s_OutputFormOpt ) );
173 m_OutputSeparatorCtrl->SetValidator( wxGenericValidator( &s_OutputSeparatorOpt ) );
174 m_GetListBrowser->SetValidator( wxGenericValidator( &s_BrowseCreatedList ) );
175
176 m_AddLocationField->SetValidator( wxGenericValidator( &s_Add_Location ) );
177 m_AddFootprintField->SetValidator( wxGenericValidator( &s_Add_FpField_state ) );
178 m_AddDatasheetField->SetValidator( wxGenericValidator( &s_Add_DatasheetField_state ) );
179 m_AddField1->SetValidator( wxGenericValidator( &s_Add_F1_state ) );
180 m_AddField2->SetValidator( wxGenericValidator( &s_Add_F2_state ) );
181 m_AddField3->SetValidator( wxGenericValidator( &s_Add_F3_state ) );
182 m_AddField4->SetValidator( wxGenericValidator( &s_Add_F4_state ) );
183 m_AddField5->SetValidator( wxGenericValidator( &s_Add_F5_state ) );
184 m_AddField6->SetValidator( wxGenericValidator( &s_Add_F6_state ) );
185 m_AddField7->SetValidator( wxGenericValidator( &s_Add_F7_state ) );
186 m_AddField8->SetValidator( wxGenericValidator( &s_Add_F8_state ) );
187 m_AddAllFields->SetValidator( wxGenericValidator( &s_Add_Alls_state ) );
188
189 m_OutputFormCtrl->SetSelection( s_OutputFormOpt );
190 m_OutputSeparatorCtrl->SetSelection( s_OutputSeparatorOpt );
191
192 // Enable/disable options:
193 wxCommandEvent dummy;
194 OnRadioboxSelectFormatSelected( dummy );
195}
196
197
198/*
199 * Called on BOM format selection:
200 * Enable/disable options in dialog
201 */
202void DIALOG_BUILD_BOM::OnRadioboxSelectFormatSelected( wxCommandEvent& event )
203{
204 switch( m_OutputFormCtrl->GetSelection() )
205 {
206 case 0: // Human readable text full report
207 m_OutputSeparatorCtrl->Enable( false );
208 m_ListCmpbyRefItems->Enable( true );
209 m_ListCmpbyValItems->Enable( true );
210 m_GenListLabelsbyVal->Enable( true );
211 m_GenListLabelsbySheet->Enable( true );
212 m_ListSubCmpItems->Enable( true );
213 m_AddLocationField->Enable( true );
214 break;
215
216 case 1: // Csv format, full list by reference
217 m_OutputSeparatorCtrl->Enable( true );
218 m_ListCmpbyRefItems->Enable( false );
219 m_ListCmpbyValItems->Enable( false );
220 m_GenListLabelsbyVal->Enable( false );
221 m_GenListLabelsbySheet->Enable( false );
222 m_ListSubCmpItems->Enable( true );
223 m_AddLocationField->Enable( true );
224 break;
225
226 case 2: // Csv format, grouped list by reference
227 m_OutputSeparatorCtrl->Enable( true );
228 m_ListCmpbyRefItems->Enable( false );
229 m_ListCmpbyValItems->Enable( false );
230 m_GenListLabelsbyVal->Enable( false );
231 m_GenListLabelsbySheet->Enable( false );
232 m_ListSubCmpItems->Enable( false );
233 m_AddLocationField->Enable( false );
234 break;
235
236 case 3: // Csv format, short list by values
237 m_OutputSeparatorCtrl->Enable( true );
238 m_ListCmpbyRefItems->Enable( false );
239 m_ListCmpbyValItems->Enable( false );
240 m_GenListLabelsbyVal->Enable( false );
241 m_GenListLabelsbySheet->Enable( false );
242 m_ListSubCmpItems->Enable( false );
243 m_AddLocationField->Enable( false );
244 break;
245 }
246}
247
248
249/*!
250 * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
251 */
252
253void DIALOG_BUILD_BOM::OnOkClick( wxCommandEvent& event )
254{
255 char ExportSeparatorSymbol = s_ExportSeparator[0];
256
257 if( m_OutputSeparatorCtrl->GetSelection() > 0 )
258 ExportSeparatorSymbol = s_ExportSeparator[m_OutputSeparatorCtrl->GetSelection()];
259
260 int ExportFileType = m_OutputFormCtrl->GetSelection();
261
262 SavePreferences();
263
264 Create_BOM_Lists( ExportFileType, m_ListSubCmpItems->GetValue(),
265 ExportSeparatorSymbol, m_GetListBrowser->GetValue() );
266}
267
268
269/*!
270 * wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
271 */
272
273void DIALOG_BUILD_BOM::OnCancelClick( wxCommandEvent& event )
274{
275 EndModal( -1 );
276}
277
278
279void DIALOG_BUILD_BOM::SavePreferences()
280{
281 // Determine current settings of "List items" and "Options" checkboxes
282 s_ListByRef = m_ListCmpbyRefItems->GetValue();
283 s_ListWithSubCmponents = m_ListSubCmpItems->GetValue();
284 s_ListByValue = m_ListCmpbyValItems->GetValue();
285 s_ListHierarchicalPinByName = m_GenListLabelsbyVal->GetValue();
286 s_ListHierarchicalPinBySheet = m_GenListLabelsbySheet->GetValue();
287 s_BrowseCreatedList = m_GetListBrowser->GetValue();
288
289 // (saved in config ):
290
291 // Determine current settings of both radiobutton groups
292 s_OutputFormOpt = m_OutputFormCtrl->GetSelection();
293 s_OutputSeparatorOpt = m_OutputSeparatorCtrl->GetSelection();
294
295 if( s_OutputSeparatorOpt < 0 )
296 s_OutputSeparatorOpt = 0;
297
298 // Determine current settings of all "Fields to add" checkboxes
299 s_Add_Location = m_AddLocationField->GetValue();
300 s_Add_FpField_state = m_AddFootprintField->GetValue();
301 s_Add_DatasheetField_state = m_AddDatasheetField->GetValue();
302 s_Add_F1_state = m_AddField1->GetValue();
303 s_Add_F2_state = m_AddField2->GetValue();
304 s_Add_F3_state = m_AddField3->GetValue();
305 s_Add_F4_state = m_AddField4->GetValue();
306 s_Add_F5_state = m_AddField5->GetValue();
307 s_Add_F6_state = m_AddField6->GetValue();
308 s_Add_F7_state = m_AddField7->GetValue();
309 s_Add_F8_state = m_AddField8->GetValue();
310 s_Add_Alls_state = m_AddAllFields->GetValue();
311
312 // Now save current settings of both radiobutton groups
313 m_config->Write( OPTION_BOM_LIST_REF, s_ListByRef );
314 m_config->Write( OPTION_BOM_LIST_VALUE , s_ListByValue );
315 m_config->Write( OPTION_BOM_LIST_HPINS, s_ListHierarchicalPinByName );
316 m_config->Write( OPTION_BOM_LIST_HPINS_BY_SHEET, s_ListHierarchicalPinBySheet );
317 m_config->Write( OPTION_BOM_LIST_HPINS_BY_NAME_, s_ListHierarchicalPinByName );
318 m_config->Write( OPTION_BOM_LIST_SUB_CMP, s_ListWithSubCmponents );
319
320 m_config->Write( OPTION_BOM_FORMAT, (long) s_OutputFormOpt );
321 m_config->Write( OPTION_BOM_SEPARATOR, (long) s_OutputSeparatorOpt );
322 m_config->Write( OPTION_BOM_LAUNCH_BROWSER, (long) s_BrowseCreatedList );
323
324 // Now save current settings of all "Fields to add" checkboxes
325 m_config->Write( OPTION_BOM_ADD_LOCATION, s_Add_Location );
326
327 long addfields = 0;
328 for( int ii = 0, bitmask = 1; s_AddFieldList[ii] != NULL; ii++ )
329 {
330 if( *s_AddFieldList[ii] )
331 addfields |= bitmask;
332
333 bitmask <<= 1;
334 }
335
336 m_config->Write( OPTION_BOM_ADD_FIELD, addfields );
337}
338
339
340void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile,
341 bool aIncludeSubComponents,
342 char aExportSeparatorSymbol,
343 bool aRunBrowser )
344{
345 wxString wildcard;
346
347 static wxFileName fn;
348
349 wxFileName current = g_RootSheet->GetScreen()->GetFileName();
350
351 s_ExportSeparatorSymbol = aExportSeparatorSymbol;
352
353 if( !fn.HasName() || fn.GetName()==NAMELESS_PROJECT )
354 {
355 fn.SetName( current.GetName() );
356 }
357 // else use a previous run's name, because fn was set before and user
358 // is probably just iteratively refining the BOM.
359
360 if( fn.GetPath().IsEmpty() )
361 {
362 fn.SetPath( current.GetPath() );
363 }
364 // else use a previous run's path, because fn was set before and user
365 // is probably just iteratively refining the BOM.
366
367 wxString bomDesc = _( "Bill of Materials" ); // translate once, use twice.
368
369 if( aTypeFile == 0 )
370 {
371 fn.SetExt( wxT( "lst" ) );
372 wildcard = bomDesc + wxT( " (*.lst)|*.lst" );
373 }
374 else
375 {
376 fn.SetExt( wxT( "csv" ) );
377 wildcard = bomDesc + wxT( " (*.csv)|*.csv" );
378 }
379
380 wxFileDialog dlg( this, bomDesc, fn.GetPath(),
381 fn.GetFullName(), wildcard, wxFD_SAVE );
382
383 if( dlg.ShowModal() == wxID_CANCEL )
384 return;
385
386 fn = dlg.GetPath(); // remember path+filename+ext for subsequent runs.
387
388 m_listFileName = dlg.GetPath();
389
390 // Close dialog, then show the list (if so requested)
391
392 switch( aTypeFile )
393 {
394 case 0: // list
395 CreatePartsAndLabelsFullList( aIncludeSubComponents );
396 break;
397
398 case 1: // spreadsheet, Single Part per line
399 CreateSpreadSheetPartsFullList( aIncludeSubComponents, s_Add_Location, false );
400 break;
401
402 case 2: // spreadsheet, group Part with same fields per line
403 CreateSpreadSheetPartsFullList( aIncludeSubComponents, s_Add_Location, true );
404 break;
405
406 case 3: // spreadsheet, one value per line and no sub-component
407 CreateSpreadSheetPartsShortList();
408 break;
409 }
410
411 EndModal( 1 );
412
413 if( aRunBrowser )
414 {
415 wxString editorname = Pgm().GetEditorName();
416 wxString filename = m_listFileName;
417 AddDelimiterString( filename );
418 ExecuteFile( this, editorname, filename );
419 }
420}
421
422/** Helper function IsFieldChecked
423 * return the state of the wxCheckbox corresponding to the
424 * field aFieldId (FOOTPRINT, DATASHEET and FIELD1 to FIELD8
425 * if the option "All user fields" is checked, return always true
426 * for fileds ids >= FIELD1
427 * @param aFieldId = the field id : FOOTPRINT to FIELD8
428 */
429bool DIALOG_BUILD_BOM::IsFieldChecked(int aFieldId)
430{
431 if( m_AddAllFields->IsChecked() && (aFieldId>= FIELD1) )
432 return true;
433
434 switch ( aFieldId )
435 {
436 case FIELD1:
437 return m_AddField1->IsChecked();
438 case FIELD2:
439 return m_AddField2->IsChecked();
440 case FIELD3:
441 return m_AddField3->IsChecked();
442 case FIELD4:
443 return m_AddField4->IsChecked();
444 case FIELD5:
445 return m_AddField5->IsChecked();
446 case FIELD6:
447 return m_AddField6->IsChecked();
448 case FIELD7:
449 return m_AddField7->IsChecked();
450 case FIELD8:
451 return m_AddField8->IsChecked();
452 case FOOTPRINT:
453 return m_AddFootprintField->IsChecked();
454 case DATASHEET:
455 return m_AddDatasheetField->IsChecked();
456 }
457
458 return false;
459}
460
461
462/* Prints a list of components, in a form which can be imported by a spreadsheet.
463 * components having the same value and the same footprint
464 * are grouped on the same line
465 * Form is:
466 * value; number of components; list of references; <footprint>; <field1>; ...;
467 * list is sorted by values
468 */
469void DIALOG_BUILD_BOM::CreateSpreadSheetPartsShortList( )
470{
471 FILE* f;
472
473 if( ( f = wxFopen( m_listFileName, wxT( "wt" ) ) ) == NULL )
474 {
475 wxString msg;
476 msg.Printf( _( "Failed to open file <%s>" ), GetChars(m_listFileName) );
477 DisplayError( this, msg );
478 return;
479 }
480
481 BOM_LISTER bom_lister( Prj().SchLibs() );
482 bom_lister.SetCvsFormOn( s_ExportSeparatorSymbol );
483
484 // Set the list of fields to add to list
485 for( int ii = FOOTPRINT; ii <= FIELD8; ii++ )
486 if( IsFieldChecked( ii ) )
487 bom_lister.AddFieldIdToPrintList( ii );
488 // Write the list of components grouped by values:
489 bom_lister.CreateCsvBOMListByValues( f );
490}
491
492
493/*
494 * Print a list of components, in a form which can be imported by a spreadsheet
495 * form is:
496 * cmp ref; cmp val; fields;
497 * Components are sorted by reference
498 * param aIncludeSubComponents = true to print sub components
499 * param aPrintLocation = true to print components location
500 * (only possible when aIncludeSubComponents == true)
501 * param aGroupRefs = true to group components references, when other fieds
502 * have the same value
503 */
504void DIALOG_BUILD_BOM::CreateSpreadSheetPartsFullList( bool aIncludeSubComponents,
505 bool aPrintLocation,
506 bool aGroupRefs )
507{
508 FILE* f;
509 wxString msg;
510
511 if( ( f = wxFopen( m_listFileName, wxT( "wt" ) ) ) == NULL )
512 {
513 msg.Printf( _( "Failed to open file <%s>" ), GetChars( m_listFileName ) );
514 DisplayError( this, msg );
515 return;
516 }
517
518 BOM_LISTER bom_lister( Prj().SchLibs() );
519 bom_lister.SetCvsFormOn( s_ExportSeparatorSymbol );
520
521 // Set group refs option (hight priority):
522 // Obvioulsy only useful when not including sub-components
523 bom_lister.SetGroupReferences( aGroupRefs );
524 bom_lister.SetIncludeSubCmp( aIncludeSubComponents && !aGroupRefs );
525
526 // Set print location option:
527 // Obvioulsy only possible when including sub components
528 // and not grouping references
529 bom_lister.SetPrintLocation( aPrintLocation && !aGroupRefs &&
530 aIncludeSubComponents );
531
532 // Set the list of fields to add to list
533 for( int ii = FOOTPRINT; ii <= FIELD8; ii++ )
534 if( IsFieldChecked( ii ) )
535 bom_lister.AddFieldIdToPrintList( ii );
536
537 // create the file
538 bom_lister.PrintComponentsListByReferenceCsvForm( f );
539
540 fclose( f );
541}
542
543
544/*
545 * CreatePartsAndLabelsFullList()
546 * Main function to create the list of components and/or labels
547 * (global labels, hierarchical labels and pin sheets )
548 */
549void DIALOG_BUILD_BOM::CreatePartsAndLabelsFullList( bool aIncludeSubComponents )
550{
551 FILE* f;
552 wxString msg;
553
554 if( ( f = wxFopen( m_listFileName, wxT( "wt" ) ) ) == NULL )
555 {
556 msg.Printf( _( "Failed to open file <%s>" ), GetChars( m_listFileName ) );
557 DisplayError( this, msg );
558 return;
559 }
560
561 BOM_LISTER bom_lister( Prj().SchLibs() );
562 bom_lister.SetIncludeSubCmp( aIncludeSubComponents );
563 bom_lister.SetCvsFormOff();
564 bom_lister.SetPrintLocation( s_Add_Location );
565 // Set the list of fields to add to list
566 for( int ii = FOOTPRINT; ii <= FIELD8; ii++ )
567 if( IsFieldChecked( ii ) )
568 bom_lister.AddFieldIdToPrintList( ii );
569
570 // creates the list file
571 wxString Title = Pgm().App().GetAppName() + wxT( " " ) + GetBuildVersion();
572
573 fprintf( f, "%s >> Creation date: %s\n", TO_UTF8( Title ), TO_UTF8( DateAndTime() ) );
574
575 if( m_ListCmpbyRefItems->GetValue() )
576 bom_lister.PrintComponentsListByReferenceHumanReadable( f );
577
578 if( m_ListCmpbyValItems->GetValue() )
579 bom_lister.PrintComponentsListByValue( f );
580
581 // Create list of global labels, hierachical labels and pins sheets
582
583 if( m_GenListLabelsbySheet->GetValue() )
584 bom_lister.PrintGlobalAndHierarchicalLabelsList( f, true );
585
586 if( m_GenListLabelsbyVal->GetValue() )
587 bom_lister.PrintGlobalAndHierarchicalLabelsList( f, false );
588
589 msg = _( "\n#End List\n" );
590 fprintf( f, "%s", TO_UTF8( msg ) );
591 fclose( f );
592}
0593
=== added file 'eeschema/BOM/dialogs/dialog_build_BOM.h'
--- eeschema/BOM/dialogs/dialog_build_BOM.h 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/dialogs/dialog_build_BOM.h 2015-06-20 07:42:20 +0000
@@ -0,0 +1,93 @@
1/**
2 * @file dialog_build_BOM.h
3 */
4
5/* This program source code file is part of KiCad, a free EDA CAD application.
6 *
7 * Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License
11 * as published by the Free Software Foundation; either version 2
12 * of the License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, you may find one here:
21 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22 * or you may search the http://www.gnu.org website for the version 2 license,
23 * or you may write to the Free Software Foundation, Inc.,
24 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
25 */
26
27
28#ifndef _DIALOG_BUILD_BOM_H_
29#define _DIALOG_BUILD_BOM_H_
30
31#include <dialog_build_BOM_base.h>
32#include <schframe.h>
33
34class SCH_COMPONENT;
35class wxConfig;
36
37class DIALOG_BUILD_BOM : public DIALOG_BUILD_BOM_BASE
38{
39private:
40 SCH_EDIT_FRAME* m_parent;
41 wxConfigBase* m_config;
42 wxString m_listFileName; // The full filename of the file report.
43
44private:
45 void OnRadioboxSelectFormatSelected( wxCommandEvent& event );
46 void OnOkClick( wxCommandEvent& event );
47 void OnCancelClick( wxCommandEvent& event );
48
49 void SavePreferences();
50 void Init();
51 void Create_BOM_Lists( int aTypeFile,
52 bool aIncludeSubComponents,
53 char aExportSeparatorSymbol,
54 bool aRunBrowser );
55
56 void CreatePartsAndLabelsFullList( bool aIncludeSubComponents );
57
58 /**
59 * Function CreateSpreadSheetPartsFullList
60 * prints a list of components, in a form which can be imported by a
61 * spreadsheet. Form is:
62 * reference; cmp value; \<footprint\>; \<field1\>; ...;
63 * Components are sorted by reference
64 * @param aIncludeSubComponents = true to print sub components
65 * @param aPrintLocation = true to print components location
66 * (only possible when aIncludeSubComponents == true)
67 * @param aGroupRefs = true to group components references, when other fieds
68 * have the same value
69 */
70 void CreateSpreadSheetPartsFullList( bool aIncludeSubComponents,
71 bool aPrintLocation,
72 bool aGroupRefs );
73
74 /**
75 * Function CreateSpreadSheetPartsShortList
76 * prints a list of components, in a form which can be imported by a spreadsheet.
77 * components having the same value and the same footprint
78 * are grouped on the same line
79 * Form is:
80 * value; number of components; list of references; \<footprint\>; \<field1\>; ...;
81 * list is sorted by values
82 */
83 void CreateSpreadSheetPartsShortList();
84
85 bool IsFieldChecked( int aFieldId );
86
87public:
88 DIALOG_BUILD_BOM( SCH_EDIT_FRAME* parent );
89
90 // ~DIALOG_BUILD_BOM() {};
91};
92
93#endif // _DIALOG_BUILD_BOM_H_
094
=== added file 'eeschema/BOM/dialogs/dialog_build_BOM_base.cpp'
--- eeschema/BOM/dialogs/dialog_build_BOM_base.cpp 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/dialogs/dialog_build_BOM_base.cpp 2015-06-20 07:42:20 +0000
@@ -0,0 +1,157 @@
1///////////////////////////////////////////////////////////////////////////
2// C++ code generated with wxFormBuilder (version Oct 8 2012)
3// http://www.wxformbuilder.org/
4//
5// PLEASE DO "NOT" EDIT THIS FILE!
6///////////////////////////////////////////////////////////////////////////
7
8#include "dialog_build_BOM_base.h"
9
10///////////////////////////////////////////////////////////////////////////
11
12DIALOG_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 )
13{
14 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
15
16 wxBoxSizer* bMainSizer;
17 bMainSizer = new wxBoxSizer( wxVERTICAL );
18
19 wxBoxSizer* bSizerUpper;
20 bSizerUpper = new wxBoxSizer( wxHORIZONTAL );
21
22 wxStaticBoxSizer* sbOptionsSizer;
23 sbOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Options:") ), wxVERTICAL );
24
25 wxStaticBoxSizer* sbListOptionsSizer;
26 sbListOptionsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("List items:") ), wxVERTICAL );
27
28 m_ListCmpbyRefItems = new wxCheckBox( this, wxID_ANY, _("Components by reference"), wxDefaultPosition, wxDefaultSize, 0 );
29 sbListOptionsSizer->Add( m_ListCmpbyRefItems, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
30
31 m_ListSubCmpItems = new wxCheckBox( this, wxID_ANY, _("Sub components (i.e. U2A, U2B ...)"), wxDefaultPosition, wxDefaultSize, 0 );
32 sbListOptionsSizer->Add( m_ListSubCmpItems, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
33
34 m_ListCmpbyValItems = new wxCheckBox( this, wxID_ANY, _("Components by value"), wxDefaultPosition, wxDefaultSize, 0 );
35 sbListOptionsSizer->Add( m_ListCmpbyValItems, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
36
37 m_GenListLabelsbyVal = new wxCheckBox( this, wxID_ANY, _("Hierarchical pins by name"), wxDefaultPosition, wxDefaultSize, 0 );
38 sbListOptionsSizer->Add( m_GenListLabelsbyVal, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
39
40 m_GenListLabelsbySheet = new wxCheckBox( this, wxID_ANY, _("Hierarchical pins by sheet"), wxDefaultPosition, wxDefaultSize, 0 );
41 sbListOptionsSizer->Add( m_GenListLabelsbySheet, 0, wxALL, 5 );
42
43
44 sbOptionsSizer->Add( sbListOptionsSizer, 0, wxEXPAND, 5 );
45
46 wxString m_OutputFormCtrlChoices[] = { _("List"), _("List for spreadsheet import (by ref)"), _("List for spreadsheet import (by grouped ref)"), _("List for spreadsheet import (by value)") };
47 int m_OutputFormCtrlNChoices = sizeof( m_OutputFormCtrlChoices ) / sizeof( wxString );
48 m_OutputFormCtrl = new wxRadioBox( this, ID_RADIOBOX_SELECT_FORMAT, _("Output format:"), wxDefaultPosition, wxDefaultSize, m_OutputFormCtrlNChoices, m_OutputFormCtrlChoices, 1, wxRA_SPECIFY_COLS );
49 m_OutputFormCtrl->SetSelection( 1 );
50 sbOptionsSizer->Add( m_OutputFormCtrl, 0, wxEXPAND|wxTOP, 5 );
51
52 wxString m_OutputSeparatorCtrlChoices[] = { _("Tab"), _(";"), _(",") };
53 int m_OutputSeparatorCtrlNChoices = sizeof( m_OutputSeparatorCtrlChoices ) / sizeof( wxString );
54 m_OutputSeparatorCtrl = new wxRadioBox( this, wxID_ANY, _("Field separator for spreadsheet import:"), wxDefaultPosition, wxDefaultSize, m_OutputSeparatorCtrlNChoices, m_OutputSeparatorCtrlChoices, 1, wxRA_SPECIFY_ROWS );
55 m_OutputSeparatorCtrl->SetSelection( 0 );
56 sbOptionsSizer->Add( m_OutputSeparatorCtrl, 0, wxEXPAND|wxTOP, 5 );
57
58 m_GetListBrowser = new wxCheckBox( this, wxID_ANY, _("Launch list browser"), wxDefaultPosition, wxDefaultSize, 0 );
59 sbOptionsSizer->Add( m_GetListBrowser, 0, wxALL|wxEXPAND, 5 );
60
61
62 bSizerUpper->Add( sbOptionsSizer, 3, wxALL|wxEXPAND, 5 );
63
64 wxBoxSizer* bRightSizer;
65 bRightSizer = new wxBoxSizer( wxVERTICAL );
66
67 wxStaticBoxSizer* sbAddToListSelectionSizer;
68 sbAddToListSelectionSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Add to list:") ), wxVERTICAL );
69
70 m_AddLocationField = new wxCheckBox( this, wxID_ANY, _("Component location"), wxDefaultPosition, wxDefaultSize, 0 );
71 sbAddToListSelectionSizer->Add( m_AddLocationField, 0, wxALL, 5 );
72
73 wxStaticBoxSizer* sbFixedFieldsSizer;
74 sbFixedFieldsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("System Fields:") ), wxVERTICAL );
75
76 m_AddDatasheetField = new wxCheckBox( this, wxID_ANY, _("Datasheet"), wxDefaultPosition, wxDefaultSize, 0 );
77 sbFixedFieldsSizer->Add( m_AddDatasheetField, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
78
79 m_AddFootprintField = new wxCheckBox( this, wxID_ANY, _("Footprint"), wxDefaultPosition, wxDefaultSize, 0 );
80 sbFixedFieldsSizer->Add( m_AddFootprintField, 0, wxALL|wxEXPAND, 5 );
81
82
83 sbAddToListSelectionSizer->Add( sbFixedFieldsSizer, 0, wxEXPAND, 5 );
84
85 wxStaticBoxSizer* sbUsersFiledsSizer;
86 sbUsersFiledsSizer = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Users fields:") ), wxVERTICAL );
87
88 m_AddField1 = new wxCheckBox( this, wxID_ANY, _("Field 1"), wxDefaultPosition, wxDefaultSize, 0 );
89 sbUsersFiledsSizer->Add( m_AddField1, 0, wxEXPAND|wxALL, 5 );
90
91 m_AddField2 = new wxCheckBox( this, wxID_ANY, _("Field 2"), wxDefaultPosition, wxDefaultSize, 0 );
92 sbUsersFiledsSizer->Add( m_AddField2, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
93
94 m_AddField3 = new wxCheckBox( this, wxID_ANY, _("Field 3"), wxDefaultPosition, wxDefaultSize, 0 );
95 sbUsersFiledsSizer->Add( m_AddField3, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
96
97 m_AddField4 = new wxCheckBox( this, wxID_ANY, _("Field 4"), wxDefaultPosition, wxDefaultSize, 0 );
98 sbUsersFiledsSizer->Add( m_AddField4, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
99
100 m_AddField5 = new wxCheckBox( this, wxID_ANY, _("Field 5"), wxDefaultPosition, wxDefaultSize, 0 );
101 sbUsersFiledsSizer->Add( m_AddField5, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
102
103 m_AddField6 = new wxCheckBox( this, wxID_ANY, _("Field 6"), wxDefaultPosition, wxDefaultSize, 0 );
104 sbUsersFiledsSizer->Add( m_AddField6, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
105
106 m_AddField7 = new wxCheckBox( this, wxID_ANY, _("Field 7"), wxDefaultPosition, wxDefaultSize, 0 );
107 sbUsersFiledsSizer->Add( m_AddField7, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
108
109 m_AddField8 = new wxCheckBox( this, wxID_ANY, _("Field 8"), wxDefaultPosition, wxDefaultSize, 0 );
110 sbUsersFiledsSizer->Add( m_AddField8, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
111
112
113 sbAddToListSelectionSizer->Add( sbUsersFiledsSizer, 0, wxEXPAND|wxTOP, 5 );
114
115 m_AddAllFields = new wxCheckBox( this, wxID_ANY, _("All existing user fields"), wxDefaultPosition, wxDefaultSize, 0 );
116 sbAddToListSelectionSizer->Add( m_AddAllFields, 0, wxALL, 5 );
117
118
119 bRightSizer->Add( sbAddToListSelectionSizer, 1, wxEXPAND, 5 );
120
121
122 bSizerUpper->Add( bRightSizer, 2, wxALL|wxEXPAND, 5 );
123
124
125 bMainSizer->Add( bSizerUpper, 1, wxEXPAND, 5 );
126
127 m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
128 bMainSizer->Add( m_staticline1, 0, wxEXPAND|wxLEFT|wxRIGHT, 5 );
129
130 m_sdbSizer = new wxStdDialogButtonSizer();
131 m_sdbSizerOK = new wxButton( this, wxID_OK );
132 m_sdbSizer->AddButton( m_sdbSizerOK );
133 m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
134 m_sdbSizer->AddButton( m_sdbSizerCancel );
135 m_sdbSizer->Realize();
136
137 bMainSizer->Add( m_sdbSizer, 0, wxALL|wxEXPAND, 5 );
138
139
140 this->SetSizer( bMainSizer );
141 this->Layout();
142 bMainSizer->Fit( this );
143
144 // Connect Events
145 m_OutputFormCtrl->Connect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnRadioboxSelectFormatSelected ), NULL, this );
146 m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnCancelClick ), NULL, this );
147 m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnOkClick ), NULL, this );
148}
149
150DIALOG_BUILD_BOM_BASE::~DIALOG_BUILD_BOM_BASE()
151{
152 // Disconnect Events
153 m_OutputFormCtrl->Disconnect( wxEVT_COMMAND_RADIOBOX_SELECTED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnRadioboxSelectFormatSelected ), NULL, this );
154 m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnCancelClick ), NULL, this );
155 m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_BUILD_BOM_BASE::OnOkClick ), NULL, this );
156
157}
0158
=== added file 'eeschema/BOM/dialogs/dialog_build_BOM_base.fbp'
--- eeschema/BOM/dialogs/dialog_build_BOM_base.fbp 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/dialogs/dialog_build_BOM_base.fbp 2015-06-20 07:42:20 +0000
@@ -0,0 +1,2060 @@
1<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2<wxFormBuilder_Project>
3 <FileVersion major="1" minor="11" />
4 <object class="Project" expanded="1">
5 <property name="class_decoration"></property>
6 <property name="code_generation">C++</property>
7 <property name="disconnect_events">1</property>
8 <property name="disconnect_mode">source_name</property>
9 <property name="disconnect_php_events">0</property>
10 <property name="disconnect_python_events">0</property>
11 <property name="embedded_files_path">res</property>
12 <property name="encoding">UTF-8</property>
13 <property name="event_generation">connect</property>
14 <property name="file">dialog_build_BOM_base</property>
15 <property name="first_id">1000</property>
16 <property name="help_provider">none</property>
17 <property name="internationalize">1</property>
18 <property name="name">dialog_build_BOM_base</property>
19 <property name="namespace"></property>
20 <property name="path">.</property>
21 <property name="precompiled_header"></property>
22 <property name="relative_path">1</property>
23 <property name="skip_php_events">1</property>
24 <property name="skip_python_events">1</property>
25 <property name="use_enum">1</property>
26 <property name="use_microsoft_bom">0</property>
27 <object class="Dialog" expanded="1">
28 <property name="aui_managed">0</property>
29 <property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
30 <property name="bg"></property>
31 <property name="center"></property>
32 <property name="context_help"></property>
33 <property name="context_menu">1</property>
34 <property name="enabled">1</property>
35 <property name="event_handler">impl_virtual</property>
36 <property name="extra_style"></property>
37 <property name="fg"></property>
38 <property name="font"></property>
39 <property name="hidden">0</property>
40 <property name="id">wxID_ANY</property>
41 <property name="maximum_size"></property>
42 <property name="minimum_size"></property>
43 <property name="name">DIALOG_BUILD_BOM_BASE</property>
44 <property name="pos"></property>
45 <property name="size">-1,-1</property>
46 <property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
47 <property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
48 <property name="title">List of Materials</property>
49 <property name="tooltip"></property>
50 <property name="window_extra_style"></property>
51 <property name="window_name"></property>
52 <property name="window_style"></property>
53 <event name="OnActivate"></event>
54 <event name="OnActivateApp"></event>
55 <event name="OnAuiFindManager"></event>
56 <event name="OnAuiPaneButton"></event>
57 <event name="OnAuiPaneClose"></event>
58 <event name="OnAuiPaneMaximize"></event>
59 <event name="OnAuiPaneRestore"></event>
60 <event name="OnAuiRender"></event>
61 <event name="OnChar"></event>
62 <event name="OnClose"></event>
63 <event name="OnEnterWindow"></event>
64 <event name="OnEraseBackground"></event>
65 <event name="OnHibernate"></event>
66 <event name="OnIconize"></event>
67 <event name="OnIdle"></event>
68 <event name="OnInitDialog"></event>
69 <event name="OnKeyDown"></event>
70 <event name="OnKeyUp"></event>
71 <event name="OnKillFocus"></event>
72 <event name="OnLeaveWindow"></event>
73 <event name="OnLeftDClick"></event>
74 <event name="OnLeftDown"></event>
75 <event name="OnLeftUp"></event>
76 <event name="OnMiddleDClick"></event>
77 <event name="OnMiddleDown"></event>
78 <event name="OnMiddleUp"></event>
79 <event name="OnMotion"></event>
80 <event name="OnMouseEvents"></event>
81 <event name="OnMouseWheel"></event>
82 <event name="OnPaint"></event>
83 <event name="OnRightDClick"></event>
84 <event name="OnRightDown"></event>
85 <event name="OnRightUp"></event>
86 <event name="OnSetFocus"></event>
87 <event name="OnSize"></event>
88 <event name="OnUpdateUI"></event>
89 <object class="wxBoxSizer" expanded="1">
90 <property name="minimum_size"></property>
91 <property name="name">bMainSizer</property>
92 <property name="orient">wxVERTICAL</property>
93 <property name="permission">none</property>
94 <object class="sizeritem" expanded="1">
95 <property name="border">5</property>
96 <property name="flag">wxEXPAND</property>
97 <property name="proportion">1</property>
98 <object class="wxBoxSizer" expanded="1">
99 <property name="minimum_size"></property>
100 <property name="name">bSizerUpper</property>
101 <property name="orient">wxHORIZONTAL</property>
102 <property name="permission">none</property>
103 <object class="sizeritem" expanded="1">
104 <property name="border">5</property>
105 <property name="flag">wxALL|wxEXPAND</property>
106 <property name="proportion">3</property>
107 <object class="wxStaticBoxSizer" expanded="1">
108 <property name="id">wxID_ANY</property>
109 <property name="label">Options:</property>
110 <property name="minimum_size"></property>
111 <property name="name">sbOptionsSizer</property>
112 <property name="orient">wxVERTICAL</property>
113 <property name="permission">none</property>
114 <event name="OnUpdateUI"></event>
115 <object class="sizeritem" expanded="1">
116 <property name="border">5</property>
117 <property name="flag">wxEXPAND</property>
118 <property name="proportion">0</property>
119 <object class="wxStaticBoxSizer" expanded="0">
120 <property name="id">wxID_ANY</property>
121 <property name="label">List items:</property>
122 <property name="minimum_size"></property>
123 <property name="name">sbListOptionsSizer</property>
124 <property name="orient">wxVERTICAL</property>
125 <property name="permission">none</property>
126 <event name="OnUpdateUI"></event>
127 <object class="sizeritem" expanded="1">
128 <property name="border">5</property>
129 <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
130 <property name="proportion">0</property>
131 <object class="wxCheckBox" expanded="1">
132 <property name="BottomDockable">1</property>
133 <property name="LeftDockable">1</property>
134 <property name="RightDockable">1</property>
135 <property name="TopDockable">1</property>
136 <property name="aui_layer"></property>
137 <property name="aui_name"></property>
138 <property name="aui_position"></property>
139 <property name="aui_row"></property>
140 <property name="best_size"></property>
141 <property name="bg"></property>
142 <property name="caption"></property>
143 <property name="caption_visible">1</property>
144 <property name="center_pane">0</property>
145 <property name="checked">0</property>
146 <property name="close_button">1</property>
147 <property name="context_help"></property>
148 <property name="context_menu">1</property>
149 <property name="default_pane">0</property>
150 <property name="dock">Dock</property>
151 <property name="dock_fixed">0</property>
152 <property name="docking">Left</property>
153 <property name="enabled">1</property>
154 <property name="fg"></property>
155 <property name="floatable">1</property>
156 <property name="font"></property>
157 <property name="gripper">0</property>
158 <property name="hidden">0</property>
159 <property name="id">wxID_ANY</property>
160 <property name="label">Components by reference</property>
161 <property name="max_size"></property>
162 <property name="maximize_button">0</property>
163 <property name="maximum_size"></property>
164 <property name="min_size"></property>
165 <property name="minimize_button">0</property>
166 <property name="minimum_size"></property>
167 <property name="moveable">1</property>
168 <property name="name">m_ListCmpbyRefItems</property>
169 <property name="pane_border">1</property>
170 <property name="pane_position"></property>
171 <property name="pane_size"></property>
172 <property name="permission">protected</property>
173 <property name="pin_button">1</property>
174 <property name="pos"></property>
175 <property name="resize">Resizable</property>
176 <property name="show">1</property>
177 <property name="size"></property>
178 <property name="style"></property>
179 <property name="subclass"></property>
180 <property name="toolbar_pane">0</property>
181 <property name="tooltip"></property>
182 <property name="validator_data_type"></property>
183 <property name="validator_style">wxFILTER_NONE</property>
184 <property name="validator_type">wxDefaultValidator</property>
185 <property name="validator_variable"></property>
186 <property name="window_extra_style"></property>
187 <property name="window_name"></property>
188 <property name="window_style"></property>
189 <event name="OnChar"></event>
190 <event name="OnCheckBox"></event>
191 <event name="OnEnterWindow"></event>
192 <event name="OnEraseBackground"></event>
193 <event name="OnKeyDown"></event>
194 <event name="OnKeyUp"></event>
195 <event name="OnKillFocus"></event>
196 <event name="OnLeaveWindow"></event>
197 <event name="OnLeftDClick"></event>
198 <event name="OnLeftDown"></event>
199 <event name="OnLeftUp"></event>
200 <event name="OnMiddleDClick"></event>
201 <event name="OnMiddleDown"></event>
202 <event name="OnMiddleUp"></event>
203 <event name="OnMotion"></event>
204 <event name="OnMouseEvents"></event>
205 <event name="OnMouseWheel"></event>
206 <event name="OnPaint"></event>
207 <event name="OnRightDClick"></event>
208 <event name="OnRightDown"></event>
209 <event name="OnRightUp"></event>
210 <event name="OnSetFocus"></event>
211 <event name="OnSize"></event>
212 <event name="OnUpdateUI"></event>
213 </object>
214 </object>
215 <object class="sizeritem" expanded="1">
216 <property name="border">5</property>
217 <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
218 <property name="proportion">0</property>
219 <object class="wxCheckBox" expanded="1">
220 <property name="BottomDockable">1</property>
221 <property name="LeftDockable">1</property>
222 <property name="RightDockable">1</property>
223 <property name="TopDockable">1</property>
224 <property name="aui_layer"></property>
225 <property name="aui_name"></property>
226 <property name="aui_position"></property>
227 <property name="aui_row"></property>
228 <property name="best_size"></property>
229 <property name="bg"></property>
230 <property name="caption"></property>
231 <property name="caption_visible">1</property>
232 <property name="center_pane">0</property>
233 <property name="checked">0</property>
234 <property name="close_button">1</property>
235 <property name="context_help"></property>
236 <property name="context_menu">1</property>
237 <property name="default_pane">0</property>
238 <property name="dock">Dock</property>
239 <property name="dock_fixed">0</property>
240 <property name="docking">Left</property>
241 <property name="enabled">1</property>
242 <property name="fg"></property>
243 <property name="floatable">1</property>
244 <property name="font"></property>
245 <property name="gripper">0</property>
246 <property name="hidden">0</property>
247 <property name="id">wxID_ANY</property>
248 <property name="label">Sub components (i.e. U2A, U2B ...)</property>
249 <property name="max_size"></property>
250 <property name="maximize_button">0</property>
251 <property name="maximum_size"></property>
252 <property name="min_size"></property>
253 <property name="minimize_button">0</property>
254 <property name="minimum_size"></property>
255 <property name="moveable">1</property>
256 <property name="name">m_ListSubCmpItems</property>
257 <property name="pane_border">1</property>
258 <property name="pane_position"></property>
259 <property name="pane_size"></property>
260 <property name="permission">protected</property>
261 <property name="pin_button">1</property>
262 <property name="pos"></property>
263 <property name="resize">Resizable</property>
264 <property name="show">1</property>
265 <property name="size"></property>
266 <property name="style"></property>
267 <property name="subclass"></property>
268 <property name="toolbar_pane">0</property>
269 <property name="tooltip"></property>
270 <property name="validator_data_type"></property>
271 <property name="validator_style">wxFILTER_NONE</property>
272 <property name="validator_type">wxDefaultValidator</property>
273 <property name="validator_variable"></property>
274 <property name="window_extra_style"></property>
275 <property name="window_name"></property>
276 <property name="window_style"></property>
277 <event name="OnChar"></event>
278 <event name="OnCheckBox"></event>
279 <event name="OnEnterWindow"></event>
280 <event name="OnEraseBackground"></event>
281 <event name="OnKeyDown"></event>
282 <event name="OnKeyUp"></event>
283 <event name="OnKillFocus"></event>
284 <event name="OnLeaveWindow"></event>
285 <event name="OnLeftDClick"></event>
286 <event name="OnLeftDown"></event>
287 <event name="OnLeftUp"></event>
288 <event name="OnMiddleDClick"></event>
289 <event name="OnMiddleDown"></event>
290 <event name="OnMiddleUp"></event>
291 <event name="OnMotion"></event>
292 <event name="OnMouseEvents"></event>
293 <event name="OnMouseWheel"></event>
294 <event name="OnPaint"></event>
295 <event name="OnRightDClick"></event>
296 <event name="OnRightDown"></event>
297 <event name="OnRightUp"></event>
298 <event name="OnSetFocus"></event>
299 <event name="OnSize"></event>
300 <event name="OnUpdateUI"></event>
301 </object>
302 </object>
303 <object class="sizeritem" expanded="1">
304 <property name="border">5</property>
305 <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
306 <property name="proportion">0</property>
307 <object class="wxCheckBox" expanded="1">
308 <property name="BottomDockable">1</property>
309 <property name="LeftDockable">1</property>
310 <property name="RightDockable">1</property>
311 <property name="TopDockable">1</property>
312 <property name="aui_layer"></property>
313 <property name="aui_name"></property>
314 <property name="aui_position"></property>
315 <property name="aui_row"></property>
316 <property name="best_size"></property>
317 <property name="bg"></property>
318 <property name="caption"></property>
319 <property name="caption_visible">1</property>
320 <property name="center_pane">0</property>
321 <property name="checked">0</property>
322 <property name="close_button">1</property>
323 <property name="context_help"></property>
324 <property name="context_menu">1</property>
325 <property name="default_pane">0</property>
326 <property name="dock">Dock</property>
327 <property name="dock_fixed">0</property>
328 <property name="docking">Left</property>
329 <property name="enabled">1</property>
330 <property name="fg"></property>
331 <property name="floatable">1</property>
332 <property name="font"></property>
333 <property name="gripper">0</property>
334 <property name="hidden">0</property>
335 <property name="id">wxID_ANY</property>
336 <property name="label">Components by value</property>
337 <property name="max_size"></property>
338 <property name="maximize_button">0</property>
339 <property name="maximum_size"></property>
340 <property name="min_size"></property>
341 <property name="minimize_button">0</property>
342 <property name="minimum_size"></property>
343 <property name="moveable">1</property>
344 <property name="name">m_ListCmpbyValItems</property>
345 <property name="pane_border">1</property>
346 <property name="pane_position"></property>
347 <property name="pane_size"></property>
348 <property name="permission">protected</property>
349 <property name="pin_button">1</property>
350 <property name="pos"></property>
351 <property name="resize">Resizable</property>
352 <property name="show">1</property>
353 <property name="size"></property>
354 <property name="style"></property>
355 <property name="subclass"></property>
356 <property name="toolbar_pane">0</property>
357 <property name="tooltip"></property>
358 <property name="validator_data_type"></property>
359 <property name="validator_style">wxFILTER_NONE</property>
360 <property name="validator_type">wxDefaultValidator</property>
361 <property name="validator_variable"></property>
362 <property name="window_extra_style"></property>
363 <property name="window_name"></property>
364 <property name="window_style"></property>
365 <event name="OnChar"></event>
366 <event name="OnCheckBox"></event>
367 <event name="OnEnterWindow"></event>
368 <event name="OnEraseBackground"></event>
369 <event name="OnKeyDown"></event>
370 <event name="OnKeyUp"></event>
371 <event name="OnKillFocus"></event>
372 <event name="OnLeaveWindow"></event>
373 <event name="OnLeftDClick"></event>
374 <event name="OnLeftDown"></event>
375 <event name="OnLeftUp"></event>
376 <event name="OnMiddleDClick"></event>
377 <event name="OnMiddleDown"></event>
378 <event name="OnMiddleUp"></event>
379 <event name="OnMotion"></event>
380 <event name="OnMouseEvents"></event>
381 <event name="OnMouseWheel"></event>
382 <event name="OnPaint"></event>
383 <event name="OnRightDClick"></event>
384 <event name="OnRightDown"></event>
385 <event name="OnRightUp"></event>
386 <event name="OnSetFocus"></event>
387 <event name="OnSize"></event>
388 <event name="OnUpdateUI"></event>
389 </object>
390 </object>
391 <object class="sizeritem" expanded="1">
392 <property name="border">5</property>
393 <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
394 <property name="proportion">0</property>
395 <object class="wxCheckBox" expanded="1">
396 <property name="BottomDockable">1</property>
397 <property name="LeftDockable">1</property>
398 <property name="RightDockable">1</property>
399 <property name="TopDockable">1</property>
400 <property name="aui_layer"></property>
401 <property name="aui_name"></property>
402 <property name="aui_position"></property>
403 <property name="aui_row"></property>
404 <property name="best_size"></property>
405 <property name="bg"></property>
406 <property name="caption"></property>
407 <property name="caption_visible">1</property>
408 <property name="center_pane">0</property>
409 <property name="checked">0</property>
410 <property name="close_button">1</property>
411 <property name="context_help"></property>
412 <property name="context_menu">1</property>
413 <property name="default_pane">0</property>
414 <property name="dock">Dock</property>
415 <property name="dock_fixed">0</property>
416 <property name="docking">Left</property>
417 <property name="enabled">1</property>
418 <property name="fg"></property>
419 <property name="floatable">1</property>
420 <property name="font"></property>
421 <property name="gripper">0</property>
422 <property name="hidden">0</property>
423 <property name="id">wxID_ANY</property>
424 <property name="label">Hierarchical pins by name</property>
425 <property name="max_size"></property>
426 <property name="maximize_button">0</property>
427 <property name="maximum_size"></property>
428 <property name="min_size"></property>
429 <property name="minimize_button">0</property>
430 <property name="minimum_size"></property>
431 <property name="moveable">1</property>
432 <property name="name">m_GenListLabelsbyVal</property>
433 <property name="pane_border">1</property>
434 <property name="pane_position"></property>
435 <property name="pane_size"></property>
436 <property name="permission">protected</property>
437 <property name="pin_button">1</property>
438 <property name="pos"></property>
439 <property name="resize">Resizable</property>
440 <property name="show">1</property>
441 <property name="size"></property>
442 <property name="style"></property>
443 <property name="subclass"></property>
444 <property name="toolbar_pane">0</property>
445 <property name="tooltip"></property>
446 <property name="validator_data_type"></property>
447 <property name="validator_style">wxFILTER_NONE</property>
448 <property name="validator_type">wxDefaultValidator</property>
449 <property name="validator_variable"></property>
450 <property name="window_extra_style"></property>
451 <property name="window_name"></property>
452 <property name="window_style"></property>
453 <event name="OnChar"></event>
454 <event name="OnCheckBox"></event>
455 <event name="OnEnterWindow"></event>
456 <event name="OnEraseBackground"></event>
457 <event name="OnKeyDown"></event>
458 <event name="OnKeyUp"></event>
459 <event name="OnKillFocus"></event>
460 <event name="OnLeaveWindow"></event>
461 <event name="OnLeftDClick"></event>
462 <event name="OnLeftDown"></event>
463 <event name="OnLeftUp"></event>
464 <event name="OnMiddleDClick"></event>
465 <event name="OnMiddleDown"></event>
466 <event name="OnMiddleUp"></event>
467 <event name="OnMotion"></event>
468 <event name="OnMouseEvents"></event>
469 <event name="OnMouseWheel"></event>
470 <event name="OnPaint"></event>
471 <event name="OnRightDClick"></event>
472 <event name="OnRightDown"></event>
473 <event name="OnRightUp"></event>
474 <event name="OnSetFocus"></event>
475 <event name="OnSize"></event>
476 <event name="OnUpdateUI"></event>
477 </object>
478 </object>
479 <object class="sizeritem" expanded="1">
480 <property name="border">5</property>
481 <property name="flag">wxALL</property>
482 <property name="proportion">0</property>
483 <object class="wxCheckBox" expanded="1">
484 <property name="BottomDockable">1</property>
485 <property name="LeftDockable">1</property>
486 <property name="RightDockable">1</property>
487 <property name="TopDockable">1</property>
488 <property name="aui_layer"></property>
489 <property name="aui_name"></property>
490 <property name="aui_position"></property>
491 <property name="aui_row"></property>
492 <property name="best_size"></property>
493 <property name="bg"></property>
494 <property name="caption"></property>
495 <property name="caption_visible">1</property>
496 <property name="center_pane">0</property>
497 <property name="checked">0</property>
498 <property name="close_button">1</property>
499 <property name="context_help"></property>
500 <property name="context_menu">1</property>
501 <property name="default_pane">0</property>
502 <property name="dock">Dock</property>
503 <property name="dock_fixed">0</property>
504 <property name="docking">Left</property>
505 <property name="enabled">1</property>
506 <property name="fg"></property>
507 <property name="floatable">1</property>
508 <property name="font"></property>
509 <property name="gripper">0</property>
510 <property name="hidden">0</property>
511 <property name="id">wxID_ANY</property>
512 <property name="label">Hierarchical pins by sheet</property>
513 <property name="max_size"></property>
514 <property name="maximize_button">0</property>
515 <property name="maximum_size"></property>
516 <property name="min_size"></property>
517 <property name="minimize_button">0</property>
518 <property name="minimum_size"></property>
519 <property name="moveable">1</property>
520 <property name="name">m_GenListLabelsbySheet</property>
521 <property name="pane_border">1</property>
522 <property name="pane_position"></property>
523 <property name="pane_size"></property>
524 <property name="permission">protected</property>
525 <property name="pin_button">1</property>
526 <property name="pos"></property>
527 <property name="resize">Resizable</property>
528 <property name="show">1</property>
529 <property name="size"></property>
530 <property name="style"></property>
531 <property name="subclass"></property>
532 <property name="toolbar_pane">0</property>
533 <property name="tooltip"></property>
534 <property name="validator_data_type"></property>
535 <property name="validator_style">wxFILTER_NONE</property>
536 <property name="validator_type">wxDefaultValidator</property>
537 <property name="validator_variable"></property>
538 <property name="window_extra_style"></property>
539 <property name="window_name"></property>
540 <property name="window_style"></property>
541 <event name="OnChar"></event>
542 <event name="OnCheckBox"></event>
543 <event name="OnEnterWindow"></event>
544 <event name="OnEraseBackground"></event>
545 <event name="OnKeyDown"></event>
546 <event name="OnKeyUp"></event>
547 <event name="OnKillFocus"></event>
548 <event name="OnLeaveWindow"></event>
549 <event name="OnLeftDClick"></event>
550 <event name="OnLeftDown"></event>
551 <event name="OnLeftUp"></event>
552 <event name="OnMiddleDClick"></event>
553 <event name="OnMiddleDown"></event>
554 <event name="OnMiddleUp"></event>
555 <event name="OnMotion"></event>
556 <event name="OnMouseEvents"></event>
557 <event name="OnMouseWheel"></event>
558 <event name="OnPaint"></event>
559 <event name="OnRightDClick"></event>
560 <event name="OnRightDown"></event>
561 <event name="OnRightUp"></event>
562 <event name="OnSetFocus"></event>
563 <event name="OnSize"></event>
564 <event name="OnUpdateUI"></event>
565 </object>
566 </object>
567 </object>
568 </object>
569 <object class="sizeritem" expanded="1">
570 <property name="border">5</property>
571 <property name="flag">wxEXPAND|wxTOP</property>
572 <property name="proportion">0</property>
573 <object class="wxRadioBox" expanded="1">
574 <property name="BottomDockable">1</property>
575 <property name="LeftDockable">1</property>
576 <property name="RightDockable">1</property>
577 <property name="TopDockable">1</property>
578 <property name="aui_layer"></property>
579 <property name="aui_name"></property>
580 <property name="aui_position"></property>
581 <property name="aui_row"></property>
582 <property name="best_size"></property>
583 <property name="bg"></property>
584 <property name="caption"></property>
585 <property name="caption_visible">1</property>
586 <property name="center_pane">0</property>
587 <property name="choices">&quot;List&quot; &quot;List for spreadsheet import (by ref)&quot; &quot;List for spreadsheet import (by grouped ref)&quot; &quot;List for spreadsheet import (by value)&quot;</property>
588 <property name="close_button">1</property>
589 <property name="context_help"></property>
590 <property name="context_menu">1</property>
591 <property name="default_pane">0</property>
592 <property name="dock">Dock</property>
593 <property name="dock_fixed">0</property>
594 <property name="docking">Left</property>
595 <property name="enabled">1</property>
596 <property name="fg"></property>
597 <property name="floatable">1</property>
598 <property name="font"></property>
599 <property name="gripper">0</property>
600 <property name="hidden">0</property>
601 <property name="id">ID_RADIOBOX_SELECT_FORMAT</property>
602 <property name="label">Output format:</property>
603 <property name="majorDimension">1</property>
604 <property name="max_size"></property>
605 <property name="maximize_button">0</property>
606 <property name="maximum_size"></property>
607 <property name="min_size"></property>
608 <property name="minimize_button">0</property>
609 <property name="minimum_size"></property>
610 <property name="moveable">1</property>
611 <property name="name">m_OutputFormCtrl</property>
612 <property name="pane_border">1</property>
613 <property name="pane_position"></property>
614 <property name="pane_size"></property>
615 <property name="permission">protected</property>
616 <property name="pin_button">1</property>
617 <property name="pos"></property>
618 <property name="resize">Resizable</property>
619 <property name="selection">1</property>
620 <property name="show">1</property>
621 <property name="size"></property>
622 <property name="style">wxRA_SPECIFY_COLS</property>
623 <property name="subclass"></property>
624 <property name="toolbar_pane">0</property>
625 <property name="tooltip"></property>
626 <property name="validator_data_type"></property>
627 <property name="validator_style">wxFILTER_NONE</property>
628 <property name="validator_type">wxDefaultValidator</property>
629 <property name="validator_variable"></property>
630 <property name="window_extra_style"></property>
631 <property name="window_name"></property>
632 <property name="window_style"></property>
633 <event name="OnChar"></event>
634 <event name="OnEnterWindow"></event>
635 <event name="OnEraseBackground"></event>
636 <event name="OnKeyDown"></event>
637 <event name="OnKeyUp"></event>
638 <event name="OnKillFocus"></event>
639 <event name="OnLeaveWindow"></event>
640 <event name="OnLeftDClick"></event>
641 <event name="OnLeftDown"></event>
642 <event name="OnLeftUp"></event>
643 <event name="OnMiddleDClick"></event>
644 <event name="OnMiddleDown"></event>
645 <event name="OnMiddleUp"></event>
646 <event name="OnMotion"></event>
647 <event name="OnMouseEvents"></event>
648 <event name="OnMouseWheel"></event>
649 <event name="OnPaint"></event>
650 <event name="OnRadioBox">OnRadioboxSelectFormatSelected</event>
651 <event name="OnRightDClick"></event>
652 <event name="OnRightDown"></event>
653 <event name="OnRightUp"></event>
654 <event name="OnSetFocus"></event>
655 <event name="OnSize"></event>
656 <event name="OnUpdateUI"></event>
657 </object>
658 </object>
659 <object class="sizeritem" expanded="1">
660 <property name="border">5</property>
661 <property name="flag">wxEXPAND|wxTOP</property>
662 <property name="proportion">0</property>
663 <object class="wxRadioBox" expanded="1">
664 <property name="BottomDockable">1</property>
665 <property name="LeftDockable">1</property>
666 <property name="RightDockable">1</property>
667 <property name="TopDockable">1</property>
668 <property name="aui_layer"></property>
669 <property name="aui_name"></property>
670 <property name="aui_position"></property>
671 <property name="aui_row"></property>
672 <property name="best_size"></property>
673 <property name="bg"></property>
674 <property name="caption"></property>
675 <property name="caption_visible">1</property>
676 <property name="center_pane">0</property>
677 <property name="choices">&quot;Tab&quot; &quot;;&quot; &quot;,&quot;</property>
678 <property name="close_button">1</property>
679 <property name="context_help"></property>
680 <property name="context_menu">1</property>
681 <property name="default_pane">0</property>
682 <property name="dock">Dock</property>
683 <property name="dock_fixed">0</property>
684 <property name="docking">Left</property>
685 <property name="enabled">1</property>
686 <property name="fg"></property>
687 <property name="floatable">1</property>
688 <property name="font"></property>
689 <property name="gripper">0</property>
690 <property name="hidden">0</property>
691 <property name="id">wxID_ANY</property>
692 <property name="label">Field separator for spreadsheet import:</property>
693 <property name="majorDimension">1</property>
694 <property name="max_size"></property>
695 <property name="maximize_button">0</property>
696 <property name="maximum_size"></property>
697 <property name="min_size"></property>
698 <property name="minimize_button">0</property>
699 <property name="minimum_size"></property>
700 <property name="moveable">1</property>
701 <property name="name">m_OutputSeparatorCtrl</property>
702 <property name="pane_border">1</property>
703 <property name="pane_position"></property>
704 <property name="pane_size"></property>
705 <property name="permission">protected</property>
706 <property name="pin_button">1</property>
707 <property name="pos"></property>
708 <property name="resize">Resizable</property>
709 <property name="selection">0</property>
710 <property name="show">1</property>
711 <property name="size"></property>
712 <property name="style">wxRA_SPECIFY_ROWS</property>
713 <property name="subclass"></property>
714 <property name="toolbar_pane">0</property>
715 <property name="tooltip"></property>
716 <property name="validator_data_type"></property>
717 <property name="validator_style">wxFILTER_NONE</property>
718 <property name="validator_type">wxDefaultValidator</property>
719 <property name="validator_variable"></property>
720 <property name="window_extra_style"></property>
721 <property name="window_name"></property>
722 <property name="window_style"></property>
723 <event name="OnChar"></event>
724 <event name="OnEnterWindow"></event>
725 <event name="OnEraseBackground"></event>
726 <event name="OnKeyDown"></event>
727 <event name="OnKeyUp"></event>
728 <event name="OnKillFocus"></event>
729 <event name="OnLeaveWindow"></event>
730 <event name="OnLeftDClick"></event>
731 <event name="OnLeftDown"></event>
732 <event name="OnLeftUp"></event>
733 <event name="OnMiddleDClick"></event>
734 <event name="OnMiddleDown"></event>
735 <event name="OnMiddleUp"></event>
736 <event name="OnMotion"></event>
737 <event name="OnMouseEvents"></event>
738 <event name="OnMouseWheel"></event>
739 <event name="OnPaint"></event>
740 <event name="OnRadioBox"></event>
741 <event name="OnRightDClick"></event>
742 <event name="OnRightDown"></event>
743 <event name="OnRightUp"></event>
744 <event name="OnSetFocus"></event>
745 <event name="OnSize"></event>
746 <event name="OnUpdateUI"></event>
747 </object>
748 </object>
749 <object class="sizeritem" expanded="1">
750 <property name="border">5</property>
751 <property name="flag">wxALL|wxEXPAND</property>
752 <property name="proportion">0</property>
753 <object class="wxCheckBox" expanded="1">
754 <property name="BottomDockable">1</property>
755 <property name="LeftDockable">1</property>
756 <property name="RightDockable">1</property>
757 <property name="TopDockable">1</property>
758 <property name="aui_layer"></property>
759 <property name="aui_name"></property>
760 <property name="aui_position"></property>
761 <property name="aui_row"></property>
762 <property name="best_size"></property>
763 <property name="bg"></property>
764 <property name="caption"></property>
765 <property name="caption_visible">1</property>
766 <property name="center_pane">0</property>
767 <property name="checked">0</property>
768 <property name="close_button">1</property>
769 <property name="context_help"></property>
770 <property name="context_menu">1</property>
771 <property name="default_pane">0</property>
772 <property name="dock">Dock</property>
773 <property name="dock_fixed">0</property>
774 <property name="docking">Left</property>
775 <property name="enabled">1</property>
776 <property name="fg"></property>
777 <property name="floatable">1</property>
778 <property name="font"></property>
779 <property name="gripper">0</property>
780 <property name="hidden">0</property>
781 <property name="id">wxID_ANY</property>
782 <property name="label">Launch list browser</property>
783 <property name="max_size"></property>
784 <property name="maximize_button">0</property>
785 <property name="maximum_size"></property>
786 <property name="min_size"></property>
787 <property name="minimize_button">0</property>
788 <property name="minimum_size"></property>
789 <property name="moveable">1</property>
790 <property name="name">m_GetListBrowser</property>
791 <property name="pane_border">1</property>
792 <property name="pane_position"></property>
793 <property name="pane_size"></property>
794 <property name="permission">protected</property>
795 <property name="pin_button">1</property>
796 <property name="pos"></property>
797 <property name="resize">Resizable</property>
798 <property name="show">1</property>
799 <property name="size"></property>
800 <property name="style"></property>
801 <property name="subclass"></property>
802 <property name="toolbar_pane">0</property>
803 <property name="tooltip"></property>
804 <property name="validator_data_type"></property>
805 <property name="validator_style">wxFILTER_NONE</property>
806 <property name="validator_type">wxDefaultValidator</property>
807 <property name="validator_variable"></property>
808 <property name="window_extra_style"></property>
809 <property name="window_name"></property>
810 <property name="window_style"></property>
811 <event name="OnChar"></event>
812 <event name="OnCheckBox"></event>
813 <event name="OnEnterWindow"></event>
814 <event name="OnEraseBackground"></event>
815 <event name="OnKeyDown"></event>
816 <event name="OnKeyUp"></event>
817 <event name="OnKillFocus"></event>
818 <event name="OnLeaveWindow"></event>
819 <event name="OnLeftDClick"></event>
820 <event name="OnLeftDown"></event>
821 <event name="OnLeftUp"></event>
822 <event name="OnMiddleDClick"></event>
823 <event name="OnMiddleDown"></event>
824 <event name="OnMiddleUp"></event>
825 <event name="OnMotion"></event>
826 <event name="OnMouseEvents"></event>
827 <event name="OnMouseWheel"></event>
828 <event name="OnPaint"></event>
829 <event name="OnRightDClick"></event>
830 <event name="OnRightDown"></event>
831 <event name="OnRightUp"></event>
832 <event name="OnSetFocus"></event>
833 <event name="OnSize"></event>
834 <event name="OnUpdateUI"></event>
835 </object>
836 </object>
837 </object>
838 </object>
839 <object class="sizeritem" expanded="1">
840 <property name="border">5</property>
841 <property name="flag">wxALL|wxEXPAND</property>
842 <property name="proportion">2</property>
843 <object class="wxBoxSizer" expanded="1">
844 <property name="minimum_size"></property>
845 <property name="name">bRightSizer</property>
846 <property name="orient">wxVERTICAL</property>
847 <property name="permission">none</property>
848 <object class="sizeritem" expanded="1">
849 <property name="border">5</property>
850 <property name="flag">wxEXPAND</property>
851 <property name="proportion">1</property>
852 <object class="wxStaticBoxSizer" expanded="1">
853 <property name="id">wxID_ANY</property>
854 <property name="label">Add to list:</property>
855 <property name="minimum_size"></property>
856 <property name="name">sbAddToListSelectionSizer</property>
857 <property name="orient">wxVERTICAL</property>
858 <property name="permission">none</property>
859 <event name="OnUpdateUI"></event>
860 <object class="sizeritem" expanded="1">
861 <property name="border">5</property>
862 <property name="flag">wxALL</property>
863 <property name="proportion">0</property>
864 <object class="wxCheckBox" expanded="1">
865 <property name="BottomDockable">1</property>
866 <property name="LeftDockable">1</property>
867 <property name="RightDockable">1</property>
868 <property name="TopDockable">1</property>
869 <property name="aui_layer"></property>
870 <property name="aui_name"></property>
871 <property name="aui_position"></property>
872 <property name="aui_row"></property>
873 <property name="best_size"></property>
874 <property name="bg"></property>
875 <property name="caption"></property>
876 <property name="caption_visible">1</property>
877 <property name="center_pane">0</property>
878 <property name="checked">0</property>
879 <property name="close_button">1</property>
880 <property name="context_help"></property>
881 <property name="context_menu">1</property>
882 <property name="default_pane">0</property>
883 <property name="dock">Dock</property>
884 <property name="dock_fixed">0</property>
885 <property name="docking">Left</property>
886 <property name="enabled">1</property>
887 <property name="fg"></property>
888 <property name="floatable">1</property>
889 <property name="font"></property>
890 <property name="gripper">0</property>
891 <property name="hidden">0</property>
892 <property name="id">wxID_ANY</property>
893 <property name="label">Component location</property>
894 <property name="max_size"></property>
895 <property name="maximize_button">0</property>
896 <property name="maximum_size"></property>
897 <property name="min_size"></property>
898 <property name="minimize_button">0</property>
899 <property name="minimum_size"></property>
900 <property name="moveable">1</property>
901 <property name="name">m_AddLocationField</property>
902 <property name="pane_border">1</property>
903 <property name="pane_position"></property>
904 <property name="pane_size"></property>
905 <property name="permission">protected</property>
906 <property name="pin_button">1</property>
907 <property name="pos"></property>
908 <property name="resize">Resizable</property>
909 <property name="show">1</property>
910 <property name="size"></property>
911 <property name="style"></property>
912 <property name="subclass"></property>
913 <property name="toolbar_pane">0</property>
914 <property name="tooltip"></property>
915 <property name="validator_data_type"></property>
916 <property name="validator_style">wxFILTER_NONE</property>
917 <property name="validator_type">wxDefaultValidator</property>
918 <property name="validator_variable"></property>
919 <property name="window_extra_style"></property>
920 <property name="window_name"></property>
921 <property name="window_style"></property>
922 <event name="OnChar"></event>
923 <event name="OnCheckBox"></event>
924 <event name="OnEnterWindow"></event>
925 <event name="OnEraseBackground"></event>
926 <event name="OnKeyDown"></event>
927 <event name="OnKeyUp"></event>
928 <event name="OnKillFocus"></event>
929 <event name="OnLeaveWindow"></event>
930 <event name="OnLeftDClick"></event>
931 <event name="OnLeftDown"></event>
932 <event name="OnLeftUp"></event>
933 <event name="OnMiddleDClick"></event>
934 <event name="OnMiddleDown"></event>
935 <event name="OnMiddleUp"></event>
936 <event name="OnMotion"></event>
937 <event name="OnMouseEvents"></event>
938 <event name="OnMouseWheel"></event>
939 <event name="OnPaint"></event>
940 <event name="OnRightDClick"></event>
941 <event name="OnRightDown"></event>
942 <event name="OnRightUp"></event>
943 <event name="OnSetFocus"></event>
944 <event name="OnSize"></event>
945 <event name="OnUpdateUI"></event>
946 </object>
947 </object>
948 <object class="sizeritem" expanded="1">
949 <property name="border">5</property>
950 <property name="flag">wxEXPAND</property>
951 <property name="proportion">0</property>
952 <object class="wxStaticBoxSizer" expanded="1">
953 <property name="id">wxID_ANY</property>
954 <property name="label">System Fields:</property>
955 <property name="minimum_size"></property>
956 <property name="name">sbFixedFieldsSizer</property>
957 <property name="orient">wxVERTICAL</property>
958 <property name="permission">none</property>
959 <event name="OnUpdateUI"></event>
960 <object class="sizeritem" expanded="1">
961 <property name="border">5</property>
962 <property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
963 <property name="proportion">0</property>
964 <object class="wxCheckBox" expanded="1">
965 <property name="BottomDockable">1</property>
966 <property name="LeftDockable">1</property>
967 <property name="RightDockable">1</property>
968 <property name="TopDockable">1</property>
969 <property name="aui_layer"></property>
970 <property name="aui_name"></property>
971 <property name="aui_position"></property>
972 <property name="aui_row"></property>
973 <property name="best_size"></property>
974 <property name="bg"></property>
975 <property name="caption"></property>
976 <property name="caption_visible">1</property>
977 <property name="center_pane">0</property>
978 <property name="checked">0</property>
979 <property name="close_button">1</property>
980 <property name="context_help"></property>
981 <property name="context_menu">1</property>
982 <property name="default_pane">0</property>
983 <property name="dock">Dock</property>
984 <property name="dock_fixed">0</property>
985 <property name="docking">Left</property>
986 <property name="enabled">1</property>
987 <property name="fg"></property>
988 <property name="floatable">1</property>
989 <property name="font"></property>
990 <property name="gripper">0</property>
991 <property name="hidden">0</property>
992 <property name="id">wxID_ANY</property>
993 <property name="label">Datasheet</property>
994 <property name="max_size"></property>
995 <property name="maximize_button">0</property>
996 <property name="maximum_size"></property>
997 <property name="min_size"></property>
998 <property name="minimize_button">0</property>
999 <property name="minimum_size"></property>
1000 <property name="moveable">1</property>
1001 <property name="name">m_AddDatasheetField</property>
1002 <property name="pane_border">1</property>
1003 <property name="pane_position"></property>
1004 <property name="pane_size"></property>
1005 <property name="permission">protected</property>
1006 <property name="pin_button">1</property>
1007 <property name="pos"></property>
1008 <property name="resize">Resizable</property>
1009 <property name="show">1</property>
1010 <property name="size"></property>
1011 <property name="style"></property>
1012 <property name="subclass"></property>
1013 <property name="toolbar_pane">0</property>
1014 <property name="tooltip"></property>
1015 <property name="validator_data_type"></property>
1016 <property name="validator_style">wxFILTER_NONE</property>
1017 <property name="validator_type">wxDefaultValidator</property>
1018 <property name="validator_variable"></property>
1019 <property name="window_extra_style"></property>
1020 <property name="window_name"></property>
1021 <property name="window_style"></property>
1022 <event name="OnChar"></event>
1023 <event name="OnCheckBox"></event>
1024 <event name="OnEnterWindow"></event>
1025 <event name="OnEraseBackground"></event>
1026 <event name="OnKeyDown"></event>
1027 <event name="OnKeyUp"></event>
1028 <event name="OnKillFocus"></event>
1029 <event name="OnLeaveWindow"></event>
1030 <event name="OnLeftDClick"></event>
1031 <event name="OnLeftDown"></event>
1032 <event name="OnLeftUp"></event>
1033 <event name="OnMiddleDClick"></event>
1034 <event name="OnMiddleDown"></event>
1035 <event name="OnMiddleUp"></event>
1036 <event name="OnMotion"></event>
1037 <event name="OnMouseEvents"></event>
1038 <event name="OnMouseWheel"></event>
1039 <event name="OnPaint"></event>
1040 <event name="OnRightDClick"></event>
1041 <event name="OnRightDown"></event>
1042 <event name="OnRightUp"></event>
1043 <event name="OnSetFocus"></event>
1044 <event name="OnSize"></event>
1045 <event name="OnUpdateUI"></event>
1046 </object>
1047 </object>
1048 <object class="sizeritem" expanded="1">
1049 <property name="border">5</property>
1050 <property name="flag">wxALL|wxEXPAND</property>
1051 <property name="proportion">0</property>
1052 <object class="wxCheckBox" expanded="1">
1053 <property name="BottomDockable">1</property>
1054 <property name="LeftDockable">1</property>
1055 <property name="RightDockable">1</property>
1056 <property name="TopDockable">1</property>
1057 <property name="aui_layer"></property>
1058 <property name="aui_name"></property>
1059 <property name="aui_position"></property>
1060 <property name="aui_row"></property>
1061 <property name="best_size"></property>
1062 <property name="bg"></property>
1063 <property name="caption"></property>
1064 <property name="caption_visible">1</property>
1065 <property name="center_pane">0</property>
1066 <property name="checked">0</property>
1067 <property name="close_button">1</property>
1068 <property name="context_help"></property>
1069 <property name="context_menu">1</property>
1070 <property name="default_pane">0</property>
1071 <property name="dock">Dock</property>
1072 <property name="dock_fixed">0</property>
1073 <property name="docking">Left</property>
1074 <property name="enabled">1</property>
1075 <property name="fg"></property>
1076 <property name="floatable">1</property>
1077 <property name="font"></property>
1078 <property name="gripper">0</property>
1079 <property name="hidden">0</property>
1080 <property name="id">wxID_ANY</property>
1081 <property name="label">Footprint</property>
1082 <property name="max_size"></property>
1083 <property name="maximize_button">0</property>
1084 <property name="maximum_size"></property>
1085 <property name="min_size"></property>
1086 <property name="minimize_button">0</property>
1087 <property name="minimum_size"></property>
1088 <property name="moveable">1</property>
1089 <property name="name">m_AddFootprintField</property>
1090 <property name="pane_border">1</property>
1091 <property name="pane_position"></property>
1092 <property name="pane_size"></property>
1093 <property name="permission">protected</property>
1094 <property name="pin_button">1</property>
1095 <property name="pos"></property>
1096 <property name="resize">Resizable</property>
1097 <property name="show">1</property>
1098 <property name="size"></property>
1099 <property name="style"></property>
1100 <property name="subclass"></property>
1101 <property name="toolbar_pane">0</property>
1102 <property name="tooltip"></property>
1103 <property name="validator_data_type"></property>
1104 <property name="validator_style">wxFILTER_NONE</property>
1105 <property name="validator_type">wxDefaultValidator</property>
1106 <property name="validator_variable"></property>
1107 <property name="window_extra_style"></property>
1108 <property name="window_name"></property>
1109 <property name="window_style"></property>
1110 <event name="OnChar"></event>
1111 <event name="OnCheckBox"></event>
1112 <event name="OnEnterWindow"></event>
1113 <event name="OnEraseBackground"></event>
1114 <event name="OnKeyDown"></event>
1115 <event name="OnKeyUp"></event>
1116 <event name="OnKillFocus"></event>
1117 <event name="OnLeaveWindow"></event>
1118 <event name="OnLeftDClick"></event>
1119 <event name="OnLeftDown"></event>
1120 <event name="OnLeftUp"></event>
1121 <event name="OnMiddleDClick"></event>
1122 <event name="OnMiddleDown"></event>
1123 <event name="OnMiddleUp"></event>
1124 <event name="OnMotion"></event>
1125 <event name="OnMouseEvents"></event>
1126 <event name="OnMouseWheel"></event>
1127 <event name="OnPaint"></event>
1128 <event name="OnRightDClick"></event>
1129 <event name="OnRightDown"></event>
1130 <event name="OnRightUp"></event>
1131 <event name="OnSetFocus"></event>
1132 <event name="OnSize"></event>
1133 <event name="OnUpdateUI"></event>
1134 </object>
1135 </object>
1136 </object>
1137 </object>
1138 <object class="sizeritem" expanded="1">
1139 <property name="border">5</property>
1140 <property name="flag">wxEXPAND|wxTOP</property>
1141 <property name="proportion">0</property>
1142 <object class="wxStaticBoxSizer" expanded="1">
1143 <property name="id">wxID_ANY</property>
1144 <property name="label">Users fields:</property>
1145 <property name="minimum_size"></property>
1146 <property name="name">sbUsersFiledsSizer</property>
1147 <property name="orient">wxVERTICAL</property>
1148 <property name="permission">none</property>
1149 <event name="OnUpdateUI"></event>
1150 <object class="sizeritem" expanded="1">
1151 <property name="border">5</property>
1152 <property name="flag">wxEXPAND|wxALL</property>
1153 <property name="proportion">0</property>
1154 <object class="wxCheckBox" expanded="1">
1155 <property name="BottomDockable">1</property>
1156 <property name="LeftDockable">1</property>
1157 <property name="RightDockable">1</property>
1158 <property name="TopDockable">1</property>
1159 <property name="aui_layer"></property>
1160 <property name="aui_name"></property>
1161 <property name="aui_position"></property>
1162 <property name="aui_row"></property>
1163 <property name="best_size"></property>
1164 <property name="bg"></property>
1165 <property name="caption"></property>
1166 <property name="caption_visible">1</property>
1167 <property name="center_pane">0</property>
1168 <property name="checked">0</property>
1169 <property name="close_button">1</property>
1170 <property name="context_help"></property>
1171 <property name="context_menu">1</property>
1172 <property name="default_pane">0</property>
1173 <property name="dock">Dock</property>
1174 <property name="dock_fixed">0</property>
1175 <property name="docking">Left</property>
1176 <property name="enabled">1</property>
1177 <property name="fg"></property>
1178 <property name="floatable">1</property>
1179 <property name="font"></property>
1180 <property name="gripper">0</property>
1181 <property name="hidden">0</property>
1182 <property name="id">wxID_ANY</property>
1183 <property name="label">Field 1</property>
1184 <property name="max_size"></property>
1185 <property name="maximize_button">0</property>
1186 <property name="maximum_size"></property>
1187 <property name="min_size"></property>
1188 <property name="minimize_button">0</property>
1189 <property name="minimum_size"></property>
1190 <property name="moveable">1</property>
1191 <property name="name">m_AddField1</property>
1192 <property name="pane_border">1</property>
1193 <property name="pane_position"></property>
1194 <property name="pane_size"></property>
1195 <property name="permission">protected</property>
1196 <property name="pin_button">1</property>
1197 <property name="pos"></property>
1198 <property name="resize">Resizable</property>
1199 <property name="show">1</property>
1200 <property name="size"></property>
1201 <property name="style"></property>
1202 <property name="subclass"></property>
1203 <property name="toolbar_pane">0</property>
1204 <property name="tooltip"></property>
1205 <property name="validator_data_type"></property>
1206 <property name="validator_style">wxFILTER_NONE</property>
1207 <property name="validator_type">wxDefaultValidator</property>
1208 <property name="validator_variable"></property>
1209 <property name="window_extra_style"></property>
1210 <property name="window_name"></property>
1211 <property name="window_style"></property>
1212 <event name="OnChar"></event>
1213 <event name="OnCheckBox"></event>
1214 <event name="OnEnterWindow"></event>
1215 <event name="OnEraseBackground"></event>
1216 <event name="OnKeyDown"></event>
1217 <event name="OnKeyUp"></event>
1218 <event name="OnKillFocus"></event>
1219 <event name="OnLeaveWindow"></event>
1220 <event name="OnLeftDClick"></event>
1221 <event name="OnLeftDown"></event>
1222 <event name="OnLeftUp"></event>
1223 <event name="OnMiddleDClick"></event>
1224 <event name="OnMiddleDown"></event>
1225 <event name="OnMiddleUp"></event>
1226 <event name="OnMotion"></event>
1227 <event name="OnMouseEvents"></event>
1228 <event name="OnMouseWheel"></event>
1229 <event name="OnPaint"></event>
1230 <event name="OnRightDClick"></event>
1231 <event name="OnRightDown"></event>
1232 <event name="OnRightUp"></event>
1233 <event name="OnSetFocus"></event>
1234 <event name="OnSize"></event>
1235 <event name="OnUpdateUI"></event>
1236 </object>
1237 </object>
1238 <object class="sizeritem" expanded="1">
1239 <property name="border">5</property>
1240 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1241 <property name="proportion">0</property>
1242 <object class="wxCheckBox" expanded="1">
1243 <property name="BottomDockable">1</property>
1244 <property name="LeftDockable">1</property>
1245 <property name="RightDockable">1</property>
1246 <property name="TopDockable">1</property>
1247 <property name="aui_layer"></property>
1248 <property name="aui_name"></property>
1249 <property name="aui_position"></property>
1250 <property name="aui_row"></property>
1251 <property name="best_size"></property>
1252 <property name="bg"></property>
1253 <property name="caption"></property>
1254 <property name="caption_visible">1</property>
1255 <property name="center_pane">0</property>
1256 <property name="checked">0</property>
1257 <property name="close_button">1</property>
1258 <property name="context_help"></property>
1259 <property name="context_menu">1</property>
1260 <property name="default_pane">0</property>
1261 <property name="dock">Dock</property>
1262 <property name="dock_fixed">0</property>
1263 <property name="docking">Left</property>
1264 <property name="enabled">1</property>
1265 <property name="fg"></property>
1266 <property name="floatable">1</property>
1267 <property name="font"></property>
1268 <property name="gripper">0</property>
1269 <property name="hidden">0</property>
1270 <property name="id">wxID_ANY</property>
1271 <property name="label">Field 2</property>
1272 <property name="max_size"></property>
1273 <property name="maximize_button">0</property>
1274 <property name="maximum_size"></property>
1275 <property name="min_size"></property>
1276 <property name="minimize_button">0</property>
1277 <property name="minimum_size"></property>
1278 <property name="moveable">1</property>
1279 <property name="name">m_AddField2</property>
1280 <property name="pane_border">1</property>
1281 <property name="pane_position"></property>
1282 <property name="pane_size"></property>
1283 <property name="permission">protected</property>
1284 <property name="pin_button">1</property>
1285 <property name="pos"></property>
1286 <property name="resize">Resizable</property>
1287 <property name="show">1</property>
1288 <property name="size"></property>
1289 <property name="style"></property>
1290 <property name="subclass"></property>
1291 <property name="toolbar_pane">0</property>
1292 <property name="tooltip"></property>
1293 <property name="validator_data_type"></property>
1294 <property name="validator_style">wxFILTER_NONE</property>
1295 <property name="validator_type">wxDefaultValidator</property>
1296 <property name="validator_variable"></property>
1297 <property name="window_extra_style"></property>
1298 <property name="window_name"></property>
1299 <property name="window_style"></property>
1300 <event name="OnChar"></event>
1301 <event name="OnCheckBox"></event>
1302 <event name="OnEnterWindow"></event>
1303 <event name="OnEraseBackground"></event>
1304 <event name="OnKeyDown"></event>
1305 <event name="OnKeyUp"></event>
1306 <event name="OnKillFocus"></event>
1307 <event name="OnLeaveWindow"></event>
1308 <event name="OnLeftDClick"></event>
1309 <event name="OnLeftDown"></event>
1310 <event name="OnLeftUp"></event>
1311 <event name="OnMiddleDClick"></event>
1312 <event name="OnMiddleDown"></event>
1313 <event name="OnMiddleUp"></event>
1314 <event name="OnMotion"></event>
1315 <event name="OnMouseEvents"></event>
1316 <event name="OnMouseWheel"></event>
1317 <event name="OnPaint"></event>
1318 <event name="OnRightDClick"></event>
1319 <event name="OnRightDown"></event>
1320 <event name="OnRightUp"></event>
1321 <event name="OnSetFocus"></event>
1322 <event name="OnSize"></event>
1323 <event name="OnUpdateUI"></event>
1324 </object>
1325 </object>
1326 <object class="sizeritem" expanded="1">
1327 <property name="border">5</property>
1328 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1329 <property name="proportion">0</property>
1330 <object class="wxCheckBox" expanded="1">
1331 <property name="BottomDockable">1</property>
1332 <property name="LeftDockable">1</property>
1333 <property name="RightDockable">1</property>
1334 <property name="TopDockable">1</property>
1335 <property name="aui_layer"></property>
1336 <property name="aui_name"></property>
1337 <property name="aui_position"></property>
1338 <property name="aui_row"></property>
1339 <property name="best_size"></property>
1340 <property name="bg"></property>
1341 <property name="caption"></property>
1342 <property name="caption_visible">1</property>
1343 <property name="center_pane">0</property>
1344 <property name="checked">0</property>
1345 <property name="close_button">1</property>
1346 <property name="context_help"></property>
1347 <property name="context_menu">1</property>
1348 <property name="default_pane">0</property>
1349 <property name="dock">Dock</property>
1350 <property name="dock_fixed">0</property>
1351 <property name="docking">Left</property>
1352 <property name="enabled">1</property>
1353 <property name="fg"></property>
1354 <property name="floatable">1</property>
1355 <property name="font"></property>
1356 <property name="gripper">0</property>
1357 <property name="hidden">0</property>
1358 <property name="id">wxID_ANY</property>
1359 <property name="label">Field 3</property>
1360 <property name="max_size"></property>
1361 <property name="maximize_button">0</property>
1362 <property name="maximum_size"></property>
1363 <property name="min_size"></property>
1364 <property name="minimize_button">0</property>
1365 <property name="minimum_size"></property>
1366 <property name="moveable">1</property>
1367 <property name="name">m_AddField3</property>
1368 <property name="pane_border">1</property>
1369 <property name="pane_position"></property>
1370 <property name="pane_size"></property>
1371 <property name="permission">protected</property>
1372 <property name="pin_button">1</property>
1373 <property name="pos"></property>
1374 <property name="resize">Resizable</property>
1375 <property name="show">1</property>
1376 <property name="size"></property>
1377 <property name="style"></property>
1378 <property name="subclass"></property>
1379 <property name="toolbar_pane">0</property>
1380 <property name="tooltip"></property>
1381 <property name="validator_data_type"></property>
1382 <property name="validator_style">wxFILTER_NONE</property>
1383 <property name="validator_type">wxDefaultValidator</property>
1384 <property name="validator_variable"></property>
1385 <property name="window_extra_style"></property>
1386 <property name="window_name"></property>
1387 <property name="window_style"></property>
1388 <event name="OnChar"></event>
1389 <event name="OnCheckBox"></event>
1390 <event name="OnEnterWindow"></event>
1391 <event name="OnEraseBackground"></event>
1392 <event name="OnKeyDown"></event>
1393 <event name="OnKeyUp"></event>
1394 <event name="OnKillFocus"></event>
1395 <event name="OnLeaveWindow"></event>
1396 <event name="OnLeftDClick"></event>
1397 <event name="OnLeftDown"></event>
1398 <event name="OnLeftUp"></event>
1399 <event name="OnMiddleDClick"></event>
1400 <event name="OnMiddleDown"></event>
1401 <event name="OnMiddleUp"></event>
1402 <event name="OnMotion"></event>
1403 <event name="OnMouseEvents"></event>
1404 <event name="OnMouseWheel"></event>
1405 <event name="OnPaint"></event>
1406 <event name="OnRightDClick"></event>
1407 <event name="OnRightDown"></event>
1408 <event name="OnRightUp"></event>
1409 <event name="OnSetFocus"></event>
1410 <event name="OnSize"></event>
1411 <event name="OnUpdateUI"></event>
1412 </object>
1413 </object>
1414 <object class="sizeritem" expanded="1">
1415 <property name="border">5</property>
1416 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1417 <property name="proportion">0</property>
1418 <object class="wxCheckBox" expanded="1">
1419 <property name="BottomDockable">1</property>
1420 <property name="LeftDockable">1</property>
1421 <property name="RightDockable">1</property>
1422 <property name="TopDockable">1</property>
1423 <property name="aui_layer"></property>
1424 <property name="aui_name"></property>
1425 <property name="aui_position"></property>
1426 <property name="aui_row"></property>
1427 <property name="best_size"></property>
1428 <property name="bg"></property>
1429 <property name="caption"></property>
1430 <property name="caption_visible">1</property>
1431 <property name="center_pane">0</property>
1432 <property name="checked">0</property>
1433 <property name="close_button">1</property>
1434 <property name="context_help"></property>
1435 <property name="context_menu">1</property>
1436 <property name="default_pane">0</property>
1437 <property name="dock">Dock</property>
1438 <property name="dock_fixed">0</property>
1439 <property name="docking">Left</property>
1440 <property name="enabled">1</property>
1441 <property name="fg"></property>
1442 <property name="floatable">1</property>
1443 <property name="font"></property>
1444 <property name="gripper">0</property>
1445 <property name="hidden">0</property>
1446 <property name="id">wxID_ANY</property>
1447 <property name="label">Field 4</property>
1448 <property name="max_size"></property>
1449 <property name="maximize_button">0</property>
1450 <property name="maximum_size"></property>
1451 <property name="min_size"></property>
1452 <property name="minimize_button">0</property>
1453 <property name="minimum_size"></property>
1454 <property name="moveable">1</property>
1455 <property name="name">m_AddField4</property>
1456 <property name="pane_border">1</property>
1457 <property name="pane_position"></property>
1458 <property name="pane_size"></property>
1459 <property name="permission">protected</property>
1460 <property name="pin_button">1</property>
1461 <property name="pos"></property>
1462 <property name="resize">Resizable</property>
1463 <property name="show">1</property>
1464 <property name="size"></property>
1465 <property name="style"></property>
1466 <property name="subclass"></property>
1467 <property name="toolbar_pane">0</property>
1468 <property name="tooltip"></property>
1469 <property name="validator_data_type"></property>
1470 <property name="validator_style">wxFILTER_NONE</property>
1471 <property name="validator_type">wxDefaultValidator</property>
1472 <property name="validator_variable"></property>
1473 <property name="window_extra_style"></property>
1474 <property name="window_name"></property>
1475 <property name="window_style"></property>
1476 <event name="OnChar"></event>
1477 <event name="OnCheckBox"></event>
1478 <event name="OnEnterWindow"></event>
1479 <event name="OnEraseBackground"></event>
1480 <event name="OnKeyDown"></event>
1481 <event name="OnKeyUp"></event>
1482 <event name="OnKillFocus"></event>
1483 <event name="OnLeaveWindow"></event>
1484 <event name="OnLeftDClick"></event>
1485 <event name="OnLeftDown"></event>
1486 <event name="OnLeftUp"></event>
1487 <event name="OnMiddleDClick"></event>
1488 <event name="OnMiddleDown"></event>
1489 <event name="OnMiddleUp"></event>
1490 <event name="OnMotion"></event>
1491 <event name="OnMouseEvents"></event>
1492 <event name="OnMouseWheel"></event>
1493 <event name="OnPaint"></event>
1494 <event name="OnRightDClick"></event>
1495 <event name="OnRightDown"></event>
1496 <event name="OnRightUp"></event>
1497 <event name="OnSetFocus"></event>
1498 <event name="OnSize"></event>
1499 <event name="OnUpdateUI"></event>
1500 </object>
1501 </object>
1502 <object class="sizeritem" expanded="1">
1503 <property name="border">5</property>
1504 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1505 <property name="proportion">0</property>
1506 <object class="wxCheckBox" expanded="1">
1507 <property name="BottomDockable">1</property>
1508 <property name="LeftDockable">1</property>
1509 <property name="RightDockable">1</property>
1510 <property name="TopDockable">1</property>
1511 <property name="aui_layer"></property>
1512 <property name="aui_name"></property>
1513 <property name="aui_position"></property>
1514 <property name="aui_row"></property>
1515 <property name="best_size"></property>
1516 <property name="bg"></property>
1517 <property name="caption"></property>
1518 <property name="caption_visible">1</property>
1519 <property name="center_pane">0</property>
1520 <property name="checked">0</property>
1521 <property name="close_button">1</property>
1522 <property name="context_help"></property>
1523 <property name="context_menu">1</property>
1524 <property name="default_pane">0</property>
1525 <property name="dock">Dock</property>
1526 <property name="dock_fixed">0</property>
1527 <property name="docking">Left</property>
1528 <property name="enabled">1</property>
1529 <property name="fg"></property>
1530 <property name="floatable">1</property>
1531 <property name="font"></property>
1532 <property name="gripper">0</property>
1533 <property name="hidden">0</property>
1534 <property name="id">wxID_ANY</property>
1535 <property name="label">Field 5</property>
1536 <property name="max_size"></property>
1537 <property name="maximize_button">0</property>
1538 <property name="maximum_size"></property>
1539 <property name="min_size"></property>
1540 <property name="minimize_button">0</property>
1541 <property name="minimum_size"></property>
1542 <property name="moveable">1</property>
1543 <property name="name">m_AddField5</property>
1544 <property name="pane_border">1</property>
1545 <property name="pane_position"></property>
1546 <property name="pane_size"></property>
1547 <property name="permission">protected</property>
1548 <property name="pin_button">1</property>
1549 <property name="pos"></property>
1550 <property name="resize">Resizable</property>
1551 <property name="show">1</property>
1552 <property name="size"></property>
1553 <property name="style"></property>
1554 <property name="subclass"></property>
1555 <property name="toolbar_pane">0</property>
1556 <property name="tooltip"></property>
1557 <property name="validator_data_type"></property>
1558 <property name="validator_style">wxFILTER_NONE</property>
1559 <property name="validator_type">wxDefaultValidator</property>
1560 <property name="validator_variable"></property>
1561 <property name="window_extra_style"></property>
1562 <property name="window_name"></property>
1563 <property name="window_style"></property>
1564 <event name="OnChar"></event>
1565 <event name="OnCheckBox"></event>
1566 <event name="OnEnterWindow"></event>
1567 <event name="OnEraseBackground"></event>
1568 <event name="OnKeyDown"></event>
1569 <event name="OnKeyUp"></event>
1570 <event name="OnKillFocus"></event>
1571 <event name="OnLeaveWindow"></event>
1572 <event name="OnLeftDClick"></event>
1573 <event name="OnLeftDown"></event>
1574 <event name="OnLeftUp"></event>
1575 <event name="OnMiddleDClick"></event>
1576 <event name="OnMiddleDown"></event>
1577 <event name="OnMiddleUp"></event>
1578 <event name="OnMotion"></event>
1579 <event name="OnMouseEvents"></event>
1580 <event name="OnMouseWheel"></event>
1581 <event name="OnPaint"></event>
1582 <event name="OnRightDClick"></event>
1583 <event name="OnRightDown"></event>
1584 <event name="OnRightUp"></event>
1585 <event name="OnSetFocus"></event>
1586 <event name="OnSize"></event>
1587 <event name="OnUpdateUI"></event>
1588 </object>
1589 </object>
1590 <object class="sizeritem" expanded="1">
1591 <property name="border">5</property>
1592 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1593 <property name="proportion">0</property>
1594 <object class="wxCheckBox" expanded="1">
1595 <property name="BottomDockable">1</property>
1596 <property name="LeftDockable">1</property>
1597 <property name="RightDockable">1</property>
1598 <property name="TopDockable">1</property>
1599 <property name="aui_layer"></property>
1600 <property name="aui_name"></property>
1601 <property name="aui_position"></property>
1602 <property name="aui_row"></property>
1603 <property name="best_size"></property>
1604 <property name="bg"></property>
1605 <property name="caption"></property>
1606 <property name="caption_visible">1</property>
1607 <property name="center_pane">0</property>
1608 <property name="checked">0</property>
1609 <property name="close_button">1</property>
1610 <property name="context_help"></property>
1611 <property name="context_menu">1</property>
1612 <property name="default_pane">0</property>
1613 <property name="dock">Dock</property>
1614 <property name="dock_fixed">0</property>
1615 <property name="docking">Left</property>
1616 <property name="enabled">1</property>
1617 <property name="fg"></property>
1618 <property name="floatable">1</property>
1619 <property name="font"></property>
1620 <property name="gripper">0</property>
1621 <property name="hidden">0</property>
1622 <property name="id">wxID_ANY</property>
1623 <property name="label">Field 6</property>
1624 <property name="max_size"></property>
1625 <property name="maximize_button">0</property>
1626 <property name="maximum_size"></property>
1627 <property name="min_size"></property>
1628 <property name="minimize_button">0</property>
1629 <property name="minimum_size"></property>
1630 <property name="moveable">1</property>
1631 <property name="name">m_AddField6</property>
1632 <property name="pane_border">1</property>
1633 <property name="pane_position"></property>
1634 <property name="pane_size"></property>
1635 <property name="permission">protected</property>
1636 <property name="pin_button">1</property>
1637 <property name="pos"></property>
1638 <property name="resize">Resizable</property>
1639 <property name="show">1</property>
1640 <property name="size"></property>
1641 <property name="style"></property>
1642 <property name="subclass"></property>
1643 <property name="toolbar_pane">0</property>
1644 <property name="tooltip"></property>
1645 <property name="validator_data_type"></property>
1646 <property name="validator_style">wxFILTER_NONE</property>
1647 <property name="validator_type">wxDefaultValidator</property>
1648 <property name="validator_variable"></property>
1649 <property name="window_extra_style"></property>
1650 <property name="window_name"></property>
1651 <property name="window_style"></property>
1652 <event name="OnChar"></event>
1653 <event name="OnCheckBox"></event>
1654 <event name="OnEnterWindow"></event>
1655 <event name="OnEraseBackground"></event>
1656 <event name="OnKeyDown"></event>
1657 <event name="OnKeyUp"></event>
1658 <event name="OnKillFocus"></event>
1659 <event name="OnLeaveWindow"></event>
1660 <event name="OnLeftDClick"></event>
1661 <event name="OnLeftDown"></event>
1662 <event name="OnLeftUp"></event>
1663 <event name="OnMiddleDClick"></event>
1664 <event name="OnMiddleDown"></event>
1665 <event name="OnMiddleUp"></event>
1666 <event name="OnMotion"></event>
1667 <event name="OnMouseEvents"></event>
1668 <event name="OnMouseWheel"></event>
1669 <event name="OnPaint"></event>
1670 <event name="OnRightDClick"></event>
1671 <event name="OnRightDown"></event>
1672 <event name="OnRightUp"></event>
1673 <event name="OnSetFocus"></event>
1674 <event name="OnSize"></event>
1675 <event name="OnUpdateUI"></event>
1676 </object>
1677 </object>
1678 <object class="sizeritem" expanded="1">
1679 <property name="border">5</property>
1680 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1681 <property name="proportion">0</property>
1682 <object class="wxCheckBox" expanded="1">
1683 <property name="BottomDockable">1</property>
1684 <property name="LeftDockable">1</property>
1685 <property name="RightDockable">1</property>
1686 <property name="TopDockable">1</property>
1687 <property name="aui_layer"></property>
1688 <property name="aui_name"></property>
1689 <property name="aui_position"></property>
1690 <property name="aui_row"></property>
1691 <property name="best_size"></property>
1692 <property name="bg"></property>
1693 <property name="caption"></property>
1694 <property name="caption_visible">1</property>
1695 <property name="center_pane">0</property>
1696 <property name="checked">0</property>
1697 <property name="close_button">1</property>
1698 <property name="context_help"></property>
1699 <property name="context_menu">1</property>
1700 <property name="default_pane">0</property>
1701 <property name="dock">Dock</property>
1702 <property name="dock_fixed">0</property>
1703 <property name="docking">Left</property>
1704 <property name="enabled">1</property>
1705 <property name="fg"></property>
1706 <property name="floatable">1</property>
1707 <property name="font"></property>
1708 <property name="gripper">0</property>
1709 <property name="hidden">0</property>
1710 <property name="id">wxID_ANY</property>
1711 <property name="label">Field 7</property>
1712 <property name="max_size"></property>
1713 <property name="maximize_button">0</property>
1714 <property name="maximum_size"></property>
1715 <property name="min_size"></property>
1716 <property name="minimize_button">0</property>
1717 <property name="minimum_size"></property>
1718 <property name="moveable">1</property>
1719 <property name="name">m_AddField7</property>
1720 <property name="pane_border">1</property>
1721 <property name="pane_position"></property>
1722 <property name="pane_size"></property>
1723 <property name="permission">protected</property>
1724 <property name="pin_button">1</property>
1725 <property name="pos"></property>
1726 <property name="resize">Resizable</property>
1727 <property name="show">1</property>
1728 <property name="size"></property>
1729 <property name="style"></property>
1730 <property name="subclass"></property>
1731 <property name="toolbar_pane">0</property>
1732 <property name="tooltip"></property>
1733 <property name="validator_data_type"></property>
1734 <property name="validator_style">wxFILTER_NONE</property>
1735 <property name="validator_type">wxDefaultValidator</property>
1736 <property name="validator_variable"></property>
1737 <property name="window_extra_style"></property>
1738 <property name="window_name"></property>
1739 <property name="window_style"></property>
1740 <event name="OnChar"></event>
1741 <event name="OnCheckBox"></event>
1742 <event name="OnEnterWindow"></event>
1743 <event name="OnEraseBackground"></event>
1744 <event name="OnKeyDown"></event>
1745 <event name="OnKeyUp"></event>
1746 <event name="OnKillFocus"></event>
1747 <event name="OnLeaveWindow"></event>
1748 <event name="OnLeftDClick"></event>
1749 <event name="OnLeftDown"></event>
1750 <event name="OnLeftUp"></event>
1751 <event name="OnMiddleDClick"></event>
1752 <event name="OnMiddleDown"></event>
1753 <event name="OnMiddleUp"></event>
1754 <event name="OnMotion"></event>
1755 <event name="OnMouseEvents"></event>
1756 <event name="OnMouseWheel"></event>
1757 <event name="OnPaint"></event>
1758 <event name="OnRightDClick"></event>
1759 <event name="OnRightDown"></event>
1760 <event name="OnRightUp"></event>
1761 <event name="OnSetFocus"></event>
1762 <event name="OnSize"></event>
1763 <event name="OnUpdateUI"></event>
1764 </object>
1765 </object>
1766 <object class="sizeritem" expanded="1">
1767 <property name="border">5</property>
1768 <property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
1769 <property name="proportion">0</property>
1770 <object class="wxCheckBox" expanded="1">
1771 <property name="BottomDockable">1</property>
1772 <property name="LeftDockable">1</property>
1773 <property name="RightDockable">1</property>
1774 <property name="TopDockable">1</property>
1775 <property name="aui_layer"></property>
1776 <property name="aui_name"></property>
1777 <property name="aui_position"></property>
1778 <property name="aui_row"></property>
1779 <property name="best_size"></property>
1780 <property name="bg"></property>
1781 <property name="caption"></property>
1782 <property name="caption_visible">1</property>
1783 <property name="center_pane">0</property>
1784 <property name="checked">0</property>
1785 <property name="close_button">1</property>
1786 <property name="context_help"></property>
1787 <property name="context_menu">1</property>
1788 <property name="default_pane">0</property>
1789 <property name="dock">Dock</property>
1790 <property name="dock_fixed">0</property>
1791 <property name="docking">Left</property>
1792 <property name="enabled">1</property>
1793 <property name="fg"></property>
1794 <property name="floatable">1</property>
1795 <property name="font"></property>
1796 <property name="gripper">0</property>
1797 <property name="hidden">0</property>
1798 <property name="id">wxID_ANY</property>
1799 <property name="label">Field 8</property>
1800 <property name="max_size"></property>
1801 <property name="maximize_button">0</property>
1802 <property name="maximum_size"></property>
1803 <property name="min_size"></property>
1804 <property name="minimize_button">0</property>
1805 <property name="minimum_size"></property>
1806 <property name="moveable">1</property>
1807 <property name="name">m_AddField8</property>
1808 <property name="pane_border">1</property>
1809 <property name="pane_position"></property>
1810 <property name="pane_size"></property>
1811 <property name="permission">protected</property>
1812 <property name="pin_button">1</property>
1813 <property name="pos"></property>
1814 <property name="resize">Resizable</property>
1815 <property name="show">1</property>
1816 <property name="size"></property>
1817 <property name="style"></property>
1818 <property name="subclass"></property>
1819 <property name="toolbar_pane">0</property>
1820 <property name="tooltip"></property>
1821 <property name="validator_data_type"></property>
1822 <property name="validator_style">wxFILTER_NONE</property>
1823 <property name="validator_type">wxDefaultValidator</property>
1824 <property name="validator_variable"></property>
1825 <property name="window_extra_style"></property>
1826 <property name="window_name"></property>
1827 <property name="window_style"></property>
1828 <event name="OnChar"></event>
1829 <event name="OnCheckBox"></event>
1830 <event name="OnEnterWindow"></event>
1831 <event name="OnEraseBackground"></event>
1832 <event name="OnKeyDown"></event>
1833 <event name="OnKeyUp"></event>
1834 <event name="OnKillFocus"></event>
1835 <event name="OnLeaveWindow"></event>
1836 <event name="OnLeftDClick"></event>
1837 <event name="OnLeftDown"></event>
1838 <event name="OnLeftUp"></event>
1839 <event name="OnMiddleDClick"></event>
1840 <event name="OnMiddleDown"></event>
1841 <event name="OnMiddleUp"></event>
1842 <event name="OnMotion"></event>
1843 <event name="OnMouseEvents"></event>
1844 <event name="OnMouseWheel"></event>
1845 <event name="OnPaint"></event>
1846 <event name="OnRightDClick"></event>
1847 <event name="OnRightDown"></event>
1848 <event name="OnRightUp"></event>
1849 <event name="OnSetFocus"></event>
1850 <event name="OnSize"></event>
1851 <event name="OnUpdateUI"></event>
1852 </object>
1853 </object>
1854 </object>
1855 </object>
1856 <object class="sizeritem" expanded="1">
1857 <property name="border">5</property>
1858 <property name="flag">wxALL</property>
1859 <property name="proportion">0</property>
1860 <object class="wxCheckBox" expanded="1">
1861 <property name="BottomDockable">1</property>
1862 <property name="LeftDockable">1</property>
1863 <property name="RightDockable">1</property>
1864 <property name="TopDockable">1</property>
1865 <property name="aui_layer"></property>
1866 <property name="aui_name"></property>
1867 <property name="aui_position"></property>
1868 <property name="aui_row"></property>
1869 <property name="best_size"></property>
1870 <property name="bg"></property>
1871 <property name="caption"></property>
1872 <property name="caption_visible">1</property>
1873 <property name="center_pane">0</property>
1874 <property name="checked">0</property>
1875 <property name="close_button">1</property>
1876 <property name="context_help"></property>
1877 <property name="context_menu">1</property>
1878 <property name="default_pane">0</property>
1879 <property name="dock">Dock</property>
1880 <property name="dock_fixed">0</property>
1881 <property name="docking">Left</property>
1882 <property name="enabled">1</property>
1883 <property name="fg"></property>
1884 <property name="floatable">1</property>
1885 <property name="font"></property>
1886 <property name="gripper">0</property>
1887 <property name="hidden">0</property>
1888 <property name="id">wxID_ANY</property>
1889 <property name="label">All existing user fields</property>
1890 <property name="max_size"></property>
1891 <property name="maximize_button">0</property>
1892 <property name="maximum_size"></property>
1893 <property name="min_size"></property>
1894 <property name="minimize_button">0</property>
1895 <property name="minimum_size"></property>
1896 <property name="moveable">1</property>
1897 <property name="name">m_AddAllFields</property>
1898 <property name="pane_border">1</property>
1899 <property name="pane_position"></property>
1900 <property name="pane_size"></property>
1901 <property name="permission">protected</property>
1902 <property name="pin_button">1</property>
1903 <property name="pos"></property>
1904 <property name="resize">Resizable</property>
1905 <property name="show">1</property>
1906 <property name="size"></property>
1907 <property name="style"></property>
1908 <property name="subclass"></property>
1909 <property name="toolbar_pane">0</property>
1910 <property name="tooltip"></property>
1911 <property name="validator_data_type"></property>
1912 <property name="validator_style">wxFILTER_NONE</property>
1913 <property name="validator_type">wxDefaultValidator</property>
1914 <property name="validator_variable"></property>
1915 <property name="window_extra_style"></property>
1916 <property name="window_name"></property>
1917 <property name="window_style"></property>
1918 <event name="OnChar"></event>
1919 <event name="OnCheckBox"></event>
1920 <event name="OnEnterWindow"></event>
1921 <event name="OnEraseBackground"></event>
1922 <event name="OnKeyDown"></event>
1923 <event name="OnKeyUp"></event>
1924 <event name="OnKillFocus"></event>
1925 <event name="OnLeaveWindow"></event>
1926 <event name="OnLeftDClick"></event>
1927 <event name="OnLeftDown"></event>
1928 <event name="OnLeftUp"></event>
1929 <event name="OnMiddleDClick"></event>
1930 <event name="OnMiddleDown"></event>
1931 <event name="OnMiddleUp"></event>
1932 <event name="OnMotion"></event>
1933 <event name="OnMouseEvents"></event>
1934 <event name="OnMouseWheel"></event>
1935 <event name="OnPaint"></event>
1936 <event name="OnRightDClick"></event>
1937 <event name="OnRightDown"></event>
1938 <event name="OnRightUp"></event>
1939 <event name="OnSetFocus"></event>
1940 <event name="OnSize"></event>
1941 <event name="OnUpdateUI"></event>
1942 </object>
1943 </object>
1944 </object>
1945 </object>
1946 </object>
1947 </object>
1948 </object>
1949 </object>
1950 <object class="sizeritem" expanded="1">
1951 <property name="border">5</property>
1952 <property name="flag">wxEXPAND|wxLEFT|wxRIGHT</property>
1953 <property name="proportion">0</property>
1954 <object class="wxStaticLine" expanded="1">
1955 <property name="BottomDockable">1</property>
1956 <property name="LeftDockable">1</property>
1957 <property name="RightDockable">1</property>
1958 <property name="TopDockable">1</property>
1959 <property name="aui_layer"></property>
1960 <property name="aui_name"></property>
1961 <property name="aui_position"></property>
1962 <property name="aui_row"></property>
1963 <property name="best_size"></property>
1964 <property name="bg"></property>
1965 <property name="caption"></property>
1966 <property name="caption_visible">1</property>
1967 <property name="center_pane">0</property>
1968 <property name="close_button">1</property>
1969 <property name="context_help"></property>
1970 <property name="context_menu">1</property>
1971 <property name="default_pane">0</property>
1972 <property name="dock">Dock</property>
1973 <property name="dock_fixed">0</property>
1974 <property name="docking">Left</property>
1975 <property name="enabled">1</property>
1976 <property name="fg"></property>
1977 <property name="floatable">1</property>
1978 <property name="font"></property>
1979 <property name="gripper">0</property>
1980 <property name="hidden">0</property>
1981 <property name="id">wxID_ANY</property>
1982 <property name="max_size"></property>
1983 <property name="maximize_button">0</property>
1984 <property name="maximum_size"></property>
1985 <property name="min_size"></property>
1986 <property name="minimize_button">0</property>
1987 <property name="minimum_size"></property>
1988 <property name="moveable">1</property>
1989 <property name="name">m_staticline1</property>
1990 <property name="pane_border">1</property>
1991 <property name="pane_position"></property>
1992 <property name="pane_size"></property>
1993 <property name="permission">protected</property>
1994 <property name="pin_button">1</property>
1995 <property name="pos"></property>
1996 <property name="resize">Resizable</property>
1997 <property name="show">1</property>
1998 <property name="size"></property>
1999 <property name="style">wxLI_HORIZONTAL</property>
2000 <property name="subclass"></property>
2001 <property name="toolbar_pane">0</property>
2002 <property name="tooltip"></property>
2003 <property name="window_extra_style"></property>
2004 <property name="window_name"></property>
2005 <property name="window_style"></property>
2006 <event name="OnChar"></event>
2007 <event name="OnEnterWindow"></event>
2008 <event name="OnEraseBackground"></event>
2009 <event name="OnKeyDown"></event>
2010 <event name="OnKeyUp"></event>
2011 <event name="OnKillFocus"></event>
2012 <event name="OnLeaveWindow"></event>
2013 <event name="OnLeftDClick"></event>
2014 <event name="OnLeftDown"></event>
2015 <event name="OnLeftUp"></event>
2016 <event name="OnMiddleDClick"></event>
2017 <event name="OnMiddleDown"></event>
2018 <event name="OnMiddleUp"></event>
2019 <event name="OnMotion"></event>
2020 <event name="OnMouseEvents"></event>
2021 <event name="OnMouseWheel"></event>
2022 <event name="OnPaint"></event>
2023 <event name="OnRightDClick"></event>
2024 <event name="OnRightDown"></event>
2025 <event name="OnRightUp"></event>
2026 <event name="OnSetFocus"></event>
2027 <event name="OnSize"></event>
2028 <event name="OnUpdateUI"></event>
2029 </object>
2030 </object>
2031 <object class="sizeritem" expanded="1">
2032 <property name="border">5</property>
2033 <property name="flag">wxALL|wxEXPAND</property>
2034 <property name="proportion">0</property>
2035 <object class="wxStdDialogButtonSizer" expanded="1">
2036 <property name="Apply">0</property>
2037 <property name="Cancel">1</property>
2038 <property name="ContextHelp">0</property>
2039 <property name="Help">0</property>
2040 <property name="No">0</property>
2041 <property name="OK">1</property>
2042 <property name="Save">0</property>
2043 <property name="Yes">0</property>
2044 <property name="minimum_size"></property>
2045 <property name="name">m_sdbSizer</property>
2046 <property name="permission">protected</property>
2047 <event name="OnApplyButtonClick"></event>
2048 <event name="OnCancelButtonClick">OnCancelClick</event>
2049 <event name="OnContextHelpButtonClick"></event>
2050 <event name="OnHelpButtonClick"></event>
2051 <event name="OnNoButtonClick"></event>
2052 <event name="OnOKButtonClick">OnOkClick</event>
2053 <event name="OnSaveButtonClick"></event>
2054 <event name="OnYesButtonClick"></event>
2055 </object>
2056 </object>
2057 </object>
2058 </object>
2059 </object>
2060</wxFormBuilder_Project>
02061
=== added file 'eeschema/BOM/dialogs/dialog_build_BOM_base.h'
--- eeschema/BOM/dialogs/dialog_build_BOM_base.h 1970-01-01 00:00:00 +0000
+++ eeschema/BOM/dialogs/dialog_build_BOM_base.h 2015-06-20 07:42:20 +0000
@@ -0,0 +1,83 @@
1///////////////////////////////////////////////////////////////////////////
2// C++ code generated with wxFormBuilder (version Oct 8 2012)
3// http://www.wxformbuilder.org/
4//
5// PLEASE DO "NOT" EDIT THIS FILE!
6///////////////////////////////////////////////////////////////////////////
7
8#ifndef __DIALOG_BUILD_BOM_BASE_H__
9#define __DIALOG_BUILD_BOM_BASE_H__
10
11#include <wx/artprov.h>
12#include <wx/xrc/xmlres.h>
13#include <wx/intl.h>
14class DIALOG_SHIM;
15
16#include "dialog_shim.h"
17#include <wx/string.h>
18#include <wx/checkbox.h>
19#include <wx/gdicmn.h>
20#include <wx/font.h>
21#include <wx/colour.h>
22#include <wx/settings.h>
23#include <wx/sizer.h>
24#include <wx/statbox.h>
25#include <wx/radiobox.h>
26#include <wx/statline.h>
27#include <wx/button.h>
28#include <wx/dialog.h>
29
30///////////////////////////////////////////////////////////////////////////
31
32///////////////////////////////////////////////////////////////////////////////
33/// Class DIALOG_BUILD_BOM_BASE
34///////////////////////////////////////////////////////////////////////////////
35class DIALOG_BUILD_BOM_BASE : public DIALOG_SHIM
36{
37 private:
38
39 protected:
40 enum
41 {
42 ID_RADIOBOX_SELECT_FORMAT = 1000
43 };
44
45 wxCheckBox* m_ListCmpbyRefItems;
The diff has been truncated for viewing.