This avoids having to have a hierarchy of virtual functions - each
interested frame class can register with the SETTINGS_MANGER for
updates. This makes the inheritance interface of the EDA_FRAME classes a
little bit simpler, as each is merely a private consumer of the update
events instead.
This avoids having to call the parent class virtual function, but you do
still have to Skip() the event to allow other listeners to see it.
This introduces a wxEVENT that is Post'ed when the user changes the
units. This can be used to update parts of the UI which need updating.
The event is managed by a simple class with static accessors that
wraps the global unit variable. The idea here is to separate the
management of the global units (and in future, other settings) from
the EDA_FRAME, while still allowing the EDA_FRAME to drive the unit
changes.
This way, clients of the EVT_SETTINGS_CHANGE event do not need to know
about any kind of FRAME class.