kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #28995
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
Hi Wayne,
Sorry about this, I did not do the rebase correctly and was not set up to
test the build at the time. A new patch is attached. Unfortunately I
cannot test on Windows right now but it does build and run on Linux.
Thanks,
Jon
On Tue, Mar 28, 2017 at 10:43 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx>
wrote:
> Hey Jon,
>
> I'm getting the following build error (there may be more but this is
> where my build stopped):
>
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/router_tool.cpp:
> In member function 'int ROUTER_TOOL::onViaCommand(const TOOL_EVENT&)':
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/
> router_tool.cpp:501:5:
> error: 'LAYER_ID' was not declared in this scope
> LAYER_ID targetLayer = UNDEFINED_LAYER;
> ^~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/
> router_tool.cpp:507:9:
> error: 'targetLayer' was not declared in this scope
> targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>(
> currentLayer ),
> ^~~~~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/
> router_tool.cpp:507:57:
> error: 'LAYER_ID' does not name a type
> targetLayer = m_frame->SelectLayer( static_cast<LAYER_ID>(
> currentLayer ),
> ^~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/
> router_tool.cpp:559:13:
> error: 'targetLayer' was not declared in this scope
> if( targetLayer != UNDEFINED_LAYER )
> ^~~~~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/pcbnew/router/
> router_tool.cpp:597:13:
> error: 'targetLayer' was not declared in this scope
> if( targetLayer != UNDEFINED_LAYER )
> ^~~~~~~~~~~
> make[2]: *** [pcbnew/router/CMakeFiles/pnsrouter.dir/build.make:783:
> pcbnew/router/CMakeFiles/pnsrouter.dir/router_tool.cpp.obj] Error 1
> make[1]: *** [CMakeFiles/Makefile2:1598:
> pcbnew/router/CMakeFiles/pnsrouter.dir/all] Error 2
> make[1]: *** Waiting for unfinished jobs....
>
>
> and some build warnings that seem pretty ominous:
>
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:
> In member function 'bool
> WIDGET_EESCHEMA_COLOR_CONFIG::TransferDataFromControl()':
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:278:63:
> warning: array subscript is above array bounds [-Warray-bounds]
> COLOR4D bgcolor = currentColors[LAYER_SCHEMATIC_BACKGROUND];
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:282:21:
> warning: array subscript is above array bounds [-Warray-bounds]
> if( bgcolor == currentColors[ clyr ] && clyr !=
> LAYER_SCHEMATIC_BACKGROUND )
> ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:303:49:
> warning: array subscript is above array bounds [-Warray-bounds]
> currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgcolor;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:308:22:
> warning: array subscript is above array bounds [-Warray-bounds]
> SetLayerColor( currentColors[ clyr ], clyr );
> ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:
> In member function 'void WIDGET_EESCHEMA_COLOR_CONFIG::CreateControls()':
> C:/msys64/home/wstambaugh/src/kicad-trunk/eeschema/widgets/
> widget_eeschema_color_config.cpp:220:49:
> warning: array subscript is above array bounds [-Warray-bounds]
> currentColors[ LAYER_SCHEMATIC_BACKGROUND ] = bgColor;
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
>
>
> On 3/28/2017 11:05 AM, Jon Evans wrote:
> > Hi Wayne,
> >
> > Please try the attached patch and let me know if you have trouble with
> it.
> >
> > Thanks,
> > Jon
> >
> > On Tue, Mar 28, 2017 at 9:49 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx
> > <mailto:stambaughw@xxxxxxxxx>> wrote:
> >
> > John,
> >
> > Please rebase your patch when you get a chance. I just attempted to
> > apply it so I could do some testing and it no longer applies. Sorry
> for
> > the headaches but I'm really busy. I will apply it as soon as I get
> it
> > and do some testing.
> >
> > Thanks,
> >
> > Wayne
> >
> > On 3/24/2017 8:54 AM, Jon Evans wrote:
> > > Hi Wayne,
> > >
> > > Any feedback on this?
> > >
> > > Thanks,
> > > Jon
> > >
> > > On Wed, Mar 22, 2017 at 6:15 AM, Maciej Sumiński
> > > <maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>
> > <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@xxxxxxx>>>
> > wrote:
> > >
> > > I have briefly tested the patch, no issues found. I have no
> objections
> > > to the changes, but I will leave the final decision to Wayne.
> > >
> > > Regards,
> > > Orson
> > >
> > > On 03/22/2017 03:51 AM, Jon Evans wrote:
> > > > Hi Wayne, new patch attached.
> > > >
> > > > Thanks,
> > > > Jon
> > > >
> > > > On Tue, Mar 21, 2017 at 9:28 AM, Wayne Stambaugh
> > > <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>
> > > > wrote:
> > > >
> > > >> Jon,
> > > >>
> > > >> I just attempted to apply your patch and it no longer
> applies
> > > cleanly.
> > > >> Please rebase it when you get a chance.
> > > >>
> > > >> Thanks,
> > > >>
> > > >> Wayne
> > > >>
> > > >> On 3/16/2017 10:14 AM, Jon Evans wrote:
> > > >>> Bump -- does anyone have time to look at this and report
> back if
> > > there
> > > >>> are any issues? I'd like to get it merged so that I can
> feel
> > > confident
> > > >>> about doing more work on top of these changes.
> > > >>>
> > > >>> Thanks,
> > > >>> Jon
> > > >>>
> > > >>> On Tue, Mar 14, 2017 at 6:05 PM, Wayne Stambaugh
> > > <stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
> > > >>> <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>> wrote:
> > > >>>
> > > >>> Hey Jon,
> > > >>>
> > > >>> This is better than the giant enum concept and I'm
> willing
> > > to accept
> > > >>> this. It still lacks the type safety of the enum
> > inheritance
> > > >> solution.
> > > >>> I still see ints being cast to enums and enum bounds
> > checking so
> > > >> this is
> > > >>> less than ideal. I would prefer to see some additional
> > > testing so if
> > > >>> any one has time, please test this patch before we
> > commit it.
> > > >>>
> > > >>> Thanks,
> > > >>>
> > > >>> Wayne
> > > >>>
> > > >>> On 3/14/2017 3:09 PM, Jon Evans wrote:
> > > >>> > Hi Wayne,
> > > >>> >
> > > >>> > New patch attached. Let me know what you think of
> this
> > > approach.
> > > >>> >
> > > >>> > Thanks,
> > > >>> > Jon
> > > >>> >
> > > >>> > On Tue, Mar 14, 2017 at 10:40 AM, Jon Evans
> > > <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > > >> <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
> > > >>> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>> wrote:
> > > >>> >
> > > >>> > Hi John, that's basically what my first patch
> > did, but
> > > inside
> > > >>> one enum.
> > > >>> >
> > > >>> > Hi Wayne, thanks for elaborating more, I see
> > your point.
> > > >>> >
> > > >>> > I am still not sure there is benefit to adding
> some
> > > class to
> > > >>> handle
> > > >>> > enum inheritance.
> > > >>> > I think it would work fine to just chain
> > multiple enums
> > > >>> together, as
> > > >>> > was done before, but with some tweaks.
> > > >>> >
> > > >>> > enum PCB_LAYER_ID
> > > >>> > {
> > > >>> > F_Cu = 0,
> > > >>> > //...
> > > >>> > PCB_LAYER_ID_COUNT
> > > >>> > };
> > > >>> >
> > > >>> > enum NETNAME_LAYER_ID
> > > >>> > {
> > > >>> > NETNAME_LAYER_ID_START = PCB_LAYER_ID_COUNT,
> > > >>> > NETNAME_LAYER_ID_COUNT =
> > NETNAME_LAYER_ID_START +
> > > >>> PCB_LAYER_ID_COUNT
> > > >>> > };
> > > >>> >
> > > >>> > enum GAL_LAYER_ID
> > > >>> > {
> > > >>> > GAL_LAYER_ID_START = NETNAME_LAYER_ID_COUNT,
> > > >>> > //....
> > > >>> > };
> > > >>> >
> > > >>> > And so on for gerbview, eeschema, etc
> > > >>> >
> > > >>> > That way the IDs will be unique and cover a
> > contiguous
> > > range,
> > > >> so
> > > >>> > functions that want to take any layer ID can just
> > > check that
> > > >>> the ID
> > > >>> > is >= 0 and < the end sentinel of the last enum.
> > > >>> >
> > > >>> > Any concerns with this approach?
> > > >>> >
> > > >>> >
> > > >>> > Best,
> > > >>> > Jon
> > > >>> >
> > > >>> > On Tue, Mar 14, 2017 at 10:29 AM, John Beard
> > > >>> <john.j.beard@xxxxxxxxx
> > <mailto:john.j.beard@xxxxxxxxx> <mailto:john.j.beard@xxxxxxxxx
> > <mailto:john.j.beard@xxxxxxxxx>>
> > > <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>
> > <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx>>>
> > > >>> > <mailto:john.j.beard@xxxxxxxxx
> > <mailto:john.j.beard@xxxxxxxxx>
> > > <mailto:john.j.beard@xxxxxxxxx <mailto:john.j.beard@xxxxxxxxx
> >>
> > > >>> <mailto:john.j.beard@xxxxxxxxx
> > <mailto:john.j.beard@xxxxxxxxx>
> > > <mailto:john.j.beard@xxxxxxxxx
> > <mailto:john.j.beard@xxxxxxxxx>>>>> wrote:
> > > >>> >
> > > >>> > Hi Jon,
> > > >>> >
> > > >>> > Protocol Buffers has the same problem.
> > Messages have a
> > > >>> unique number
> > > >>> > for each field, but extensions to messages
> don't
> > > know about
> > > >>> > "siblings". A common thing [1] to so is
> reserve
> > > IDs up to
> > > >> 1000
> > > >>> > for the
> > > >>> > base message, and then messages start at
> > offsets 1000,
> > > >>> 2000, etc,
> > > >>> > based on some in-house scheme.
> > > >>> >
> > > >>> > It probably won't just "drop in" to KiCad
> > due to fixed
> > > >>> arrays (I
> > > >>> > think?), but this is certainly one way it
> > has been
> > > >>> "solved" in the
> > > >>> > real world, by Google, no less! It's a bit
> > crusty to
> > > >> manually
> > > >>> > reserve
> > > >>> > space, but the "enum inheritance" problem
> isn't
> > > limited to
> > > >>> C++.
> > > >>> >
> > > >>> > There's plenty of space in enums and I
> > sincerely doubt
> > > >>> there is a
> > > >>> > measurable benefit to forcing the compiler
> > to use
> > > shorter
> > > >>> integral
> > > >>> > types anyway, so we could just say "0-9999"
> > is "common
> > > >> GAL",
> > > >>> > "10000-19999" is Pcbnew, etc. Some work
> might be
> > > needed to
> > > >>> handle
> > > >>> > non-contiguous enums here. "10000 layers
> > should be
> > > enough
> > > >> for
> > > >>> > anyone",
> > > >>> > right?
> > > >>> >
> > > >>> > Just a thought, without any real
> > consideration of the
> > > >>> > consequences for
> > > >>> > things like formats and so on.
> > > >>> >
> > > >>> > Cheers,
> > > >>> >
> > > >>> > John
> > > >>> >
> > > >>> > [1]
> > > >>> >
> > > >>>
> > https://developers.google.com/protocol-buffers/docs/proto#
> > <https://developers.google.com/protocol-buffers/docs/proto#>
> > > <https://developers.google.com/protocol-buffers/docs/proto#
> > <https://developers.google.com/protocol-buffers/docs/proto#>>
> > > >> choosing-extension-numbers
> > > >>> <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>
> > > <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>>
> > > >> proto#choosing-extension-numbers>
> > > >>> >
> > > >>> <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>
> > > <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>>
> > > >> proto#choosing-extension-numbers
> > > >>> <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>
> > > <https://developers.google.com/protocol-buffers/docs/
> > <https://developers.google.com/protocol-buffers/docs/>>
> > > >> proto#choosing-extension-numbers>>
> > > >>> >
> > > >>> > On Tue, Mar 14, 2017 at 10:08 PM, Jon Evans
> > > >>> <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
> > > >>> > <mailto:jon@xxxxxxxxxxxxx <mailto:
> jon@xxxxxxxxxxxxx>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>>
> > > >> wrote:
> > > >>> > > Hi Orson, Wayne,
> > > >>> > >
> > > >>> > > I looked at the "enum inheritance" thing
> some
> > > more and I
> > > >>> don't
> > > >>> > think it
> > > >>> > > would be a good solution for our case.
> > > >>> > >
> > > >>> > > This technique lets you extend enum A with
> > enum
> > > B, and
> > > >> have
> > > >>> > functions f(A)
> > > >>> > > and f(A or B), and you could continue
> > making larger
> > > >>> enums that
> > > >>> > contained
> > > >>> > > smaller ones.
> > > >>> > > But, if we maintain multiple enums (one
> > for each
> > > >>> application,
> > > >>> > plus one for
> > > >>> > > GAL layers) I don't see how it would make
> > anything
> > > >> simpler,
> > > >>> > because we would
> > > >>> > > not be able to treat them as "sibling
> classes"
> > > >>> > >
> > > >>> > > Before I spend more time coding things I
> > want to
> > > get an
> > > >> idea
> > > >>> > of what your
> > > >>> > > requirements are / what you would and
> > would not
> > > accept
> > > >> as a
> > > >>> > change in this
> > > >>> > > area. I misunderstood Wayne's earlier
> > reply to
> > > me and
> > > >>> thought
> > > >>> > that a single
> > > >>> > > enum would be accepted, but if not, I don't
> > > currently
> > > >>> have a good
> > > >>> > > understanding of what the concerns are
> > with that
> > > >> approach.
> > > >>> > >
> > > >>> > > Questions for Wayne, Orson, and others who
> > care
> > > about
> > > >> this:
> > > >>> > >
> > > >>> > > 1) Is there any opposition to moving the
> layer
> > > >> definitions
> > > >>> > from GerbView and
> > > >>> > > Eeschema into
> > layers_id_colors_and_visibility.h?
> > > >> (ignoring
> > > >>> > whether they are
> > > >>> > > merged into one enum for now)
> > > >>> > >
> > > >>> > > 2) Is there any opposition to ensuring
> that no
> > > layer IDs
> > > >>> > overlap across all
> > > >>> > > applications? To be clear, what I mean
> > now is that
> > > >>> currently
> > > >>> > GerbView draw
> > > >>> > > layers occupy the same layer IDs as Pcbnew
> > board
> > > >> layers. I
> > > >>> > want to change
> > > >>> > > it so that a layer ID (cast to integer) is
> > > always unique
> > > >>> > across all
> > > >>> > > applications, unless it truly is the same
> > layer
> > > (i.e can
> > > >> use
> > > >>> > the same color
> > > >>> > > settings, visibility settings, etc. as
> > > GP_OVERLAY can
> > > >> across
> > > >>> > > GerbView/Pcbnew).
> > > >>> > >
> > > >>> > > 3) If the answers to both 1 and 2 are
> > "no", can
> > > you give
> > > >>> some
> > > >>> > more details
> > > >>> > > on why it's a bad idea to put all the
> > layers in
> > > the same
> > > >>> enum,
> > > >>> > and based on
> > > >>> > > that I will come back with a proposal on a
> > > different way
> > > >> of
> > > >>> > doing it?
> > > >>> > >
> > > >>> > > Thanks,
> > > >>> > > Jon
> > > >>> > >
> > > >>> > > On Mon, Mar 13, 2017 at 3:07 PM, Jon Evans
> > > >>> <jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>
> > > >>> > <mailto:jon@xxxxxxxxxxxxx <mailto:
> jon@xxxxxxxxxxxxx>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>
> > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>
> > > <mailto:jon@xxxxxxxxxxxxx <mailto:jon@xxxxxxxxxxxxx>>>>>
> > > >> wrote:
> > > >>> > >>
> > > >>> > >> Hi Orson,
> > > >>> > >>
> > > >>> > >> It's an interesting idea, I will have to
> > look at it
> > > >> more.
> > > >>> > But, doesn't
> > > >>> > >> this still allow the programmer to
> > accidentally
> > > overlap
> > > >> two
> > > >>> > enum values? I
> > > >>> > >> can add checks to prevent this from
> happening
> > > elsewhere
> > > >> in
> > > >>> > the code, but it
> > > >>> > >> seems less clean to me.
> > > >>> > >>
> > > >>> > >> Best,
> > > >>> > >> -Jon
> > > >>> > >>
> > > >>> > >> On Mon, Mar 13, 2017 at 1:52 PM, Maciej
> > Suminski
> > > >>> > <maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>
> > > <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>> <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>
> > > <mailto:maciej.suminski@xxxxxxx <mailto:maciej.suminski@cern.
> ch>>>
> > > >>> <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>
> > > <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>> <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>
> > > <mailto:maciej.suminski@xxxxxxx
> > <mailto:maciej.suminski@xxxxxxx>>>>>
> > > >>> > >> wrote:
> > > >>> > >>>
> > > >>> > >>> Hi,
> > > >>> > >>>
> > > >>> > >>> How about emulating enum inheritance
> [1]? I
> > > suppose it
> > > >>> would
> > > >>> > be the
> > > >>> > >>> cleanest solution allowing us to clearly
> > > specify what
> > > >> kind
> > > >>> > of layer is
> > > >>> > >>> expected for certain methods. This is
> even
> > > better kind
> > > >> of
> > > >>> > type checking.
> > > >>> > >>>
> > > >>> > >>> Cheers,
> > > >>> > >>> Orson
> > > >>> > >>>
> > > >>> > >>> 1.
> > > https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
> > > >>> <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>
> > > >>> >
> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>
> > > >>> <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>
> > > <https://www.codeproject.com/kb/cpp/inheritenum.aspx
> > <https://www.codeproject.com/kb/cpp/inheritenum.aspx>>>>
> > > >>> > >>>
> > > >>> > >>> On 03/13/2017 02:50 PM, Jon Evans wrote:
> > > >>> > >>> > Hi Wayne,
> > > >>> > >>> >
> > > >>> > >>> > I understand this might seem like too
> > big a
> > > change.
> > > >>> > >>> > Here is what I was thinking when I
> > thought that
> > > >>> combining
> > > >>> > everything
> > > >>> > >>> > would
> > > >>> > >>> > be a good solution.
> > > >>> > >>> >
> > > >>> > >>> > - If there is more than one enum, then
> > > functions that
> > > >>> > consume data from
> > > >>> > >>> > more than one app (i.e. things in
> > > common/GAL) have
> > > >>> to cast
> > > >>> > to int, so
> > > >>> > >>> > you
> > > >>> > >>> > lose type checking that the enum gives
> you
> > > for free
> > > >> (or
> > > >>> > your type
> > > >>> > >>> > checking
> > > >>> > >>> > gets more complicated, because the
> > range of
> > > valid
> > > >> values
> > > >>> > is different
> > > >>> > >>> > for
> > > >>> > >>> > each application)
> > > >>> > >>> >
> > > >>> > >>> > - If there is more than one enum, it's
> > easier to
> > > >>> duplicate
> > > >>> > layers for
> > > >>> > >>> > no
> > > >>> > >>> > good reason (i.e. GerbView and Pcbnew
> have
> > > different
> > > >>> layer
> > > >>> > ids for
> > > >>> > >>> > "grid"
> > > >>> > >>> > right now)
> > > >>> > >>> >
> > > >>> > >>> > - I want to combine the color settings
> > for all
> > > >>> > applications under the
> > > >>> > >>> > hood
> > > >>> > >>> > (users will still be able to configure
> > different
> > > >> colors
> > > >>> > for each
> > > >>> > >>> > application). This change will let
> color
> > > settings
> > > >> take
> > > >>> > LAYER_ID
> > > >>> > >>> > instead of
> > > >>> > >>> > int, and there will only be one
> key/value
> > > mapping of
> > > >>> > colors -- no more
> > > >>> > >>> > difference between "GetLayerColor" and
> > > >> "GetItemColor".
> > > >>> > There will be
> > > >>> > >>> > no
> > > >>> > >>> > clashes between the meaning of a layer
> id
> > > (int type)
> > > >>> > between different
> > > >>> > >>> > applications.
> > > >>> > >>> >
> > > >>> > >>> > - Bringing Eeschema into this now is
> > just early
> > > >>> groundwork
> > > >>> > for Eeschema
> > > >>> > >>> > GAL
> > > >>> > >>> > port (as well as unified color
> settings)
> > > >>> > >>> >
> > > >>> > >>> > If you will not accept this change, I
> have
> > > to think
> > > >>> about
> > > >>> > a different
> > > >>> > >>> > proposal that will make the different
> > layer
> > > types in
> > > >>> different
> > > >>> > >>> > applications
> > > >>> > >>> > a bit more manageable than they are
> > today. I
> > > >> understand
> > > >>> > how having one
> > > >>> > >>> > giant enum for LAYER_ID seems more
> > > complicated, I'm
> > > >> just
> > > >>> > worried that
> > > >>> > >>> > having several different enums will
> > make the
> > > code
> > > >> that
> > > >>> > consumes
> > > >>> > >>> > LAYER_ID
> > > >>> > >>> > more complicated, especially if the
> > applications
> > > >> become
> > > >>> > more integrated
> > > >>> > >>> > with each other and start sharing more
> > code.
> > > >>> > >>> >
> > > >>> > >>> > Best,
> > > >>> > >>> > Jon
> > > >>> > >>> >
> > > >>> > >>> > On Mon, Mar 13, 2017 at 8:21 AM, Wayne
> > Stambaugh
> > > >>> > <stambaughw@xxxxxxxxx
> > <mailto:stambaughw@xxxxxxxxx>
> > > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>
> > > >>> <mailto:stambaughw@xxxxxxxxx
> > <mailto:stambaughw@xxxxxxxxx> <mailto:stambaughw@xxxxxxxxx
> > <mailto:stambaughw@xxxxxxxxx>>
> > > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>
> > <mailto:stambaughw@xxxxxxxxx <mailto:stambaughw@xxxxxxxxx>>>>>
> > > >>> > >>> > wrote:
> > > >>> > >>> >
> > > >>> > >>> >> Jon,
> > > >>> > >>> >>
> > > >>> > >>> >> I misunderstood your original
> intent. I
> > > don't think
> > > >>> > cluttering the
> > > >>> > >>> >> board layer enums with all of the
> virtual
> > > layer and
> > > >>> > schematic layer
> > > >>> > >>> >> enums is a good idea. It just seems
> like
> > > overkill
> > > >> to
> > > >>> > me. I thought
> > > >>> > >>> >> you
> > > >>> > >>> >> were going to create a separate enum
> for
> > > virtual
> > > >> board
> > > >>> > layers. You
> > > >>> > >>> >> could always start the virtual board
> > layer
> > > enums
> > > >>> from the
> > > >>> > last board
> > > >>> > >>> >> layer enum if you need unique enums.
> I
> > > would also
> > > >>> prefer the
> > > >>> > >>> >> schematic
> > > >>> > >>> >> layer enums be separate from the board
> > > layer enums
> > > >> for
> > > >>> > clarity.
> > > >>> > >>> >> Anyone
> > > >>> > >>> >> else have any thoughts on this?
> > > >>> > >>> >>
> > > >>> > >>> >> Cheers,
> > > >>> > >>> >>
> > > >>> > >>> >> Wayne
> > > >>> > >>> >>
> > > >>> > >>> >> On 3/12/2017 11:24 PM, Jon Evans
> wrote:
> > > >>> > >>> >>> Hi all,
> > > >>> > >>> >>>
> > > >>> > >>> >>> Per the other thread, this patch
> unifies
> > > the layer
> > > >>> > definitions
> > > >>> > >>> >>> between
> > > >>> > >>> >>> Pcbnew, GerbView, and Eeschema. It
> > > removes the
> > > >>> need for
> > > >>> > >>> >>> ITEM_GAL_LAYER
> > > >>> > >>> >>> and some other macros, and it will
> > > simplify the
> > > >>> > implementation of
> > > >>> > >>> >>> cross-application color themes and
> using
> > > GAL in
> > > >>> multiple
> > > >>> > >>> >>> applications.
> > > >>> > >>> >>>
> > > >>> > >>> >>> Note that this patch introduces some
> > temporary
> > > >>> weirdness
> > > >>> > in a few
> > > >>> > >>> >>> places, such as in
> > COLORS_DESIGN_SETTINGS
> > > (there
> > > >>> is now
> > > >>> > a single
> > > >>> > >>> >>> array
> > > >>> > >>> >>> for color storage, but it's still
> > referred
> > > to by
> > > >>> two sets of
> > > >>> > >>> >>> getters/setters). This is because I
> > wanted to
> > > >>> keep this
> > > >>> > refactor as
> > > >>> > >>> >>> simple as possible, as I plan to
> > follow it
> > > up with
> > > >> an
> > > >>> > overhaul of
> > > >>> > >>> >>> color
> > > >>> > >>> >>> settings when I share my color
> > themes work. I
> > > >> didn't
> > > >>> > want to do work
> > > >>> > >>> >>> that I would soon end up getting rid
> of
> > > anyway.
> > > >>> > >>> >>>
> > > >>> > >>> >>> Best,
> > > >>> > >>> >>> Jon
> > > >>> > >>> >>>
> > > >>> > >>> >>>
> > > >>> > >>> >>>
> > > _______________________________________________
> > > >>> > >>> >>> Mailing list:
> > > >>> https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> >>> Post to :
> > > kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > >>> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
> > > >>> > >>> >>> Unsubscribe :
> > https://launchpad.net/~kicad-
> > > >> developers
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> >>> More help :
> > > https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>
> > > >>> > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>>
> > > >>> > >>> >>>
> > > >>> > >>> >>
> > > >>> > >>> >>
> > _______________________________________________
> > > >>> > >>> >> Mailing list:
> > https://launchpad.net/~kicad-
> > > >> developers
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> >> Post to :
> > > kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > >>> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
> > > >>> > >>> >> Unsubscribe :
> > https://launchpad.net/~kicad-
> > > >> developers
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> >> More help :
> > > https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>
> > > >>> > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>>
> > > >>> > >>> >>
> > > >>> > >>> >
> > > >>> > >>> >
> > > >>> > >>> >
> > > >>> > >>> >
> > _______________________________________________
> > > >>> > >>> > Mailing list:
> > https://launchpad.net/~kicad-
> > > >> developers
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> > Post to :
> > > kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > >>> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
> > > >>> > >>> > Unsubscribe :
> > https://launchpad.net/~kicad-
> > > >> developers
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> > More help :
> > > https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>
> > > >>> > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>>
> > > >>> > >>> >
> > > >>> > >>>
> > > >>> > >>> ______________________________
> _________________
> > > >>> > >>> Mailing list:
> > > https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> Post to :
> > > kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > >>> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
> > > >>> > >>> Unsubscribe :
> > > https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > >>> More help :
> > > https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>
> > > >>> > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>>
> > > >>> > >>
> > > >>> > >>
> > > >>> > >
> > > >>> > >
> > > >>> > > ______________________________
> _________________
> > > >>> > > Mailing list:
> > > https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > > Post to :
> > > kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>
> > > >>> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > >>> <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>>>
> > > >>> > > Unsubscribe :
> > > https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>
> > > >>> > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > >>> <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>>>
> > > >>> > > More help :
> > > https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>
> > > >>> > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >>> <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>>>
> > > >>> > >
> > > >>> >
> > > >>> >
> > > >>> >
> > > >>>
> > > >>>
> > > >>
> > > >
> > > >
> > > >
> > > > _______________________________________________
> > > > Mailing list: https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > > Unsubscribe : https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > > More help : https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>>
> > > Unsubscribe : https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > <https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>>
> > > More help : https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > > <https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>>
> > >
> > >
> > >
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > > Unsubscribe : https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > > More help : https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> > >
> >
> > _______________________________________________
> > Mailing list: https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
> > <mailto:kicad-developers@xxxxxxxxxxxxxxxxxxx>
> > Unsubscribe : https://launchpad.net/~kicad-developers
> > <https://launchpad.net/~kicad-developers>
> > More help : https://help.launchpad.net/ListHelp
> > <https://help.launchpad.net/ListHelp>
> >
> >
>
Attachment:
0001-Refactor-layer-enumerations-to-all-live-in-the-same-.patch
Description: Binary data
Follow ups
References
-
[PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-13
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Maciej Suminski, 2017-03-13
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-13
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-14
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: John Beard, 2017-03-14
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-14
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-14
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Wayne Stambaugh, 2017-03-14
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-16
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Wayne Stambaugh, 2017-03-21
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-22
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Maciej Sumiński, 2017-03-22
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-24
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Wayne Stambaugh, 2017-03-28
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Jon Evans, 2017-03-28
-
Re: [PATCH] Refactor LAYER_ID to be the one and only layer definition
From: Wayne Stambaugh, 2017-03-28