The Haggis Manual
edition 0.02
12 April 1996
Sigbjorn Finne
Start
Introduction to Haggis
A Haggis tutorial
What is Haggis?
The Hello, World program
Graphical output
Representing user interface components
Creating and customising a component
Adding interaction
Presenting your interface
Realising a user interface
Abstract interaction devices
15-puzzle: A complete example
Final remarks
Building and installing
Some examples of Haggis programs/A haggis primer
Hello, World
Physical layout
Adding interaction
A larger example: Calculator
Haggis overview
The Haggis core
DisplayHandles - representing components.
Basic combining forms
Display contexts
Making a component appear on your screen
Making a component appear on your screen
Representing interactive components
The DeviceEvent type
The WComm type
Calling up
Some common user interface abstractions
System abstractions
TopLevel abstraction
Component abstraction
DisplayHandle - UI handles
DeviceEvent operations
ComponentHandles - active components
Environment + IO monad
Drawing abstractions
Structured Graphics in Haskell
Picture tutorial
Picture basics
Motivation
Representing Pictures
Drawing primitives
Geometric Transexampleions
Structured translation
Graphical transexampleions
Composing pictures
Picture example
Histogram
Rendering pictures
Conclusions and Future Work
Bibliography
Complete picture type
Graphical attributes
Some useful picture combinators
Some useful Pen combinators
Rendering pictures
Painter
Rendering pictures
Raster interface
Displaying pictures
Glyph examples
Controlling the scaling of a picture
Interface description
Complete Glyph interface
Creating a Glyph
Glyph operators
Glyph resources
Procedural drawing abstraction
Procedural drawing abstraction
DrawArea interface description
DrawArea interface index
Creating a DrawArea
DrawArea operators
Customising DrawAreas
Buttons in all shapes and sizes
Selector - creating command buttons
Examples of selector instances
Selector interface description
Selector interface index
Selector data types
Selector creators
Selector operators
Selector resources
Selector related components
Command button abstraction
Creating and using Buttons
Button Interface description
Button interface index
Creating a Button
The Button type
Button operators
Customising Buttons
Button related abstractions
Menu element
Creating MenuElements
MenuElement functionality
MenuElement interface index
Making a MenuElement
MenuElement data types
MenuElement operators
Related abstractions
MenuButton abstraction
MenuButton in action
MenuButton interface description.
Index of MenuButton functionality
Creating a MenuButton
MenuButton operators
Customising MenuButtons
See also
Unresolved issues
Arrowed buttons
Quit buttons
Two state buttons
Two state button abstraction
Toggle example
Toggle interface description
Toggle interface index
Creating a Toggle
Toggle data types
Toggle operators
Customising a Toggle
Friends of the Toggle
Toggle buttons
Creating and using ToggleButtons
ToggleButton Interface description
ToggleButton operation index
Creating a ToggleButton
ToggleButton operators
Customising ToggleButtons
ToggleButton related abstractions
RadioButton abstraction
RadioButton in action
RadioButton interface description
Index of RadioButton functionality
Creating a RadioButton
RadioButton data types
Customising RadioButton
See also
ChoiceButton abstraction
ChoiceButton in action
ChoiceButton interface description.
Index of ChoiceButton functionality.
Creating a ChoiceButton
ChoiceButton data types
Customising ChoiceButton.
See also
ListItem abstraction
ListItem in action
ListItem interface description.
Index of ListItem functionality.
Creating a ListItem
Customising ListItem
See also
TickItem abstraction
TickItem in action
TickItem interface description
Index of TickItem functionality
Creating a TickItem
TickItem data types
TickItem operators
Customising TickItem
See also
CheckItem abstraction
CheckItem in action
CheckItem interface description.
Index of CheckItem functionality.
Creating a CheckItem
CheckItem data types
CheckItem operators
Customising CheckItem.
See also
RadioItem abstraction
RadioItem in action
RadioItem interface description
Index of RadioItem functionality
Creating a RadioItem
RadioItem data types
RadioItem operators
Customising RadioItem
See also
Text input abstraction
Textfields - one line text input
TextField in action
TextField interface description.
Index of TextField functionality
Creating a TextField
TextField data types
TextField operators
Customising TextFields
See also
Gauge input abstraction
Slider abstraction
Sliders in action
Slider interface functionality
Slider interface index
Creating Sliders
Interacting with Sliders
Interacting with Sliders
Slider related abstractions
Scale abstraction
Scale in action
Scale interface functionality
Scale interface index
Creating Scales
Scale operators
Scale related stuff
Unresolved Scale issues
Bar abstraction
Bar in action
Bar interface description.
Index of Bar functionality.
Creating a Bar
Bar operators
Customising Bar
Scrollbar abstraction
Scrollbar in action
Scrollbar interface description
Index of Scrollbar functionality
Creating a Scrollbar
Scrollbar operators
Customising Scrollbar
See also
Various output abstractions
Label abstraction
Label in action
Label interface description.
Index of Label functionality
Creating a Label
Label operators
Customising Label
See also
TextView abstraction
Message - exampleted text
Getting the Message
Message interface description
Index of Message functionality
Creating a Message
Message operators
Customising Messages
Level abstraction
Level in action
Level interface description.
Index of Level functionality.
Creating a Level
Level operators
Customising Level
See also
Arranging your presentation
Boxes and glue abstraction
Boxes in action
Box interface description.
Index of Box functionality.
Creating Boxes
Box data types
Box operators
See also
Container abstraction
Container in action
Container interface description.
Index of Container functionality.
Creating a Container
Container operators
Customising Container.
See also
CompositeContainer abstraction
CompositeContainer in action
CompositeContainer interface description.
Index of CompositeContainer functionality.
Creating a CompositeContainer
CompositeContainer operators
Customising CompositeContainer.
ScrollView abstraction
ScrollView in action
ScrollView interface description
Index of ScrollView functionality
Creating a ScrollView
ScrollView operators
Customising ScrollView
See also
Viewport abstraction
Viewport in action
Viewport interface description
Index of Viewport functionality
Creating a Viewport
Viewport operators
See also
Padding combinator
Frame abstraction
FBox abstraction
Border abstraction
Table abstraction
Table interface description
Index of Table functionality
Table operators
See also
FixedTable abstraction
Sheet abstraction
Pile abstraction
Pile in action
Pile interface description
Index of Pile functionality
Creating a Pile
Pile operators
Align abstraction
Aspect combinator
Packer abstraction
Packer in action
Packer interface description
Index of Packer functionality
Creating a Packer
Packer data types
Packer operators
Customising Packer
ConstrainGeo abstraction
ConstrainSize abstraction
Tiler abstraction
Tiler interface
Tiler interface description.
Index of Tiler functionality
Creating Tiler instances
Tiler data types
Tiler operators
See also
Picking one or more from many
RadioGroup abstraction
RadioGroup in action
RadioGroup interface description
Index of RadioGroup functionality
Creating a RadioGroup
See also
RadioBox abstraction
RadioBox in action
RadioBox interface description
Index of RadioBox functionality
Creating a RadioBox
See also
ChoiceGroup abstraction
ChoiceGroup in action
ChoiceGroup interface description.
Index of ChoiceGroup functionality
Creating a ChoiceGroup
See also
CheckGroup abstraction
CheckGroup in action
CheckGroup interface description.
Index of CheckGroup functionality.
Creating a CheckGroup
See also
TickGroup abstraction
TickGroup in action
TickGroup interface description
Index of TickGroup functionality
Creating a TickGroup
See also
Pulldown menus
Introduction to PulldownMenus
PulldownMenu example
PulldownMenu interface description
Index of PulldownMenu functionality
Creating a PulldownMenu
PulldownMenu data types
PulldownMenu related abstractions
PulldownMenu - undone bits
Popup menus
PopupMenu example
PopupMenu interface overview
PopupMenu interface index
PopupMenu creator function
PopupMenu related
ListGroup abstraction
ListGroup in action
ListGroup interface description.
Index of ListGroup functionality.
Creating a ListGroup
See also
MultiChoice abstraction
MultiChoices - how to use
MultiChoice interface description.
Index of MultiChoice functionality
Creating a MultiChoice
See also
Abstract interaction devices
Trigger abstraction
Trigger example
Trigger interface overview
Trigger interface index
Trigger creators
Trigger operators
Trigger related
Gauge abstraction
Gauge example
Gauge interface overview
Gauge interface index
Gauge creators
Gauge operators
Gauge related
Signal abstraction
Signals in action
Signal interface description.
Graphical abstractions
Pens - graphical attributes
PicCore - basic picture operators
PicOps - picture combinators
PenOps - pen combinators
PicMisc - misc. picture operators
ShadowFrames - fancy borders
Geometric abstractions
Coord abstraction
Coord interface
Rectangle abstraction
Rectangle interface
Bounding boxes
BoundingBox interface
Transform abstraction
Transform interface
Int intervals
Interval interface
Geometric requirements
Geometric requirements
Geometry interface
CompassDirection abstraction
Some basic types
Window system interface
Window abstraction
Window interface
Window interface index
Colourmaps
Allocating and querying colours.
The Colourmap interface
DisplayContext environments
DisplayContexts - why we need them
DisplayContext interface
Style environments
Style environments
Style interface
Raster - coloured chunks
Related resources
ToDo list
Abstraction Index
Function Index
Type Index
Concept Index
This document was generated on 13 April 1996 using the
texi2html
translator version 1.46.