Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Meaning of the name  





2 Architecture  



2.1  Language bindings  





2.2  GUI designers  







3 Use  





4 Versions  



4.1  1.0.x  





4.2  1.1.x  





4.3  2.0 branch  





4.4  1.2.x  





4.5  1.3.x  





4.6  1.4.x  





4.7  3.0 branch  







5 See also  





6 References  





7 External links  














FLTK






العربية
Български
Deutsch
Español
Français
Bahasa Indonesia
Italiano
Nederlands

Norsk bokmål
Polski
Português
Русский
Suomi
Türkçe
Українська

 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


FLTK
Initial release1998; 26 years ago (1998)
Stable release1.3.9 (December 9, 2023; 6 months ago (2023-12-09)[1]) [±]
Preview releaseexperimental-2022-01 (January 23, 2022; 2 years ago (2022-01-23)) [±]
Repository
Written inC++
Operating systemUnix-like with X11, macOS, Microsoft Windows, AmigaOS 4
TypeUser interface library
LicenseGNU Lesser General Public License version 2 with an exception to allow static linking[2]
Websitewww.fltk.org

Fast Light Toolkit (FLTK)[3] is a cross-platform widget (graphical control element) library for graphical user interfaces (GUIs), developed by Bill Spitzak and others. Made to accommodate 3D graphics programming, it has an interface to OpenGL, but it is also suitable for general GUI programming.

Using its own widget, drawing and event systems abstracted from the underlying system-dependent code, it allows for writing programs which look the same on all supported operating systems.

FLTK is free and open-source software, licensed under GNU Lesser General Public License (LGPL) with an added clause permitting static linking from applications with incompatible licenses.

In contrast to user interface libraries like GTK, Qt, and wxWidgets, FLTK uses a more lightweight design and restricts itself to GUI functionality. Because of this, the library is very small (the FLTK "Hello World" program is around 100 KiB), and is usually statically linked. It also avoids complex macros, separate code preprocessors, and use of some advanced C++ features: templates, exceptions, and run-time type information (RTTI) or, for FLTK 1.x, namespaces. Combined with the modest size of the package, this makes it relatively easy to learn for new users.[4]

These advantages come with corresponding disadvantages. FLTK offers fewer widgets than most GUI toolkits and, because of its use of non-native widgets, does not have native look-and-feel on any platform.

Meaning of the name[edit]

FLTK was originally designed to be compatible with the Forms Library written for Silicon Graphics (SGI) machines (a derivative of this library called XForms is still used quite often). In that library, all functions and structures start with fl_. This naming was extended to all new methods and widgets in the C++ library, and this prefix FL was taken as the name of the library. After FL was released as open source, it was discovered that searching "FL" on the Internet was a problem, because it is also the abbreviation for Florida. After much debating and searching for a new name for the toolkit, which was already in use by several people, Bill Spitzak came up with Fast Light Tool Kit (FLTK).[5]

Architecture[edit]

FLTK is an object-oriented widget toolkit written in the programming language C++. While GTK is mainly optimized for the X Window System, FLTK works on other platforms, including Microsoft Windows (interfaced with the Windows API), and OS X (interfaced with Quartz). A Wayland back-end has been implemented and will be available in release 1.4.0.[6] FLTK2 has gained experimental support for optionally using the cairo graphics library.

Language bindings[edit]

A library written in one programming language may be used in another language if language bindings are written. FLTK has a range of bindings for various languages.

FLTK was mainly designed for, and is written in, the programming language C++. However, bindings exist for other languages, for example Lua,[7] Perl,[8] Python,[9] Ruby,[10] Rust[11] and Tcl.[12]

For FLTK 1.x, this example creates a window with an Okay button:

# include <FL/Fl.H>
# include <FL/Fl_Window.H>
# include <FL/Fl_Button.H>

int main(int argc, char *argv[]) {
   Fl_Window* w = new Fl_Window(330, 190);
   new Fl_Button(110, 130, 100, 35, "Okay");
   w->end();
   w->show(argc, argv);
   return Fl::run();
}

GUI designers[edit]

FLTK includes Fast Light User Interface Designer (FLUID), a graphical GUI designer that generates C++ source and header files.

Use[edit]

Many programs and projects use FLTK, including:

Versions[edit]

This version history is an example of the sometimes tumultuous nature of open-source development.[34]

1.0.x[edit]

This is a prior stable version, now unmaintained.

1.1.x[edit]

This is a prior stable version, now unmaintained.

2.0 branch[edit]

This was a development branch, long thought to be the next step in FLTK's evolution, with many new features and a cleaner programming style. It never achieved stability, and development has largely ceased. The branch is inactive now.

1.2.x[edit]

This was an attempt to take some of the best features of 2.0 and merge them back into the more popular 1.1 branch. It is no longer developed.

1.3.x[edit]

Current stable release.[35] Provides UTF-8 support.

1.4.x[edit]

Current development branch. Adds more features to 1.3.[35]

3.0 branch[edit]

This branch is mostly a conceptual model for future work. Now inactive.

See also[edit]

References[edit]

  • ^ "FLTK License Agreement". Archived from the original on 2001-12-18. Retrieved 2020-01-30.
  • ^ "Fast Light Toolkit - Fast Light Toolkit (FLTK)". www.fltk.org. Archived from the original on 2020-02-02. Retrieved 2020-01-30.
  • ^ "Fast Light ToolKit (FLTK) » CppLibs". Archived from the original on 2015-05-18. Retrieved 2015-05-13.
  • ^ "Article #363: What does "FLTK" mean? - Fast Light Toolkit (FLTK)". www.fltk.org. Archived from the original on 2020-07-31. Retrieved 2020-01-30.
  • ^ "STR #3371: Wayland Display Server Protocol support - Fast Light Toolkit (FLTK)". www.fltk.org. Archived from the original on 2022-11-19. Retrieved 2020-08-06.
  • ^ "murgaLua homepage". Archived from the original on 2012-07-07. Retrieved 2008-12-18.
  • ^ "Links: By Category - Links - Fast Light Toolkit (FLTK)". www.fltk.org. Archived from the original on 2023-03-15. Retrieved 2023-04-07.
  • ^ "pyFLTK Home Page". pyfltk.sourceforge.io. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "Ruby/FLTK". ruby-fltk.sourceforge.net. Archived from the original on 2023-04-13. Retrieved 2023-04-07.
  • ^ "fltk - Rust". docs.rs. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "Tcl/Fltk dynamic extension for Tcl". SourceForge. 3 April 2013. Archived from the original on 7 April 2023. Retrieved 7 April 2023.
  • ^ "Nanolinux". SourceForge. 8 October 2016. Archived from the original on 11 November 2020. Retrieved 15 April 2018.
  • ^ "Tiny to the extreme: Nanolinux". 30 November 2014. Archived from the original on 16 April 2018. Retrieved 15 April 2018.
  • ^ a b "An interview with the Nanolinux developer". 30 December 2014. Archived from the original on 16 April 2018. Retrieved 15 April 2018.
  • ^ a b "Artificial Intelligence Methods". Archived from the original on 1999-04-20. Retrieved 2019-08-15.
  • ^ "PC HTML Editors". Archived from the original on 2018-04-16. Retrieved 2018-04-15.
  • ^ a b "Georg's Personal Homepage". www.georgpotthast.de. Archived from the original on 2018-08-17. Retrieved 2018-04-15.
  • ^ "An extraordinary TK example!". 12 October 2012. Archived from the original on 16 April 2018. Retrieved 15 April 2018.
  • ^ "YPH". Archived from the original on 2018-10-27. Retrieved 2018-10-27.
  • ^ "Giada, hardcore loopmachine". Archived from the original on 2011-09-25. Retrieved 2011-09-29.
  • ^ "prodatum - official homepage". prodatum.sourceforge.net. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "DiSTI GL Studio". Archived from the original on 2012-08-15. Retrieved 2010-07-29.
  • ^ "ForcePAD". forcepad.sourceforge.net. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "RoboCIM - Robotics software". Archived from the original on 2013-05-04. Retrieved 2013-06-29.
  • ^ "Free | CD DVD burning software for Linux". flburn.sourceforge.net. Archived from the original on 2023-04-10. Retrieved 2023-04-07.
  • ^ "Open Movie Editor - Free and Open Source Video Editor". www.openmovieeditor.org. Archived from the original on 2012-05-18. Retrieved 2008-04-12.
  • ^ "OpenVSP". openvsp.org. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "PosteRazor - Make your own poster!". posterazor.sourceforge.io. Archived from the original on 2023-04-07. Retrieved 2023-04-07.
  • ^ "Tilemap Studio". GitHub. 18 October 2021. Archived from the original on 8 September 2021. Retrieved 8 September 2021.
  • ^ "Fifth - Home". fifth-browser.sourceforge.net. Archived from the original on 2023-04-14. Retrieved 2023-04-07.
  • ^ "NetRider". SourceForge. 23 February 2016. Archived from the original on 7 April 2023. Retrieved 7 April 2023.
  • ^ "Viz (Brain Visualizer)". GitHub. 25 August 2021. Archived from the original on 8 September 2021. Retrieved 8 September 2021.
  • ^ "What are the Versions of FLTK?". Archived from the original on 2010-06-28. Retrieved 2010-07-23.
  • ^ a b https://www.fltk.org/articles.php?L825 Archived 2019-08-02 at the Wayback Machine Taken 5 March 2017.
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=FLTK&oldid=1232285915"

    Categories: 
    FLTK
    Cross-platform free software
    Free computer libraries
    Free software programmed in C++
    Software that uses Cairo (graphics)
    Software using the LGPL license
    Widget toolkits
    X-based libraries
    Hidden categories: 
    Webarchive template wayback links
    Articles to be expanded from July 2010
    All articles to be expanded
    Articles using small message boxes
     



    This page was last edited on 2 July 2024, at 23:25 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki