Note: This commit has only been tested on MacOS
Changes:
- Icons now use the native hidpi support from Gtk (through Icon Theme)
- Icons are now directly generated from scalable file (i.e. SVG file)
- Widget sizes are scaled based on DPI and scale factor
- Font size is scaled based on DPI and scale factor
* New crop guide: square center, closes#6342
* Turn `CropParams::guide` into an `enum`
This saves recurring string comparisons.
Co-authored-by: Flössie <floessie.mail@gmail.com>
Replaces the following deprecated Gtk classes throughout the codebase by their non-deprecated counterparts. Style, HBox, VBox, HPaned, VPaned, HScrollbar, VScrollbar, VSeparator, HSeparator, Stock, Table, VScale and HScale.
Collection of CSS and GUI improvements, cleanup of main CSS theme, introduction of highlight for enabled module.
Primary change is the modification of the module titles to better distinguish modules that are on or off. The text of a disabled module is now less bright, the corresponding icon is a slightly smaller version of the power icon. When activating the module, the text turns brighter and the icon slightly bigger and also brighter. Thanks to @TechXavAL for the icon work.
Secondary changes are related to the margins around several GUI elements, padding within elements and some accompanying borders. These changes hopefully make it easier to distinguish the various (sometimes crowded) GUI elements of modules. The panels have gotten a slightly 'outset' look.
Nested panels have a changed look where deeper nesting increases the background brightness slightly, instead of darkening it (old behaviour). This is done without a strong decrease in contrast.
The old theme is available as a legacy option. Due to hardcoded GUI changes needed for the new theme, the legacy version is not a 100% exact replicate. The @TooWaBoo theme's may also be slightly affected.
I had to remove the `isVisible` check in `MyExpander::set_expanded()`
because it would trigger in Wavelet and Retinex for unknown reasons.
One inner expander in CIECAM isn't covered by the tool states, and the
way they are distributed to Wavelet and Retinex won't allow for further
tool states in those tools. We should consider to move the tool states
for sub-tools (like Wavelet, Retinex, and CIECAM) to seperate keys in
the `options` file.
Devices such as trackpads will emit smooth scrolling (GDK_SMOOTH_SCROLL) events with
deltas smaller than +/-1.0 at high frequency.
Quantizing these to +/-1.0 leads to significant amplification of scroll speed to the point
of unusability
Scroll by delta instead of +/-1.0 in these cases, permitting smooth scrolling through panels that use this code
Some mice emit GDK_SMOOTH_SCROLL with deltas of +/-1.0 per detent. This patch will not change behavior
with such devices. However, if any mice emit deltas of smaller magnitude, the per-detent behavior will
change.
This turns `IdleRegister::add()` into a template function to make the
provided function pointers type safe. It also adds a `delete_data`
parameter to manage the provided data pointer even in `destroy()`.
...thanks to the new MyScrolledToolbar class (guiutils.h/cc). This is
valid for the FileBrowser tab (first and second line can be scrolled
individually) and the top and bottom bar of the Editor(s) tab.
see #4035
- The "light" icon theme is now a little lighter, to increase contrast.
- Toolbox icons are now small.
- Buttons:
- Buttons without labels which use icons as their only source of info regarding what the button does (e.g. the white-balance pipette button) use normal-sized icons.
- Labeled buttons which use icons as an auxiliary source of information (e.g. Auto-Crop) now use small icons. Curve type icons are also small even though they have no labels.
- Colored circles are smaller.
- Curve type icons redesigned and small.
- Hand icons (when panning the preview) redesigned to have a clear outline regardless of background color.
- Magnifier icons redesigned to have a thinner magnifier frame and larger inner parts.
- Perspective, distortion and crop icons redesigned.
- Some small icons were missing the `-small` suffix, now renamed.
Do not try to show a native file dialog. I think this would be useless, since
RT already uses non-native dialogs in other places, and I'm not sure it would
be possible to replace all of them (e.g. in icmpanel.cc the dialog is
customized by adding a checkbox for WB, and this is not possible with a native
dialog).