MyNixOS website logo
Description

The "Haskell Applets" Gtk+ ver. 2 back-end for "happlets".

  • WARNING:* There are still some known bugs in this package, it is being uploaded to Hackage for evaluation purposes only. Although it is being actively developed, there is no release schedule for a production-ready version of this package. Contributions to the repository on GitHub are welcome.

This packages provides the Gtk+ v2 back-end to the "happlets" GUI framework. To create a Gtk+ applet, import the Happlets.Lib.Gtk module. Happlets.Lib.Gtk re-exports the Happlets module, so you can use all of the primitives provided by the Happlets module to construct your applet. In your "main" function, launch the main event loop by passing the Happlets.Lib.Gtk.gtkHapplet function as the Provider either to the Happlets.Initialize.happlet function or to the Happlets.Initialize.simpleHapplet function.

For an example of how to program your own Happlet, run the "cabal configure" command with the "--enable-tests" flag set. This will build the Happlets.Lib.Gtk.TestSuite executable program. Refer to the source code for TestSuite to see how the application is structured.

The goal of the Happlets project is to allow you to create very simple, thread-safe applications that contain nothing more than a single window with a drawing canvas that can respond to user input events, like mouse clicks, key-presses, or frame animation events. The intention is to create a minimal programming platform for small, single-purpose graphical applications which simply displays some interactive graphic, for example a plot of some data, or a simple game. Naturally, the Happlet program can be arbitrarily complex, but it may be better to consider other, FRP-based solutions if managing events becomes too difficult.

Metadata

Version

0.1.0.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows