The standard DIM() macro was not typesafe as it happily deferred errors
to runtime that can be caught at compile time. Replacing it with a
generic C++11 constexpr allows for typecasting, comparison and compile
time error checking.
This is meant as a stopgap for 5.0, with plans to add proper scaled
icons in the 6.0 cycle. A function KiScaledBitmap() is added, which
works like KiBitmap() except it scales the bitmap according to the
calling window's font size. Controls have been added to all the main
applications to let the user select scaling manually (these were omitted
from smaller apps that didn't already have a place to put them).
In addition, in eeschema only, the pixel height of the system font is
shown in the options dialog for diagnostics. This is only for collecting
feedback before 5.0 release from users with different displays and will
be removed.
Improve dialog layout and fix UI policy issues with all of the dialog
boxes in the Gerbview and Pcbnew code paths.
Updated the use of component to footprint where appropriate.
- New GAL draw layers for GerbView
- Improved bounding boxes for Gerber shapes
- Switched to use of SHAPE_POLY_SET for polygons
- Add GAL methods to support selection and rendering
- Add GUI support of editing GAL options
- Rename get/setActiveLayer to Get/SetActiveLayer to match convention
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 feature was not reliably available: neither pl_editor nor GAL supported
it. It has been replaced over the past few commits with a new zoom-to-selection
tool available in all applications and modes.
This feature cannot work reliably for reasons explained in lp:1463505. Remove
the option on OS X builds and force cursor to the small one.
https://bugs.launchpad.net/kicad/+bug/1463505
> Bernhard Stegmaier (stegmaier) wrote on 2016-01-14:
>
> As far as I see from the code this is no bug but done on intention.
>
> The reason probably is that on OSX in the legacy canvas you don't have the
> XOR-drawing as on other platforms. To the best of my knowledge, this would
> mean that on every mouse move you would have to repaint the whole window just
> to get rid of the "old" cross.
>
> So, I would say this is a clear "won't fix".
> We could think of just removing/disabling the button in the legacy canvas.
Pcbnew already uses this attribute when creating Gerber files.
Because Gerber files using this attribute identify the board layers stackup, Gerbview (if this attribute is defined) can sort gerber images stach up like the board.
(in layer manager, just right click to access to the sort menu)
steps to better support devices with precise scrolling deltas (trackpads).
Scrolling is done in the handler rather than creating and firing cmd events.
This is intended to support two-finger scrolling on the Magic Trackpad.
- Added a preference, 'Use mousewheel to pan', to allow panning by default
on mousewheel events. This reverses the existing behavior where unmodified
mousewheel zooms and Shift/Cmd modified pans.
The old behavior was:
- Unmodified scrollwheel performed zoom in/out
- Shift modified scrollwheel performed pan up/down
- Cmd modified scrollwheel performed pan left/right
- Shift+Cmd modified scrollwheel performed zoom in/out
with no cursor warp
With the new preference checked, this changes to:
- Unmodified scrollwheel performs pan up/down
- Shift modified scrollwheel performs pan left/right
- Cmd modified scrollwheel performs zoom in/out
- Shift+Cmd modified scrollwheel performs zoom in/out
with no cursor warp
With the preference unchecked, this is now:
- Unmodified scrollwheel performed zoom in/out
- Shift modified scrollwheel performed pan left/right
- Cmd modified scrollwheel performed pan up/down
- Shift+Cmd modified scrollwheel performed zoom in/out
with no cursor warp
It should be noted that for the last case, the behavior has changed.
This is not arbitrary. This now matches expected behavior for an OS X
application. This also matches what wxWidgets expects on this platform
as wxWidgets changes the axis of mousewheel events to horizontal when
the event is shift-modified.
The preference is added everwhere that mouse preferences previously
existed, i.e., eeschema, pcbnew and gerbview. The 3D Viewer does
not yet honor this preference, but behaves as if it was checked.
The pl_editor does not currently have any preferences to honor.
As with the magnify event support, this covers canvases for all
current tools, EDA_DRAW_PANEL, EDA_3D_CANVAS and EDA_DRAW_PANEL_GAL.
This does NOT modify the behavior of mousewheel zooming, though it
probably should. This remains unsuitable for use with a trackpad,
use pinch-to-zoom instead.