1 Lecture 3: Overview of UI Software and Tools Brad Myers 05-830 Advanced User Interface Software.

Slides:



Advertisements
Similar presentations
Operating-System Structures
Advertisements

COMPUTERS: TOOLS FOR AN INFORMATION AGE Chapter 3 Operating Systems.
implementation support
Designing a Graphical User Interface (GUI) 10 IST – Topic 6.
1 Windows CIS*2450 Advancing Computing Techniques.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Automating Tasks With Macros
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
The Task-Centered Design Process figure out who's going to use the system to do what choose representative tasks for task-centered design plagiarize rough.
Object-Oriented Analysis and Design
Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.
Stanford hci group / cs376 research topics in human-computer interaction UI Software Tools Scott Klemmer 27 October 2005.
Chapter 2: Exploring the Desktop The Complete Guide to Linux System Administration.
Objectives Machine language vs.. High-level language Procedure-oriented, object-oriented, and event- driven languages Background of Visual Basic VB Integrated.
Human Computer Interaction Implementation Support.
Operating System.
Lecture 8: Overview of UI Software and Tools Brad Myers Advanced User Interface Software 1© Brad Myers.
Computer for Health Sciences
Lecture 7: Objects and Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 718,  ex 2271 
CS 0004 –Lecture 1 Wednesday, Jan 5 th, 2011 Roxana Gheorghiu.
11.10 Human Computer Interface www. ICT-Teacher.com.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
CSC 461: Lecture 41 CSC461: Lecture 4 Introduction to OpenGL Objectives: Development of the OpenGL API OpenGL Architecture -- OpenGL as a state machine.
Great Idea – Computer “Desktop What’s on your Computer Desktop? Browser and reader Office tools Microsoft Office or some other product Adobe Reader.
Prepared by Fareeha Lecturer DCS IIUI 1 Windows API.
Lecture 5: Interaction 1  Principles of Interactive Graphics  CMSCD2012  Dr David England, Room 711,  ex 2271 
CompSci 230 S Software Construction Frameworks & GUI Programming.
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Java Programming: Advanced Topics 1 Common Elements of Graphical User Interfaces Chapter 6.
1 Chapter 7 Operating System & Utility Programs.  consists of the programs that control or maintain the operations of the computer and its devices. It.
Implementation support z programming tools y levels of services for programmers z windowing systems y core support for separate and simultaneous user-system.
1 Implementation support chapter 8 programming tools –levels of services for programmers windowing systems –core support for separate and simultaneous.
Swing and MVCS CompSci 230 Software Construction.
Dale Roberts GUI Programming using Java - Introduction Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer.
Session 27 Swing vs. AWT. AWT (Abstract Window ToolKit) It is a portable GUI library for stand-alone applications and/or applets. The Abstract Window.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Graphics and Event-Driven Programming in Java John C. Ramirez Department of Computer Science University of Pittsburgh.
3461 Model-View Controller Advanced GUI concepts.
Lecture 10: Toolkits: Intrinsics, Callbacks, Resources, Widget hierarchies, Geometry management Brad Myers Advanced User Interface Software 1© 2013.
1 Lecture 2: Overview of UI Software and Tools Brad Myers Advanced User Interface Software.
10/8: Software What is software? –Types of software System software: Operating systems Applications Creating software –Evolution of software development.
Java GUI building approaches Aleksandar Kartelj Faculty of Mathematics, Belgrade 11 th Workshop “Software Engineering Education and.
X-WindowsP.K.K.Thambi The X Window System Module 5.
The Abstract Window Toolkit (AWT) supports Graphical User Interface (GUI) programming. AWT features include: a rich set of user interface components; a.
CITA 342 Section 2 Visual Programming. Allows the use of visual expressions (such as graphics, drawings, or animation) in the process of programming.
Input Design Lecture 11 1 BTEC HNC Systems Support Castle College 2007/8.
Copyright©2008 N.AlJaffan®KSU1 Chapter 7 Operating System and Utility Programs.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
In the name of God Computer Graphics.
LECTURE 18 16/11/15. MAKING THE INTERFACE CONSISTENT Consistency is one way to develop and reinforce the users conceptual model of applications and give.
1 Lecture 5: Interactive Tools: Prototypers (HyperCard, Director, Visual Basic), Interface Builders Brad Myers Advanced User Interface Software.
Fall UI Design and Implementation1 Lecture 17: Toolkits.
INFORMATION SYSTEM – SOFTWARE TOPIC: GRAPHICAL USER INTERFACE.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Certificate in Accounting NOS 116, 118, 213, 222 Lecture 1: Introduction.
What is O.S Introduction to an Operating System OS Done by: Hani Al-Mohair.
Computer System Structures
Operating System & Application Software
Lecture 1-Part 2: Operating-System Structures
Support for the Development of Interactive Systems
Lecture 8: Overview of UI Software and Tools
In the name of God Computer Graphics.
CompSci 230 S Software Construction
11.10 Human Computer Interface
An Introduction to Computers and Visual Basic
Java Look-and-Feel Design Guidelines
An Introduction to Computers and Visual Basic
User Interface Software Look under the hood
Chapter 2: System Structures
An Introduction to Computers and Visual Basic
Presentation transcript:

1 Lecture 3: Overview of UI Software and Tools Brad Myers Advanced User Interface Software

2 Components of UI Software Application Higher Level Tools Toolkit Windowing System Operating System

3 Windows Manages and controls multiple contexts by separating them into different physical parts of the screen. Can be part of a program (Smalltalk), part of operating system (Windows), or a separate program (X) "Window System" – old X/11 terminology Programming interface Provides output graphics operations to draw clipped to a window = Output Model Channels input from mouse and keyboard to appropriate window = Input Model

4 Windows, cont. "Window Manager" User interface to windows themselves Decorations on windows Mouse and keyboard commands to control windows.

5 Windows, cont. Many systems combine WS+WM Macintosh, Windows, iPhone Others allow different WM on same WS X, NeWS Allows diversity and user preference Different WS on same hardware SunTools, X, NeWS on Suns Windows, MacOS on Macs Hack Linux onto many platforms (iPod)

6 Window & Graphics Structure

7 Windows System: Output Model Graphics commands that the programs can use All usually go through window manager so clipped Usually can only draw what WS provides Examples: Win32 API, Mac “Quickdraw” Older systems (SunTools, etc.) simple primitives Draw Rectangles, text "BitBlt" or "RasterOp": Move a rectangle of the screen (memory) + Easier to implement Newer (Macintosh, X, etc.) more sophisticated Filled polygons, splines, colors, clipping + Prettier images and easier for application

8 Postscript Language invented by Adobe for sending pages to printers Is a complete, textual programming language Provides: arbitrary rotation and scaling (even fonts) Complete hardware independence (coordinates are floats) Used as an output model for some Window systems NeWS, Display Postscript: NeXT, DEC, etc. Java 2D model based on this, with similar features

9 3D Open-GL 3-D output model from Silicon Graphics, for other platforms, based on GL Was a standard part of Windows NT Powerful rendering capabilities ?? Microsoft now using “Direct3D”

10 Other graphics standards CORE (~1977), GKS (1985) PHIGS (1988) -- PEX (1991): PHIGS + 3-D for X Don't support "modern" graphical interfaces very well. Why? Wait for particular kind of input New: graphics on top of Window system Java 2D, 3D

11 Window System: Input Model How input from user is handled. Most only support keyboard and mouse All systems use same model: Events generated and passed to applications Record (struct) containing type, (x,y) of mouse, time, etc. Asynchronously sent For key down/up, mouse button down/up, cursor enter/leave window, window refresh. Problems: Application must be almost always willing to accept events. Race conditions, since asynchronous Not device independent No ^S (pause output), ^C (abort process)

12 Window System: Communication Window system often protected process So bad application won't kill whole machine (Isn't on MacOS to 9, PalmOS, and regular MS Windows 95,98,ME) Is on Unix, MacOS 10 …, Windows NT,2000,XT, XP, Vista, … How do applications communicate with window system? Special system calls Kernel, OS calls SunTools, Macintosh, PalmOS Network protocol Send messages to the process X, NeWS + Processes can display on remote machines. + Different programming languages - Less efficient

13 Window Manager: Window Decorations How the windows are arranged and decorated. Tiled vs. Overlapping Whether windows can be on top of each other Don't see tiled much any more: Cedar, MS Windows 1. Overlapping was first, current Smalltalk (1976) X Decorations: Window borders, titles Icons Screen background

14 Window Manager: Commands How the user can control the windows. Mouse and keyboard commands Menus, buttons, etc. Sometimes use a toolkit Listener or Focus ( “active” window) Only one keyboard and mouse How decide which window (process) to give it to? “Click to type”: Macintosh, Windows “Mouse position”: Some X WMs Implications on user interface E.g., which menubar is for? which window to “find” in?

15 Toolkits A library of interaction techniques that can be called by application programs. An interaction technique is a graphical object which can be manipulated using a physical input device to input a certain type of value. Also called “widget” or “control” Toolkits contain procedures to do menus, scroll bars, buttons, dialog boxes. Used only by programmers, only procedural interface Examples: Macintosh Toolbox Windows Toolkit xtk for X (Motif and OpenLook) Interviews for C++ and X NeXTStep for NeXT tk part of tcl/tk Amulet Java Swing and awt and swt

16 Toolkits, cont. Important Consistent Look and Feel Re-use of code Can be hard to use: Very large libraries Very large manuals No help with when and how to call what Two layers: Intrinsics: How the widgets are implemented Widget set: Particular "look and feel“

17 Toolkits, Intrinsics Procedure-oriented: Library of procedures that can be called Macintosh Toolbox, SunTools library + Simple to implement Object-oriented Library defines standard classes Programmer can make sub-classes Need an OO language Xtk, Interviews, Garnet, Java AWT and Swing + Natural way to think about organization: widgets on screen "seem" like objects + Easier to make customizations - Requires special (single) programming language

18 Toolkits, Widget Sets Collections of interaction techniques with a particular look-and-feel Can be copyrighted, patented Look and feel lawsuits

19 Toolkits, Widget Sets, cont. Different look-and-feels on same intrinsics The same look-and-feel can be implemented on different intrinsics awtSwingswt Java graphics 2D Windows L&F Windows Windows L&F Java Swing

20 Toolkits, Widgets Sets, cont. Interface to applications: usually “call-back procedures” Application supplied Widget calls Listeners used in Swing are similar Problems - can be hundreds or thousands, - hard to deal with Undo, etc. - modularization compromised Amulet uses command objects instead Also used by MacApp on Macintosh

21 Virtual Toolkits Other name: Cross-Platform Development Tools Thin layer above existing toolkits that hides the toolkit dependencies. Allows applications to be more easily ported to different toolkits As opposed to a toolkit that runs on different environments Problems: Toolkit-specific style features Drawing routines must also be provided Examples: XVT (eXtensible Virtual Toolkit), supported Motif, OpenLook, Windows, PM, Macintosh, and character displays Galaxy (from Visix Corp). Re-implemented the widgets Today, just use Java: AWT: use native widgets Swing: re-implements the widgets

22 Higher-Level Tools Since toolkits are hard to use, need higher-level support. User Interface Development Environments Comprehensive support for UI Software Tradeoffs: Range of interfaces vs. amount of help (if narrow, can provide more support) Ease of use vs. power 2 Levels: “Foundation Classes” Interactive Tools

23 Foundation Classes Object-oriented framework that helps you structure all the code Issue: how separate from “Toolkit” part? MacApp, MFC But only parts of Swing, Amulet, etc.

24 Interactive Tools Prototyping tools Quickly see how UI is going to look and act Interface Builders Lay out widgets Create menus, dialog boxes Other names: Resource Editors, Interactive Development Tools (IDTs) Evidence that interactive tools 10 to 50 times faster than coding with toolkits