All Topics  
FLTK

 

   Email Print
   Bookmark   Link






 

FLTK



 
 
The "Fast, Light Toolkit" (generally pronounced "fulltick") is a cross-platform
Cross-platform

In computing, cross-platform is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms....
 GUI
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
 library, developed by Bill Spitzak and others. Made with 3D graphics
3D computer graphics

3D computer graphics are graphics that use a Cartesian coordinate system#Three-dimensional coordinate system representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images....
 programming in mind, it has an interface to OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
, but it is still suitable for general GUI programming.

Using its own widget, drawing and event systems (though FLTK2 has gained experimental support for optionally using the cairo
Cairo (graphics)

cairo is a software library used to provide a vector graphics-based, device-independent Application programming interface for software developers....
 graphics library) abstracted from the underlying system-dependent code, it allows for writing programs which look the same on all supported operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s.

FLTK is free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
, licensed under LGPL with an additional clause permitting static linking from applications with incompatible licenses.






Discussion
Ask a question about 'FLTK'
Start a new discussion about 'FLTK'
Answer questions from other users
Full Discussion Forum



Encyclopedia


The "Fast, Light Toolkit" (generally pronounced "fulltick") is a cross-platform
Cross-platform

In computing, cross-platform is a term used to refer to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms....
 GUI
Graphical user interface

A graphical user interface is a type of user interface which allows people to human-computer interaction such as computers; hand-held devices such as MP3 Players, Portable Media Players or Gaming devices; household appliances and office equipment....
 library, developed by Bill Spitzak and others. Made with 3D graphics
3D computer graphics

3D computer graphics are graphics that use a Cartesian coordinate system#Three-dimensional coordinate system representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images....
 programming in mind, it has an interface to OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
, but it is still suitable for general GUI programming.

Using its own widget, drawing and event systems (though FLTK2 has gained experimental support for optionally using the cairo
Cairo (graphics)

cairo is a software library used to provide a vector graphics-based, device-independent Application programming interface for software developers....
 graphics library) abstracted from the underlying system-dependent code, it allows for writing programs which look the same on all supported operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
s.

FLTK is free software
Free software

Free Software or software libre is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with minimal restrictions only to ensure that further recipients can also do these things and to prevent consumer-facing hardware...
, licensed under LGPL with an additional clause permitting static linking from applications with incompatible licenses. It includes FLUID
Fluid

A fluid is defined as a substance that continually deforms under an applied shear stress. All liquids and all gases are fluids. Fluids are a subset of the Phase and include liquids, gas, Plasma physics and, to some extent, plasticity ....
 (FLTK User Interface Designer), a graphical GUI design
Design

Design is used both as a noun and a verb. The term is often tied to the various applied arts and engineering . As a verb, "to design" refers to the process of originating and planning for a product, structure, system, or component with intention....
er that generates C++ source and header files.

In contrast to libraries like Qt
Qt (toolkit)

Qt is a cross-platform application development framework, widely used for the development of graphical user interface programs , and also used for developing non-GUI programs such as console tools and servers....
 and wxWidgets
WxWidgets

wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes....
, 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
Static library

In computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, producing an object file and a stand-alone executable file....
. It also avoids complicated macros and separate code preprocessors, and does not use the following advanced C++ features: templates, exceptions
Exception handling

Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution....
, RTTI or, for FLTK 1.x, namespaces. Combined with the modest size of the package, this leads to a relatively short learning curve for new users.

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.

What Does "FLTK" Mean?


FLTK was originally designed to be compatible with the Forms Library written for SGI
Silicon Graphics

Silicon Graphics, Inc. is a company manufacturer high-performance computing solutions, including computer hardware and computer software. SGI was founded by James H....
 machines (a derivative of this library called "XForms
XForms (toolkit)

XForms is a GUI toolkit based on Xlib for the X Window System. It features a rich set of objects, such as buttons, scrollbars, and menus etc. In addition, the library is extensible and new objects can easily be created and added to the library....
" is still used quite often). In that library all the functions and structures started 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 it was impossible to search "FL" on the Internet, due to the fact that it is also the abbreviation for Florida
Florida

Florida is a U.S. state located in the Southeastern United States of the United States, bordering Alabama to the northwest and Georgia to the northeast....
. 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 "FLTK", with the bogus excuse that it stands for the "Fast Light Tool Kit".

Using FLTK in programming languages


FLTK was primarily designed for, and is written in, the C++
C++

C++ is a general-purpose programming language. It is regarded as a middle-level language, as it comprises a combination of both high-level programming language and low-level programming language language features....
 programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
. However, bindings exist for other object-oriented programming
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 languages, for example Python
Python (programming language)

Python is a general-purpose high-level programming language. Its design philosophy emphasizes code readability. Python's core syntax and semantics are Minimalism , while the standard library is large and comprehensive....
, Lua and Ruby
Ruby (programming language)

Ruby is a dynamic programming language, reflection , general purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features....
.

The following example for FLTK 1.x creates a window with an "Okay" button
Button (computing)

In computing, a button is a user interface element that provides the user a simple way to trigger an event , like searching for a query at a search engine, or to interact with dialog boxes, like confirming an action....
:
  1. include
  2. include
  3. include


int main(int argc, char *argv[])

Software built on FLTK


  • The open-source deep-paint software CinePaint
    CinePaint

    CinePaint is an open source computer program for painting and retouching bitmap frame s of movie film. It is a fork of version 1.0.4 of the GIMP....
     is migrating from GTK+
    GTK+

    GTK+, or The GIMP Toolkit, is a cross-platform widget toolkit for creating graphical user interfaces. It is one of the most popular toolkits for the X Window System, along with Qt ....
     to FLTK.
  • , an X window manager
    X window manager

    An X window manager is a window manager which runs on top of the X Window System, a windowing system mainly used on Unix-like systems.Unlike the Mac OS and Microsoft Windows platforms, which have historically provided a vendor-controlled, fixed set of ways to control how windows and paned windows display on a Computer display, and how the...
  • Nuke
    Nuke (software)

    Nuke is a directed acyclic graph compositor produced by The Foundry, and used for film and television post-production. Nuke is cross-platform, and is available for Microsoft Windows, Mac OS X , and Linux....
    , a piece of high-end digital compositing software
  • The Windows port of SmallBASIC
    SmallBASIC

    SmallBASIC is a free software BASIC programming language Programming language dialect with interpreter s for Linux, DOS, Windows API, FLTK, VTOS, Franklin eBookMan, and Palm OS....
  • The open-source poster printing software (Windows, Mac OS X, Linux).
  • The BVH
    Biovision Hierarchy

    The Biovision Hierarchy character animation file format was developed by Biovision, a defunct motion capture services company, to give motion capture data to customers....
     editor Avimator
    Avimator

    Avimator is a basic BVH editor, originally written for use with Second Life, as a simple inexpensive alternative to commercial 3D computer graphics Rendering and Computer animation software, such as Poser and Maya ....
  • Dillo
    Dillo

    Dillo is a minimalistic web browser particularly intended for older or slower computers and embedded systems. It supports only plain HTML/XHTML and images over []; other aspects of web pages, such as scripting and styling, it ignores....
     web browser
  • , an open-source Finite element mesh generator
  • EDE
    EDE

    EDE or Equinox Desktop Environment is a small desktop environment that is meant to be simple and fast. It is based on a modified version of FLTK called eFLTK....
     - Equinox Desktop Environment
  • ZynAddSubFX
    ZynAddSubFX

    ZynAddSubFX is an open source software synthesizer for Linux, Mac OS X and Microsoft Windows.For sound generation it has three hybrid synth engines that combine additive, subtractive, Fourier and other synthesis methods....
    , an open-source software synthesizer
    Software synthesizer

    A software synthesizer, also known as a softsynth or virtual instrument is a computer program for digital audio generation. Computer software which can create sounds or music is not new, but advances in processing speed are allowing softsynths to accomplish the same tasks as dedicated hardware....
  • The Agenda VR3
    Agenda VR3

    The Agenda VR3 was the name of the first "pure Linux" Personal Digital Assistant , released in May 2001 by Agenda Computing, Inc. of Irvine, California....
     Linux
    Linux

    Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
    -based Personal Digital Assistant
    Personal digital assistant

    A personal digital assistant is a handheld computer, also known as a palmtop computer. Newer PDAs also have both color screens and audio capabilities, enabling them to be used as mobile phones, , web browsers, or portable media players....
    's software was based on FLTK, as was much of the software developed for it by third-parties


See also


  • Widget toolkit
    Widget toolkit

    A widget toolkit, widget library, or GUI toolkit is a set of GUI widget for use in designing applications with graphical user interfaces ....
  • List of widget toolkits
    List of widget toolkits

    Low-level widget toolkits...
  • Qt
    Qt (toolkit)

    Qt is a cross-platform application development framework, widely used for the development of graphical user interface programs , and also used for developing non-GUI programs such as console tools and servers....
  • wxWidgets
    WxWidgets

    wxWidgets is a widget toolkit for creating graphical user interfaces for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with minimal or no code changes....
  • GTK+
    GTK+

    GTK+, or The GIMP Toolkit, is a cross-platform widget toolkit for creating graphical user interfaces. It is one of the most popular toolkits for the X Window System, along with Qt ....
  • FOX toolkit
    FOX toolkit

    The FOX toolkit is an open source, cross-platform widget toolkit, that is, a library of basic elements for building a graphical user interface ....
  • VCF
    Visual Component Framework

    The Visual Component Framework is an open-source software project for development under Microsoft Windows and Apple Macintosh that is distributed under the BSD license....
  • Juce
    Juce

    Juce is a free software, cross-platform C++ application framework, used for the development of graphical user interface applications and plug-ins....


External links