Popularity
7.1
Stable
Activity
0.0
Stable
16
6
4

Monthly Downloads: 50
Programming language: Haskell
License: BSD 3-clause "New" or "Revised" License
Tags: Graphics     Logging     GUI    
Latest version: v0.9

lgtk alternatives and similar packages

Based on the "GUI" category.
Alternatively, view lgtk alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of lgtk or a related project?

Add another 'GUI' Package

README

LGtk: Lens GUI Toolkit

What is LGtk?

LGtk is a GUI Toolkit.

Main goals of LGtk:

  • Provide a Haskell EDSL for declarative description of interactive graphical applications
  • Provide an API for custom widget design
  • Provide a playground for high-level declarative features like derived state-save and undo-redo operations and type-driven GUI generation

Other goals:

  • Be platform independent (including web browsers)
  • Support several backends and be able to use native widgets for each backend

Subgoals:

  • Use high-level abstractions like lenses
  • Try out an FRP variant which is built on state-based signals instead of time-based signals

Status

LGtk has currently two backends: Gtk and diagrams+cairo+GLFW.

The current GLFW backend implementation is not native-looking and inefficient but this is the most easy to install and this is the recommended backend.

There is a demo application which presents the current features of LGtk.

Status per goals:

  • Provide a Haskell EDSL for declarative description of interactive graphical applications -- the next main missing feature is widget styling to be useful
  • Provide an API for custom widget design -- not yet worked on it
  • Provide a playground for high-level declarative features -- derived undo-redo operations are ready, needs documentation
  • Be platform independent -- known to work on Linux; should work on Windows and Mac too
  • Support several backends and be able to use native widgets for each backend -- Gtk and diagrams+cairo+GLFW is supported, the diagrams+cairo+GLFW implementation is inefficient
  • Use high-level abstractions like lenses -- lenses are used but needs documentation
  • Try out an FRP variant which is built on state-based signals instead of time-based signals -- state-base FRP from the lensref package is used but needs documentation

Demo application

The demo application presents the current features of LGtk.

Youtube screencasts:

TODO: pictures & video link

Installation

The easiest is to install lgtkdemo from hackageDB:

cabal update
cabal install lgtk
lgtkdemo

To install lgtkdemo with the Gtk backend you have to enable the gtk flag:

cabal update
cabal install gtk2hs-buildtools
cabal install lgtk -fgtk
lgtkdemo

Usage

Only some Haddock documentation is available at the moment.

Links