FIGURE 9.3 Display Functions (105 minutes)
200 DIGITAL WRISTWATCH
For example, if a Countdown Timer was set at 5:00 p.m. for 10 minutes, it would
have stored its alarm as 5:10 p.m.; if the user moved the clock back an hour at 5:05
p.m. to 4:05 p.m. the countdown alarm would not ring for another 65 minutes.
Conversely, if we stored alarms as an amount of time until ringing, the Countdown
Timer would work ?¬?ne, but a standard Alarm Clock would ring at the wrong time.We
decided to solve this by allowing each Alarmobject to specify whether it responded to
changes in local time or not.
Thinking about setting alarms also reminded us that we needed some way to
make a pair of digits on the time display blink, so the watch user would know
which time unit he was editing. While we could have avoided adding a concept by
saying that a time unit blinking was just a special case of an Icon, this would have
meant that going from an ???Edit Hours??? state to an ???Edit Minutes??? state would
have had to turn off ???blink hours??? and turn on ???blink minutes.???We would also have
to make sure that every path to ???Edit Hours??? would turn on the ???blink hours???
pseudo-Icon. A better approach seemed to be to recognize from the names of the
states that blinking of a time unit was actually a feature of the state itself.
Pages:
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372