cs349 - s10 - Lecture 21

CS349 - Implementing User Interfaces - Spring 2010

Public Service Annoucements

  1. 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.

(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.

  1. Who does the customization?
  2. What is the context of customization?
  3. What is the mechanism of customization?

Who does the customization?

  1. System programmer/assembler: H/W and OS capabilities
  2. Application programmer: look and feel of application
  3. Designers: [organization-wide] collections of documents
  4. Document authors: inidividual documents
  5. Document user: presentation of current document

Sometimes there are contradictions and inconsistencies. How do they get sorted out?

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

  1. Open systems (Apple -> Sun)
  2. Shrink-wrap software
  3. 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.,

What is the mechanism of customization?

Resources

History

  1. Environment variables
  2. .rc files
  3. Resource forks
  4. Resource files: special names, special places

The result: defaults are all-important.

Current Methods

  1. BIOS programming/selection
  2. Subclassing
  3. Style sheets
  4. Cascading style sheets

Return to: