UI Toolkits. HCID 520 User Interface Software & Technology

Size: px
Start display at page:

Download "UI Toolkits. HCID 520 User Interface Software & Technology"

Transcription

1 UI Toolkits HCID 520 User Interface Software & Technology

2

3 Xerox Alto 1973

4 Evolution of User Interfaces Command Line (UNIX shell, DOS prompt) Interaction driven by system User prompted for input when needed Text-based input and output Event-Driven Interfaces (GUIs) Interaction driven by user System waits for user action and responds Pointing & text input, graphical output More complex architecture & development

5 Component Model

6

7

8

9

10 Component (Widget) Model Encapsulate interactive components (widgets) Component library (button, slider, container) Interface built as a hierarchy of components Widgets drawn by underlying graphics library Input event generation and dispatch Historically mouse & keyboard, now touch, Bounds management & damage/redraw Model geometry, redraw updated regions only

11 User Interface Components Each component (widget) is an object with: A bounding box A method for drawing itself Drawn in the component s coordinate system Methods (callbacks) to process input events public void paint(graphics g) { g.fillrect( ); // interior g.drawstring( ); // label g.drawrect( ); // outline }

12 User Interface Components Label TextArea Each component has its own 2D coordinate system. Buttons

13 Containment Hierarchy Window Panel Label TextArea Panel Button Button

14 Component Layout Each container is responsible for positioning its contents. Window Panel Label TextArea Panel Button Button

15 Event-Driven Architecture

16 Events User input is modeled as events. Events are dispatched to components for processing.

17 Events User input is modeled as events. Events are dispatched to components for processing. Hardware Events Mouse: move, button-down, button-up Keyboard: key-down, key-up

18 Events User input is modeled as events. Events are dispatched to components for processing. Hardware Events Mouse: move, button-down, button-up Keyboard: key-down, key-up Inferred Events Mouse: click, double-click, enter, exit, drag Keyboard: key-press Window: move, resize

19 Anatomy of an Event Events encapsulate the information needed for components to react to input or changes. Event Type (mouse moved, key down, etc) Event Target (the input component) Timestamp (when did event occur) Modifiers (Ctrl, Shift, Alt, etc) Event Content: Mouse: x,y coordinates, button pressed, # clicks Keyboard: which key was pressed

20 Demo: Browser DOM Events Go to Open the JavaScript console, enter: var h = document.queryselector("header"); h.addeventlistener("click", function(event) { console.log(event); }); Click the header region at the top of the page. Inspect the events in the JavaScript console.

21

22 Event Dispatch Loop Event Queue List of input events Mouse moved (t 0,x,y) Event Loop (runs in dedicated thread) Remove next event from queue Determine event type Dispatch to proper component(s) Invoke callbacks on components Continue, or wait until event arrives Component Invoked callback method Update application state Request repaint, if needed

23 Event Dispatch Loop

24 Event Dispatch Loop Mouse moved (t 0,x,y)

25 Event Dispatch Loop Event Queue List of input events Mouse moved (t 0,x,y)

26 Event Dispatch Loop Event Queue List of input events Mouse moved (t 0,x,y) Event Loop (runs in dedicated thread) Remove next event from queue Determine event type Dispatch to proper component(s) Invoke callbacks on components Continue, or wait until event arrives

27 Event Dispatch Loop Event Queue List of input events Mouse moved (t 0,x,y) Event Loop (runs in dedicated thread) Remove next event from queue Determine event type Dispatch to proper component(s) Invoke callbacks on components Continue, or wait until event arrives Component Invoked callback method Update application state Request repaint, if needed

28 Event Dispatch Window Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel Button Button

29 Event Dispatch Window Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel Button Button

30 Event Dispatch Window Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel Button Button

31 Event Dispatch Window Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel Button Button

32 Event Dispatch Window Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel Button Button

33 Event Dispatch Event Queue Mouse moved (t 0,x,y) Mouse pressed (t 1,x,y,1) Window Mouse dragged (t 2,x,y,1) Key typed (t 3, F1 ) Panel Label TextArea Panel /* callback for TextArea */ function mousemoved(evt) { // process mouse moved event } Button Button

34 UI Tools Discussion

35 Myers, Hudson & Pausch Brief UI tool history, establish vocabulary in wide use today, and chart future trajectories. At any point did they miss the mark?

36 Myers, Hudson & Pausch Brief UI tool history, establish vocabulary in wide use today, and chart future trajectories. At any point did they miss the mark? Web: subsuming many desktop applications Design vs. Dev: In practice often done by teams with varied skills (interaction design, graphic design, implementation) 3D: Mostly limited to games? BUT fabrication now likely to drive new 3D design tools. VR?

37 Toolkits Abound Not just for desktop GUI widgets & events Mobile applications (ios, Android) Information visualization (d3.js, Protovis, Prefuse) Tangible user interfaces (Papier-Maché) Gestural user interfaces (Kinect API) Speech user interfaces (MS Speech API) Proxemic user interfaces (Proximity Toolkit) Many exhibit similar tensions around expressiveness, efficiency and ease-of-use

38 Toolkit Benefits & Shortcomings Simplify & accelerate UI development Lower the threshold of specification difficulty Raise the ceiling of what can be expressed But hard to do both! Establish path of least resistance Makes common / successful designs easy Makes unusual / ineffective designs harder Can limit & shape what we conceive / design Enforce consistency of design Maintain familiar widgets and interactions

39 EXERCISE 1 Widget Design

40 Hello

41 Default State Hello

42 Default State Data: styling, content, etc. Hello

43 Default State Data: styling, content, etc. Hello form-checkboxes-and-radio-buttonssky-ui-kit-psd/ FID=9&TID=10550 Origin Unknown.

44 Checked State Hello FID=9&TID=10550 Origin Unknown.

45 Disabled-Unchecked Disabled-Checked Focus Maybe-Checked HTML/Forms/The_native_form_widgets FID=9&TID=10550 Origin Unknown. library/ui-elements/html5- checkboxes

46

47 State Diagram to the Rescue Click Checked Disabled Default Click

48 State Diagram to the Rescue Click Checked Disabled Default Click Click Maybe

49 State Diagram to the Rescue Click Checked Disabled Default Click Shift- Click Click Maybe

50 Your Turn! Submit! In pairs, brainstorm the states + transitions for a submit button.! What does the button look like in each state?! What are the transitions between states?! What actions trigger the transitions?! How does a user know what to do?! Regroup in ~10 mins to share ideas.

51 Your Turn! I am a textbox! In pairs, brainstorm the states + transitions for a textbox.! Hint: States+transitions for the textbox but also its contents (e.g., text selection).! Regroup in ~10 mins to share ideas.

52 Your Turn: Interactive Prototypes

UI Toolkits. HCID 520 User Interface Software & Technology

UI Toolkits. HCID 520 User Interface Software & Technology UI Toolkits HCID 520 User Interface Software & Technology http://www.cryptonomicon.com/beginning.html Xerox Alto 1973 Evolution of User Interfaces Command Line (UNIX shell, DOS prompt) Interaction driven

More information

UI Toolkits. HCID 520 User Interface Software & Technology

UI Toolkits. HCID 520 User Interface Software & Technology UI Toolkits HCID 520 User Interface Software & Technology http://www.cryptonomicon.com/beginning.html Xerox Alto 1973 Evolution of User Interfaces Command Line (UNIX shell, DOS prompt) Interaction driven

More information

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010

CS260. UI Toolkits. Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 CS260 UI Toolkits Björn Hartmann University of California, Berkeley EECS, Computer Science Division Fall 2010 In the beginning cryptonomicon.com/beginning.html The Xerox Alto (1973) Event-Driven UIs Old

More information

Event Driven UIs and Model-View-Controller

Event Driven UIs and Model-View-Controller Event Driven UIs and Model-View-Controller CS160: User Interfaces John Canny Includes slides based on those of James Landay & Jeffrey Heer Reminder Archos 5 hardware available in class this Weds one per

More information

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface?

MOBILE COMPUTING 1/20/18. How many of you. CSE 40814/60814 Spring have implemented a command-line user interface? MOBILE COMPUTING CSE 40814/60814 Spring 2018 How many of you have implemented a command-line user interface? How many of you have implemented a graphical user interface? HTML/CSS Java Swing.NET Framework

More information

Fall UI Design and Implementation 1

Fall UI Design and Implementation 1 Fall 2005 6.831 UI Design and Implementation 1 1 Suggested by Daniel Swanton Fall 2005 6.831 UI Design and Implementation 2 2 Suggested by Robert Kwok Fall 2005 6.831 UI Design and Implementation 3 3 Input

More information

Interactive Programming

Interactive Programming Interactive Programming CS160: User Interfaces John Canny. Reminders Midterm one week from Weds. Review next Monday. Previous semesters midterms will be posted today. Due today Low fidelity prototype Pair

More information

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface?

8/30/15 MOBILE COMPUTING. CSE 40814/60814 Fall How many of you. have implemented a command-line user interface? MOBILE COMPUTING CSE 40814/60814 Fall 2015 How many of you have implemented a command-line user interface? 1 How many of you have implemented a graphical user interface? HTML/CSS Java Swing.NET Framework

More information

Windows and Events. created originally by Brian Bailey

Windows and Events. created originally by Brian Bailey Windows and Events created originally by Brian Bailey Announcements Review next time Midterm next Friday UI Architecture Applications UI Builders and Runtimes Frameworks Toolkits Windowing System Operating

More information

CS 4300 Computer Graphics

CS 4300 Computer Graphics CS 4300 Computer Graphics Prof. Harriet Fell Fall 2011 Lecture 8 September 22, 2011 GUIs GUIs in modern operating systems cross-platform GUI frameworks common GUI widgets event-driven programming Model-View-Controller

More information

Berkeley. CS160: User Interface Design. Video Puppetry: SIGGRAPH Asia Widgets, Events, MVC 02/29/12 2/29/12

Berkeley. CS160: User Interface Design. Video Puppetry: SIGGRAPH Asia Widgets, Events, MVC 02/29/12 2/29/12 CS160: User Interface Design Widgets, Events, MVC 02/29/12 Berkeley UNIVERSITY OF CALIFORNIA Video Puppetry: SIGGRAPH Asia 2008 Authors: Connelly Barnes, David E. Jacobs, Jason Sanders, Dan B Goldman,

More information

Software Tools. Scott Klemmer Autumn 2009

Software Tools. Scott Klemmer Autumn 2009 stanford hci group http://cs147.stanford.edu Software Tools Scott Klemmer Autumn 2009 It accomplishes an important task (for better and for worse) You don t have to make it yourself, and it abstracts a

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Graphical User Interface (GUI)

Graphical User Interface (GUI) Graphical User Interface (GUI) An example of Inheritance and Sub-Typing 1 Java GUI Portability Problem Java loves the idea that your code produces the same results on any machine The underlying hardware

More information

Event-driven Programming: GUIs

Event-driven Programming: GUIs Dr. Sarah Abraham University of Texas at Austin Computer Science Department Event-driven Programming: GUIs Elements of Graphics CS324e Spring 2018 Event-driven Programming Programming model where code

More information

CS123. Programming Your Personal Robot. Part 2: Event Driven Behavior

CS123. Programming Your Personal Robot. Part 2: Event Driven Behavior CS123 Programming Your Personal Robot Part 2: Event Driven Behavior You Survived! Smooth Sailing Topics 2.1 Event Driven Programming Programming Paradigms and Paradigm Shift Event Driven Programming Concept

More information

GI PageBus AMS Integration Demo

GI PageBus AMS Integration Demo GI PageBus AMS Integration Demo Last updated: 24/05/2012 Table of contents 1 INTRODUCTION...3 2 USING THE DEMO...4 2.1 Available Stock List...4 2.2 Update Panel...5 2.3 Configuration Panel...5 2.4 Monitor

More information

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. 2.4 Event Dispatch 1

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. 2.4 Event Dispatch 1 Event Dispatch Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch 2.4 Event Dispatch 1 Event Architecture A pipeline: - Capture and Queue low-level hardware events - Dispatch

More information

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. Event Architecture. A pipeline: Event Capture

Event Dispatch. Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch. Event Architecture. A pipeline: Event Capture Event Dispatch Interactor Tree Lightweight vs. Heavyweight Positional Dispatch Focus Dispatch 2.4 Event Dispatch 1 Event Architecture A pipeline: - Capture and Queue low-level hardware events - Dispatch

More information

User Interaction. User Interaction. Input devices. Input devices. Input devices GUIs and GUI design Event-driven programming 3D interaction

User Interaction. User Interaction. Input devices. Input devices. Input devices GUIs and GUI design Event-driven programming 3D interaction User Interaction User Interaction Input devices GUIs and GUI design Event-driven programming 3D interaction CS 465 lecture 19 2003 Steve Marschner 1 2003 Steve Marschner 2 Input devices Input devices Discrete

More information

Today s Hall of Fame or Shame example is a feature of Microsoft Office 2007 that gives a preview of what a style command will do to the document

Today s Hall of Fame or Shame example is a feature of Microsoft Office 2007 that gives a preview of what a style command will do to the document 1 Today s Hall of Fame or Shame example is a feature of Microsoft Office 2007 that gives a preview of what a style command will do to the document while you re mousing over it. Here, the mouse is hovering

More information

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction

stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October research topics in human-computer interaction stanford hci group / cs376 UI Software Tools Scott Klemmer 14 October 2004 research topics in human-computer interaction http://cs376.stanford.edu cs547 tomorrow: Scott Snibbe Body, Space, and Cinema 2

More information

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 16 Mar 29, 2016 Engineering Interfaces II. Jon

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 16 Mar 29, 2016 Engineering Interfaces II. Jon CMSC434 Introduction to Human-Computer Interaction Week 10 Lecture 16 Mar 29, 2016 Engineering Interfaces II Jon Froehlich @jonfroehlich Human Computer Interaction Laboratory COMPUTER SCIENCE UNIVERSITY

More information

User Interfaces for Web Sites and Mobile Devices. System and Networks

User Interfaces for Web Sites and Mobile Devices. System and Networks User Interfaces for Web Sites and Mobile Devices System and Networks Computer Systems and Networks: Device-Aware Interfaces Interfaces must take into account physical constraints of computers and networks:

More information

Graphical User Interface. GUI in MATLAB. Eng. Banan Ahmad Allaqta

Graphical User Interface. GUI in MATLAB. Eng. Banan Ahmad Allaqta raphical ser nterface in MATLAB Eng. Banan Ahmad Allaqta What is? A graphical user interface () is a graphical display in one or more windows containing controls, called components, that enable a user

More information

User Interface Design

User Interface Design User Interface Design & Development Lecture 07 Direct Manipulation João Pedro Sousa SWE 632 George Mason University today direct manipulation window UIs support for operations mouse, pen, eye tracking,

More information

C# Forms and Events. Evolution of GUIs. Macintosh VT Datavetenskap, Karlstads universitet 1

C# Forms and Events. Evolution of GUIs. Macintosh VT Datavetenskap, Karlstads universitet 1 C# Forms and Events VT 2009 Evolution of GUIs Until 1984, console-style user interfaces were standard Mostly dumb terminals as VT100 and CICS Windows command prompt is a holdover In 1984, Apple produced

More information

For the Beginner: c) Click the settings tab to set screen resolution d) Set resolution with slider bar.

For the Beginner: c) Click the settings tab to set screen resolution d) Set resolution with slider bar. For the Beginner: Preparing and Logging In to Run JobSite OnLine 1) Jobsite works best with a screen resolution of at least 800 x 600 preferably 1024 x 768. To set this, follow the instructions below.

More information

JavaScript Specialist v2.0 Exam 1D0-735

JavaScript Specialist v2.0 Exam 1D0-735 JavaScript Specialist v2.0 Exam 1D0-735 Domain 1: Essential JavaScript Principles and Practices 1.1: Identify characteristics of JavaScript and common programming practices. 1.1.1: List key JavaScript

More information

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down

Widget. Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down Widgets Jeff Avery Widget Widget is a generic name for parts of an interface that have their own behaviour. e.g., buttons, progress bars, sliders, drop-down menus, spinners, file dialog boxes, etc are

More information

Model-view-controller View hierarchy Observer

Model-view-controller View hierarchy Observer -view-controller hierarchy Fall 2004 6831 UI Design and Implementation 1 Fall 2004 6831 UI Design and Implementation 2!"# Separation of responsibilities : application state Maintains application state

More information

CSE1720 Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level

CSE1720 Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level Shooter Games CSE1720 Click to edit Master Week text 04, styles Lecture 08; Week 05 Lecture 09 Second level Third level Fourth level Fifth level Winter 2014! Thursday, Jan 29, 2015/Tuesday, Feb 03, 2015

More information

Introduction. Key features and lab exercises to familiarize new users to the Visual environment

Introduction. Key features and lab exercises to familiarize new users to the Visual environment Introduction Key features and lab exercises to familiarize new users to the Visual environment January 1999 CONTENTS KEY FEATURES... 3 Statement Completion Options 3 Auto List Members 3 Auto Type Info

More information

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Doug Geoffray & Todd Kloots 1 Capacity Building Institute Seattle, Washington 2006.11.30 What s Happening? 2 3 Web 1.0 vs. Web 2.0 Rich Internet

More information

JavaScript Programming

JavaScript Programming JavaScript Programming Course ISI-1337B - 5 Days - Instructor-led, Hands on Introduction Today, JavaScript is used in almost 90% of all websites, including the most heavilytrafficked sites like Google,

More information

UI Software Organization

UI Software Organization UI Software Organization The user interface From previous class: Generally want to think of the UI as only one component of the system Deals with the user Separate from the functional core (AKA, the app

More information

CS Computer Graphics: Intro to OpenGL

CS Computer Graphics: Intro to OpenGL CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect

More information

CS Computer Graphics: Intro to OpenGL

CS Computer Graphics: Intro to OpenGL CS 543 - Computer Graphics: Intro to OpenGL by Robert W. Lindeman gogo@wpi.edu (with help from Emmanuel Agu ;-) OpenGL Basics Last time: What is Computer Graphics? What is a graphics library What to expect

More information

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD Visual HTML5 1 Overview HTML5 Building apps with HTML5 Visual HTML5 Canvas SVG Scalable Vector Graphics WebGL 2D + 3D libraries 2 HTML5 HTML5 to Mobile + Cloud = Java to desktop computing: cross-platform

More information

Potential issues: * Difficulty in coding and/or finding the. * Should I provide more source code? * Others

Potential issues: * Difficulty in coding and/or finding the. * Should I provide more source code? * Others Assignment III Potential issues: * Division of the work within the team? * Difficulty in coding and/or finding the network data? * Should I provide more source code? * Others 1 InfoVis Software Toolkit

More information

Napkin Sketch Visualizations Sketch-Based Authoring of Improvisational Visualizations

Napkin Sketch Visualizations Sketch-Based Authoring of Improvisational Visualizations Napkin Sketch Visualizations Sketch-Based Authoring of Improvisational Visualizations William O. Chao wochao@gmail.com Description of Domain Can you think of a time when you wished you could quickly sketch

More information

Graphics. Lecture 18 COP 3252 Summer June 6, 2017

Graphics. Lecture 18 COP 3252 Summer June 6, 2017 Graphics Lecture 18 COP 3252 Summer 2017 June 6, 2017 Graphics classes In the original version of Java, graphics components were in the AWT library (Abstract Windows Toolkit) Was okay for developing simple

More information

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon

CMSC434. Introduction to Human-Computer Interaction. Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III. Jon CMSC434 Introduction to Human-Computer Interaction Week 10 Lecture 17 Mar 31, 2016 Engineering Interfaces III Jon Froehlich @jonfroehlich Human Computer Interaction Laboratory COMPUTER SCIENCE UNIVERSITY

More information

Software Tools. Scott Klemmer. stanford hci group / cs147. tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel, Leslie Wu, Mike Cammarano

Software Tools. Scott Klemmer. stanford hci group / cs147. tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel, Leslie Wu, Mike Cammarano stanford hci group / cs147 Software Tools Scott Klemmer tas: Marcello Bastea-Forte, Joel Brandt, Neil Patel, Leslie Wu, Mike Cammarano 04 December 2007 http://cs147.stanford.edu Developers are People

More information

Human-Computer Interaction. Chapter 2. What is HCI?

Human-Computer Interaction. Chapter 2. What is HCI? Human-Computer Interaction Chapter 2 What is HCI? Overview 2.1 The Human 2.2 The Computer 2.3 The Interaction Models of Interaction Interaction Styles Elements of the WIMP Interface HCI 2.3.1 Models of

More information

Graphical User Interfaces (GUIs)

Graphical User Interfaces (GUIs) CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox

More information

Framework. Set of cooperating classes/interfaces. Example: Swing package is framework for problem domain of GUI programming

Framework. Set of cooperating classes/interfaces. Example: Swing package is framework for problem domain of GUI programming Frameworks 1 Framework Set of cooperating classes/interfaces Structure essential mechanisms of a problem domain Programmer can extend framework classes, creating new functionality Example: Swing package

More information

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures

where are we? ICS 105: Project in HCI ui toolkits what does the toolkit do? model-view-controller model-view-controller lectures where are we? ICS 105: Project in HCI UI Toolkits and Programming Models lectures done with evaluation techniques a couple of lectures on toolkits and programming other topics: graphical design and screen

More information

Programming Training. This Week: Tkinter for GUI Interfaces. Some examples

Programming Training. This Week: Tkinter for GUI Interfaces. Some examples Programming Training This Week: Tkinter for GUI Interfaces Some examples Tkinter Overview Set of widgets designed by John K. Ousterhout, 1987 Tkinter == Tool Kit Interface Mean to be driven by Tcl (Toolkit

More information

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety?

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety? 1 This lecture s candidate for the Hall of Fame & Shame is the Alt-Tab window switching interface in Microsoft Windows. This interface has been copied by a number of desktop systems, including KDE, Gnome,

More information

GUI Implementation Support

GUI Implementation Support GUI Implementation Support Learning Objectives: Why GUIs? What is a GUI? Why is implementation support needed? What kinds of implementation support are available? Basic concepts in OO GUI toolkit & app

More information

ArtOfTest Inc. Automation Design Canvas 2.0 Beta Quick-Start Guide

ArtOfTest Inc. Automation Design Canvas 2.0 Beta Quick-Start Guide Automation Design Canvas 2.0 Beta Quick-Start Guide Contents Creating and Running Your First Test... 3 Adding Quick Verification Steps... 10 Creating Advanced Test Verifications... 13 Creating a Data Driven

More information

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI)

UI Elements. If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) UI Elements 1 2D Sprites If you are not working in 2D mode, you need to change the texture type to Sprite (2D and UI) Change Sprite Mode based on how many images are contained in your texture If you are

More information

University of Bahrain College of Applied Studies

University of Bahrain College of Applied Studies University of Bahrain College of Applied Studies CSA 212: Human Interface and Design Activity 5: Front page 2003 Name : Student ID No : Section Instructor : : Demonstrator : Date : Total Marks : 10 Marks

More information

JobSite OnLine User s Guide Table of Contents

JobSite OnLine User s Guide Table of Contents JobSite OnLine User s Guide Table of Contents For the Beginner: 2 Preparing and Logging In to Run JobSite OnLine...2 How Drawings and Specs are Organized - Ease of Use...3 Searching for Files or Containers...4

More information

Widget Toolkits CS MVC

Widget Toolkits CS MVC Widget Toolkits 1 CS349 -- MVC Widget toolkits Also called widget libraries or GUI toolkits or GUI APIs Software bundled with a window manager, operating system, development language, hardware platform

More information

6.170 Preliminary Design Document

6.170 Preliminary Design Document 6.170 Preliminary Design Document SE64 Gadgix Presents: Gizmoball Austin Chu (eefi) Benjamin Gleitzman (gleitz) John Hawkinson (jhawk) Bill Magnuson (billmag) April 18, 2007 Contents 1. Overview... 1 2.

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 36 April 18, 2012 Swing IV: Mouse and Keyboard Input Announcements Lab this week is review (BRING QUESTIONS) Game Project is out, due Tuesday April

More information

A Top-Down Visual Approach to GUI development

A Top-Down Visual Approach to GUI development A Top-Down Visual Approach to GUI development ROSANNA CASSINO, GENNY TORTORA, MAURIZIO TUCCI, GIULIANA VITIELLO Dipartimento di Matematica e Informatica Università di Salerno Via Ponte don Melillo 84084

More information

PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3

PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3 INTRODUCTION xix PART I: INTRODUCTION TO WINDOWS 8 APPLICATION DEVELOPMENT CHAPTER 1: A BRIEF HISTORY OF WINDOWS APPLICATION DEVELOPMENT 3 The Life of Windows 3 From Windows 3.1 to 32-bit 4 Windows XP

More information

Event Dispatch. Dispatching events to windows and widgets.

Event Dispatch. Dispatching events to windows and widgets. Event Dispatch Dispatching events to windows and widgets. Review: Event Architecture 2 Event capture, processing and dispatch. Event Capture Hardware events (interrupts) Event Dispatch Software events

More information

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools

Introduction to Automation. What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools Introduction to Automation What is automation testing Advantages of Automation Testing How to learn any automation tool Types of Automation tools Introduction to Selenium What is Selenium Use of Selenium

More information

ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT)

ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT) ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT) GETTING STARTED GUIDE VERSION 1.0.0 TABLE OF CONTENTS 1 GETTING STARTED... 3 1.1 ACAT Dashboard... 4 1.1.1 Dashboard Shortcuts... 5 1.2 Vision Tryout... 7 1.2.1 Vision

More information

GUI Components: Part 1

GUI Components: Part 1 1 2 11 GUI Components: Part 1 Do you think I can listen all day to such stuff? Lewis Carroll Even a minor event in the life of a child is an event of that child s world and thus a world event. Gaston Bachelard

More information

Day 1 Agenda. Brio 101 Training. Course Presentation and Reference Material

Day 1 Agenda. Brio 101 Training. Course Presentation and Reference Material Data Warehouse www.rpi.edu/datawarehouse Brio 101 Training Course Presentation and Reference Material Day 1 Agenda Training Overview Data Warehouse and Business Intelligence Basics The Brio Environment

More information

TYPES OF INTERACTORS Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill

TYPES OF INTERACTORS Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill TYPES OF INTERACTORS Prasun Dewan Department of Computer Science University of North Carolina at Chapel Hill dewan@cs.unc.edu Code available at: https://github.com/pdewan/colabteaching PRE-REQUISITES Model-

More information

Chapter 0 : MVC review / Threading & Concurrency. CSCI 251 Android App Development

Chapter 0 : MVC review / Threading & Concurrency. CSCI 251 Android App Development Chapter 0 : MVC review / Threading & Concurrency CSCI 251 Android App Development Part I: Model / View / Controller Review (courtesy of Prof. Lambert) TUI vs GUI Text-based I/O Sequential process Direct

More information

Propel PRO User Guide

Propel PRO User Guide Propel PRO User Guide Propel PRO Version 3.2.0a Page 1 Welcome to the latest version of Propel PRO which offers fast performance and easy navigation. Please refer to this user guide for common features

More information

Widgets. Widgets Widget Toolkits. User Interface Widget

Widgets. Widgets Widget Toolkits. User Interface Widget Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

Accessibility. Mike McBride

Accessibility. Mike McBride Mike McBride 2 Contents 1 Accessibility 4 1.1 Introduction......................................... 4 1.1.1 Bell.......................................... 4 1.1.2 Modifier keys....................................

More information

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1

Widgets. Widgets Widget Toolkits. 2.3 Widgets 1 Widgets Widgets Widget Toolkits 2.3 Widgets 1 User Interface Widget Widget is a generic name for parts of an interface that have their own behavior: buttons, drop-down menus, spinners, file dialog boxes,

More information

Input: Interaction Techniques

Input: Interaction Techniques Input: Interaction Techniques Administration Questions about homework? 2 Interaction techniques A method for carrying out a specific interactive task Example: enter a number in a range could use (simulated)

More information

An applet is a program written in the Java programming language that can be included in an HTML page, much in the same way an image is included in a

An applet is a program written in the Java programming language that can be included in an HTML page, much in the same way an image is included in a CBOP3203 An applet is a program written in the Java programming language that can be included in an HTML page, much in the same way an image is included in a page. When you use a Java technology-enabled

More information

ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT)

ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT) ASSISTIVE CONTEXT-AWARE TOOLKIT (ACAT) USER GUIDE VERSION 0.99.1 1 INTRODUCTION ACAT User Guide TABLE OF CONTENTS 1 INTRODUCTION... 7 1.1 Organization... 7 2 INSTALLATION... 8 2.1 Installing ACAT... 8

More information

VisAssist Web Navigator

VisAssist Web Navigator VisAssist Web Navigator Software Requirements Specification Trevor Adams Nate Bomberger Tom Burdak Shawn Busolits Andrew Scott Matt Staniewicz Nate Vecchiarelli Contents Introduction... 4 Purpose... 4

More information

Input (part 2: input models)

Input (part 2: input models) Input (part 2: input models) Dealing with diversity Saw lots of diversity in devices actual details of devices (e.g., device drivers) is a real pain how do we deal with the diversity? Need a model (abstraction)

More information

Web Site Development with HTML/JavaScrip

Web Site Development with HTML/JavaScrip Hands-On Web Site Development with HTML/JavaScrip Course Description This Hands-On Web programming course provides a thorough introduction to implementing a full-featured Web site on the Internet or corporate

More information

Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies

Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies Autodesk Inventor Design Exercise 2: F1 Team Challenge Car Developed by Tim Varner Synergis Technologies Tim Varner - 2004 The Inventor User Interface Command Panel Lists the commands that are currently

More information

Qt for Device Creation

Qt for Device Creation Qt for Device Creation Speeding up ROI & Time-to-Market with Qt Andy Nichols Software Engineer, Qt R&D, Oslo Overview Problems facing Device Creators How Qt for Device Creation addresses those Problems

More information

Midterm Exam, October 24th, 2000 Tuesday, October 24th, Human-Computer Interaction IT 113, 2 credits First trimester, both modules 2000/2001

Midterm Exam, October 24th, 2000 Tuesday, October 24th, Human-Computer Interaction IT 113, 2 credits First trimester, both modules 2000/2001 257 Midterm Exam, October 24th, 2000 258 257 Midterm Exam, October 24th, 2000 Tuesday, October 24th, 2000 Course Web page: http://www.cs.uni sb.de/users/jameson/hci Human-Computer Interaction IT 113, 2

More information

JavaScript and Events

JavaScript and Events JavaScript and Events CS 4640 Programming Languages for Web Applications [Robert W. Sebesta, Programming the World Wide Web Jon Duckett, Interactive Frontend Web Development] 1 Events Interactions create

More information

Comprehensive AngularJS Programming (5 Days)

Comprehensive AngularJS Programming (5 Days) www.peaklearningllc.com S103 Comprehensive AngularJS Programming (5 Days) The AngularJS framework augments applications with the "model-view-controller" pattern which makes applications easier to develop

More information

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies

GUI Programming. Chapter. A Fresh Graduate s Guide to Software Development Tools and Technologies A Fresh Graduate s Guide to Software Development Tools and Technologies Chapter 12 GUI Programming CHAPTER AUTHORS Ang Ming You Ching Sieh Yuan Francis Tam Pua Xuan Zhan Software Development Tools and

More information

Object Orientated Programming in Java. Benjamin Kenwright

Object Orientated Programming in Java. Benjamin Kenwright Graphics Object Orientated Programming in Java Benjamin Kenwright Outline Essential Graphical Principals JFrame Window (Popup Windows) Extending JFrame Drawing from paintcomponent Drawing images/text/graphics

More information

Table of Contents HOL CMP

Table of Contents HOL CMP Table of Contents Lab Overview - - vrealize Orchestrator - Advanced... 2 Lab Guidance... 3 Module 1 - Creating Advanced vrealize Orchestrator Workflows (45 min)...9 Introduction... 10 Prompting User Input

More information

Human-Computer Interaction IS4300

Human-Computer Interaction IS4300 Human-Computer Interaction IS4300 1 Quiz 3 1 I5 due next class Your mission in this exercise is to implement a very simple Java painting applet. The applet must support the following functions: Draw curves,

More information

Using Microsoft Visual Studio to Create a Graphical User Interface

Using Microsoft Visual Studio to Create a Graphical User Interface Using Microsoft Visual Studio to Create a Graphical User Interface ECE 480: Design Team 11 Application Note Joshua Folks April 3, 2015 Abstract: Software Application programming involves the concept of

More information

Client-side Debugging. Gary Bettencourt

Client-side Debugging. Gary Bettencourt Client-side Debugging Gary Bettencourt Overview What is client-side debugging Tool overview Simple & Advanced techniques Debugging on Mobile devices Overview Client debugging involves more then just debugging

More information

Lesson 22 Enhancing Presentations with Multimedia Effects

Lesson 22 Enhancing Presentations with Multimedia Effects Enhancing Presentations with Multimedia Effects Computer Literacy BASICS: A Comprehensive Guide to IC 3, 4 th Edition 1 Objectives Add clip art, shapes and drawn objects, SmartArt graphics, and pictures

More information

mgwt Cross platform development with Java

mgwt Cross platform development with Java mgwt Cross platform development with Java Katharina Fahnenbruck Consultant & Trainer! www.m-gwt.com Motivation Going native Good performance Going native Good performance Device features Going native Good

More information

Dashboard walkthrough: monitoring website performance

Dashboard walkthrough: monitoring website performance Dashboard walkthrough: monitoring website performance Published: 2018-01-19 When website performance slows down, knowing whether the issue is occurring at the application or network-level can save you

More information

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT

Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT Dynamic Web Programming BUILDING WEB APPLICATIONS USING ASP.NET, AJAX AND JAVASCRIPT AGENDA 3. Advanced C# Programming 3.1 Events in ASP.NET 3.2 Programming C# Methods 4. ASP.NET Web Forms 4.1 Page Processing

More information

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden

Java FX 2.0. Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden Java FX 2.0 Dr. Stefan Schneider Oracle Deutschland Walldorf-Baden Keywords: JavaFX, Rich, GUI, Road map. Introduction This presentation gives an introduction into JavaFX. It introduces the key features

More information

UP L11 Using IT Analytics as an Alternative Reporting Platform Hands-On Lab

UP L11 Using IT Analytics as an Alternative Reporting Platform Hands-On Lab UP L11 Using IT Analytics as an Alternative Reporting Platform Hands-On Lab Description IT Analytics has a diverse and powerful way of displaying data to your users. In this lab, you will learn how to

More information

In the first class, you'll learn how to create a simple single-view app, following a 3-step process:

In the first class, you'll learn how to create a simple single-view app, following a 3-step process: Class 1 In the first class, you'll learn how to create a simple single-view app, following a 3-step process: 1. Design the app's user interface (UI) in Xcode's storyboard. 2. Open the assistant editor,

More information

Full Stack Web Developer

Full Stack Web Developer Full Stack Web Developer Course Contents: Introduction to Web Development HTML5 and CSS3 Introduction to HTML5 Why HTML5 Benefits Of HTML5 over HTML HTML 5 for Making Dynamic Page HTML5 for making Graphics

More information

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing

Introduction to Graphical Interface Programming in Java. Introduction to AWT and Swing Introduction to Graphical Interface Programming in Java Introduction to AWT and Swing GUI versus Graphics Programming Graphical User Interface (GUI) Graphics Programming Purpose is to display info and

More information

Quick Multitouch Apps using kivy and Python

Quick Multitouch Apps using kivy and Python Quick Multitouch Apps using kivy and Python About Me! Python and Kivy + Setting up Kivy... 1) in Linux 2) in Windows 3) Mac OSX Hello World in Kivy :) Controlling the Environment Many environment variables

More information

Advanced Dreamweaver CS6

Advanced Dreamweaver CS6 Advanced Dreamweaver CS6 Overview This advanced Dreamweaver CS6 training class teaches you to become more efficient with Dreamweaver by taking advantage of Dreamweaver's more advanced features. After this

More information

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code. 20480C: Programming in HTML5 with JavaScript and CSS3 Course Code: 20480C; Duration: 5 days; Instructor-led WHAT YOU WILL LEARN This course provides an introduction to HTML5, CSS3, and JavaScript. This

More information