1) Improve and clarify documentation:
- update, reformat, and reorder parts of CREDITS.txt
- make sure that documentation appears in doxygen docs
- add '\since 1.4.0' to documentation of new methods and functions
- remove doxygen's '\brief' where not required (we're using
JAVADOC_AUTOBRIEF = YES)
- clarify screen scaling, scaling factor, and related stuff
- add more info about backwards compatibility for X11 specific code
2) Update dependencies
- add code to get the platform and backend
- display platform and backend on screen
- improve and simplify layout (using Fl_Grid)
- add version check indicator
After comparison with older versions I realized that the gtk+ specific
"chevron style" was previously used *exclusively* in Fl_Scrollbar.
Unfortunately I had picked this style as template for all arrows.
GitHub Issue #1117 requested to add an option for users to change the
arrow style but after my investigation I decided to use the "old style"
(triangles) for all schemes (except "oxy" that has its own drawing
methods).
**IF** it turned out that we need the gtk specific drawing for scrollbars
we could easily reactivate the "chevron style" by adding yet another
arrow type - but I hope this is not necessary.
CMake/macOSMaxAllowed.c:
avoid C compiler warning in test code
CMake/setup.cmake, technical changes:
- optimization: test SDK 15.0.0 first to avoid unnecessary test if true
- use a function instead of a macro
- use different names for (cached) result variables
- use prefix FLTK_ for cache variables
Note: the cache variables are marked 'internal': you may need to grep
CMakeCache.txt to view them.
Enlarging and reducing wdth and height needed to be treated
seprately when the bottom right corner of the resizable would
overshoot the final size of the tile.
Note: it is *unusual* (not FLTK style) that Fl_Window::border()
returns 'unsigned int' instead of 'int'.
This should be investigated in FLTK 1.5 but maybe we can't change it:
it's been so already in FLTK 1.3 and maybe earlier.
In function ‘void innards(...)’:
src/drivers/GDI/Fl_GDI_Graphics_Driver_image.cxx:132:23:
dereferencing type-punned pointer will break strict-aliasing rules
BITMAPINFO &bmi = *((BITMAPINFO*)bmibuffer);
~^~~~~~~~~~~~~~~~~~~~~~~
Found with gcc 12 (MinGW cross compiler)
Also: use correct sizes (sizeof) rather than hardcoded values.