Commit Graph

12297 Commits

Author SHA1 Message Date
ManoloFLTK
7b6a779fd3 Fix "Wayland: NULL pointer dereference in Fl::cairo_make_current()" (#1359) 2026-01-11 12:09:41 +01:00
ManoloFLTK
e59a5dc804 Windows: improve moving window across screens with distinct scale factors - cont'd 2026-01-10 12:36:23 +01:00
ManoloFLTK
fc3e6a1c53 Windows: improve moving window across screens with distinct scale factors - cont'd 2026-01-10 12:05:01 +01:00
ManoloFLTK
8914914735 Remove un-necessary code from Fl_Wayland_Window_Driver::resize() function 2026-01-09 11:19:45 +01:00
Albrecht Schlosser
4908dfd72a Add CMake option FLTK_OPTION_PEN_SUPPORT (default: ON)
This option can be used to disable pen/tablet support if there are
build problems on a particular platform or build system (e.g. MinGW)
so users can continue to build FLTK 1.5.

Users can also choose to disable pen support if they don't need it.
2026-01-08 21:22:03 +01:00
Albrecht Schlosser
7fae181d95 Documentation: replace HTML table with Doxygen table
... for better readability in the source code.

Note: the documentation output is identical.
2026-01-08 19:05:16 +01:00
ManoloFLTK
bc05edd385 Wayland: use the "Cursor shape" protocol - Cont'd 2026-01-08 10:51:56 +01:00
ManoloFLTK
145d05c365 Documentation: add "Cursor shape" to table of used Wayland interfaces 2026-01-08 10:37:01 +01:00
Matthias Melcher
dc07fcdb6e Fix callback forwarding in Fl_Input_Choice.
Widget would always call CHANGED but never
RELEASE events, no matter how the when()
flags were set.
2026-01-07 13:18:29 +01:00
Matthias Melcher
52452f117f Remove event names that would be generated by fl_eventname_str 2026-01-07 11:34:29 +01:00
Matthias Melcher
71cee83f77 Fluid: Formatting changes. 2026-01-05 22:58:40 +01:00
Matthias Melcher
89aa5726f8 Fluid: Improve std::string output
Fluid: Update Widget_Node to std::string

Fluid: Image names to std::string

Fluid: std::string tooltip

Fluid: stringify Widget_Node::subtype

Fluid:: extra_code
2026-01-05 21:06:04 +01:00
ManoloFLTK
5f10939cfa Restore building with CMake option FLTK_BUILD_FLUID=0 2026-01-05 17:55:27 +01:00
ManoloFLTK
6c670e12c3 Document new use of the "Cursor shape" protocol for the Wayland platform. 2026-01-05 15:48:47 +01:00
ManoloFLTK
522728de8c Wayland: use modern approach to cursor shapes with the "Cursor shape" protocol.
This removes the need to guess names of files each theme gives to cursor shapes
and makes linking with dbus superfluous when the compositor supports
the new protocol.
The old, surface-based approach to cursor shapes remains used for custom shapes.
2026-01-05 15:05:25 +01:00
Matthias Melcher
11325da073 Fluid: Modernize Function Nodes 2026-01-05 11:52:34 +01:00
Matthias Melcher
48617a8075 Fluid: Modernize use of strings.
Testing MergeBack at the same time.
2026-01-05 00:36:28 +01:00
Matthias Melcher
296f2fc5da Fix missing return in mergeback 2026-01-04 22:35:20 +01:00
Matthias Melcher
8d714acf33 Fix a possible popup menu crash event. 2026-01-04 22:17:06 +01:00
Matthias Melcher
452ed8d86d Improve mergeback timing.
Avoid recursion in event handling by
deferred calling mergeback.
2026-01-04 21:49:52 +01:00
Matthias Melcher
7306b66d99 Fluid: Add automated MergeBack 2026-01-04 20:43:34 +01:00
Albrecht Schlosser
811a188bbf Add FLTK_BUILD_SCREENSHOTS option info to CMake build summary
+ build screenshot programs if option FLTK_BUILD_SCREENSHOTS=ON:
  don't `EXCLUDE_FROM_ALL` because the option must be set anyway.
2026-01-04 19:34:14 +01:00
Albrecht Schlosser
68d2c48514 Add an option and the first program to create screenshots
This is the first step in creating additional programs for saving
screenshots for documentation purposes. These screenshots must be
saved in the documentation/images directory and checked into the
Git repository.

These programs allow developers to create new screenshots or change
existing ones. More screenshots may be created by programs in the
/test/ folder.

To-do: add more *new* screenshot programs, and if useful, move some
  existing programs from the `/test/` folder to `/screenshots/`,
  such as `test/resize-example*.cxx` and maybe more.
2026-01-04 19:16:53 +01:00
ManoloFLTK
46e6815612 Windows: improve moving window across screens having distinct scale factors. 2026-01-04 16:45:11 +01:00
Matthias Melcher
0e570fb672 Add C++11 Fl_Valuator::format API.
This is helpful for writing language wrapper, in
this particular case for PyFLTK.
2026-01-04 15:50:56 +01:00
ManoloFLTK
357336bd40 Fix "Wayland's wl_display_dispatch() can block a Vulkan application" (#1354)
This rewriting of the FLTK callback function that runs when there are data available
for reading in the socket connecting the app and the Wayland compositor is meant to
facilitate the integration of Vulkan.
This rewriting reproduces the recommended code to read from the socket
documented in Wayland function wl_display_prepare_read_queue() when several threads
potentially read from the socket.
2026-01-04 09:38:16 +01:00
Albrecht Schlosser
62c2497ff5 Speed up PDF generation and add timing debug output
... to the Doxygen generation log file `documentation/pdfall.log`.

The additions to the log file are intended to find out which parts
take how much time.

Note: use `grep "make_pdf" documentation/pdfall.log` to see the
  log output with timestamps.

- documentation/Doxyfile.in: exclude undocumented source files in
  src/xutf8/* which reduces parsing by a small amount of time,
  estimated about 5 percent of build time. YMMV.
2026-01-03 16:35:53 +01:00
Albrecht Schlosser
869df69ff2 Update FLTK colormap (src/fl_cmap.h) w/o changing colors
- update comments, including filenames
- update build instructions for developers in util/cmap.cxx
- update CMakeLists.txt (comments only)
2026-01-03 16:28:02 +01:00
Albrecht Schlosser
775239c2fc Fix compilation error on Windows (MinGW)
error: ‘fabs’ was not declared in this scope
2026-01-03 13:55:12 +01:00
Albrecht Schlosser
4a9a417860 Clarify that a font must be loaded before measuring text (#1356)
Documentation only: users must load a font with fl_font(face, size)
before measuring text with methods like fl_measure(), fl_height(),
fl_width(), fl_text_extents() etc.
2026-01-03 13:54:44 +01:00
Albrecht Schlosser
c17c2e3808 Clean up .gitignore files
Since FLTK 1.5 building FLTK in the source tree is prohibited by our
CMake setup. Therefore all build artifacts are stored in the build
tree and don't need to be "ignored" in the source tree.
This simplifies the .gitignore files significantly.

There are some exceptions though, for instance .cxx and .h files
generated by fluid which might be created by a user/developer
executing fluid in the source tree.
2025-12-30 18:41:33 +01:00
Albrecht Schlosser
30a3054202 Update GitLab CI build for screenshot generation
Use Xvfb to create an X11 display (server).

Thanks to Matthias: copied from GitHub CI build
2025-12-30 17:41:51 +01:00
Albrecht Schlosser
d5ed136642 Reorganize documentation source directories
- move all images (screenshots) to new folder documentation/images/
- move documentation/src/fltk-title.tex.in to documentation/
- fix .gitignore files (remove obsolete entries etc.)
- FL/Fl_Tooltip.H: fix '\image latex' reference
- documentation/CMakeLists.txt: update ref. to fltk-title.tex.in
- documentation/Doxyfile.in: adjust image path (IMAGE_PATH)
2025-12-30 15:49:02 +01:00
ManoloFLTK
eb8047ddc5 Add that FLTK 1.3 supports also Windows 11 2025-12-30 07:53:08 +01:00
Albrecht Schlosser
a057e13fb4 Improve code snapshot generation for PDF docs (#1353)
CMake: execute `code_snapshot` separately for each file we want to
  scan so we can create timestamps and generate PNG images only if
  the source file (e.g. unicode.dox) was modified.

documentation/src/unicode.dox: remove output folder `generated`, use
  only the filename. CMake sets the current working directory as needed.

util/code_snapshot.cxx: format and improve comments, reset code buffer
  so we can generate multiple images per input file.
2025-12-29 20:02:06 +01:00
Matthias Melcher
83fab8cb0f Fix Fl_Pack to support more box types.
Old code supported only frame styles, this code
can now handle box types with a background.
2025-12-29 16:21:17 +01:00
Matthias Melcher
2fb67053a1 Fixes Code Viewer widget height calculation 2025-12-28 23:15:30 +01:00
Matthias Melcher
17eaeeda92 Update filename case and LaTeX details 2025-12-28 22:18:07 +01:00
Matthias Melcher
f5e7d62f90 Generate code block documentation using FLTK (#1353)
The Doxygen-to-pdf toolchain can not easily generate
pdf's with Japanese and Chinese characters. This patch
generates code blocks by rendering them in FLTK.
2025-12-28 21:37:30 +01:00
Albrecht Schlosser
22c1730261 Add Fl_Scheme::plastic_color_average() method [#464]
This method can be used to set a more appropriate color average to
prevent "graying out" the box colors of the 'plastic' scheme.
Alternatively environment variable 'FLTK_PLASTIC_AVERAGE' can be used
to set the color average value. See docs for details.

Set color average to 45% in test/unittests demo program.
2025-12-25 19:34:08 +01:00
Albrecht Schlosser
ec61d4ff4a Remove dead code from 'plastic' scheme implementation
- The removed code had been disabled in the year 2003 or earlier for
  reasons mentioned in those old commits and has never been officially
  used again. Use `git blame` to find these commits.
- Update comments and copyright.
- Remove empty lines.
2025-12-25 18:29:11 +01:00
Albrecht Schlosser
426dadb0d7 Fix doxygen warning (missing end quote) 2025-12-25 18:18:52 +01:00
ManoloFLTK
0105b593b6 Fix typos in documentation of FL_APP_ACTIVATE 2025-12-23 12:26:31 +01:00
Matthias Melcher
33199dab78 FLUID: Add support for lambda callbacks.
Starting the callback text with a '[' assumes that
the rest of the callback is a lambda and generates
inlined code for it.
2025-12-22 23:12:42 +01:00
Matthias Melcher
d0d2e104e9 X11: Add documentation: FL_APP_ACTIVATE not supported 2025-12-22 00:29:20 +01:00
Matthias Melcher
b715850d08 Wayland: Fix FL_APP_ACTIVATE with timer.
Deferred handling of FL_APP_DEACTIVATE works very well.
2025-12-22 00:26:37 +01:00
Matthias Melcher
525db6ddca Wayland: fixes syntax errors
This code generates a lot of
extra events
2025-12-22 00:12:48 +01:00
Matthias Melcher
e4fbf3e6ee Wayland: FL_APP_ACTIVATE and FL_APP_DEACTIVATE
This is an attempt. Will verify on another machine now.
2025-12-21 23:48:03 +01:00
MatthiasWM
e55eabf69f Win32: Add FL_APP_ACTIVATE and DEACTIVATE 2025-12-21 23:02:35 +01:00
Matthias Melcher
8ec5d86fe1 MacOS: Add FL_APP_ACTIVATE and DEACTIVATE.
This event is sent on application level. Add a handler
with Fl::add_handler to receive the event.
2025-12-21 22:49:42 +01:00