Finished the Layer Setup Dialog. I assumed that the new layer order will
be in place soon. It works fine now, but the layer order is probably
misleading, since it does not reflect the current stackup but rather the
future stackup. I dropped support for a single layer board. The minimum
is two copper layers. Avoid the side you don't want anything on.
Within a month I should have the layer visibility and selection widget
in place.
constructor takes a keyword table, so it can be used for arbitrary DSN
syntax files of your own chosing. Simply create an enum {} with all your
unique tokens in it. Then create a KEYWORD table. See SPECCTRA_DB::keywords[].
The reason you want an enum is to give the C++ debugger better type information
so it can show symbolic integer symbols.
* Factored out common richio.cpp and richio.h
which is what DSNLEXER uses.
* Fixed some minor issues with reading circuit descriptor from a *.dsn file.
* Moved ReturnLayerName() to static BOARD::GetDefaultLayerName() and migrated
to a Specctra DSN compatible default layer naming scheme:
Component becomes Front, Copper becomes Back.
* set_color.h: Cmp becomes Front, Cu becomes Back.
* D_PAD::DisplayInfo() changed to use actual copper layer names.
* more layer setup dialog work, moved all programmatic wxControl instantiation
into the wxFormbuilder environment, but this is fraught with danger:
wxFlexGridSizer used the tallest control to establish the row heights, so
be careful about changing control borders in the scroll panel. The vertical
size can explode since just a couple of pixels times the number of rows
is substantial. Currently I am setting a 5 pixel border only left, top, and right
but not bottom.
* Set copper layer count is back in place as a hack until I can get the enabled
layer bit map fully operational.
* Added exporting of netclass vias to specctra_export.
* DIALOG_DESIGN_RULES now remembers it last selected TAB and screen position and
window size, and its grid columns are automatically expanded to fit the
column titles. Remembering screen position and size allows someone with
multiple monitors, to have a given window always come up on the monitor last chosen
for it.