EN FR
EN FR


Section: Software

Scotty

Participants : Michel Beaudouin-Lafon [correspondant] , James Eagan, Wendy Mackay.

The goal of Scotty is to support malleable interfaces, i.e. interfaces that can be modified at run-time in ways not anticipated by the designers  [46] . Scotty is a toolkit that allows a programmer to extend an existing Mac OS X application without access to its source code. Scotty provides the following abstractions: hooks to alter the appearance of windows and widgets, event funnels to alter their behavior, glass sheets to overlay graphics and add new interaction methods, dynamic code loading and object proxies to redefine and extend existing objects. Scotty also provides a higher-level interface based on instrumental interaction [39] . Scotty currently runs on Mac OS X for applications written with the Cocoa user interface framework.

Figure 9. Using Scotty to teleport a window of a Mac OS X application onto an iPhone (left) and to create a toolglass in the Pages word processor (right).
IMG/iphone.pngIMG/toolglass.png

Scotty has been used to create a number of extensions (Figure 9 ). Scribbler is a generic extension that uses glass sheets to allow handwritten annotations of any Cocoa window. Teleportation is another generic extension that can teleport and resize the content of any Cocoa window onto another computer, including an iPhone or iPad. The user can interact with the teleported content as if it was on the original computer. It was used to create a content provider for the Substance Canvas (see above), making it possible to display any application running on a laptop onto the WILD wall display and/or table. When vector-based content is available, e.g., for text, Scotty provides smooth rescaling without the typical pixelation apparent when enlarging bitmap images. Finally Stylesheet is an extension to the Pages word processor that provides a semi-transparent toolglass for specifying the styles of paragraphs.

Scotty is available at http://insitu.lri.fr/Projects/Scotty under a GNU GPL 3.0 licence.

  • ACM: H.5.2 [User Interfaces]: Graphical user interfaces (GUI)

  • Software benefit: See J. Eagan, W. Mackay and M. Beaudouin-Lafon (2011) Cracking the Cocoa Nut: User Interface Programming at Runtime. In UIST 2011: Proceedings of the 24th ACM Symposium on User Interface Software and Technology. ACM, pages 225-234.

  • OS/Middleware: Mac OS X

  • Required library or software: none

  • Programming language: Objective-C, Python