cs349 - s10 - Lecture 25

CS349 - Implementing User Interfaces - Spring 2010

Public Service Annoucements

  1. Assignment 3.

Lecture 25 - Scripted Interfaces

Here's a very common type of problem.

An application has evolved in the following way

  1. Started out life as a big Fortran code compluting fluid dynamics in the 1960s.
  2. Incorporated static computer graphics in the 1980s.
  3. Animated the computer graphics in the 1990s.

Now the owners want a `graphical user interface'. (They actually ask for `something like Windows'.)

How is it done?

UI Architectures We've Seen

Xlib-style

Java-style

And a Third One We've not yet Seen

Scripting style

We'll make such an interface out of Python.

This interface also includes a new interaction style, direct manipulation. What is direct manipulation?

This is what we call direct manipulation.

You did direct manipulation in assignment 1,

Doing this on a large scale is not practical,

Scripting Languages

You've used (heard of) quite a few of them

The idea is that they allow you to combine separate, existing programs into something useful quickly. For example,

In this course we will use Python. Why?

  1. It's the latest, greatest thing, an object-oriented scripting language.
  2. It has a collection of classes that do all teh usual UI construction stuff.
  3. (You haven't seen it in SE courses.)

Direct Manipulation Interfaces

How they work

  1. Grab something with the mouse
  2. Move around the mouse to torment it a little
  3. Drop it when you like the result

The very simplest direct manipulation interface

  1. Locations on the screen have special functionality associated with them
  2. Move something

    to the special location.

  3. The special functionality is applied it it

Such interfaces are usually best when there are lots of special locations.

In fact, geometry manipulation programs often want different interpretations for a single location

Modes are used to create separate contexts that disambiguate the meanings.


Return to: