This uses the two-point geometry manager to split the logic of the ruler
geometry and the preview item display. This allows the ruler to use that
manager's angle snap feature.
The motivation here is to concentrate display options in the GAL display
settings, ready for removal of legacy canvases. Instead of having the
property as a member of the DRAW_FRAME, with the GAL canvas retreiving
it from there, it is now in the GAL_DISPLAY_OPTIONS struct, and both GAL
and legacy get it from there.
The options for setting cursor shape are then moved out of the general
options dialog, and into the GAL display options widget, where they can
be used in all GAL-aware programs.
GAL cursor shape works on GAL, but not legacy, so the option is now
available on OSX (but only affects GAL, and is labelled as such).
This gives a bit more space to the GAL options in the left panel
Also tidy up some code style and unnecessary default arguments in the
GAL display planel widget.
This makes it clearer when a tool is active, otherwise interactive tool
effects like auto-pan can come as a surprise when the cursor is forced
to display all the time.
A new items is added to the GAL display options (and the dialog), and a
hotkey (Ctrl+Shift+x) is added to toggle it.
Fixes: lp:1673633
* https://bugs.launchpad.net/kicad/+bug/1673633
This adds the microwave tools to GAL in Pcbnew as a new tool:
MICROWAVE_TOOL.
Some new preview items are introduced to support this:
* TWO_POINT_GEOM_MANAGER for managing construction of two-point
geometries, such as that used to construct the inductor.
* CENTRELINE_RECT_ITEM a preview item to draw ractangle with a given
aspect ratio along a line (specified using a TWO_POINT_GEOM_MANAGER)
PCB_TOOL gets a generic event loops which should be useful for more
than just microwave tools:
* doInteractiveItemPlacement() - handles event loops that wait for a
click, create an item on click and then allow moving it
around/flipping, etc.
Fixes: lp:1531323
* https://bugs.launchpad.net/kicad/+bug/1531323
This makes it possible to access the creation functions
for the microwave inductor externally, so that it can be
used from GAL.
Unlike the Gap/Stub tools, the inductor tool is more interactive, and
doesn't just return a MODULE*.
Introduces a new directory in pcbnew called 'microwave' to better
isolate generic (i.e. canvas-agnostic) functions, and a namespace MWAVE
to avoid polluting the global namespace.
This adds a richer overlay to the arc-by-three-points tool in Pcbnew,
including more guide-lines and a live display of radius and angle.
Also included is ability to go back to the previous step (if setting end
angle, you can go back to setting start point, etc) using Backspace, and
Ctrl snaps the start/end angles to 45 degree multiples.
This adds new classes
* MULTISTEP_GEOM_MANAGER: represents a generic "geometry manager" that
builds up some geometrical construction based on a sequence of points.
Used by:
* ARC_GEOM_MANAGER: handles the logical flow of constructing an
arc by centre-point, set radius, set angle. This moves the logic out
of the Pcbnew DRAWING_TOOL event loop in drawArc().
* ARC_ASSISTANT: graphical overlay to communicate current arc shape to
the user during the drawing process
Add typedef for wxCoord to wx.i to enable usage of methods like
EDA_RECT.Inflate.
Added id.h to pcbnew.i to expose window toolbar identifier names.
Added Refresh() and WindowZoom() to pcbnew_scripting_helper.
For a start, this contains the GAL display settings (AA settings and
grid styling).
In future, other modedit-specific settings could go here too.
Fixes: lp:1672150
* https://bugs.launchpad.net/kicad/+bug/1672150
The primary motivation here is to allow other GAL canvas users (eg
Modedit, and soon Gerbview) to be able to easily modify GAL canvas
options.
For now, this doesn't change the display properties dialog in
appearance, but if more GAL options are added, it might need a bit of
tweak and maybe tabs or similar, like Eeschema preferences.