Commit Graph

7530 Commits

Author SHA1 Message Date
Albrecht Schlosser
9fa438df68 Fix doxygen warnings 2025-12-06 21:53:32 +01:00
ManoloFLTK
a4ebd8564d Wayland: remove memory access error while computing screen work area 2025-12-06 10:02:11 +01:00
Matthias Melcher
b2746ad286 Change arrow keys in log slider to even increments. #1232 2025-12-06 00:16:04 +01:00
Matthias Melcher
87160b6eb9 Remove boxtype linke trick.
By defining boxtypes with underscores, box
drawing cod ethat was not used was not linked,
but with the introduction of themes, all boxes
are available at all times. Reducing complexity.
2025-12-03 23:33:14 +01:00
Albrecht Schlosser
feed81e124 Fix more box drawing stuff - using Fl::box_bg(box())
The biggest changes are in src/Fl_Scroll.cxx where most of the changes
are caused only by formatting (alignment). The behavior is the same
for all boxtypes that had been covered by the old switch/case code
and should be improved for other FL_*_FRAME boxtypes that had been
ignored.
2025-12-01 23:06:37 +01:00
Albrecht Schlosser
5a6a7eb009 Add background (bg) attribute to table of boxtypes
This is a first step to fix some background (re-)drawing issues in
widgets. A new bit in the array of boxtypes can be used to determine
if a particular boxtype uses a solid background (e.g. all FL_*_BOX
types) or if the parent widget is responsible for drawing it (FL_NO_BOX
and all FL_*_FRAME) types, and maybe more ...

The old struct member `set` in the struct of boxtypes has been
renamed to `flags` and is now used as a bit field.

Except these changes, this first commit fixes the focus box drawing
of specific boxtypes, as seen in unittest_schemes.cxx in the
Fl_Check_Button with label "Check", and very likely more.
2025-12-01 23:06:37 +01:00
Matthias Melcher
89c116bf5f Fix menu crash dereferencing nullptr (#1335) 2025-11-30 00:40:11 +01:00
Matthias Melcher
349b818d3f
Fluid: convert modal panels into tabs in the widget panel (#1339) 2025-11-29 12:57:08 +01:00
ManoloFLTK
92a1558a0e Wayland: remove code path that left workarea_xywh[*] unassigned (#1334) 2025-11-29 07:31:20 +01:00
ManoloFLTK
940871d5c8 Slight improvement of DnD support under Wayland 2025-11-28 16:49:37 +01:00
Matthias Melcher
ee43155a4b Add method to list running timeouts (#1306).
\see Fl::timeout_list();
2025-11-28 00:55:57 +01:00
Matthias Melcher
6568f60ab8 Fix typo for all but macOS 2025-11-27 23:56:29 +01:00
Matthias Melcher
147247f8f1 Refactor pen interface into driver system. 2025-11-27 23:43:08 +01:00
Matthias Melcher
86b9df01ee Add initial log support for sliders (#1232).
Works for all slider types.
Adds tick marks to "nice slider".
Defaults to linear if min or max is zero.
There is room for improvement for drawing the tick marks.
2025-11-26 14:08:58 +01:00
Matthias Melcher
b78042e0d8 Refactor large pulldown function into smaller functions. 2025-11-25 14:52:08 +01:00
Matthias Melcher
2049fe3637 Declutter draw and handle methods.
Refactoring long methods into smaller parts
that are easier to understand.
2025-11-22 01:06:21 +01:00
Matthias Melcher
56955a33a3 Additional menu code cleanup.
Better variable names,
More descriptive integer types.
2025-11-21 19:57:50 +01:00
Matthias Melcher
910c7d18eb Fix a few more warnings by Clang.
- Apple Clang 17.0.0.
- png, z, jpeg lib integer cast warnings remain
- FLTK callback function cast warnings remain.
2025-11-21 13:37:54 +01:00
Matthias Melcher
f57891864b Fix missing return statement. 2025-11-21 12:46:29 +01:00
Matthias Melcher
a01fcae832 Reformat src/Fl_Menu.cxx.
Reorder declarations and implementations.
Rename to current FLTK standards, reformat.
2025-11-21 00:11:30 +01:00
Matthias Melcher
8dcc99279e Adjust some pen driver comments.
Made global variables private.
2025-11-20 22:24:21 +01:00
Matthias Melcher
b1d63e0842 Improve documentation for popup menus.
Documented every function and variable in Fl_Menu.cxx.
2025-11-20 02:05:36 +01:00
Matthias Melcher
94008f57c3 Add headline menu item style (#1059)
A menu item can be designated as a headline.
Fully integrated and used in Fluid.
2025-11-19 16:58:08 +01:00
Greg Ercolano
797e977773 Improved clip handling/fix box() 2025-11-18 05:15:01 -08:00
Greg Ercolano
6731b79591 Clip Fl_Terminal scrollbars (#1328) 2025-11-17 13:41:37 -08:00
Matthias Melcher
67d67fbbfd Fix two macOS compiler warnings. 2025-11-17 22:22:12 +01:00
Greg Ercolano
bd945bf647 smoother scrolling in Fl_Terminal 2025-11-17 12:48:44 -08:00
Matthias Melcher
fa65cd6321
Add pen/stylus/tablet API and driver for macOS (#1326)
* define the pen/tablet support API
* add pen event handler stub as a fallback
* add pen device test "penpal".
* Add macOS pen/stylus/tablet driver.
* Add Oxygen documentation.
2025-11-17 21:10:01 +01:00
Albrecht Schlosser
d623ad08a9 Fix Cairo build and add FLTK_OPTION_CAIRO_WINDOW to CI build
... on GitHub (GitLab CI builds used it already)
2025-11-17 13:53:24 +01:00
Matthias Melcher
646bd55764
Refactor large static class Fl into an expandable namespace Fl (#1325)
* Change class Fl into namespace Fl.
* Untangle Fl namespace into themed headers.
* cut line count of FL/Fl.H in half
* FL/core subdirectory now holds short headers 
  grouped by functionality.
2025-11-16 01:58:54 +01:00
Albrecht Schlosser
6a0edd15c5 Revert/fix a0654b59ac: FLTK_CONSOLIDATE_MOTION = OFF
In commit a0654b59ac all assignments to
variable `fl_xmousewin` were erroneously put under control of macro
FLTK_CONSOLIDATE_MOTION. This commit reverts this.

The correct fix would have been to declare

  extern Fl_Window *fl_xmousewin;

unconditionally which was eventually done in a later commit.

The related variable `static Fl_Window *send_motion;` is still used
under control of macro FLTK_CONSOLIDATE_MOTION.
2025-11-13 15:38:22 +01:00
ManoloFLTK
c6f34560b0 Wayland: fix computation of screen workarea size.
This computation has been found possible only for single-display settings.
2025-11-10 17:33:53 +01:00
Albrecht Schlosser
054fc9c823 Declare some methods of Fl_Window 'const'
These Fl_Window methods are 'const' but had not been declared 'const':

- uchar get_size_range(...) const
- int shown() const
- const Fl_Image *shape() const
- int screen_num() const
- fl_uintptr_t os_id() const
2025-11-10 16:23:04 +01:00
ManoloFLTK
733511af41 Remove warnings when building Doxygen documentation. 2025-11-09 14:37:07 +01:00
Matthias Melcher
d12d16f6ab Fix documentation of fl_filename_ext 2025-11-09 13:09:46 +01:00
ManoloFLTK
c12105193c Complete documentation of function fl_open_callback(). 2025-11-09 11:01:13 +01:00
ManoloFLTK
fd14a3abf0 Wayland: simpler computation of screen workarea size 2025-11-08 16:43:36 +01:00
ManoloFLTK
87f9a6f4d6 Wayland: fix computation of screen size and workarea
The previous method failed with gnome 49.1
2025-11-06 11:23:00 +01:00
ManoloFLTK
d8df24a2ea Fix "Long Tooltips can crash under Wayland" (#1317) 2025-11-05 21:10:18 +01:00
ManoloFLTK
f2db90cb77 Fix "CMake: Fallback to libOpenGL (no-X11 OpenGL)" (#1251) 2025-11-02 15:13:29 +01:00
Matthias Melcher
a128b7c95a Fix UTF-8 documentation'
Fix Unicode buffer allocation
2025-11-01 21:23:18 +01:00
Matthias Melcher
ccbb424046 Add option to uniform line drawing in scaled mode (#167) 2025-11-01 14:33:06 +01:00
Matthias Melcher
418689548f Add more Unicode documentation (2/2) (#125) 2025-11-01 02:12:32 +01:00
Matthias Melcher
2d33e5b90c Improve docs for UTF-8 calls (1/2)(#125) 2025-11-01 01:37:31 +01:00
Matthias Melcher
0ac7e427a1 Avoid crash in Fl_Gl_Window::make_current() (#1287) 2025-10-31 20:37:24 +01:00
Matthias Melcher
7500b3c540 Add information on Fl_Widget::type_. 2025-10-29 11:51:06 +01:00
ManoloFLTK
445e96f5bb Cont'd "New Wayland subwindow code creates issues with resizes of opengl windows…" (#1311) 2025-10-27 09:33:10 +01:00
ManoloFLTK
efac0cb9ab Fix "New Wayland subwindow code creates issues with resizes of opengl windows…" (#1311) 2025-10-20 15:09:52 +02:00
Greg Ercolano
3ee58d2820 Doc fix for issue #1310 2025-10-09 11:29:46 -07:00
ManoloFLTK
a24bb896c5 Simplify and improve function Fl_Wayland_Window_Driver::resize() (#1307)
This modified implementation improves support of subwindows that are moved or resized
above their parent toplevel window. It also significantly shortens and clarifies the source code.
2025-09-30 12:00:18 +02:00