pcbnew Module Editor & Viewer GALification blueprint
Maciej Sumiński/CERN <maciej.suminski@cern.ch>, May 2014
In order to complete the GALification process of pcbnew, there are three
remaining view panels that should be replaced by GAL canvas, namely pad
viewer, library module editor & viewer (aka browser).
To keep look-and-feel of pcbnew consistent, the canvas should be
selected basing on the currently active view. If user sticks to the
legacy view - it should stay this way in the editor and browser as well.
Pad viewer
The pad viewer is shown when one opens properties window for a pad. It allows to see changes introduced by modification of the edited pad's properties in the real time. All operations are handled by DIALOG_PAD_PROPERTIES class. The visualization is presented on wxPanel (m_panelShowPad). To replace it with GAL view
Module viewer
The viewer owns a canvas that displays a selected part and allows to zoom in/zoom out/pan the view. Changing the legacy view to the GAL one should be a relatively easy task, considering FOOTPRINT_VIEWER_FRAME inherits from EDA_DRAW_FRAME. That means, it already contains the right canvas - it just has to be explicitly shown and then a few have to be extended by routines to deal with drawing and controlling the view.
Module editor
Proposed improvements
TODO: drawing on different layers then silkscreen? drawing zones & keepout ares? those changes require some rework of pcbnew, as I presume that DRC & zone fill algorithms do not look for edges and zones in modules
Other remarks
TODO: code a widget that takes a BOARD_ITEM as a parameter and just draws it, allowing to zoom in/out & pan