fltkhs-demos: FLTKHS demos. Please scroll to the bottom for more information.

[ deprecated, graphics, mit, program, ui ] [ Propose Tags ]

FLTKHS demos moved to a separate package to keep the core package free of additional dependencies.

[Skip to Readme]


Manual Flags


Turn off optimizations for faster compilation


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,
Dependencies base (>=4 && <5), bytestring, directory (>=, fltkhs (>=, process, stm [details]
License MIT
Author Aditya Siram
Maintainer aditya.siram@gmail.com
Category UI, Graphics
Home page http://github.com/deech/fltkhs-demos
Source repo head: git clone http://github.com/deech/fltkhs-demos
Uploaded by deech at 2016-02-24T21:52:10Z
Reverse Dependencies 1 direct, 0 indirect [details]
Executables fltkhs-clock, fltkhs-browser, fltkhs-boxtype, fltkhs-bitmap, fltkhs-arc, fltkhs-table-sort, fltkhs-table-simple, fltkhs-table-spreadsheet-with-keyboard-nav, fltkhs-tree-simple, fltkhs-make-tree, fltkhs-doublebuffer, fltkhs-textdisplay-with-colors, fltkhs-texteditor-simple, fltkhs-table-as-container, fltkhs-nativefilechooser-simple-app, fltkhs-tile, fltkhs-pack, fltkhs-threads
Downloads 2518 total (7 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-11-27 [all 2 reports]

Readme for fltkhs-demos-

[back to package description]


These are end-to-end demos of [FLTKHS] 1, a Haskell Binding to the FLTK GUI Library

Fltkhs-demos aims not only to show off the features of the [fltkhs] 1 but also serve as a way of learning the API by example. For more thorough documentation on the [fltkhs] 1 API please see the [FLTKHS module] 2 of that package.


The demos shipped with this package are listed in fltkhs-demos.cabal as separate Executable components. Once the package is installed they are installed to a location known to Stack, so to execute fltkhs-arc for instance do:

> stack exec fltkhs-arc

Note that all the executables are prefixed with "fltkhs-". This is in order to prevent the demo executables from stomping over applications of the same name the user might already have installed. Typing:

 > fltkhs-<TAB>

at the command line should show a complete list of available demos.

Learning The API

Most of the demos are exact ports of those shipped in the 'test' directory of the <http://fltk.org FLTK> distribution. It is hoped the user will study the Haskell demo code side-by-side with the C++ demo code in order to understand the API. The section API Guide in the [FLKTHS documentation] 2 covers this in more detail.

Why is the demo code so un-Haskelly?

For being written in Haskell, the demo code is horrifyingly/amazingly imperative and stateful. Although it may repulse those who used to pure Haskell idioms it is that way for a reason.

The demo code was never meant to be idiomatic Haskell code but a way of showing as much of the API as possible. The API itself closely resembles the underlying C++ code which is imperative and stateful. This has the advantage of making the API easier to learn.

For instance, assuming FLTK was installed from source compare /src/Examples/arc.hs with /test/arc.cxx in the FLTK source directory. There is quite a bit of correspondence and it is easy to see how the Haskell API functions map to the C++ ones.

Fast Compilation Flag

This package comes with a flag fastCompile that is enabled by default and speeds up compilation. More information on this flag is available under the Compilation section of the [FLTKHS documentation] 2.

To disable this flag, tell Stack to ignore it during the configure step:

stack build --flag fltkhs-demos:-fastCompile


Please see "Running In The Repl" 5 section of the FLTKHS documentation for more information.