- move target (demo) specific code from macro to CMakeLists.txt
- refactor macOS specific code for a cleaner structure
- improve documentation
Note: CMake ignores platform specific code like creating bundles on
other platforms, hence the entire code could be simplified (less
conditional code)
A previous commit c66caf5dce
"Simpler implementation of Fl_Cocoa_Window_Driver::resize()"
made that Fl_Window::resize() was no longer called by FLTK when a
window is moved. This prevented the undocumented practice of
re-implementing the virtual function Fl_Window::resize() and use it
as a way to get a notification that a window was moved.
The changes proposed by Tadej Panjtar (tpanj) were obsolete WRT
current Git repo. Thanks to tpanj anyway, I did also apply the
simplifications of sudoku.rc.
fix dead links to Fl_Group::resizable(Fl_Box *box)
reorder paragraphs to highlight different behaviour
add link to new "How does resizing work?" chapter in dox
- raise minimum CMake version from 2.6.3 to 3.2.3 (Jun 01, 2015)
- indent all CMake files according to the CMP (2 col.)
- refactor FLTK version number definitions and usage
- unify CMake and autoconf/configure variable names:
- FL_VERSION -> FLTK_VERSION
- FL_MAJOR_VERSION -> FLTK_VERSION_MAJOR
- etc. for _MINOR_ and _PATCH_, respectively
- note: this does not affect FL_VERSION etc. in source code
- generate "export headers" for all libraries (experimental: OFF)
- port some forgotten goodies from branch-1.3 to master
- merge and improve macro 'create_example' (WIP)
- remove "temporary" options and code for older CMake versions
- include and use 'GenerateExportHeader' (experimental, WIP: OFF)
- note: created header files are not yet used
- build only *one* DLL with Visual Studio (tested, works)
- similar to the bundled IDE projects in 1.3.x
- add some dynamically linked test/demo programs ('*-shared')
if shared libraries are built (WIP)
- split 'macros.cmake': use one file per macro
Pulling in Greg & Albrecht's work on PR #99 and PR #103.
This includes supporting operating system error messages
in the user's local language, which took some extra effort.
We need to get the error message in "wide character" format and
convert it to UTF-8. The conversion would truncate it if the
buffer was too small, hence we don't need to check for overflow.
Tested on Windows 10 with VS 2010, including (faked) error codes with
non-ASCII characters (German).
strerror_r() sounds like the better thing to use, but if you
read the man page carefully, there are pitfalls of competing
GNU vs POSIX versions of the same function, with different
return values.
GNU version returns a pointer to the error string, which may
or may not use the error string supplied to use. Makes no sense.
Why not use the buffer the user prepared? Makes returning errors hard.
One thing GNU does underline is the string is always NUL terminated.
POSIX version doesn't return a string at all, it returns an int,
making handling the GNU cases impossible. POSIX /doesn't/ say
one way or the other about the string being NUL terminated, so
you have to make sure when you use it.
I trawled the net, seems this is a big annoying issue.
For now, leaving the code with strerror(), but we should change it.
A lot of code touched because low level functions needed to pass up
error messages reliably, and this had to propagate up the entire
driver hierarchy.
Tested OK *in English* on:
> Linux
> OSX 10.10.x
> Windows VS2017
> Windows mingw64
I have no way to test on Android, but it might work.
TODO: Needs testing in other languages to verify proper UTF8 error messages,
esp. with Windows VS, due to complexities with FormatMessage() -- see get_ms_errmsg()
Also small but unnecessary code change to reset row_edit/col
to zero after editing for example clarity.
Unnecessary b/c those vars are ignored anyway when input
visibility turned off, so change is more cosmetic codewise.
Fluid would write trailing whitespace at some points when generating
.cxx and .h files from .fl files.
This was an old issue but became obvious since we removed trailing
whitespace from source and header files recently.
This commit fixes all whitespace errors in files generated from .fl
files in the FLTK repository, i.e. in fluid/, src/, and test/ folders.
I can't guarantee that I found all possible whitespace errors, but
this commit:
Fixes#100
Amended by Albrecht:
- rename union member variables as discussed
- add comments to new array_ union members
Fixes#96
Signed-off-by: Albrecht Schlosser <albrechts.fltk@online.de>
- 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.
Test programs device and pixmap_browser use these new classes.
Class Fl_SVG_File_Surface can be optionally made non functional using the
--disable-svg configure option or turning off OPTION_USE_SVG in CMake.
Class Fl_EPS_File_Surface can be optionally made non functional using the
--disable-print configure option or turning off OPTION_PRINT_SUPPORT in CMake.
As documented, Fl::next_window(win) must only be called with a valid
*shown* window. The old code would crash if the argument was NULL
or the window was not shown.
The new code avoids the crash, issues an error message, and returns
NULL to the caller.
Commit 6fe226cb80 introduced use of
pkg-config which broke linking from fltk-config if FLTK was
configured to use pango library.
This patch duplicates line from another if branch that just adds
libraries assuming that if pkg-config found pangoxft that there
are present all it's requirements.
Some of the test programs were linked with libfltk_forms which was
unnecessary. The only one requiring this is the forms demo.
[CMake] reordered linked FLTK libs in dependency order.
If a user program accidentally deletes the "current" group, then
the pointer would still point at the deleted widget. This commit
prevents this and makes the Fl_Group's parent the current group.
Fixes issue #88.
Clean up library and variable names.
Remove '_SHARED' suffix from library (output) filenames.
This commit was inspired by David Runge ('dvzrv'), thanks.
See PR #21.
Fixes#21
Cherry-pick the essential changes from FLTK 1.3 since this change
had not been ported to 1.4 yet.
To do: my current plan is to consolidate 1.3 and 1.4 CMake files
as far as possible (with the exceptions of source files, obviously)
and to redesign / refactor CMake files later in this process or
maybe only for 1.4 if it turns out to be too much to backport.