Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSCI 6363 Human Computer Interaction Class Introduction and User Interface History Xerox Star, 1981.

Similar presentations


Presentation on theme: "CSCI 6363 Human Computer Interaction Class Introduction and User Interface History Xerox Star, 1981."— Presentation transcript:

1 CSCI 6363 Human Computer Interaction Class Introduction and User Interface History Xerox Star, 1981

2 Familiar Systems … What is the below? –Right, a computer Many (essentially all) courses concerned with, e.g., algorithms, architecture, operating systems, … –How many courses have you had concerned with these?

3 Familiar Systems … What is the below? –Right, a human Not so many courses in your curriculum talk about However, without humans there would be no computer science!

4 Familiar Systems … So, the subject(s) of this course – human computer interaction –Computer system, human, software, hardware, programming, models, … And – most importantly, their interaction –Human-Computer Interaction: HCI

5 Familiar Systems … So, the subject(s) of this course – human computer interaction –Computer system, human, software, hardware, programming, models, … And – most importantly, their interaction –Human-Computer Interaction: HCI

6 Familiar Systems … So, the subject(s) of this course – human computer interaction –Computer system, human, software, hardware, programming, models, … Also, will be concerned with how to program display and interaction mechanisms common to user interface implementation

7 Familiar Systems … So, the subject(s) of this course – human computer interaction –Computer system, human, software, hardware, programming, models, … Also, will be concerned with how to program display and interaction mechanisms common to user interface implementation Even learn some things about the human –Cognition, performance, …

8 Ever seen this?

9 What’s wrong here? To start with, it doesn’t provide the user feedback about whether the last action was correct –It does not say it is the course schedule Then, well, I guess it’s a matter of “selecting a term”

10 What’s a module? Is it like a semester?

11 OK, scroll down But, why do you (the user have to scroll down? Why isn’t the usual, rather the exceptional, choice the one on top? What is the user’s impression of the system and the organization using it? –It’s harder than it should be

12 OK, scroll down Besides impression and satisfaction, what’s the cost? About 3 seconds per user –If practiced –If no error 3 secs * 3 times * 20,000 users = 50 hours How long to do right? –~ 0 hours

13 Why HCI and Interactive Systems? The interface is all the user (customer, employee) sees! –Efficiency, success, satisfaction … Practically … –In sw systems > 50% of code is ui code –And somebody has to program it Discipline wise … –ACM SIGCHI is 2 nd largest conference –SIGGRAPH in 10’s of k, SIGCHI k’s … many just hundreds Bigger picture … –“External aids to cognition”, as critical for humans –Ability of computers to store and retrieve information may have deep implications –History of computing systems leads to emphasis on interactive systems Context first

14 Overview of Interactive Systems Humans interact with computers primarily through displays ( and input devices) In fact, lots of things going on that are part of the whole context of computing, humans and hci –Human –Interaction Style, characterization, design –Programming systems Other UTPA CS courses: –CSCI 6360: Graphics –CSCI 6361: Visualization

15 External Aids to Cognition

16 A tool is a tool is a tool … –(arguably) –Whether mechanical or electronic (information) Levers multiply physical forces, information tools multiply … –Computer as “mind tool” … Don Norman: –“The power of the unaided mind is highly overrated. Without external aids, memory, thought, and reasoning are all constrained. But human intelligence is highly flexible and adaptive, superb at inventing procedures and objects that overcome its own limits. The real powers come from devising external aids that enhance cognitive abilities. How have we increased memory, thought, and reasoning? By the invention of external aids: It is things that make us smart.” (Norman, 1993, p. 43)

17 Amplifying Cognition Humans think by interleaving internal mental action with perceptual interaction with the world This interleaving is how human intelligence is expanded –Within a task (by external aids) –Across generations (by passing on techniques and knowledge) Computers in general, and interactive systems in particular, are important class of external aid

18 External Cognition – A Demo In your head: 34 x 72 Without special purpose algs, it’s a chore Need to remember intermediate results: 34 x 2 and 34 x 70 and add them External aids make it easy to remember int. results –paper and pencil, easy Or do away with altogether –calculator, fast

19 External Aids In fact a long history of external aids Slide rule exploits addition of logs for multiplication –Analog device Computers are general purpose external aids

20 Ratio of Hu man Cost to Hardware Cost for Computing Many years ago computers were large expensive unreliable machines Von Neuman thought a few machines of capacity of Eniac would be enough for US Plugging in cables, or setting switches, was reasonable use of operator time (both training and operation) Cost of computer time relative to operator time was very high, And tasks that were performed were relatively simple A few calculations vs. interactive scientific visualization, or the human task of managing one's own "information space" ENIAC

21 Ratio of Human Cost to Hardware Cost Interface styles have changed over time As cost of hardware has decreased, has resulted in increasing need for efficiency of human time utilization

22 Ratio of Human Cost to Hardware Cost Change in the relative cost of computer to human time, –coupled with tasks that can be performed due the processing power are responsible for the change in interface style –(put another way:) Power of computer essentially ALLOWS more computing power to be directed toward the interface –Today, even "entry-level" PC's have "way more" processing power than needed for most task e.g., word processing Today, cost of hardware is essentially trivial compared to the cost of human user!

23 Ratio of Human Cost to Hardware Cost Moore’s law is the 800 pound elephant in the room But, no real change in change in interaction style since mid ’80’s –25 year’s! –Approaching a complete human generation Rather, more computing devices –Shneiderman notes and his current edition reflects this Also, connectivity of devices and storage

24 Context of User Interfaces Graphics is key enabling technology in evolution of computing environments: –Graphical user interfaces –Visual computing, e.g., desktop publishing, scientific visualization, information visualization Hardware revolution drives everything –~ every 18 months, computer power improves by factor of 2 in price/performance –Moore's Law –… and exponential growth generally – things are different … Graphics memory and network speeds are on even faster exponentials –graphics chips in particular have major improvements every six to nine months

25 Moore’s Law - CPUs Hardware revolution drives everything –~ every 18 months, transistor count improves by factor of 2 in price/count –Moore's Law

26 Moore’s Law - CPUs Hardware revolution drives everything –~ every 18 months, transistor count improves by factor of 2 in price/count –Moore's Law

27 Another Example of Exp. Growth The Internet … by whatever metric

28 Another Example of Exp. Growth And digital camera resolution ….

29 Taking Advantage of Exp. Growth?

30 On Exponential Growth … Some “technology” is exponential in advancement Other things are not … –E.g., software and …

31 Moore’s Law Dead? … and transistor count not equal to power

32 Moore’s Law Dead? Transistor count not equal to performance

33 Parallelism and Moore’s Law Moore’s law is alive and well for graphics and may be fine too for “gpu computing” –Because lends itself to parallelization –Pipeline architecture works well with current approach to cg Now, gpu processing power significant fraction of cpu processing power in pc’s How to use parallel, here, gpu, architectures is not a new question Cf. Nvidia gpu programming language (CL)

34 And Ratio of Human Cost to Hardware Cost for Computing … and “Neural Power” Hans Moravec, When will computer hardware match the human brain? Dec. 1997 http://www.frc.ri.cmu.edu/~hpm/http://www.frc.ri.cmu.edu/~hpm/ But, like, not … 1. Promise of future fallacy 2. Computer processing not (at all) like neural processing (but, cf. this month’s CACM, “Cognitive Computing”)

35 Ratio of Human Cost to Hardware Cost Moore’s law is the 800 pound elephant in the room But, no real change in change in interaction style since mid ’80’s –25 year’s! –Approaching a complete human generation Rather, more computing devices –Shneiderman notes and his current edition reflects this Also, connectivity of devices and storage

36 Chronology of System Development (another take on style) Wise, 1997

37 W W W = Hypertext (a quick example of why vision and history matter)

38 Real “power” interest in Internet only arose well after its initial implementation –ARPANET –Relatively few people cared about ftp, bbs, … –At least “few” compared to current use of WWW Interest and use arose only after: –Specification of WWW How to go from one file/document to another via its address … the link! –And then only with design of a graphic user interface for it Text-based browsers not too neat (at least to non-computer types) How to “navigate” easily and with use of pictures/images/icons Essential idea of “navigation” among documents dates to Vannevar Bush’s Memex, 1945

39 History: Vannevar Bush, MEMEX MIT professor 25 years, etc. –Claude Shannon (information theory) was student Roosevelt’s science advisor in WWII Invented continuous intergraph or Differential Analyses –Essentially, Charles Babbage’s Difference Engine with shafts driven by motors –Analog computing solutions to differential equations (gears, etc.) –Big and handmade

40 History: Bush's MEMEX, 1945 "As We May Think", 1945 –MEMory EXtender system –Atlantic Monthly! –available at: http://www.theatlantic.com/atlantic/atlweb/fl ashbks/computer/bushf.htm http://www.theatlantic.com/atlantic/atlweb/fl ashbks/computer/bushf.htm –“new knowledge not reaching the people who would benefit from it” –Concerned about the explosion of scientific literature which made it impossible even for specialists to follow developments in a field, –“A Memex is a device in which an individual stores all his books, records, and communications, and which is mechanized so that it may be consulted with exceeding speed and flexibility. It is an enlarged intimate supplement to his memory.” –desk, slanting screens, buttons, levers, and keyboard “ A memex looked like a desk with two pen-ready touch screen monitors and a scanner surface. It had several gigabytes of storage space filled with textual and graphic, indexed, information ”

41 History: Bush's MEMEX, 1945 Microfilm projectors for viewing different information –uses mircofilm for storage –new material can be added via microfilm or by direct entry via ‘‘dry photography'‘ Supports indexing, cross ­ referencing, keywords –supports associative indexing via links and creation of ``trails'' which can later be followed –allows annotations ­ comments, and marginal notes. –envisions multimedia i/o: other senses, such as, speech and audio Associative indexing –"The process of tying things together is the important thing.“ –New profession of ``trail blazing" –Trail building and trail following by user

42 Editor’s foreword to Bush’s 1945 Atlantic Monthly article As Director of the Office of Scientific Research and Development, Dr. Vannevar Bush has coordinated the activities of some six thousand leading American scientists in the application of science to warfare. In this significant article he holds up an incentive for scientists when the fighting has ceased. He urges that men of science should then turn to the massive task of making more accessible our bewildering store of knowledge. For years inventions have extended man's physical powers rather than the powers of his mind. Trip hammers that multiply the fists, microscopes that sharpen the eye, and engines of destruction and detection are new results, but not the end results, of modern science. Now, says Dr. Bush, instruments are at hand which, if properly developed, will give man access to and command over the inherited knowledge of the ages. The perfection of these pacific instruments should be the first objective of our scientists as they emerge from their war work. Like Emerson's famous address of 1837 on "The American Scholar," this paper by Dr. Bush calls for a new relationship between thinking man and the sum of our knowledge. --THE EDITOR

43 Some Interactive Systems History

44 Doug Englebart –A Turing Award for vision in interaction Ivan Sutherland –A early 1960’s “paint program” that foreshadowed much Alan Kay –The “personal computer” – also, dynabook, Apple II Today’s ubiquitous interaction style –Xerox Star and Alto –Apple Lisa and Macintosh

45 Douglas Engelbart, 1963 Turing Award, 1998 – this is a big deal Augmentation of human intellect (1963) –“... increasing the capability of man to approach a complex problem situation, gain comprehension to suit his particular needs, and to derive solutions to problems.” –Recognized his ideas built on Bush's idea of a machine that would aid human cognition –hierarchical structures for ordinary documents –group creation and problem solving NLS System (1965­1968): –outline editors for idea development –hypertext linking –tele-conferencing, word processing, e-mail System required: –mouse pointing device for on-screen selection: Invented the mouse (1965) as a replacement for light pens for use in his NLS system –a one-hand chording device for keyboard entry –full windowing software environment –on-line help systems –concept of consistency in user interfaces

46 Sutherland’s Sketchpad Ivan Sutherland –“Pioneer” of … lots of things –Visualization –Graphics –Interaction –Still around Evans and Sutherland graphics First truly interactive graphics system, Sketchpad –A fairly sophisticated “paint” (or drawing) program MIT, Ivan Sutherland’s 1963 Ph.D. thesis –“Sketchpad, A Man-Machine Graphical Communication System” Available: www.cl.cam.ac.uk/techreports/UCAM-CL- TR-574.pdf Video: www.youtube.com/watch?v=mOZqRJzE8xg “Among most important works in computer science” Ivan Sutherland using Sketchpad in 1963 CRT monitor, light pen and function-key panel

47 Ivan Sutherland’s Sketchpad, 1963 Regarded as the first to implement much of what called “visualization”, “immersion”, and “virtual reality” (not to mention cg) Some quotes: –….. If the task of the display is to serve as a looking-glass into the mathematical wonderland constructed in computer memory, it should serve as many senses as possible. –….. By working with such displays of mathematical phenomena we can learn to know them as well as we know our own natural world. Such knowledge is the major promise of computer displays. –….. The ultimate display would, of course, be a room within which the computer can control the existence of matter. A chair displayed in such a room would be good enough to sit in. Handcuffs displayed in such a room would be confining, and a bullet displayed in such a room would be fatal. With appropriate programming such a display could literally be the Wonderland into which Alice walked.

48 Sutherland’s 1960’s equipment “Ultimate display”, 1965 Sword of Damocles – 1 st HMD –Actual camera-like metal shutters –Not OSHA approved

49 Advances in Computer Graphics for Interaction Input devices such as data tablets (1964) Display processors, capable of real ­ time image manipulation (1968) Introduction of low ­ cost graphics terminals (1970s) OS support for interactive graphics under timesharing systems New programming languages for embedded graphics support New applications flourished - computer ­ aided math libraries (1968). - 3D computer graphics / molecular modeling (1968, 1977). - animation, movies, sequencing of images (1966, 1969)

50 The “Personal Computer”, 1 Dynabook (Alan Kay, 1977): Conceptualized notebook computer: cardboard prototype “...a self ­ contained knowledge manipulator in a portable package the size of an ordinary notebook... ” powerful processor, lots of memory, high resolution graphics, high fidelity audio Altair 8800 (1975): Considered to be first microcomputer 2 MHz Intel 8080 with 256 bytes standard RAM and interfaced with the user through octal front panel switches appeared in Popular Electronics home computer people, could build for around $400 Altair 8800

51 The “Personal Computer”, 2 Apple II (1977): Was “ easy to use ” Color graphics High-level language embedded in ROM 4K of memory, more could be added to a maximum of 12K (if using the 4K chips) or 48K (if using the 16K chips)

52 Innovations at Xerox PARC in Late 1970s Xerox Alto Comprehensive combination of many ideas developed at Xerox PARC and other pioneering systems: user conceptual model via the desktop metaphor. direct manipulation, property/option sheets to specify appearance of objects. what you see is what you get (WYSIWYG). universal generic commands that are used throughout the system (e.g., move, copy, edit, delete). high degree of consistency, look and feel. modeless interaction and limited amount of user tailorability

53 (FYI) Xerox Alto The Xerox Alto (1979): it was always referred to as the "personal computer" it used high resolution bit-mapped graphics, a mouse, menus, icons and other features a single user machine supplied with software for word processing, electronic mail and other office tasks the 15 inch display was bit-mapped and had 72-dpi resolution (about 1000 x 800) 1/2 meg of memory, 29 mb of disk storage, and a mouse about the minimum specifications to support a graphic interface pioneered developments of GUIs and applications text editing, drawing, document processing, e ­ mail, windows, menus, scrollbars, mouse control and selection simultaneous file storage featured the world's first What-You-See-Is-What-You-Get (WYSIWYG) lead to the creation of Ethernet, a local area networking protocol, to link Altos within PARC (1975)

54 Screen shots of an Alto Xerox Alto

55 Designed for business professionals in an office environment. Contained all of the Alto's capabilities plus multilingual software, the Mesa programming language, and interim file servers The most distinguishing features of the Star were technologies like bitmapped screens, windows, a mouse-driven interface, and icons. The system allowed users to create complex documents by combining computing, text editing and graphics, and to access file servers and printers around the world through simple point-and-click actions The Xerox Star (1981), 1 "The best way to predict the future is to invent it." --Alan Kay

56 The Xerox Star (1981), 2 Star did not turn out to be a commercial success. The reasons for failure: it was ahead of its time and the full potential of the software was only visible to the PARC developers the software was designed for users with no computer knowledge, it became very demanding on the hardware perceived as too slow unreasonable speed because of memory consumption and the number of hardware cycles needed costly, $16,595 in 1981; IBM introduced a cheaper machine. limited functionality: no spreadsheet lacked an open architecture no 3rd party application development: because the programming language was never publicly released. direct manipulation was overly used and not the best in some cases

57 (fyi) Xerox Star Design Goals (1) FAMILIAR USER'S CONCEPTUAL MODEL as much as possible, the functionality of the system would be conveyed to the user by representing system objects by familiar concrete objects that is, if possible, metaphor would be used to convey the capabilities of the system after all, this was a personal computer for office use, so the designers settled on the metaphor of computer system as desktop knowledge about how to use office equipment might be used in using and learning the system USE ‘ SEEING ’ AND ‘ POINTING ’ VS. ‘ REMEMBERING ’ AND ‘ TYPING ’ everything that is relevant to a task is visible on the screen their rationale was couched in terms of the human visual and memory systems basically, if possible, it's more efficient not to have to remember the set of all commands and objects and then they made a very interesting statement, that I'll elaborate on later: "A subtle thing happens when everything is visible: the display becomes reality. The user model becomes identical with what is on the screen. Objects can be understood purely in terms of their visible characteristics. Actions can be understood purely in terms of their effects on the screen." - this has come to be called "direct manipulation"

58 (fyi) Xerox Star Design Goals (2) WHAT YOU SEE IS WHAT YOU GET (WYSIWYG) UNIVERSAL COMMANDS –as many commands as possible should be able to be used in the same –way throughout the system –help, undo CONSISTENCY –mechanisms should be used in the same way wherever they occur –for example, the left mouse button always selects SIMPLICITY –when possible –but novices and experts use the same system –in Alan Kay's words: "simple things should simple, complex things should be possible" MODELESS INTERACTION –in practice, select object, then action –for example, no delete mode USER TAILORABILITY – well, if these design goals (except for the last one) CONJURED UP for you the Apple Lisa and Macintosh, that's good because it was after a trip to Xerox PARC, that Steve Jobs conjured up the Apple Lisa and Macintosh (and, I understand, entered into licensing agreements with Xerox) indeed, these goals have become for most designers the BASIC TENETS OF GRAPHIC INTERFACE DESIGN

59 Apple Computer - Lisa Apple Lisa (1983) “after a visit to Xerox …” based on ideas from Xerox Star could be used as an office tool but also individuals at $10,000 was cheaper than the Star, but... also failed...

60 Apple Computer - Macintosh Apple Macintosh (1984): same ideas from the Lisa, but much improved Reasons for success: – cheaper: only $2500. – previous systems prepared the market. – ‘‘ second generation,'' many problems with Lisa were fixed. – open architecture and powerful developers toolkit. – published interface guidelines: consistent look and feel for apps. – excellent graphics and emergence of desktop publishing. – Apple had marketing expertise, distribution channels, and experienced computer sales and support staff

61 Ware’s “Ultimate Display”

62 A question to ponder … Recall, ui history –Nothing much new lately (20 years since wimp) Is this because ui (or is) design awaits a fundamentally new way of conceptualizing the use of computers? A fact: –Second language use acquired after some young, e.g., 5-8 years old, is fundamentally different than language skills acquired earlier E.g., translation vs. thinking, forming phonemes A way that can only be conceptualized by a person (or really some critical mass of people) who have fundamentally (neurologically) different ways of perceiving computers? –Has it happened already? –When might that happen? –How might it happen?

63 “Human Computer Interaction” Course overview Shneiderman text …

64 Usability of Interactive Systems Introduction –What is an interface? –Examples of good and bad design –Principles of design About the field –Evolution of hci and interface design Interaction Design: –Some principles through examples Usability –What, why, examples, motivation Universal Usability Goals for the Profession

65 Theories, Principles, Guidelines Guidelines: –Navigating interface, organizing display –Getting user’s attention, data entry Principles: –“Rules that distill out the principles of effective user interfaces” –Determine users’ skill level –Identify tasks –Choose an interaction style –“Golden rules of interface design” –Integrating automation and human control Theories and models: –Levels of analysis theories –Stages-of-action models –GOMS and keystroke-level model –Consistency through grammars –Widget level –Context of use Theories Guidelines Principles

66 Managing Design Processes Organizational design to support usability –Shneiderman talks about both “design” and organizational context in which it occurs Carroll and Rosson’s characterization of design –“radically transformational” Shneiderman’s “three pillars of design” –Guidelines documents and processes –User interface software tools –Expert reviews and usability Development methodologies –IBM: Ease of Use, Lucid “Ethnographic” user observation Participatory design Scenario development Social impact statement for early design review Legal Issues

67 Expert Reviews, Usability Testing, Surveys, and Continuing Assessment Introduction –Evaluation Plans, Acceptance Testing, and Life Cycle Expert reviews Usability testing and techniques –Goal is to “engineer” a good interface, constrained by time and cost Survey instruments Acceptance tests Evaluation during active use “Controlled psychologically oriented experiments” –Elements of science, as applied to interface evaluation

68 Command Line, Menu Selection, Form Fillin, Dialog Boxes What and why “frameworks (or theories) of interaction” –The big picture (again) Overview of interaction styles –Command line, menus, …, WIMP, … –Direct manipulation “Look and feel” Details: –“Theory, principles, and (especially) guidelines” –Menus, form fillin

69 Interaction Frameworks (Dix) Interaction: –Communication between user and system Why have a framework? –Allows “precision” in accounting for differences E.g., gulfs of execution and evaluation –Presents global view All elements receive attention Task “work on task” “commands” System User “gives” “performs” “feedback”

70 Direct Manipulation (Hutchins et al.) Introduction –Big picture first, details and a theoretical account later Examples of Direct-Manipulation systems Explanations of Direct Manipulation –Hutchins et al. paper Virtual Environments, or Immersive Interfaces

71 Balancing Function and Fashion User Manuals, Online Help, and Tutorials “Balancing Function and Fashion” –Error messages –Nonanthropomorphic design –Display design –Window design –Color “User Manuals, Online Help, and Tutorials”

72 Balancing Function & Fashion Interface design, both graphics and interaction, not yet “high art” (Shneiderman) –Architecture and fashion are old, interfaces are not But, not too sure how far analogy goes … –Usually, consider that interface design is about software engineering, usability, etc. Recall, early discussions –Perhaps better, computer interface design is young Yet, there is style –And it elements can be examined Where “style” results from the set of decisions made about graphics design, type of interaction form, wording selected, etc., that are made –Recall, guidelines constrain, etc.

73 “Look and Feel” “Look and feel” –Lots of things you can interact with: main WIMP components (windows, menus, icons) Buttons Dialogue boxes Palettes … Collectively known as widgets appearance + behavior = look and feel

74 And programming, too

75 Will take two approaches to programming: 1. “Assembly language programming for user interfaces” –MS Windows API using c Yes, that’s c, not c++, not c#, … for the pedagogy Focus on event driven programming – with no software layer between programmer and windowing system event queue 2. A High level tool –QT Cross platform user interface programming tool E.g., used in first Google Earth implementation Java, c++ (mfc) straightforward object oriented approach

76 Windows API Control flow is “event driven” –Vs. simply top to bottom All about function calls and interface elements –E.g., “get and set thumb of scroll bar” –~700 Will use C (vs. C++ or Java or …) –Want to get to layer of closest control

77 About Interaction Handling, Polling vs. Event - Driven Sampling (polling) vs. event-driven software architectures Basic issue of how to get and act upon user actions Entails “looking at” (getting information from) input devices Readln (...) -- get character information, “sits and waits” With several asynchronous devices (mouse loc & button, keyboard,...) need new method(s)

78 About Interaction Handling, Polling Polling to detect mouse: // general initial display, etc // use past and current values of some event indicator to see if (new) input old_val = get_val_of (mouse_button_1) WHILE (!quit) { : new_val = get_val_of (mouse_button_1) if (new_val != old_val) { // do whatever to do with mouse click old_val = new_val } // check other devices too, and act if need to } This is process intensive as always checking May be better to have scheme in which not just keep looking

79 About Interaction Handling, Event Driven Event Driven // general initial display, etc WHILE (!quit) { // program waits for user action wait_on (user_action) switch (user_action) { case mouse_button_1_clicked: // do whatever to do with mouse click // other cases to handle user input case mouse_button_2_clicked: : } wait_on()?

80 Event Queue When > 1 user action occurs before complete processing of another event put events in queue, the event queue This is basic manner in which MS windows handles user input: there is an event for everything (click, resize window, move mouse into window,move at all,...) and a message is generated for each, so in fact the messages are held in a queue: the window’s message queue

81 Overview Windows distribute messages to programs –A function (named in main program, e.g., wndproc) is called (instantiated) to process events –Event-driven architecture Program driven control flow –Typically, programs are structured so that updating occurs when window is redrawn upon receiving a WM_PAINT message E.g., scroll bars are an windows interface object that when user interacts with cause messages to be sent to programs event cue –Will examine those messages in detail as a first example Petzold’s text uses c programs to illustrate –Which is good because it’s real –However, requires fairly extensive experience with c to appreciate all nuances

82 Windows Distributes Events to Appropriate Event Queues Windows perspective: Program 1Program 2Program 3 Event queue 1Event queue 2Event queue 3 Windproc 1 Windproc 2 Windproc 3

83 Interaction Handling: Event Driven Program perspective: Program handles events, thus event-driven programming // general initialization, first display While (!quit) { // program waits for user action wait_on (user_action)// just sit there until event occurs switch (user_action) { case mouse_button_1_clicked // do whatever upon mouse click // other cases to handle input (events) case mouse_button_2_clicked : } When > 1 user action occurs before completing processing of another event, put event in queue, the event queue In fact there is a message for just about everything, mouse move, resize, etc., and events are passed to the program as messages and placed in the message queue

84 Function Called to Process Events (first look) Entry point is WinMain( ) –Name of function, e.g., WindowProc, to handle events, etc., specified in main program –Loop to “ translate and dispatch ” events Function, e.g.,WindowProc( ), is called repeatedly to handle events/messages –On and off stack, so must use static variables to save values

85 Interaction Handling: MS Windows Code Note similarity of Windows program to general structure: WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { HDC hdc ; PAINTSTRUCT ps ; RECT rect ; switch (iMsg) { case WM_CREATE : PlaySound ("hellowin.wav", NULL, SND_FILENAME | SND_ASYNC) ; return 0 ; case WM_PAINT : hdc = BeginPaint (hwnd, &ps) ; GetClientRect (hwnd, &rect) ; DrawText (hdc, "Hello, Windows 95!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER) ; EndPaint (hwnd, &ps) ; return 0 ; case WM_DESTROY : PostQuitMessage (0) ; return 0 ; } return DefWindowProc (hwnd, iMsg, wParam, lParam) ; } Each “case” represents an event, and what to do when it occurs Should (soon) feel (more or less) comfortable with all aspects

86 End


Download ppt "CSCI 6363 Human Computer Interaction Class Introduction and User Interface History Xerox Star, 1981."

Similar presentations


Ads by Google