Modular Specification of GUI Layout Using Constraints
Christof Lutteroth, Gerald Weber
Department of Computer Science
The University of Auckland
38 Princes Street, Auckland 1020, New Zealand
{lutteroth, g.weber}@cs.auckland.ac.nz
Abstract
The Auckland Layout Model (ALM) is a novel technique
for specifying layout. It generalizes grid-based layouts as
they are widely used for print layout as well as for GUI lay-
out. Qualitatively, in ALM th e focus switches from the cells
of the grid to the tabstops between cells. Quantitatively,
the model permits the specification of constraints based on
linear algebra, and an optimal layout is calculated using
linear programming. ALM provides several advantages for
developers: first, it supports several different levels of ab-
straction through higher-level layout constructs that are au-
tomatically translated into the lower-level primitives of lin-
ear programming. The formalism of linear programming
defines a clean separation of ALM’s interface and its imple-
mentation. Second, the compositional nature of ALM allows
developers to group parts of a specification that belong nat-
urally together, resulting in a modular GUI specification.
Our experience has shown that it is much harder to achieve
a similar separation of concerns when using common GUI
layout techniques.
1 Introduction
In today’s software engineering, there exist many differ-
ent technologies for the implementation of GUIs. A lot of
effort has been spent in order to improve GUIs, but creating
a GUI is often still a difficult task. GUIs are commonly cre-
ated with the help of GUI toolkits, i.e. libraries which define
the various controls and functions that are needed in many
GUIs. Often developers have to set the location and size of
GUI controls manually, and write code that manages these
values during the runtime of an application. For example,
if the size of a window changes, an application would typ-
ically reposition and resize the controls on that window. In
order to make GUI layout easier modern GUI toolkits also
include layout engines. Instead of having to take care of
the location and size of every control, developers can feed a
layout engine with more abstract information, and the lay-
out engine will then position and size the controls whenever
this is necessary.
A modern toolkit usually contains several different lay-
out engines, some only supporting very simplistic layouts
and others more sophisticated ones. For example, a row
layout would take a list of controls and arrange them onto
a panel row-wise, starting a new row when the current one
has insufficient space. More complex layout engines would
typically arrange all controls in a table-like manner, and
possibly offer additional constraints. For example, a de-
veloper may be able to specify upper and lower limits for
the size of each control, or set a preferred size. The layout
engine would then try to stretch or squeeze the controls so
that they fit into their allocated space without violating the
constraints. In this article we present the Auckland Layout
Model (ALM), which is a layout engine that can be used for
sophisticated layouts.
In this paper we demonstrate that ALM enables GUI lay-
out specifications that are modular, defined on an appropri-
ate level of abstraction, and reusable. Common GUI layout
techniques usually fall short of these requirements, which is
why GUI layout usually cannot be reused but has to be spec-
ified over and over again. From a developer’s point of view,
ALM offers several advantages: the compositional nature of
constraints makes it possible to separate different concerns
in a GUI into modules, manage them separately and recom-
bine them later. If some information is not relevant for a
layout, it needs not be specified, giving the layout engine
more flexibility. For example, the order of the elements in a
GUI may be left partially undefined. ALM fills in sensible
default values where necessary, so that developers do not
need to bother about details that are deemed insignificant.
Developers can use arbitrary linear constraints to specify a
layout, but can also use higher levels of abstraction, such as
higher-order constructs for tables with rows and columns.
The ALM based on linear constraints stands for a whole
class of tabstop-based layouts. In principle, we are not
restricted to using linear constraints. Any layout model
19th Australian Conference on Software Engineering
1530-0803/08 $25.00 © 2008 IEEE
DOI 10.1109/ASWEC.2008.49
300
19th Australian Conference on Software Engineering
1530-0803/08 $25.00 © 2008 IEEE
DOI 10.1109/ASWEC.2008.49
300
19th Australian Conference on Software Engineering
1530-0803/08 $25.00 © 2008 IEEE
DOI 10.1109/ASWEC.2008.49
300
19th Australian Conference on Software Engineering
1530-0803/08 $25.00 © 2008 IEEE
DOI 10.1109/ASWEC.2008.49
300