FLTK - Fast Light Tool Kit - https://github.com/fltk/fltk - cross platform GUI development
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Albrecht Schlosser 0960f1c066 Fl_Window::free_position() must not be deprecated 10 hours ago
.github Simplify CMake build config for test and demo programs 6 days ago
CMake Remove hardcoded version numbers: part 1 1 week ago
FL Fl_Window::free_position() must not be deprecated 10 hours ago
GL Remove $Id$ tags, update URL's, and more 5 years ago
documentation Add more documentation about ABI checking and a script to do it 3 days ago
examples Remove libfltk_cairo (fltk::cairo) 2 months ago
fltk-options Fix "fully support ... own shared libraries" (#1238) 3 weeks ago
fluid Remove hardcoded version numbers (part 2) and more documentation 1 week ago
jpeg Remove autotools (configure/make) support 2 months ago
lib Remove 'configure' from README's and sources (partially) 2 months ago
libdecor Update bundled libdecor to last upstream version (Apr 4, 2025) 1 month ago
misc Add more documentation about ABI checking and a script to do it 3 days ago
nanosvg Update nanosvg/README.txt to reflect recent changes 1 year ago
png Remove autotools (configure/make) support 2 months ago
public Activate GitLab CI and GitLab Pages (HTML docs). 7 years ago
src Fix doxygen warnings 12 hours ago
test Simplify CMake build config for test and demo programs 6 days ago
util Move src/cmap.cxx to util/cmap.cxx (utilities folder) 3 years ago
zlib Remove autotools (configure/make) support 2 months ago
.clang-format Update .clang-format control file 3 years ago
.gitattributes Remove experimental platforms Android, Pico, SDL (PR #376) 3 years ago
.gitignore Update .gitignore: remove configure stuff 2 months ago
.gitlab-ci.yml Update GitLab CI for FLTK 1.5.0 2 months ago
ANNOUNCEMENT Update version numbers to 1.5.0 2 months ago
CHANGES.txt Add new CHANGES.txt for FLTK 1.5 2 months ago
CHANGES_1.0.txt Remove $Id$ tags, update URL's, and more 5 years ago
CHANGES_1.1.txt Fix old URL's and forum/newsgroup names 5 years ago
CHANGES_1.3.txt Update ANNOUNCEMENT and CHANGES files for release 1.4.0 7 months ago
CHANGES_1.4.txt Update version numbers to 1.5.0 2 months ago
CMakeLists.txt Remove hardcoded version numbers: part 1 1 week ago
COPYING Remove $Id$ tags, update URL's, and more 5 years ago
CREDITS.txt Finish release 1.4.0 6 months ago
README.CMake.txt Remove hardcoded version numbers: part 1 1 week ago
README.Cairo.txt Update two README files for 1.5.0 2 months ago
README.IDE.txt Remove experimental platforms Android, Pico, SDL (PR #376) 3 years ago
README.Unix.txt Update more README files for 1.5.0 2 months ago
README.Wayland.txt Remove libfltk_cairo (fltk::cairo) 2 months ago
README.Windows.txt Update README.Windows.txt 5 months ago
README.abi-version.txt Add more documentation about ABI checking and a script to do it 3 days ago
README.documentation.txt Update README and configure related stuff for 1.5.0 2 months ago
README.experimental.txt Remove experimental platforms Android, Pico, SDL (PR #376) 3 years ago
README.macOS.md Upadate macOS README. 2 months ago
README.md Fix a typo and improve formatting in README.md 1 week ago
README.txt More (mostly) documentation updates for FLTK 1.5.0 2 months ago
config.h.in Rename config header input files to better names 1 week ago
fl_config.h.in Remove hardcoded version numbers: part 1 1 week ago
fltk-config.in Update fltk-config.in (minor comment changes only) 2 months ago
fltk.list.in Remove remaining 'pronounced "fulltick"' statements 1 year ago
fltk.spec.in Bump version numbers for release 1.4.1 5 months ago
fltk.xpm Make remaining 'XPM' images 'const' 7 months ago
fltk_version.dat Update version numbers to 1.5.0 2 months ago
forms.h Initial revision 27 years ago
mac_endianness.h Remove $Id$ tags, update URL's, and more 5 years ago
makesrcdist Remove 'configure' from README's and sources (partially) 2 months ago

README.md

README - Fast Light Tool Kit (FLTK) Version 1.5.0

What is FLTK?

The Fast Light Tool Kit (FLTK) is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11 or Wayland), Microsoft® Windows®, and macOS®. FLTK provides modern GUI functionality without bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation. It was originally developed by Mr. Bill Spitzak and is currently maintained by a small group of developers across the world with a central repository on GitHub.

https://www.fltk.org/ https://github.com/fltk/fltk/

Licensing

FLTK comes with complete free source code. FLTK is available under the terms of the GNU Library General Public License with exceptions (e.g. for static linking). Contrary to popular belief, it can be used in commercial software! (Even Bill Gates could use it.)

Online Documentation

The documentation in HTML and PDF forms can be created by Doxygen from the source files. HTML and PDF versions of this documentation are also available from the FLTK web site at:

https://www.fltk.org/documentation.php

Prerequisites for Building FLTK

To build FLTK 1.5 and higher you need:

  • CMake
  • a C++11 capable compiler, e.g. gcc, clang, Visual Studio, Xcode
  • system specific build files (headers, SDK, etc.)

CMake is used to generate the build environment on your system. It can create build environments for a lot of different build tools, please see the CMake documentation for more info.

Since FLTK 1.5 we use C++11 features and you need at least a C++11 capable compiler running in C++11 mode. The minimal C++ standard used for building FLTK and your application may be raised in future versions.

The required header files etc. (build environment or SDK) vary across platforms and are described in platform specific README.* files, e.g. on Unix/Linux systems these are typically provided by the package manager.

Building and Installing FLTK With CMake (Commandline)

On systems where a commandline CMake utility is available (this is the case even on Windows), the commands to build FLTK using CMake can be as easy as:

cd /path/to/fltk
cmake . -B build [ options ]
cmake --build build

These commands create the build folder 'build' inside your source tree, build the library and all test programs.

After successful tests you may install the library with the following command or a similar one, but please be aware that this will install FLTK in a system directory for system-wide use if you don't change the default installation path. We don't recommend this unless you know what you're doing.

sudo cmake --install build  # from the source tree (with CMake)

or

sudo make install           # from the build folder (with make)

Other commands (e.g. make or ninja) may be used as well after the initial cmake command, depending on the CMake generator you used.

For more info on using CMake to build FLTK please see README.CMake.txt.

Building HTML Documentation

FLTK uses Doxygen for documentation, so you'll at least need doxygen installed for creating html docs, and additionally LaTeX for creating PDF documentation.

If you want to build the documentation, change directory to your build folder, for instance

cd /path/to/fltk/build

To build the HTML or PDF documentation, use these CMake commands:

cmake --build . --target html
cmake --build . --target pdf

Note: instead of using the generic CMake commands above you can also use equivalent commands of your build system, e.g. make html or ninja pdf, respectively.

Note: more about building Fluid documentation to be added.

Internet Resources

FLTK is available on the internet in a bunch of locations:

Note that we don't provide pre-compiled (binary) distributions. Consult the package manager of your (Linux, Unix, macOS) operating system.

General Questions

To join the FLTK mailing list, go to the following web page:

https://groups.google.com/forum/#!forum/fltkgeneral

You can find detailed instructions on how you can register for the mailing list (even w/o a Google account) at the bottom of this page:

https://www.fltk.org/newsgroups.php

Since July 2024 we offer GitHub Discussions on our GitHub project page. Use the 'Q&A' section for general questions on building and using FLTK.

https://github.com/fltk/fltk/discussions/categories/q-a

Reporting Bugs

If you are new to FLTK, or have general questions about how to use FLTK, or aren't sure if you found a bug, please ask first on the fltk.general group forum at:

https://groups.google.com/forum/#!forum/fltkgeneral

or on GitHub Discussions (Q&A) as noted above:

https://github.com/fltk/fltk/discussions/categories/q-a

See also paragraph "General Questions" above for more info.

If you are sure you found a bug, please see the following page for further information on how to report a bug:

https://www.fltk.org/bugs.php

Trademarks

  • Microsoft and Windows are registered trademarks of Microsoft Corporation
  • UNIX is a registered trademark of the X/Open Group, Inc.
  • OpenGL is a registered trademark of Silicon Graphics, Inc.
  • macOS is a registered trademark of Apple Computers, Inc.

FLTK is copyright 1998-2025 by Bill Spitzak and others, see the CREDITS.txt file for more info.

This library is free software. Distribution and use rights are outlined in the file "COPYING" which should have been included with this file. If this file is missing or damaged, see the license at:

https://www.fltk.org/COPYING.php

Further Information

For more information see README.txt: https://github.com/fltk/fltk/blob/master/README.txt

Build

Build FLUID User Manual.