cs349 - s10 - Lecture 21
CS349 - Implementing User Interfaces - Spring 2010
Public Service Annoucements
- Mid-term: 17 June, 2010, MC4059.
Lecture 21 - Customization
Look-and-feel: customizing components
Customization of component sets is common, especially on major UI
projects.
When you are going through this process you are designing a new - or
modified - look-and-feel for your interface.
- Why is it sometimes a good thing to give an interface a unique
look-and-feel?
- Why is it sometimes a bad thing to give an interface a unique
look-and-feel?
(Hints. 1. `Unique' is put in here as a deliberately bad descriptor. 2.
The answer should prominentaly include the word `gratuitous'.)
Three questions must be answered.
- Who does the customization?
- What is the context of customization?
- What is the mechanism of customization?
Who does the customization?
- System programmer/assembler: H/W and OS capabilities
- Reconfiguration may be available to 2-4
- Application programmer: look and feel of application
- Controlled by resource files
- Preference dialogues allow authors to customize application
- Designers: [organization-wide] collections of documents
- Mandated layouts and style sheets
- Document authors: inidividual documents
- Customized layouts and style sheets
- Document user: presentation of current document
- Proferences in display application
Sometimes there are contradictions and inconsistencies. How do they get
sorted out?
- usually by a priority list
- We would expect lower in the list overrules higher
- In fact, for CSS we got the priority list
- Author: in the html
- Reader: user preferences in the browser
- Browser: browser defaults
- What if properties are misaligned?
- Should a treat this element as text or as a header?
- Elaborate scoping rules, but only authors/designers need to know
them
An important special case: Internationalization
Respect for language, culture & politics.
The country-wide context experienced a very large amount of research and
attempted innovation during the 1990s. The issue was `internationalization':
how do you make an interface that works for groups of peole who come to it
from different languages, cultures and political systems.
There is, at present, no acknowledged solution for this problem. There are
two practical approaches
- Open systems (Apple -> Sun)
- Internationalization is a real problem. Innovate to solve it.
- LOCALE is the current state of the art,
- Set at install time
- It doesn't try to do very much
- and what it does do is screwed up almost everywhere.
- Shrink-wrap software
- A different package for each market
- Sometimes only the printing on the box
- Sometimes the tutorial and/or manual
- Sometimes words that occur in the application
- Almost never the programmed interface
- Driven by marketing
- My way or the highway (Stone age: IBM, then Microsoft)
Solution by fiat, IBM: `Let them learn EBCDIC', Microsoft: `Let them
learn English.' E.g.,
- Create your own standards.
What is the mechanism of customization?
Resources
History
- Environment variables
- .rc files
- Resource forks
- Resource files: special names, special places
The result: defaults are all-important.
Current Methods
- BIOS programming/selection
- Subclassing
- Style sheets
- Cascading style sheets
Return to: