Commit Graph

161 Commits

Author SHA1 Message Date
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
Greg Ercolano
821d2fdf82 Added Unicode Boxes unittest and README-unittests.txt
This test helps check for issues with multiline widgets
drawing text properly.

The README-unittests.txt was added to help developers
add new unit tests easily.
2022-12-11 10:18:06 -08:00
Albrecht Schlosser
f37aca15e9 Add Fl_Flex widget from Karsten Pedersen (issue #255)
This work is based on the repository and latest commit:
  https://github.com/osen/FL_Flex.git

  commit 36e4ed75a00daac825b87e81295818b4650991f5
  Author: Karsten Pedersen <...>
  Date:   Fri Apr 23 12:06:16 2021 +0000

    Added Fltk (LGPL) license.

This widget is similar to Fl_Pack and supports either one row or one
column of widgets but has some more features. Test and demo programs
are included:

  test/flex_login.cxx: simple "login window" demo program
  test/flex_demo.cxx:  slightly more complex demo program

The original demo programs can still be compiled and built with
the new widget provided you '#include <FL/Fl_Flex.H>'.
Backwards compatible methods are included (except debug()).

The original widget has been modified to match FLTK standards and
enhanced in several ways, including:

- support box frames
- add HORIZONTAL and VERTICAL enum values (as in Fl_Pack)
- add horizontal() method (as in Fl_Pack)
- use type() rather than internal 'direction' variable
- add standard widget constructor (x, y, w, h, label)
- add margin and gap accessors rather than hard coding constants
- improve test and demo programs
- add documentation
- replace <vector> with array as required by FLTK CMP
- rename camelCase method names, keeping old names for compatibility:
  - change 'setSize(Fl_Widget*, int)'   to 'set_size(Fl_Widget*, int)'
  - change 'bool isSetSize(Fl_Widget*)' to 'int set_size(Fl_Widget*)'
- remove debug() method
- add a way to "unset" fixed size: set_size(Fl_Widget *, 0)
- add layout() method to force recalculation of children
- unify resizeRow() and resizeCol() methods to avoid code duplication
- improve widget size calculation.
2022-08-01 15:33:20 +02:00
Matthias Melcher
db0a1f4bae
OpenGL implementation of all fl_ "Drawing Fast Shapes" graphics calls (#385)
* Fix build system for unites,

* Updated unittest to check OpenGL drawing.

Making sure that OpenGL drawing is exactly the same
as native drawing to make FLTK widget rendering
look the same in GL windows.

* Make OpenGL optional.

* Implemented clipping in OpenGL

* unites drawing fast shapes

* Fixed CMake

* Updating unittest.

Added tests for fl_pi and fl_arc (int)
Renamed tab to render complex shapes.

* Improved OpenGL FLTK drawing emulation.

* Fixed GTK ROUND DOWN BOX

* Fixing Makefile for unittest

* Correctly aligning OpenGL text.

* Fixed text alignment in GL windows.

Explained the "FLTK over GL " example in Cube.

* Overlapping test.

* Better GL graphics alignment.

* Drawing the focus rect.

* Adding Alpha Channel support for GL.

* Added FLTK-on-GL documentation.
2022-02-06 15:22:24 +01:00
Albrecht Schlosser
0bc06e8f1a Reformat and move clipboard demo from examples to test folder
The clipboard demo is more a test program than an example and very
useful even if the examples are not built.

Also update dependencies.
2021-11-18 13:44:41 +01:00
Albrecht Schlosser
ff4288fc2b Add new resize examples to Makefile, update dependencies 2021-11-08 17:48:57 +01:00
Albrecht Schlosser
773467dee4 Refactor macOS bundle generation to avoid "quarantine"
macOS Big Sur 11.3 introduced a new "security feature" such that
app bundles created from existing bundle templates in downloaded
files (tar distibutions, expanded) could no longer be executed
without unsetting the "quarantine" attribute. This commit fixes
this by creating all bundles from scratch.

Known *workaround* for older tarballs and snapshots:

  $ xattr -d -r com.apple.quarantine xxx.app
2021-05-13 16:18:13 +02:00
Albrecht Schlosser
49a78bc482 Fix cairo build (autoconf + CMake) + README's
- rewrite to use pkg-config with both autoconf + CMake
- remove hardcoded library names
- fix build dependencies and search directories
- remove or replace old and unused variables
- update README files

To be done:
- implement fallback for autoconf/configure if pkg-config is missing
- fix pango build (uses cairo internally)
2021-03-01 10:45:59 +01:00
ManoloFLTK
f787a1b4e4 Remove build-time warning.
The warning message was:
Makefile:318: warning: ignoring prerequisites on suffix rule definition
2020-12-02 21:12:15 +01:00
Albrecht Schlosser
206675a3b1 Fix examples build (configure/make)
Fix more issues caused by moving fltk-versions from examples to test
and adding examples to the CMake build process (gitlab-ci)
2020-08-21 20:00:00 +02:00
Duncan Gibson
c132ac564e add resize examples as per STR3433
add example code for creating images for resize.dox
based on Article #415: How does resizing work?
https://www.fltk.org/articles.php?L415

see also https://www.fltk.org/str.php?L3433
2020-07-20 14:08:47 +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
8d4b0c15f7 Move class Fl_SVG_File_Surface from libfltk to libfltk_images.
File examples/SVG_File_Surface.cxx is no longer useful because it was a very
partial implementation of what is now class Fl_SVG_File_Surface.
2020-06-29 11:36:09 +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
Albrecht Schlosser
69d58f485a Remove superfluous dependency on forms library
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.
2020-06-21 13:39:25 +02:00
Albrecht Schlosser
1078b8fe43 Update dependencies
Change sort order using -f (--ignore-case):
  fold lower case to upper case characters
2020-06-13 12:50:06 +02:00
Albrecht Schlosser
95165884b6 Support cross-compilation with autotools
We use the host system's `fluid` when cross-compiling. This must be
executable as `fluid`, i.e. it must be in the PATH or otherwise
defined, for instance as an alias.
2020-06-10 16:24:39 +02:00
Albrecht Schlosser
bebb116a06 Update test/Makefile for checkers build with fluid 2020-01-04 01:33:06 +01:00
Albrecht Schlosser
44b2b7126c Update dependency system
Try to make `make depend' independent of locale.
2019-06-22 23:42:39 +02:00
Greg Ercolano
446c707771 Additional Makefile rules and source files for issue #29.
This adds source png and xcf files for checkers pieces.
Also adds Makefile rules using xxd to convert .png -> .h as requested by Albrecht
in issue #29, (hmm, no comment numbers github?)..message dated "June 22nd 2019 4:22am PDT".
2019-06-22 09:18:37 -07:00
Greg Ercolano
c9c51dbc48 Fix issue #29: Updated buggy/ugly checkers piece icons
OP noticed our one-bit xbm images demonstrated an X11 driver bug
on certain hardware. While it's good that our test programs show the bug
(e.g. test/bitmap), it's bad that our games do.

Removed the 16 xbm files used by checkers which simulated transparency
with dithered images, and replaced with 4 "hexdump" png files that are
cleaner/simpler looking for such lores pieces (46x46 pixels).

Will follow up with a separate commit for the source .png and gimp .xcf
file I used for making the pieces.
2019-06-22 09:02:06 -07:00
Albrecht Schlosser
f78ef314aa Update dependencies
Note: these dependencies are not complete and will likely never be
because they depend on different configurations.
2019-03-28 11:42:09 +01:00
Albrecht Schlosser
024064cb4e Remove duplicate source from Makefile (and sort it)
It's easier to notice duplicate files if they are sorted.
2019-02-09 15:39:41 +01:00
Albrecht Schlosser
80ad88555f Sort makedepend files for better comparability
The intention is to improve (and minimize) diffs when dependencies
are changed and `make depend' is executed.

(1) use `makedepend ... -w 20'
(2) `sort -u' the resultant file with some more "magic".

(1) makes sure that there is only one dependent file per line,
(2) makes lines unique since `makedepend' can output one file
    many times which is redundant and makes diffs hard to read.

This uses 'mv', 'grep', and 'sort' in all FLTK library Makefiles.
Image libraries are intentionally left for a later update.
2019-01-18 15:44:24 +01:00
Albrecht Schlosser
9177c6e4cc Fix dependencies (STR 3506)
test/fracviewer.cxx wouldn't be compiled if the ABI version was
changed with configure and `make' was executed w/o `make clean'.
Add 'fracviewer.cxx' to list of source files to fix this.

Also add missing unittest_scrollbarsize.cxx to dependencies of
unittests.o.

Finally run `makedepend' to update dependencies.

Note: cherry-picked from branch-1.3 and adjusted to fit master (1.4)
2019-01-18 14:09:44 +01:00
ManoloFLTK
6c876189d8 Fix MacOS-specific regression appeared with move to git when building test with configure.
The svn contained empty directories, e.g., test/blocks.app/Contents/MacOS/
Git apparently can't store empty directories.
The test/Makefile is modified to create these directories at build-time.
2018-12-09 16:34:49 +01:00
Greg Ercolano
68f07db58a Added Fl_Simple_Terminal widget, and mods to test+example programs (STR #3411).
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12506 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-10-17 00:28:56 +00:00
Albrecht Schlosser
16774ddc4e Rename test/help demo program to test/help_dialog.
This change avoids a name conflict with CMake's auto-generated target 'help'
for "Unix Makefiles", "Ninja", and supposedly other generators as well.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12171 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2017-02-08 02:06:52 +00:00
Manolo Gouy
86e48ce2ca configure build and Mac platform: make the colbrowser and help demo find their data file
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11928 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-07 16:05:55 +00:00
Manolo Gouy
36717ec845 Output also a bundled version of demo, as done for all other test apps under Mac OS platform.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11915 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-09-01 19:41:26 +00:00
Albrecht Schlosser
3f401f4477 Add Ian's offscreen test program.
Same commit as branch-1.3, svn r11287.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11288 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-03-05 00:53:40 +00:00
Manolo Gouy
54c1c935e6 Stop using ide/Xcode4/plists/editor-Info.plist because ide will be removed.
This file is moved to the test/ directory.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11120 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2016-02-02 08:58:33 +00:00
Manolo Gouy
8ac33d6b71 Mac OS: Enhanced the application bundle for the editor demo
so it is launchable by dropping any file on its icon. This is
done both for the configure/make and the CMake build systems
(the Xcode build system did that already).
The editor demo is the only one calling fl_open_callback().


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10981 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-12-29 16:41:15 +00:00
Lauri Kasanen
70d6d20e11 Add a test program to benchmark alpha blending.
The new XRender code uses 21 times less cpu than the old
read-back-and-manually-blend option. The blending is also
GPU-accelerated where possible, but works in software on
vesa/fb drivers.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10630 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2015-03-16 18:23:59 +00:00
Albrecht Schlosser
eb1af07952 Add Fl_Window::wait_for_expose() and test program (STR #3124).
Also modified .gitignore, svn-properties, Makefile and CMake-Files.

Todo: test/twowin.cxx and test/windowfocus.cxx need to be added to ide files
(MS VC++ and Xcode).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10339 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-26 23:58:05 +00:00
Lauri Kasanen
7ebbe0baf4 Add a two-window focus test
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10277 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-09-05 12:45:49 +00:00
Pierre Ossman
f58b1a91b3 Add ability to set custom icons for windows. STR #2816.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@10197 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2014-06-16 11:39:32 +00:00
Greg Ercolano
bedb7fd6f0 Fixes STR# 2973: collection of Sun compiler fixes to Makefiles.
o Adds $(CXXFLAGS) to $(CXX) commands
    o Implements older, more backwards compatible Bourne shell test(1) syntax for equality tests (= vs ==)



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9981 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-09-21 17:23:09 +00:00
Greg Ercolano
ceb12d51ab Added unittest for checking symbol rendering and fl_measure() with symbols.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9850 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-03-27 18:32:41 +00:00
Greg Ercolano
4a2e8fa883 Added schemes test to unittests app, to check fltk schemes for artifacts.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9834 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2013-03-08 20:37:00 +00:00
Manolo Gouy
598e2cb63b MacOS: create a bundled version of all example programs with fltk-config --post
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9736 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2012-12-05 14:53:03 +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
1e26d2db61 Removed uses of Fl_Native_File_Chooser_{MAC,WIN32}.H that no longer exist.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8389 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-02-06 14:08:08 +00:00
Albrecht Schlosser
d655684c77 Added missing dependency on tree.fl, and extended target clean to delete
all fluid-generated .h files (as well as .cxx files).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8297 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2011-01-22 16:56:12 +00:00
Albrecht Schlosser
e1cff96f1f Added Windows Resource Compiler ("RC") to configure/makeinclude for
easier cross-compiling (not yet fully supported).


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7973 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-12-08 09:48:07 +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
Albrecht Schlosser
998cc6df52 Merge of branch-1.3-Fl_Printer, with the following main changes:
(1) adding Fl_Device class (and more) for device abstraction
 (2) adding Fl_Pinter class (and more) for printing support.

Todo: Code cleanup, update dependencies, remove/replace test print window.
I'm looking into converting the test window popup in a global shortcut
that would pop up the print dialog now...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7263 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-03-14 18:07:24 +00:00
Albrecht Schlosser
6fe1ac09f4 makedepend updates for all source directories (except src/xutf8).
src/Makefile:	adjusted WIN32 and Mac dependencies
test/Makefile:	dto.

Todo: src/xutf8/makedepend needs to be checked. There are obviously functions
and headers that are included in a platform dependent way.


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7032 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-01-27 20:16:38 +00:00
Ian MacArthur
7c3ae1559b I've tweaked the demo.menu to include Greg's new native file chooser test alongside the
existing fltk file chooser test.

Also, I've taken the liberty of making the native file chooser load the system icons by default
(Greg had them not loaded by default, but I think it looks better with them...) and I have
adjusted the Makefile accordingly to make the linked libraries match.



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7000 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-01-14 18:42:13 +00:00
Greg Ercolano
1de0988c31 Added Fl_Native_File_Chooser widget (with manolo's cocoa mods) to FLTK.
* Source brought into CMP standards compliance
	* test program added (test/native-filechooser.cxx)
	* Tested with linux (Ubuntu8) and with OSX (cocoa and non-cocoa builds)

TODO:
	* Needs doxygen docs from Greg's original HTML documentation
	* Needs mods to Windows build files
	* Needs mods to cmake, and other build files
	* Needs Manolo's latest mods (from STR #2298) mentioned on and after "02:05 Jan 13, 2010"



git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@6997 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2010-01-13 23:13:59 +00:00