Commit Graph

12094 Commits

Author SHA1 Message Date
Matthias Melcher
2a1677802f Fl_Help_View: Restoring bad includes for back compatibility 2025-07-05 20:39:55 +02:00
Matthias Melcher
e12c42a0cd Fl_Help_View: Revert some changes 2025-07-05 19:47:03 +02:00
Matthias Melcher
ccc294f9f7 Fl_Help_View: Thin out header file
- remove unnecessary include.
2025-07-05 17:48:30 +02:00
Matthias Melcher
5fb38897b7 Fl_Help_View: Refactor to use PIMPL
- using a Pointer to Implementation instead of having
a huge Fl_Help_View class. This improves build speed
(smaller header fiel) and allows us to fix the
implementation while keeping the ABI unchanged.
2025-07-05 17:35:41 +02:00
Matthias Melcher
fa22585bbb Fl_Help_View: Fix writing into empty std::string 2025-07-05 17:28:45 +02:00
Matthias Melcher
3b32463dc9 Fl_Help_View: Improve comment 2025-07-05 16:03:14 +02:00
Matthias Melcher
b28afecb46 Fl_Help_View: C++ formatting fix. 2025-07-05 15:29:42 +02:00
Matthias Melcher
5d9961c1c3 Fl_Help_View: Finl formatting and documentation
- restructure header file
- sort source file reflecting header
- documentation of text selection
2025-07-05 15:25:11 +02:00
Matthias Melcher
d3c6135c08 Fl_Help_View: Improve selection
- users can now select text in multiple Help Views
- users can now select text that is also a link
- selections draws dimmed if not focused
2025-07-05 13:42:28 +02:00
Matthias Melcher
53665045d3 Fl_Help_View: Changes some more formatting
- streamlines callbacks
- removes unused function
- header file not finished yet!
2025-07-04 16:31:59 +02:00
Albrecht Schlosser
d5220370b1 Remove private class Fl_Int_Vector
This class was used in pre-C++11 versions (up to 1.4.x) and is no
longer needed.
2025-07-03 22:37:49 +02:00
Matthias Melcher
4e1450d750 Fl_Help_View: Refactoring static sizes
- replaced Fl_Int_Vector with std::vector<int>
- removed static buffers in path arrangement methods
- NULL to nullptr
2025-07-03 19:58:56 +02:00
Matthias Melcher
f0fa9fc8f8 Fl_Help_View: Improve formatting and Doxygen comments 2025-07-03 13:55:29 +02:00
Matthias Melcher
872e2b8fb6 Fl_Help_View: Refactor more strings and dynamic lists. 2025-07-03 00:39:53 +02:00
Matthias Melcher
5919dbb6af Fl_Help_View: Reformat and comments 2025-07-02 22:59:46 +02:00
Matthias Melcher
69431ef51f Fl_Help_View: Refactor Fl_Help_Link to C++11 2025-07-02 20:45:54 +02:00
Matthias Melcher
e4d43a3951 Help_View: Improve target line management 2025-07-02 17:54:43 +02:00
Albrecht Schlosser
a05ae33e20 Remove deprecated methods and functions
In FLTK 1.5 we remove most (but not all) methods and functions that
were deprecated in FLTK 1.3 or earlier.
2025-07-02 17:19:52 +02:00
Albrecht Schlosser
9a5bdf40a4 Enable building "extra tests" with a newer C++ standard
"extra tests" are defined in test/CMakeLists.txt for FLTK devs to allow
quickly building test programs with minimal edits. The new feature
can be used to set a higher C++ standard for these test programs.
See instructions in test/CMakeLists.txt.

Note: this is only intended to be used for quick tests and *must* not
  be committed and pushed to the main repository for obvious reasons.
2025-07-02 17:19:22 +02:00
Matthias Melcher
5bf1333f07 Set Fl_Menu_Item::setonly() to deprecated
for the version without the starting argument.
2025-07-02 15:42:46 +02:00
Matthias Melcher
5475f2dddd FLUID: Multiple fixes
- fixes new naming of i18n class
- fixes use of deprecated setonly()
- fixes false assumption that all children of a Window are Widgets
2025-07-02 12:45:00 +02:00
Matthias Melcher
66dde26469 Better handling of special case when scaling image
When scaling image down by 2, 4, 8, etc., there is no
sense in calling the bilinear scaling.
2025-07-01 13:22:14 +02:00
Albrecht Schlosser
a34711daeb Remove FLTK 1.4 ABI guards 2025-07-01 11:04:52 +02:00
Albrecht Schlosser
dbd54b8557 Add wrap mode to clipboard viewer
- use Fl_Flex to arrange multiple buttons
- switch buttons dynamically depending on tabs (text or image)
2025-07-01 11:03:41 +02:00
Matthias Melcher
42b2388610 Improve bilinear image scaling below 50%
The original code can not scale well below 50%. To improve
filtering in a fast way, huge images are scaled by powers of
two before fine scaling using the original bilinear scale.
2025-06-30 14:56:26 +02:00
Matthias Melcher
3459e43ca8 FLUID: Move i18n settings into its own class 2025-06-27 14:34:49 +02:00
Albrecht Schlosser
088d98389c Improve threads demo test/threads.cxx (#1263)
- Replace Fl_Browser with Fl_Terminal which uses a constant buffer size

- Don't lock the GUI for every single prime. Collect primes for at
  least 0.25 seconds before calling Fl::awake(handler, buffer)

- Use (two) alternate buffers for collecting prime data.

- Use Fl::lock() *only* to protect thread data at initialization time.

Observation on Debian 12, CPU: 12-core, 12th Gen Intel Core i7-1260P:
  speedup > factor 4, using multiple cores,
  GUI fully functional: scrolling the display, resizing, ...
  Tested natively (X11 + Wayland) and cross-compiled for Windows,
  using `wine`.
2025-06-22 16:46:44 +02:00
MatthiasWM
acd77fa8dc Fix Windows compile error from previous commit. 2025-06-19 17:54:31 +02:00
Matthias Melcher
2a7b3c81c1 Ensure that the 'awake' pipe does not overflow (#1263) 2025-06-19 16:04:56 +02:00
Matthias Melcher
eadea6a992 Update Fl::await() and friends API and documentation
This creates the base for #1263, but does not fix it yet.
2025-06-19 15:33:38 +02:00
ManoloFLTK
3d13dfefa9 Fix in window titlebar capture to support macOS 26 Tahoe 2025-06-11 18:43:03 +02:00
ManoloFLTK
ac294f7348 Fix "Selecting menus from the menubar under Wayland when in fullscreen" (#1264) 2025-06-10 17:03:29 +02:00
Albrecht Schlosser
340caa2dc3 Fix usage of 'volatile' in src/Fl_JPEG_Image.cxx (#1207)
- allocate a new struct 'load_stat' on the heap
- use struct load_stat to open image file (fp) and for error counters

The previous fix of #1207 unfortunately decremented volatile variables
which caused (plausible) compiler warnings by clang.
2025-06-06 16:10:35 +02:00
ManoloFLTK
5293beea6f Restore building for Linux w/o cairo and w/o xft 2025-06-05 15:56:09 +02:00
Albrecht Schlosser
7897bbc04f Fix several compiler warnings [-Wextra-semi]
Example:
  warning: extra ‘;’ after in-class function definition [-Wextra-semi]

Also: replace 'FL_OVERRIDE' with 'override' in all modified files
2025-06-05 09:50:07 +02:00
Albrecht Schlosser
2d2f474794 Fix compiler warning warning [-Wundef]
warning: "_WIN32" is not defined, evaluates to 0 [-Wundef]
2025-06-05 09:50:07 +02:00
ManoloFLTK
e2683f36d4 macOS: protect uses of __block by #if defined(__BLOCKS__) condition 2025-06-03 18:27:45 +02:00
ManoloFLTK
b371c1185c Add build option FLTK_USE_DBUS to allow build w/o dbus (PR #1252)
Thanks to @lanodan for most of the source code.
2025-06-03 16:19:27 +02:00
ManoloFLTK
85be70efa5 Restore use of build option FLTK_USE_POLL 2025-06-03 08:23:04 +02:00
ManoloFLTK
9a5e3b95b8 Fix for #1260 - part 4: fix when menu button is in subwindow under Wayland 2025-05-30 21:38:13 +02:00
ManoloFLTK
c13594f999 Fix for #1260 - part3: fix exploration of menu button window under Wayland 2025-05-30 17:59:16 +02:00
ManoloFLTK
86a8d138f2 Fix for #1260 - part2: improve position of menu button window under Wayland 2025-05-30 16:44:26 +02:00
ManoloFLTK
ac0a5d52cb Wayland: fix "A flag to set how menus should show up" (#1260) 2025-05-29 17:42:16 +02:00
Albrecht Schlosser
3bc379bc4e Fix usage of FLTK_BACKEND_WAYLAND and FLTK_USE_WAYLAND
- Do not change or remove the cache variable FLTK_BACKEND_WAYLAND:
  this is an option set (and must only be changed) by the user.
- CMake/options.cmake: check Wayland availability if option
  FLTK_BACKEND_WAYLAND is ON and set the result variable
  FLTK_USE_WAYLAND accordingly.
- Replace FLTK_BACKEND_WAYLAND with FLTK_USE_WAYLAND everywhere
  else, except as noted above: in options.cmake.
2025-05-28 21:13:10 +02:00
Albrecht Schlosser
1a6322f8e1 Update makesrcdist to reflect packaging (CPack) and more
- remove conversion of fltk.spec.in to fltk.spec
- improve code related to working directory (variables)
- remove old (disabled) debug code
- create a standard MD5SUM file for verification of packages
- improve comments and output of instructions
2025-05-24 15:44:48 +02:00
Albrecht Schlosser
0bc621bc00 Enable CPack support to build binary packages and installers
This minimal implementation works and enables basic (mostly default)
CPack support to build binary packages of FLTK (RPM, TGZ, NSIS, ...).

Users need the required tools like `rpmbuild` to build a particular
type of package or installer.

Using EPM or rpmbuild directly with a provided "list" file has
been discontinued: fltk.list.in (EPM) and fltk.spec.in (RPM) have
consequently been deleted.

README.CPack.txt: basic documentation
2025-05-24 15:42:47 +02:00
ManoloFLTK
19684ae9d4 Update bundled libdecor to last upstream version (May 14, 2025) 2025-05-21 17:57:38 +02:00
ManoloFLTK
7347d6e2f6 Add change necessary to support new class Fl_Native_Input, possibly as addon
The added if() statement's condition is always false in FLTK before addition to it
of class Fl_Native_Input. Therefore, the present modification is effectless unless
this new class is added to the library, either in its core or as an addon.
2025-05-21 08:08:18 +02:00
Albrecht Schlosser
0960f1c066 Fl_Window::free_position() must not be deprecated
This method was erroneously declared 'deprecated' in previous versions.

However, this method is public and calls the *protected* method
Fl_Window::force_position(). Therefore it is kept as a regular
public method.
2025-05-14 19:05:04 +02:00
Albrecht Schlosser
3114ef0e2f Fix doxygen warnings
1. src/Fl_add_idle.cxx: add missing parameter docs

2. FL/fl_draw.H: rename 1st parameter of fl_draw_pixmap(...) from
   'data' to 'cdata'.

The 2nd warning appears to be caused by a 'friend' declaration in
  FL/Fl_Graphics_Driver.H, line 98:
    'friend FL_EXPORT int fl_draw_pixmap(const char*const* cdata, ...)'

This 'friend' declaration seems to "confuse" some (newer?) doxygen
versions, definitely doxygen 1.13.2.
2025-05-14 17:05:20 +02:00