Commit Graph

10393 Commits

Author SHA1 Message Date
Matthias Melcher 8826dca106
Add close buttons for individual tabs in Fl_Tabs (#628)
Add close buttons for Fl_Tabs
Introducing callback reasons
FLUID shows all FL_WHEN_... options
Adding Fl_Tabs overflow types
Improved test/tabs to show new features
2023-01-05 13:51:30 +01:00
Albrecht Schlosser 4d1a508c7e Refactor drawing small circles: add fl_draw_circle()
This method can be used to draw small circles as part of the GUI.
It is independent of the current scheme.

Very small circles are approximated by drawing several rectangles.
2023-01-05 01:06:25 +01:00
Albrecht Schlosser b5b88d5f0d Remove unused variable, fix "type issue" (#445, part 2)
This commit removes the unused variable as suggested in the discussion
of issue #445: "type issue in fluid/ExternalCodeEditor_WIN32.cxx"

... although the compiler would remove it anyway. ;-)
2023-01-04 20:25:49 +01:00
ManoloFLTK ae240340ab Fix for "Fl_Native_File_Chooser_MAC.mm compilation warning" (#627) 2023-01-04 18:02:29 +01:00
ManoloFLTK 13f2ea664a Cairo/Pango: compute character widths fast and string widths accurately
This commit has Fl_Cairo_Graphics_Driver compute string widths in 2 ways:
1) when the string contains several unicode characters, the width of the
whole string is computed, accounting for kerning when it occurs;
2) when the string contains a single unicode character, its width is
computed, memorised, and re-used next time it's necessary.

The effect of this approach is
- Fl_Text_Display is fast because it uses memorised single character widths repeatedly
- Fl_Input is drawn accurately because the cursor position is determined
by string widths, not by sums of character widths.
2023-01-04 17:23:13 +01:00
Albrecht Schlosser d3988f9bdc Update "Migrating Code ..." documentation
Add "New FL_OVERRIDE Macro" paragraph and update some more parts.
2023-01-03 18:51:03 +01:00
Albrecht Schlosser 9aa7cab532 Clarify and improve Fl::scheme() related documentation 2023-01-03 17:11:00 +01:00
Albrecht Schlosser 22a830c496 Fix missing include file for Visual Studio
... if GDIPLUS is disabled.

Thanks to Winfried Szukalski for reporting this.
2023-01-02 21:21:04 +01:00
Albrecht Schlosser 99a1daf1a9 Modify 'oxy' scheme's "choice arrow" for consistency
The "choice arrow" used two "down-arrows" which was different than
all the other schemes. Changed to up-arrow and down-arrow to make
this more consistent.

The exception is the default scheme (none or base) which uses only
one down-arrow.
2023-01-02 18:15:00 +01:00
Albrecht Schlosser e8f2602032 Fix box frame sizes of "round" boxes in scheme 'oxy' 2023-01-02 18:00:47 +01:00
Albrecht Schlosser a1ebe027be Fix a doxygen warning and improve "file list" contents
FL/Fl_Group.H: add `\brief` keyword
src/Fl_Group.cxx: fix warning: the '#' in '#include' must be escaped
2023-01-02 15:56:56 +01:00
Matthias Melcher a63ad76603
FLUID refactor and macOS warnings removed (#623)
P renamed to g_project
class Project renamed to class Fluid_Project
fixes macOS type cast warnings
2023-01-01 20:05:42 +01:00
Albrecht Schlosser 23e8d831a8 Add a missing FL_OVERRIDE flag 2023-01-01 18:02:46 +01:00
Matthias Melcher c8024c7a3b
Make sure that zlib and png are both local or system (#621)
Autoconf syncs png and zlib configuration
Cmake png zlib selection
2023-01-01 17:29:23 +01:00
Matthias Melcher 9a3f0f2089 FLUID: BMP header file not tracked 2023-01-01 17:15:00 +01:00
Matthias Melcher ab0d59220e FLUID: Fixes size_t signedness warning 2023-01-01 17:09:15 +01:00
Adam Chyła bfe730ecbf
Remove commented fl_beep calls (#620) 2022-12-30 23:15:53 +01:00
Matthias Melcher 473b5d8b5b Fixing false FL_OVERRIDE 2022-12-30 20:54:03 +01:00
Matthias Melcher 96f080a212 Fix uninitialised struct in SVG reader 2022-12-30 20:49:48 +01:00
Matthias Melcher 2c5a5ce948
FLUID support for inline image data (see #542, #592) (#604) 2022-12-30 19:20:52 +01:00
Matthias Melcher 44c874b731
Use `FL_OVERRIDE` for all overridden virtual methods (#611)
FL_OVERRIDE is defined as `override` for C++11 and higher
FL_OVERRIDE is defined as `override` for VisualC 2015 and newer
Don't interfere with Fl_Widget::override()
2022-12-30 19:14:36 +01:00
Albrecht Schlosser f58a93a159 Fix misleading indentation (warning: [-Wmisleading-indentation]) 2022-12-30 17:32:01 +01:00
ManoloFLTK b2a38f793f Wayland+FreeBSD: fix "test/mandelbrot crashes on rightclick" (#618) 2022-12-30 09:40:58 +01:00
ManoloFLTK 7e4306af6b Fix "Focus is lost leaving full screen on macOS 13" (#608) 2022-12-29 15:54:32 +01:00
ManoloFLTK 83d9a2c63d libdecor: update from upstream (3f3e5e1d) as of 29-dec-2022 2022-12-29 15:26:28 +01:00
Albrecht Schlosser 78cf29ba29 Improve and extend fl_contrast() (#370)
- Add internal fl_contrast_cielab() as the new default.
- Keep old function as internal fl_contrast_legacy().
- Add fl_contrast_mode() to switch between fl_contrast() functions.
- Add fl_contrast_level() to fine tune fl_contrast() per mode.
- Add option to register and use a custom contrast function.
- Add test/contrast.cxx test program.
- Move all fl_contrast() related code to a new file src/fl_contrast.cxx.
- Add fl_lightness() convenience function for perceived lightness.
- Add fl_luminance() convenience function for physical luminance.
2022-12-28 18:16:23 +01:00
ManoloFLTK 31327cd649 Fix for Two compiler warnings (#615) - cont'd
The Page_Format and Page_Layout  enums have been conceived for them to be combinable
into a single int value.
2022-12-28 16:58:52 +01:00
Albrecht Schlosser 6518e2d1f1 Fix merge error in animated.cxx (sorry for the noise) 2022-12-28 16:24:28 +01:00
Albrecht Schlosser 03389d1931 Replace an enum with 'const' variables in test/animated.cxx
- replace enum value 'FRAMES' with 'const unsigned int frames'
- replace enum value 'DIM' with 'const unsigned int dim'
- remove commented statements that have never been used.

Note: this also changes uppercase enum values to lowercase constants.
2022-12-28 16:00:22 +01:00
ManoloFLTK 72b8054ecc Fix compiler warnings on Windows with mingw-w64 CMAKE_CXX_STANDARD=20 (#615) 2022-12-28 09:32:01 +01:00
ManoloFLTK 7601bd832c Wayland: remove un-needed #include directives 2022-12-28 09:08:52 +01:00
ManoloFLTK bb96cfac44 Wayland: remove un-necessary Fl_Wayland_Gl_Window_Driver::gl_event_queue 2022-12-28 08:55:02 +01:00
ManoloFLTK 86adfe0dbe Wayland: simplify function struct wl_display *fl_wl_display() 2022-12-28 08:43:22 +01:00
Albrecht Schlosser b6cdb8ef25 Fix doxygen warnings (typos in argument names) 2022-12-27 19:26:34 +01:00
Albrecht Schlosser 70a107537f Exclude generated, Wayland specific files from Doxygen docs
Some Wayland specific files are generated by the build process with
configure + make in the source tree.

These files are now ignored by the Doxygen documentation process.
2022-12-27 19:22:56 +01:00
ManoloFLTK e73b2da5e4 Wayland: Dropdown menu moves when navigated (#613) - cont'd
Menu windows containing sub-menus are now processed differently.
2022-12-27 13:15:31 +01:00
ManoloFLTK 694df9d7e6 Wayland: Fix for "Dropdown menu moves when navigated" (#613)
This commit uses Wayland popup positionning methods to handle common
menu windows and prevents them from expanding below display bottom or above top.
The previous algorithm remains in place for menu windows higher than
the display height. Further changes for these big menus may come later.
2022-12-26 08:13:27 +01:00
ManoloFLTK b26db74dd0 Fix for "Fatal error while communicating with the Wayland server" (#610)
This commit should fix: once the mouse leaves the app window area and returns back to it
(app loses focus and gets it again) the crash happens.
2022-12-24 11:13:02 +01:00
ManoloFLTK e7eac09cf8 Add libdecor to README.bundled-libs.txt 2022-12-23 08:39:48 +01:00
Albrecht Schlosser c5f4934995 Update bundled nanosvg library to current upstream version
... with FLTK modifications (see README.bundled-libs.txt).

This fixes an issue where some svg images could not be loaded.

Upstream: https://github.com/memononen/nanosvg/

commit 9da543e8329fdd81b64eb48742d8ccb09377aed1 (upstream/master)
Merge: c886e50 0ce2e2b
Author: Mikko Mononen <memononen@gmail.com>
Date:   Sun Dec 4 17:46:22 2022 +0200

    Merge pull request #236 from sezero/signed-char

    change struct NSVGpaint:type to signed char
2022-12-22 01:13:45 +01:00
Matthias Melcher 6ea1f73d93 Missing parentheses 2022-12-22 00:33:08 +01:00
Matthias Melcher d98c663893
Fix compilation on old gcc (#606)
* Fixing char* use in FLUID
* Fixing const cast
2022-12-22 00:18:01 +01:00
Albrecht Schlosser 1d212b7a03 Clean up class Fl_String (part of issue #601)
- remove static variable 'string_count'
- improve and document methods debug() and hexdump()

This commit does not resolve issue 601 but removes some development
leftovers.

Methods debug() and hexdump() left for debugging as requested.
2022-12-20 20:05:15 +01:00
Albrecht Schlosser 004ea67203 Update dependencies, remove trailing whitespace 2022-12-19 15:23:20 +01:00
Albrecht Schlosser 62f68128bf Fix compiler warning (unused variable) 2022-12-19 15:21:38 +01:00
ManoloFLTK 84c5992d9f Complete Fl_Cairo_Graphics_Driver::restore_clip()
The driver's clip_ member was not updated to the new Cairo clip state
which rendered function Fl_Cairo_Graphics_Driver::clip_box() inaccurate.
2022-12-19 10:22:22 +01:00
Greg Ercolano e7630e045a Added ansi_show_unknown(bool) (default off)
It may be useful to some to have the terminal emit an error character
to show unknown escape sequences. Off by default, unknown escape sequences
are silently ignored. If enabled, '¿' is inserted instead.
2022-12-18 13:21:22 -08:00
ManoloFLTK b246b6650a Fix "link errors connected with recent Zenity dialog feature" (#602) 2022-12-18 09:29:37 +01:00
Greg Ercolano 993b7da3b5 ESC sequences can traverse append(), unicode support for backspace
This is basically a rewrite of the ESC handler, keeping state
in the class, so ESC sequences can continued between called
to append() (such as when reading data from a pipe in blocks).

New private class 'Fl_Escape_Seq' handles parsing and state info.
It also has careful bounds checking during parsing.

Backspace supports Unicode, and the unicode chars can straddle
across append() operations as well.

Private variables in Fl_Simple_Terminal renamed _xxx to xxx_
to improve CMP compliance.
2022-12-17 20:53:54 -08:00
Matthias Melcher 8586c257ab Update SVG binary constructor documentation 2022-12-17 23:44:42 +01:00