summaryrefslogtreecommitdiff
path: root/src/fl_utf8.cxx
AgeCommit message (Collapse)Author
3 dayswipmaxim nikonov
4 dayswi[maxim nikonov
4 dayswipmaxim nikonov
8 daysImprove documentation of functions dedicated to processing of emoji sequences.ManoloFLTK
11 daysEmojis: add support of keycap emoji sequences.ManoloFLTK
- It is expected that all emojis listed in the Wikipedia "emoji" article as of early 2026 are recognized as single glyphs by FLTK text widgets. - Document functions fl_utf8_{next|previous}_composed_char() relatively to the notion of "emoji sequence". - Remove signed/unsigned comparison compilation warnings.
12 daysFix typo in documentation of fl_utf8len1().ManoloFLTK
14 daysModify fl_utf8toa() to make it account for composed emojis.ManoloFLTK
2026-01-26Improve documentation of fl_utf8_{next|from}_composed_char()ManoloFLTK
2026-01-26Let text widgets handle gracefully composed unicode characters - Cont'd.ManoloFLTK
This commit adds support of another type of composed characters: flags. It also fixes Fl_Text_Buffer::prev_char() and Fl_Text_Buffer::next_char() that must use Fl_Text_Buffer::byte_at() to access to the content of the text buffer.
2026-01-24Let Fl_Text_Editor and Fl_Input handle gracefully composed unicode characters.ManoloFLTK
2026-01-21Improve handling of text containing context-dependent unicode points.ManoloFLTK
This commit makes platforms Windows and macOS compute string widths with the same mechanism as what is in place for platforms Wayland/X11: - the width of a string containing a single codepoint is computed and memorized in the table of character widths; - the width of a string containing several codepoints is computed as such rather than as the sum of the widths of its composing characters. The result is that FLTK text widgets input and draw correctly also complex emojis encoded with context-dependent codepoints. Function fl_utf8_remove_context_dependent() is no longer necessary.
2026-01-19All platforms use same code to remove context-dependent codepoints from text ↵ManoloFLTK
input. This commit introduces function fl_utf8_remove_context_dependent() that removes from an UTF-8 string its context-dependent codepoints. Platforms macOS, Wayland and X11 call this function to process UTF-8 text received from a character palette as input to FLTK text. This makes sure FLTK text-editing widgets process textual input equally and consistently across platforms, especially emojis entered via a palette. Platform Windows creates a series of separate system events to input an emoji via the character palette. For this reason, function fl_utf8_remove_context_dependent() is not used by this platform which does internally the same filtering of context- dependent codepoints.
2025-11-09Remove warnings when building Doxygen documentation.ManoloFLTK
2025-11-01Fix UTF-8 documentation'Matthias Melcher
Fix Unicode buffer allocation
2025-11-01Add more Unicode documentation (2/2) (#125)Matthias Melcher
2025-11-01Improve docs for UTF-8 calls (1/2)(#125)Matthias Melcher
2023-01-20STR 2822: function to count bytes in a UTF-8 stringMatthias Melcher
2023-01-08FLUID: add drag'n'drop for images (#642)Matthias Melcher
FLUID dnd for desktop images into the design Documentation for fl_access
2023-01-01FLUID refactor and macOS warnings removed (#623)Matthias Melcher
P renamed to g_project class Project renamed to class Fluid_Project fixes macOS type cast warnings
2022-12-17Add cross-platform fl_close_fd(int fd) to close a file descriptorManoloFLTK
2022-08-29Make hybrid Wayland/X11 platform.ManoloFLTK
2022-04-03Remove '#include <sys/stat.h>' from FL/platform_types.hAlbrecht Schlosser
- Add this include statement only where needed. - Rename Fl_System_Driver::stat() to flstat(). This fixes an issue when using some (!) MinGW 64-bit build systems that obviously '#define stat _stat64' or similar. This would result in compiler problems if 'stat()' is a member function of Fl_System_Driver.
2020-07-06Remove $Id$ tags, update URL's, and moreAlbrecht Schlosser
- remove obsolete svn '$Id$' tags from all source files - update .fl files and generated files accordingly - replace 'http://www.fltk.org' URL's with 'https://...' - replace bug report URL 'str.php' with 'bugs.php' - remove trailing whitespace - fix other whitespace errors flagged by Git - add and/or fix missing or wrong standard headers - convert tabs to spaces in all source files The only relevant code changes are in the fluid/ folder where some .fl files and other source files were used to generate the '$Id' headers and footers.
2020-02-10Implement fl_putenv() as cross-platform putenv()Albrecht Schlosser
2020-01-14Fixed some documentation for Fl_Preferences and fl_make_path.Matthias Melcher
2018-06-26Move Fl_System_Driver.H from FL/ to src/Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12976 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-23Doxygen only: fixed all block comments starting with an asterisk to ↵Matthias Melcher
space-only, fixed doxygen keywords prepended with @ to use a backward slash instead. No code was changed. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12970 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-11-10Add missing platform wrapper fl_chdir() for chdir().Albrecht Schlosser
Tested under Windows and Linux, but not yet used in library code. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12549 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Rename fl_open_ext() parameter 'translation' to 'binary'.Albrecht Schlosser
The default (0) is 'text' mode, non-zero is 'binary' mode on platforms that distinguish text and binary mode. Currently Windows is the only supported platform that needs this. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12500 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Fix doxygen and other comments, coding style, and alignment.Albrecht Schlosser
Replace QT style doxygen markers "/*!" with Javadoc markers "/**". This commit does not change executable code. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12497 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-15Replace remaining calls to unlink() with fl_unlink().Albrecht Schlosser
Tested under Linux, MinGW, and Visual Studio 2015. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12496 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-13Replace remaining calls to getenv() with fl_getenv().Albrecht Schlosser
... except in driver code that uses Fl_System_Driver::getenv(). Todo: Check if all remaining calls of getenv() in driver code are correct or might use ::getenv() to avoid one calling level for optimization. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12492 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-12Add fl_open_ext() to control whether the file is opened in binary/text mode.Manolo Gouy
This new function allows to write Fl_SVG_Image::fl_gzopen() in a completely platform-independent way. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12489 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04Undo commit at r.12475 that is not adequate.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12476 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-04Fl_SVG_Image class: add support for compressed .svgz image files.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12475 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-09Add platform-independent internal UTF-8 header file.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11568 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-04-01Replace Fl_System_Driver::driver() by Fl::system_driver()Manolo Gouy
for coherence with the Fl::screen_driver() function. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11494 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-30Rewrite fl_utf.c under the driver model: the file disappears and its content ↵Manolo Gouy
is moved to fl_utf8.cxx All functions of fl_utf.c keep their C API in fl_utf8.cxx git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11472 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-29Rewrite fl_utf8.cxx under the driver model.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11467 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-29Remove the platform-dependent type xcharManolo Gouy
File fl_utf8.h defines the xchar type with a platform-dependent value (wchar_t or unsigned short). But it is used exclusively by WIN32 code (0 use in cross-platform code, 0 use in APPLE or in USE_X11 code). Thus, we can just get rid of this type and replace it by wchar_t where it is used. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11459 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-13Details on PORTME items. Move fl_parse_color() to screen drivers.Matthias Melcher
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11163 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-11Mark places that need to be refactored with // PORTME:Matthias Melcher
Searching for __APPLE, WIN32 or X11 did give me many false results. I instead marked most ifdef's that I would like to get rid of with the text // PORTME:, so they can be easily found by a global search. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11155 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-01Clean up fl_args for OS X.Matthias Melcher
Xcode and OS X have the annoying habit of adding the process number and debug information on the command line if an an app is inside a bundle. This is a little cleanup that I thought was useful while going through the code. A better solution would be to remove those system specific arguments from the argc/argv list entirely, as they appear totally unexpected for most developers. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11111 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04Compiling in OS X from the command line goes pretty far for __APPLE__ ↵Matthias Melcher
undefined and FL_PORTING defined. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10995 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-04Created pseudo code for all FL_PORTED section so that FLTK compiles and ↵Matthias Melcher
links (Xcode, hello, other C flags: -D FL_PORTING -U __APPLE__ -U __APPLE_QUARTZ__) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10993 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-03Updated platform specific #if's to report unimplemented code when compiling ↵Matthias Melcher
with FL_PORTING defined and WIN32 and __APPLE__ undefined> git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@10989 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-16Rework of fl_utf8 to fix up some build issues on Win32.Ian MacArthur
Also take a stab at progressing the documentation of the UTF8 helper methods, as started by Albrecht. Hope the stuff I have added makes sense! git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10761 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-15Fix code indenting, remove dead code, improve documentation.Albrecht Schlosser
There was still old (dead) code that had been deactivated by '#if 0'. This code had been obsoleted by other functions, so it was time to remove the dead parts of the code. Many functions were not documented at all. I tried to add documentation, but I ran out of time. Todo: there are still some undocumented functions in src/fl_utf8.cxx. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10760 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-15Fix documentation. Make links an enumeration so they are displayed correctly.Albrecht Schlosser
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10758 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-06-15Fixed non-ASCII characters in Doxygen comment so they are UTF-8 encoded.Manolo Gouy
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10756 ea41ed52-d2ee-0310-a9c1-e6b18d33e121