Université catholique de Louvain (UCL) Louvain Interaction Laboratory (LiLab) Place des Doyens, 1 B-1348 Louvain-la-Neuve (Belgium) by FlexClock, a Plastic Clock Written in Oz with the QTk toolkit Donatien Grolaux, Peter Van Roy, & Jean Vanderdonckt Department of Computing Science and Engineering
20
Embed
FlexClock, a Plastic Clock Written in Oz with the QTk toolkit
This paper focuses on the techniques involved in building an interactive application using a plastic user interface. These techniques take advantage of the QTk toolkit, a toolkit that features unusual but interesting concepts with respect to more classical object-oriented toolkits. These features are possible thanks to the underlying programming language used, Oz. In particular, it can support all facilities provided by symbolic records like XML structures and more than that. It also exhibits the capacity to wrap any languages entities into higher order data structures. This paper shows by a case study how the combination of QTk and Oz helps developers write plastic user interface very easily.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Université catholique de Louvain (UCL)Louvain Interaction Laboratory (LiLab)Place des Doyens, 1B-1348 Louvain-la-Neuve (Belgium)
by
FlexClock, a Plastic Clock Writtenin Oz with the QTk toolkit
Donatien Grolaux, Peter Van Roy, &Jean Vanderdonckt
Department of Computing Science and Engineering
What interface builders can do
Difference between « what application needs » and « what interface builder offer »
Code generators
From declarative specifications– « What » instead of « how to ».– Limited to UI known before the execution of
the application.– Artificial gate between declaration part and
imperative part
QTk approach
Mixing declarative and imperative approaches inside the same programming language :– User can choose between « what » and « how to » :– Where QTk offers a declarative support, e.g. at GUI
construction.– As they see best fit their purpose.
Programming language requirement :– Inline declarations of arbitrary parameters ⇒
symbolic data structure with a dictionary structure (key → value)
Mozart
Oz records :label(feature1:value1 … featureX:valueX)
Full language support :– Label extraction/replacement– Add/remove/replace one/many feature(s)– Iteration on features– Transformation into/from list– …
Good candidates for declarative specifications of GUIs