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.
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()`.
- 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.
Now the "reset" tooltips state what happens on click vs ctrl+click.
Commit includes required fixes to other modules which used incorrect
reset language keys.
Fixes#4563