Commit Graph

80 Commits

Author SHA1 Message Date
Albrecht Schlosser
c6eccf6137 Call pthread's recursive mutex on Linux (Issue #245)
Add CMake test for PTHREAD_MUTEX_RECURSIVE

Add autoconf/configure compile test for PTHREAD_MUTEX_RECURSIVE

Replace "#ifdef PTHREAD_MUTEX_RECURSIVE"
   with "#ifdef HAVE_PTHREAD_MUTEX_RECURSIVE"
and define HAVE_PTHREAD_MUTEX_RECURSIVE in config.h
2021-07-21 12:16:20 +02:00
Albrecht Schlosser
26c46cc022 Prevent CMake from expanding comments
Unfortunately CMake doesn't check for comments and expands the
example syntax! Is this a CMake bug? Anyway, this is fixed now.
2021-07-08 14:30:13 +02:00
Albrecht Schlosser
5cca79489b Harmonize and document syntax of config.h source files
- configh.in: add and improve comments, reorder statements
- configh.cmake.in: add comments, fix whitespace

- src/drivers/GDI/Fl_GDI_Graphics_Driver_line_style.cxx:
  fix trailing whitespace
2021-07-08 13:59:47 +02:00
ManoloFLTK
b027d2ba57 Windows platform: use GDI+ to antialias oblique lines and curves. 2021-05-31 08:28:06 +02:00
Albrecht Schlosser
f09e17c3c5 Remove $Id$ tags, update URL's, and more
- 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-07-06 20:28:20 +02:00
ManoloFLTK
26e6c3f930 Add classes Fl_SVG_File_Surface and Fl_EPS_File_Surface to draw to SVG and EPS.
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.
2020-06-27 09:56:00 +02:00
Matthias Melcher
b1598dc703 Removed macro FL_PORTING, as it has been more confusing than helpful.
The original intention of FL_PORTING was to mark all places in the
source code where changes are required to port FLTK to a new platform.
Thanks to the driver system, this approach has become somewhat
misleading, so I removed all references.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12969 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2018-06-23 17:04:18 +00:00
Manolo Gouy
1a28d85dc3 Add new Fl_SVG_Image class to support scalable vector graphics images using the (modified) nanosvg software.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12413 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-09-03 13:14:25 +00:00
Manolo Gouy
461750c38e X11 platform: Add optional use of the pango library to draw text, gaining the possibility to draw text in any script supported by Unicode.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12153 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-21 15:05:02 +00:00
Manolo Gouy
21781c3fe9 Add --enable-print option to configure to allow building without print support on X11 platforms.
Also, the NO_PRINT_SUPPORT preprocessor variable is renamed FL_NO_PRINT_SUPPORT.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12131 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-12-01 17:31:29 +00:00
Albrecht Schlosser
d11db7adfa Add missing configure options to configh.in.
Make config.h generated by configure and CMake better comparable.

Note: these options were defined in configh.cmake.in and implemented
only in CMake. Implementation in configure is still missing though.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12127 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-11-30 14:13:01 +00:00
Albrecht Schlosser
0a6be0a83f Fix compiler warnings (STR 2988), porting from branch-1.3.
This commit is the accumulated patch introduced in branch 1.3
in svn r 11094, 11095, and 11096.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11097 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-01-31 04:33:54 +00:00
Albrecht Schlosser
3beb45165a [CMake] config.h, part 2 - full compatibility with autoconf.
This commit makes the file config.h generated by CMake 100% compatible
with the one generated by autoconf/configure.

Fixes in this commit:
 - Set FLTK_DATADIR and FLTK_DOCDIR with the same default values.
   Note: needs some cleanup, option values are not clear, '/fltk'
   is currently appended in export.cmake (needs improvement).
 - Simulation of autoconf macro AC_HEADER_DIRENT for correct
   definition of only one 'dirent' header file.
 - Fix more function checks:
    - dlsym
    - png_get_valid
    - png_set_tRNS_to_alpha
 - Improve "Big Endian" check for __APPLE__ (mac_endianness.h).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10985 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 21:13:07 +00:00
Albrecht Schlosser
4f5e6e7732 Harmonize configure and CMake build system (part 1).
The files "config.h" generated by configure and CMake are now almost
identical, except a few comments and some still missing or failing
config tests, for instance checks for some functions in libraries.
[Note: tested and compared on Linux.]

configh.cmake.in: Fixed many #cmakedefine and #cmakedefine01 statements
  so they #define their variables as 0 or 1, or /* #undef */ it, resp.,
  as it is done in the configure build.

Added tests:
  - libXrender

Fixed tests:
  - function glXGetProcAddressARB

Todo (still failing tests in CMake):
  - HAVE_PNG_GET_VALID
  - HAVE_PNG_SET_TRNS_TO_ALPHA
  - HAVE_DLSYM

Other remaining issues:
  - compiler flags introduced in configure/make build
  - HAVE_SYS_NDIR_H - maybe missing test in configure ?
  - HAVE_SYS_DIR_H  - maybe missing test in configure ?
  - HAVE_NDIR_H     - maybe missing test in configure ?
  - WORDS_BIGENDIAN and #include <mac_endianness.h> ...
    i.e. Mac OS X specific #include needed or not ?



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10984 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 14:37:35 +00:00
Albrecht Schlosser
17c4817592 Add configure and CMake checks for X11/Xregion.h.
Configure and CMake now both check if X11/Xregion.h exists on the
build system and set HAVE_X11_XREGION_H in config.h accordingly.

src/Fl_Pixmap.cxx: modified to use the configure test as proposed by Manolo
in fltk.coredev on Dec 13 2015 in thread "Using X11 backend on OS X".


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10983 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-30 12:10:15 +00:00
Lauri Kasanen
a6c4b29a18 Detect XRender support
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10622 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-16 11:07:00 +00:00
Pierre Ossman
332dc1b7ac Add method to set any custom cursor, based on a Fl_RGB_Image object.
Also change our fallback cursors to use this method, so that fallback
cursors are handled in a platform independent manner. STR #2660.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10196 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-06-16 11:17:57 +00:00
Pierre Ossman
1d6cc80d59 STR 2636. Add ability to get notifications whenever the
clipboard changes.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9974 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-09-11 12:54:40 +00:00
Albrecht Schlosser
e9767cce34 Removed autoconf/configure and CMake tests and defines for
unused function strtoll() [resolves one part of STR #2965].


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9923 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-05-22 10:40:58 +00:00
Manolo Gouy
f309c395fc STR#2600 again: under X11, dynamically load the libXrandr shared library.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9123 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-10-04 09:21:47 +00:00
Manolo Gouy
9bdc310346 Fix STR#2600 : screens configuration changes are now detected under all platforms.
Requires the RandR X extension.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9102 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-09-30 14:46:08 +00:00
Greg Ercolano
4f4a8fc3c7 Modifications to all LGPL headers for STR #2685.
(to clarify static exception LGPL by changing license references)



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8864 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-07-19 04:49:30 +00:00
Manolo Gouy
937ddb60c1 Fix STR #2582 (Mac OS): The problem: under Mac OS, file config.h can be used with distinct
architectures when using configure --with-archflags option, thus file config.h should not contain
architecture-dependent definitions.
The fix: 1) don't use autoconf's endianness determination procedure because it can't give a result
that fits both big and little endian architectures.
2) have config.h include a mac-specific file under Mac OS.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8511 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-03-06 16:54:58 +00:00
Manolo Gouy
bc509d32eb Fix STR #2504 (first part). Replaced HAVE _CAIRO by FLTK_HAVE_CAIRO and USE_CAIRO
by FLTK_USE_CAIRO everywhere.

git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8198 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-06 10:24:58 +00:00
Matthias Melcher
a803cec1b7 Fixed even more Copyright to 2010. Probably still forgot some.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7906 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-28 21:28:30 +00:00
Manolo Gouy
8fa3fc272a Removed USE_QUARTZ, __APPLE_COCOA__, __APPLE_QD__ that are no longer used
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7872 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-11-18 18:39:32 +00:00
Matthias Melcher
38aa53038c Started to remove USE_QUARTZ, as all Apple implementations use Quartz as their Graphics Rendering system now.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7353 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-03-29 10:54:18 +00:00
Matthias Melcher
b2cffc688e Moved OS X code base to the more moder Cocoa toolkit thanks to the awesome work of Manolo Gouy (STR #2221). This is a big one! I tested all test applications under 32-bit autoconf and Xcode, and a few apps under 64bit intel. No PPC testing was done. Please verify this patch if you have the machine!
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6951 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-12-06 22:21:55 +00:00
Albrecht Schlosser
f42c541529 Fixed glibc 2.10 compiler problems (Fedora 11 and others) with scandir()
and strchr() (STR #2222).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-07-23 22:51:56 +00:00
Fabien Costantini
a33d0a6d29 STR#2035 fix : Changed all 1998-200[0-8] dates to 1998-2009 for supported fltk files (this excludes i.e the png subdir).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6626 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2009-01-12 14:52:45 +00:00
Fabien Costantini
268ffc6ef2 Cairo increment 2: Finer cairo granularity, less deps, new fltk_cairo lib
+ added new USE_CAIRO config preprocessor def. 
   to differentiate from HAVE_CAIRO so that we can use the cairo lib 
   without forcing the full fltk lib to be linked against it.
   In that case, cairo autolink context functionality which needs fltk lib 
   instrumentation is disabled.
 + added new --enable-cairoext, which correspond to previous --enable-cairo.
   now, --enable-cairo only adds HAVE_CAIRO def. and keeps fltk lib
   from referencing cairo.
   In both cases (--enable-cairo & --enable-cairoext), a new fltk_cairo lib is 
   created. This lib, similarly to local versions of png,jpeg and zlib, 
   is not generated if cairo is not enabled.
 + added cairo to fltk-config : now new --use-cairo flag is available
 + modified all unix like makefiles to now generate minimum cairo deps and also
   new libfltk_cairo lib.
 + added new cairo subdir to permit conditional fltk_cairo lib generation. 
 + vc2005 project minimum update to compile without be broken, but still needs
   to create a similar fltk_cairo independent lib. For now, it works as before
   with a dedicated cairo env. similar to --enable-cairoext context in unix.
 + regression tested ok with cairo disabled on win32, mac osx, mingw.
  


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6462 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-10-19 01:42:35 +00:00
Fabien Costantini
ffad932289 + Cairo branch merged after successful testing on Mac OS X 10.5.4, Linux Ubuntu 8.04,Windows XPSP2.
This integration is minimum as discussed, in particular it does not feature any fltk cairo drawing substitution
  as in fltk2.
  Still it provides all the fundations to go further even in next 1.4 ... 
  By default *no* cairo features are implemented nor linked, it can only be activated by --enable-cairo
  whose default is false.
  Please visit the README.cairo for complete description.

+ fixed UTF8 compilation pb on linux ubuntu

+ minor comments fixes on the fly



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6350 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2008-09-25 18:26:33 +00:00
Michael R Sweet
e173e7bec0 Add header check for dlfcn.h.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5678 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2007-02-08 20:14:30 +00:00
Michael R Sweet
4d6faca615 Add support for glutGetProcAddress() on Mac OS X and other platforms
via dlsym() (STR #1582)


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5673 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2007-02-08 15:44:28 +00:00
Michael R Sweet
1c61b1297d Fix glXGetProcAddressARB() usage and support for POSIX threads on HP-UX 11.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5660 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2007-02-05 03:20:30 +00:00
Michael R Sweet
7dd1ddbeef FLTK now enables large file support when available (STR #1087)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4702 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-12-14 00:39:55 +00:00
Michael R Sweet
2f40b8b80b Start adding support for sound in Sudoku via ALSA.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4684 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-12-05 00:55:01 +00:00
Matthias Melcher
458d1dc75d Attempt to make 'localeconv()' part of the configuration process. VC6 works, but I'll need feedback for all other platforms... . Trying OS X in a few minutes.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4454 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-07-24 18:41:30 +00:00
Michael R Sweet
cc593f6b64 Add Fl::screen_count() and Fl::screen_xywh() APIs to support multi-
screen displays (currently only X11 support with Xinerama)



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4223 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-03-31 16:01:24 +00:00
Michael R Sweet
add37faa25 Copyright updates.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@4052 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2005-02-24 21:55:12 +00:00
Matthias Melcher
8327822026 Updated config stuff to allow for --enable-quartz ofr Mac OS X which in
turn defined USE_QUARTZ to 1 and defines __APPLE_QUARTZ__. If Quartz
is not disabled, it will define __APPLE_QD__ for Quickdraw.

I also replaced all relevand #ifdef __APPLE__ with #ifdef __APPLE_QD__
#elif defined(__APPLE_QUARTZ__). This does not affect the compile at
this time and both version will generate the same Quickdraw code.

I will start to replace all QD calls with Quartz calls for the
remainder of the week until I can completely remove all QD calls from
the Quartz branch.

Thanks to Robert Smith for a great initial Quartz implementation.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3782 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2004-08-25 00:20:27 +00:00
Michael R Sweet
a3d0905c9e Copyright updates and prep for 1.1.5rc1.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3391 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2004-04-11 04:39:01 +00:00
Michael R Sweet
00cb676e11 Copyright update for 1.1.3 release (not quite yet, but soon...)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2936 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2003-01-30 21:46:07 +00:00
Michael R Sweet
e001b30f18 Define bool=char, true=1, and false=0 for C++ compilers that don't
support bool.  This isn't as nice as the config.h solution, but it will
make sure that apps that use fltk-config to get the CXXFLAGS will work
on all compilers.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2688 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-10-23 15:18:57 +00:00
Michael R Sweet
3939b6cde5 Dammit, the NEdit code update before 1.1.0 introduced "bool" back into
Fl_Text_*.  Rather than breaking binary compatibility, add the necessary
configure check and code in config.h.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2682 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-10-22 13:45:23 +00:00
Michael R Sweet
a11a31ff78 Range check Fl_Text_Buffer::search_forward().
Don't use png_read_destroy() - it doesn't free all memory.

Add uncache() method to image classes.

Memory/initialization bugs in Fl_File_Chooser (valgrind)

Make sure both Fl_Window constructors have default cursor initialization
code...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2562 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-08-05 17:50:25 +00:00
Michael R Sweet
88d54cd78b Massive update to use strlcpy() and strlcat() instead of strncpy()
and strncat() in almost all places (there are still a few strncpy's
that need to be used...)

Added configure check for strlcat() and strlcpy().

Added emulation code for strlcat() and strlcpy().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2239 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-05-16 12:47:44 +00:00
Michael R Sweet
44bb5f60de Add Fl_Preferences class to base library.
Add FLTK_DATADIR definition to config.h for system-wide configuration
data.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2126 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-04-28 16:41:17 +00:00
Michael R Sweet
7b99f66d03 Add check for libpng/png.h as well as png.h, and include the appropriate
one as needed...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2106 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-04-24 18:29:06 +00:00
Michael R Sweet
b6c5ed9c33 Define USE_XDBE to HAVE_XDBE value...
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2033 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2002-03-25 21:56:41 +00:00