03 – User Interface Design, and Sound and Graphics Mark Dixon, SoCCE SOFT 131 Page 1 Session Aims & Objectives • Aims – introduce you to the fundamentals of: • good user-interface design, • sound, and • graphics • Objectives, by end of this week’s sessions, you should be able to: – put bitmap (raster) graphics into your applications – draw simple vector graphics in your applications – play MP3 and WAV files in your applications Mark Dixon, SoCCE SOFT 131 Page 2 Example: disks & files Mark Dixon, SoCCE SOFT 131 Page 3 Human-Computer Interaction ‘Human-Computer Interaction (HCI) is about designing computer systems that support people so that they can carry out their activities productively and safely.’ Preece et al, 1994 (p. 1) • three main concerns: – usefulness: is software functionality of use to user – usability: is software easy to use – learnability: is software easy to learn • software may be: – ‘simple to use, but of no value to me’ – ‘really helpful, but awkward to use’ – ‘really helpful, if only I could figure out how’ Mark Dixon, SoCCE SOFT 131 Page 4 HCI – why bother? • ‘The Day the Phones Stopped’ (Preece et al, 1994 p. 25) Mark Dixon, SoCCE SOFT 131 Page 5 HCI - Design Guidelines • Some issues: – Consistency – Fast feedback – Manage errors – Reduce cognitive load – User variety – User testing with actual users –… –… Mark Dixon, SoCCE SOFT 131 Page 6 Question: Address Book Which is best? Mark Dixon, SoCCE SOFT 131 Page 7 HCI - Direct Manipulation • Direct Manipulation Interfaces (Shneiderman 1998, p. 205) – ‘Continuous representation of the objects and actions [information] of interest with meaningful visual metaphors’ – ‘Physical actions or presses of labelled buttons, instead of complex syntax’ – ‘Rapid incremental reversible operations whose effect on the object of interest is visible immediately’ Mark Dixon, SoCCE SOFT 131 Page 8 Example: Ball v2 - Design • User interface design: BallChar • Functional design: Trigger (when) Actions (what) click event of Right button click event of Left button click event of Up button click event of Down button move ball character right move ball character left move ball character up move ball character down click event of Centre button move ball character to centre of form Mark Dixon, SoCCE SOFT 131 Page 9 Example: Ball v2 - Code • Properties (setting at run-time) BallChar – use code, assignment operator (=) – can change while program is running Option Explicit Private Sub btnCentre_Click() picBallChar.Left = Me.ScaleWidth / 2 End Sub Private Sub btnRight_Click() picBallChar.Left = picBallChar.Left - 200 End Sub Mark Dixon, SoCCE SOFT 131 Page 10 Example: Holiday • User Requirement – ‘I want a cheap holiday, so I need to know times and prices of ferries and flights’ • Can solve this by – visit company offices – phone – www, compare the following: • Brittany Ferries • EasyJet Mark Dixon, SoCCE http://www.brittany-ferries.co.uk http://www.easyjet.co.uk SOFT 131 Page 11 Types of Graphics: Raster • Raster graphics – made of dots (pixels – picture elements) – stored in .jpg, .bmp, and .gif files – suitable for complex, static pictures (e.g. photos) – difficult to change programmatically – loses quality when enlarged: Mark Dixon, SoCCE SOFT 131 Page 12 Types of Graphics: Vector • Vector graphics – made of objects (lines, circles, etc.) – suitable for simple, dynamic pictures (diagrams) – No loss of quality when enlarged Mark Dixon, SoCCE SOFT 131 Page 13 Example: PicView - Analysis SPECIFICATION • User Requirements – display photos quickly and easily one after another • Software Requirements – Functional: –change current folder and drive –display list of picture files in current folder –display picture (*.jpg, *.bmp, and *.gif) from files in current folder – Non-functional should be quick and easy to use PicView Mark Dixon, SoCCE SOFT 131 Page 14 Controls • Picture Box: display pictures • Drive List Box: allow user to select disk drive • Directory List Box: allow user to select folder • File List Box: allow user to select file Mark Dixon, SoCCE SOFT 131 Page 15 Controls' Properties • Picture Box (pic) – Picture: allows display of bitmap (raster graphic) as background • Drive List Box (drv) – Drive: the currently selected disk drive • Directory List Box (dir) – Path: the currently selected directory (folder) • File List Box (fil) – Path: the currently selected folder/directory – Pattern: only display this type of file (e.g. .jpg) – FileName: the currently selected file Mark Dixon, SoCCE SOFT 131 Page 16 Example: PicView - Design • User interface design: • Functional design: Trigger (when) Actions (what) click event of Drive Box make drive current (directory box points to this drive) click event of Directory Box make folder current (file box points to this folder) click event of File Box display selected picture in picture box Mark Dixon, SoCCE SOFT 131 Page 17 Example: PicView - Code drvMain dirMain Option Explicit filMain Private Sub drvMain_Change() dirMain.Path = drvMain.Drive End Sub picMain Private Sub dirMain_Change() filMain.Path = dirMain.Path End Sub Private Sub filMain_Click() picMain.Picture = LoadPicture(filMain.Path & "\" & filMain.FileName) End Sub Mark Dixon, SoCCE SOFT 131 Page 18 Vector Graphics: Grid System • the origin (position 0,0) is at top left – in mathematics it is always bottom left 0 1000 2000 0 1000 Mark Dixon, SoCCE SOFT 131 Page 19 Picture Box: Drawing Methods • Methods (vector graphics) – Line: draws a straight line between 2 points – Circle: draws a circle – PSet: draws a dot (point) – Cls: clears (screen) drawing area Mark Dixon, SoCCE SOFT 131 Page 20 Example: Shapes • Form and Picture Box control support graphics methods: picDisplayArea.Line (500, 200)-(1900, 800) picDisplayArea.Line -(2600, 600) picDisplayArea.Line -Step(-600, -400) picDisplayArea.Circle (700, 900), 300 picDisplayArea.PSet (1500, 1000) 0 1000 2000 0 1000 Shapes Mark Dixon, SoCCE SOFT 131 Page 21 Example: StickMan • Enabled property (true or false) StickMan 0 1000 2000 0 1000 Mark Dixon, SoCCE SOFT 131 Page 22 Example: Face Face Mark Dixon, SoCCE SOFT 131 Page 23 Example: Door Private Sub btnDoor_Click() picDoor.Cls picDoor.Line (200, 200)-(1300, 1800), vbRed, BF picDoor.Line (200, 200)-(1300, 1800), vbBlack, B picDoor.Line (300, 300)-Step(300, 600), vbGreen, BF picDoor.Line picDoor.Line picDoor.Line picDoor.FillColor = vbYellow picDoor.FillStyle = vbSolid picDoor.Circle (1150, 900), 100, vbBlue End Sub you need to fill these lines in Mark Dixon, SoCCE SOFT 131 Page 24 Additional Controls • VB has hundreds of controls • To include additional controls in your project: – Project menu – Components item • Multimedia Control – plays MP3 & WAV files Mark Dixon, SoCCE SOFT 131 Page 25 Multimedia Controls' Properties • Multi-media Control – FileName: name of file to play – Command: controls playback Mark Dixon, SoCCE SOFT 131 Page 26 Example: Ball v3 - Code • Properties (setting at run-time) – use code, assignment operator (=) – can change while program is running BallChar mmcNoise Private Sub picBallChar_Click() mmcNoise.Command = "Close" mmcNoise.FileName = "Fart.wav" mmcNoise.Command = "Open" mmcNoise.Command = "Play" End Sub Mark Dixon, SoCCE SOFT 131 Page 27 Example: Music Player - Analysis • User Requirement: – to play different music for long time without interruption, at same location (while working or at party) • Software Requirements Specification software should: – allow user to: • select track (MP3 file) from folder on disk • play selected track – automatically • move to next track in folder • go back to first after last has played Mark Dixon, SoCCE SOFT 131 later lecture Page 28 Example: Music Player - Design • Compare the following User Interface Designs: V0 Mark Dixon, SoCCE V1 SOFT 131 Page 29 Example: Music Player - Code drvMain dirMain Option Explicit Private Sub drvMain_Change() dirMain.Path = drvMain.Drive End Sub Private Sub dirMain_Change() filMain.Path = dirMain.Path End Sub Private Sub filMain_Click() mmcMain.Command = "Close" mmcMain.FileName = filMain.Path & "\" & filMain.FileName mmcMain.Command = "Open" End Sub mmcMain Mark Dixon, SoCCE filMain SOFT 131 Page 30 VB6 IDE: Debugger • Run your program (F5), or • Step through line by line (F8) • Immediate Window: Run Pause Stop code executed immediately Mark Dixon, SoCCE SOFT 131 Page 31 VB6 IDE: Help System • F1 key – when control selected – when code selected • Gives help about what was selected • Not tutorial • A reference Mark Dixon, SoCCE SOFT 131 Page 32 Tutorial Exercise: PicView • • • • • Task 1: Get the BallChar v2 example (from the lecture) working. Task 2: Get the PicView example (from the lecture) working. Task 3: Get the StickMan example (from the lecture) working. Task 4: Get the BallChar v3 example (from the lecture) working. Task 3: Get the Music Player example (from the lecture) working. • Task 5: Modify your program to automatically start playing a track once it is clicked. • Task 6: Modify your program to automatically go the next track after the current one ends. • Task 7: Modify your program to include a progress bar that shows the current position in a playing track (You will need to use the help system) Mark Dixon, SoCCE SOFT 131 Page 33
© Copyright 2026 Paperzz