The HToolkit is a package primary intended
for development and designing of platform
independent graphical user interface. The package
gives you an abstract API for many platforms while
for each platform are used only libraries which are
native for the platform. This release supports only
Windows and Linux platforms, but the chosen model
allows support for other platforms. Under Windows
the package use only native Win32 API and under
Linux are used GTK/GNOME libraries. The difference
between HToolkit and most of other libraries is that
the latter uses only controls and dialog elements
which are native under target plaform. The
advantage of this is that the application looks like
more native. Similar model is chosen from
wxWindows for C++ and SWT for Java. The
disadvantage of this libraries is that they are
written in high level languages and this makes
difficult to use them from other languages. The
main part of HToolkit is written in C and the used
model simplifies FFI interface between the HToolkit
core and high level languages (most languages
proposes only FFI to C). The current release gives
only interface to Haskell. There is plan to build GUI
libraries based on HToolkit core for C#, SmallTalk
and Python.
HToolkit for Haskell
--------------------
HToolkit за Haskell is divided in two libraries:
GIO and Port. The Port library is a low level interface and it is not intended to be used for development. Port includes modules written in C
and FFI for them written in Haskell. GIO is a high
level API intended for application development. The
HToolkit is divided in high and low level in order to
allow development of experimental high level
interfaces without sacrifice of low level API. For
the time beings HToolkit gives all features proposed
from ObjectIO with exception of ToolBar and
CustomControl. Many of ObjectIO features are
extened, but there are also many new features
which does't exists in ObjectIO. Relatively all
controls supported from wxHaskell are supported
from HToolkit. Still missing controls like Panel,
Gauge and Notebook but they are planned for the
next release of HToolkit.
Currently the HToolkit is the only package for
Haskell which allows to create, load, edit and save
images at runtime. Another interesting feature is
that the toolkit allows to display icons in menu
items. The feature is native under GTK/GNOME but
is hard to implement under Windows.
NOTE: The ToolBar support is included in the
package but still doesn't work. This is because
under Windows it still requires a bit of development
while under GTK/GNOME the package uses the new
API for GtkToolbar which will be part of the next
GTK release.
Krasimir Angelov