¤ The Fudget Library

Haskell Source Directory

This directory contains the sources to fudget library, divided into a number of subdirectories as described below. The top level directory contains various files used when compiling the library.

The Xlib interface is partly implemented in C. The C files are located in ../xlib/.


Files in this directory

CHANGES, CHANGES7, CHANGES8, CHANGES9, GlobRepl9, CHANGES10, InternalChanges Change logs. Since we have put the sources under CVS control, and CVS has log files, we have stopped maintaining these...
Fudgets.hs, AllFudgets.hs Top level modules for the library.
Makefile for make(1).
hmklib, mklibs, mkar.*, mycpp.*, lockcmd Shell scripts invoked when compiling the library.
ghboot, ghmkboot, ghmklib Shell scripts used when compiling the library with GHC.
nhboot, nhmkboot, nhmklib Shell scripts used when compiling the library with NHC.

Subdirectories

The subdirectories contain Haskell source modules (with the .hs extension) and documentation files (with the .doc extension). Compilation generates object files (.o) and interface files (.hi). The documentation files are used to generate the HTML reference manual located in ../Doc/html.

Directory Description Manual section
combinators/ Fudget combinators (plumbing). Parallel & serial composition, loops, dynamic fudget creation, etc. Combinators
containers/ GUI Fudget containers, i.e. GUI elements that contain other GUI elements (shell windows, scrolling areas, etc). Containers
debug/ Fudgets and other utility function to support debugging Debug
defaults/ The basic machinery for parameters with default values. DefaultParams
dialogue/ Haskell 1.2 Dialogue IO types and some other IO related stuff, for use with compilers other than HBC. (To be fixed: GHC still has its own copies in ghc-dialogue...) -
drawing/ Manipulation of colors, fonts, GCs, pixmaps, etc. Mosty used in fudget kernels. Drawing
filters/ Combinators that modify the behaviour of fudgets by filtering and manipulating the low level events. Font, color & other caches, Click-to-type support, double click detection, etc. Filters
fudgets/ Fudgets that implement the basic GUI building blocks (buttons, menus, etc). GuiElems
ghc/ GHC specific version of some modules. -
ghc-dialogue/ IO and Xlib interface for use with GHC. -
hbc/ HBC specific versions of some modules. -
hbc_library/ Copies of some modules from HBC's library, for use with compilers other than HBC. Also contains the module UTF8 with the functions decodeUTF8 and encodeUTF8 from HBC's Char module. -
hugs/ Hugs specific versions of IO and other modules. -
infix/ Infix operator definitions are collected here. InfixOps
internals/ Various unexported modules used in the fudget library. -
io/ Fudgets for accessing the Haskell IO system, sockets and timers. InOut
kernelutils/ Functions useful when writing fudget kernels. KernelUtils
layout/ The GUI layout system. Placers & spacers. Layout
lowlevel/ fudlogue and related stuff needed to implement fudget on top of the ordinary Haskell IO system. LowLevel
nhc/ NHC specific versions of IO and other modules. -
sp/ The Stream Processor type and most stream processor combinators. StreamProc
types/ Definitions of various types used in the fudget library. Types
utils/ General utility functions used in the fudget library. Utilities
xtypes/ Types for the Xlib library interface. Most of the types here are Haskell versions of the corresponding C types in Xlib. XTypes