The fltkhs-demos package

[Tags:deprecated, mit, program]
Deprecated.

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


[Skip to Readme]

Properties

Versions 0.0.0.3, 0.0.0.5, 0.0.0.6, 0.0.0.7
Dependencies base (==4.*), bytestring, directory (>=1.2.1.0), fltkhs (>=0.4.0.5), 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 repository head: git clone http://github.com/deech/fltkhs-demos
Uploaded Wed Feb 24 21:52:10 UTC 2016 by deech
Distributions NixOS:0.0.0.7
Downloads 166 total (15 in the last 30 days)
Votes
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-11-27 [all 2 reports]

Flags

NameDescriptionDefaultType
fastcompileTurn off optimizations for faster compilationEnabledManual

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

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Readme for fltkhs-demos

Readme for fltkhs-demos-0.0.0.7

fltkhs-demos

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

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

Introduction

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 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.

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

stack build --flag fltkhs-demos:-fastCompile

GHCi

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