Commit Graph

1289 Commits

Author SHA1 Message Date
Albrecht Schlosser
576f7bb9cc Enable 'shadow_variables' test on macOS using AppleClang
The CMake compiler ID on macOS is AppleClang rather than Clang.
This commit checks for this compiler ID as well.
2024-04-22 16:54:25 +02:00
Albrecht Schlosser
3fc8875756 Add missing 'x11.H' to exclusion list (STR 2728) 2024-04-18 17:33:57 +02:00
Albrecht Schlosser
bb45198413 Test public headers for shadowed variables (STR 2728)
This program is built only when using CMake and a GNU or Clang
compiler to detect shadowed variables in header files.

Developers should fix such warnings whenever they see them during the
build to avoid user reports.
2024-04-18 17:13:09 +02:00
Greg Ercolano
31170c4731 Rename putchar() to plot_char() (#944)
Some old platforms (NetBSD, AIX) implement the common stdio "putchar()"
function as a global macro which poisons the global namespace, preventing
all C and C++ programs from using "putchar()" as a function or method.

There was a long thread about this in fltk.coredev during the period
Mar 25 2024 ~ Apr 4 2024, subject "RFC: Fl_Terminal::putchar() in public API"
as to why we have no choice but to not use putchar() as a method name.
2024-04-06 23:36:04 -07:00
Albrecht Schlosser
05ddf0f600 Move test/fromdos.c to misc/fromdos.c where it belongs
This is a test file for developers only. Use with caution.
2024-04-02 17:02:01 +02:00
Albrecht Schlosser
af90841fbc Update dependencies, whitespace, and Fl_File_Chooser.cxx
Rewrite src/Fl_File_Chooser.cxx from its .fl source file
2024-03-19 15:39:18 +01:00
Albrecht Schlosser
81d47f71d6 Fix VS compiler warning, write "copied" message to tty
... rather than popping up a message window.
2024-03-18 19:34:32 +01:00
ManoloFLTK
792cfc27e7 native-filechooser has preview panel with FLTK_USE_X11 and macOS 2024-03-18 18:22:41 +01:00
Albrecht Schlosser
193c5285cd Improve linking of test/cairo_test.cxx demo program
With modern CMake libcairo doesn't need to linked explicitly in the
test/cairo_test.cxx demo program. Either '-lcairo' is implied by
linking with fltk::fltk or it is not used at all.

This fixes a linker warning on macOS:
  "ld: warning: ignoring duplicate libraries ..."
2024-03-16 23:24:01 +01:00
Albrecht Schlosser
8b094e8af3 Fix a bunch of compiler warnings, particularly for old compilers
Works now much better with old C99 and C++98 standard compilers.
Fixed: C++ comments in C files and headers included by C files.

There are still some warnings with C90 though but these would be
hard to fix and left as-is for now.

test/fractals.cxx: some arrays were too small by 1, or the compiler
  warned at least (false positive?). Anyway, it's fixed now.
2024-03-15 20:42:42 +01:00
Albrecht Schlosser
26f5b38a01 Update documentation, remove/edit explicit FLTK versions
... to simplify further version updates.

Add more deprecation notices concerning autotools/configure
to README.Unix.txt.
2024-03-14 17:16:43 +01:00
Albrecht Schlosser
9f4cea25bf Improve keyboard event test program: add copy button
... to copy selected or the full text to the clipboard.
2024-03-12 22:33:34 +01:00
Albrecht Schlosser
5e4f51ac6b Fix several compiler warnings
Three unrelated but only minor warnings.
2024-03-12 21:47:33 +01:00
Greg Ercolano
38af0c823b Add Fl_Terminal to "Scrollbar Size" unittest (#931)
This involved enlarging the unittest main window to make room
for the additional test.

Adding this test revealed a problem in Fl_Terminal's global
scrollbar size handling, which is fixed here as well.

Also fixed a small issue in the demo's debugging terminal
with the horiz scrollbar.
2024-03-11 13:20:17 -07:00
Albrecht Schlosser
62d85333bd Improve handling of events in test/handle_keys.cxx
(1) Ensure that the terminal widgets doesn't use keyboard events.
  Advantage: keyboard navigation and selection doesn't interfere
    with the display.
  Drawback: Contents of the terminal can no longer be copied.
    This will be addressed in a later update.

(2) Thanks to Manolo for his addition of the "GUI scaling" button.
  Although GUI scaling can be useful, it can also be annoying while
  testing shortcuts.

(3) Changed all light buttons to check buttons.
2024-03-11 17:07:56 +01:00
Albrecht Schlosser
7bbe75c84e Add another keyboard event test program test/handle_keys.cxx
This program logs all keyboard events to a built-in Fl_Terminal widget.

WIP: version 0.80
2024-03-09 15:17:34 +01:00
Albrecht Schlosser
290e95eaef Use FL_Alt_Gr key definition in test/keyboard
... and reformat key definition table
2024-03-09 14:03:51 +01:00
Albrecht Schlosser
602cd7a990 Use fixed font in test/clipboard for text display
This is more like a text editor would display text.

Todo: make the font selection optional (later).
2024-03-09 13:56:09 +01:00
Albrecht Schlosser
4c0a2ffb81 Fix shortcut (Esc) handling in test/keyboard.cxx
Esc is intentionally consumed by the test program (see comment) but
other keystrokes (shortcuts) must pass to allow zooming with ctrl/+/-/0.
The old code filtered all shortcuts which turned out to be wrong.

Not being able to zoom was caused by a previous commit that lowered
the priority of the zoom key handler - which alone was not wrong.
2024-03-05 03:08:30 +01:00
ManoloFLTK
72840ea2c1 Fix: Filechooser preview of XML file shows it as a corrupt image (#926) 2024-03-04 21:15:47 +01:00
ManoloFLTK
2e315e5424 native-filechooser: add call to fl_register_images() and explain why 2024-03-03 08:33:27 +01:00
Matthias Melcher
f1c9b198bb Promote fl_strlcpy to <FL/fl_string_functions.h> 2024-03-02 23:49:35 +01:00
Matthias Melcher
4ccadff4b9 Fix test/editor use of strncy to strlcpy 2024-03-02 23:14:07 +01:00
ManoloFLTK
0818d4ec5b Fix: Fl_Window::fullscreen() does not work correctly on Mac (#920) 2024-02-26 12:15:47 +01:00
ManoloFLTK
ba5ed296e9 Improve implementation of the macOS Window menu
The macOS Window menu is connected to the item array of the  macOS menubar
via FL_SUBMENU_POINTER. This facilitates memorization of pointers
to items of the macOS menubar because the item array no longer changes
each time a window opens of gets closed.
2024-02-20 16:00:01 +01:00
Greg Ercolano
00cdb1757f Added attribute checks to test/terminal for recent changes. 2024-02-16 13:14:15 -08:00
Albrecht Schlosser
809ceea075 Fix Cairo related build issues (missing Cairo lib)
... particularly for shared libs
2024-02-09 19:41:45 +01:00
Albrecht Schlosser
ede53b8a50 Fix cairo_test-shared build as well (#902) 2024-02-09 17:35:26 +01:00
ManoloFLTK
ffeaeec5bd Move FLTK_USE_SVG from config.h to FL/fl_config.h 2024-02-09 13:36:16 +01:00
Albrecht Schlosser
3895068aa1 Fix "cairo_test fails to link due to undefined's" (#902)
Restore "too much optimized" CMake code.

The issue would only be visible if neither FLTK_GRAPHICS_CAIRO nor
FLTK_BACKEND_WAYLAND was active.
2024-02-09 12:38:14 +01:00
Albrecht Schlosser
fd5cd80935 Introduce "Modern CMake" in FLTK
This is a big commit and there are too many changes to list them all.
The main changes are:

- rename all CMake build options to 'FLTK_*'
- export library targets with namespace (prefix) 'fltk::'
- standardize shared library target names with suffix '-shared'
- set public build properties on libraries for consumers
- document library names and aliases in README.CMake.txt
- document changes in "Migrating Code from FLTK 1.3 to 1.4"
- partial backwards compatibility for old user projects

Included but not directly related changes:

- fix Windows (Visual Studio) DLL build
- add CMake function fl_debug_target() to show target properties
- don't build test programs if FLTK is a subproject
- internal: reformat CMake code: remove space before '('

Thanks to Matthias and Manolo for their help, testing, and feeback.
2024-02-07 18:37:34 +01:00
Matthias Melcher
f0c1eff069 Fix typo in function name in editor. 2024-02-06 22:00:11 +01:00
Matthias Melcher
78ae78b118 Add dynamic title to test/editor 2024-02-06 21:25:43 +01:00
ManoloFLTK
6d98c6a8b1
Restore 3-way close window dialog (#900) 2024-02-06 20:27:18 +01:00
Matthias Melcher
d9612e3cc7
RFC: Different approach to Editor tutorial (see #189) (#883)
Update test/editor code and tutorial (#189, #883)

Different, sequential approach to Editor tutorial
Co-authored-by: Albrecht Schlosser <albrechts.fltk@online.de>
2024-01-29 11:43:34 +01:00
Matthias Melcher
554bccbecd Synchronize mouse and keyboard callbacks for Fl_Button (#877)
Keyboard behavior for button types was not consistent with mouse
click behavior. This change avoids callbacks when pressed radio buttons
are pressed again.
2024-01-17 20:24:47 +01:00
ManoloFLTK
8679be8561 Restore correct copyright window for checkers demo 2024-01-15 17:28:25 +01:00
Greg Ercolano
dc70a04100 Add Fl_String not-equal test 2024-01-10 21:32:02 -08:00
Albrecht Schlosser
b4697c33ff Remove Fl_Simple_Terminal (replaced by Fl_Terminal)
... as discussed previously.
2024-01-06 18:29:25 +01:00
Greg Ercolano
04bf5c5a34 Limit test/terminal window size
Prevents window from squishing buttons horizontally.
Allows tty height to shrink to no less than a single line.
2024-01-03 23:08:18 -08:00
Matthias Melcher
a09c75e9bc Adds Fl_Input RMB menu translation to test/preferences
This also updates the RMB menu labels before every popup so
that changing the labels after creating the widgets still reflects
that change correctly.
2023-12-28 15:43:21 +01:00
Albrecht Schlosser
76a2c95f07 Fix a typo, trailing whitespace, and dependencies 2023-12-21 14:03:04 +01:00
Albrecht Schlosser
5df5daf78e Make the 'Forms' compatibility library 'fltk_forms' optional
This library is no longer needed in FLTK itself. There is only one
demo program (test/forms.cxx) that uses it if it is built. The demo
program displays a message if fltk_forms is not available.

The default is 'enabled' for backwards compatibility but this may
be changed to 'disabled' in a future version.
2023-12-20 17:33:37 +01:00
Albrecht Schlosser
05687d1cb4 Fix typos, formatting, and text alignment in test/forms.cxx
no real code changes
2023-12-19 19:21:39 +01:00
Albrecht Schlosser
855a50a5f6 Fix MSVC compiler warning 2023-12-17 18:05:36 +01:00
Matthias Melcher
469d3ef3d5 #842: Enables command line color arguments on macOS 2023-12-16 21:59:43 +01:00
Matthias Melcher
04a5098a58 #840: Generously adds Fl::args_to_utf8() for MinGW support. 2023-12-15 13:04:57 +01:00
Matthias Melcher
33d0718756 FLUID: option to show terminal, clear terminal, and clear history 2023-12-14 19:40:34 +01:00
ManoloFLTK
3e61ec7044 New member function Fl_Image_Surface::mask(Fl_RGB_Image*) 2023-12-04 12:34:44 +01:00
Albrecht Schlosser
727bd94560 Add commandline conversion for Windows (no-op on other platforms)
- add Fl::args_to_utf8() to convert commandline arguments to UTF-8

This new function closes the gap that previously only Visual Studio
applications converted their commandlines to UTF-8.

Tested with MinGW, MSYS2/MinGW-w64, and Visual Studio (2019).
2023-11-29 16:29:54 +01:00