[comp.sys.next] NeXT's unreleased classes

wjs@fred.cs.washington.edu (William Shipley) (03/25/90)

There are a number of nifty classes in the common library that NeXT
hasn't documented.  Here are two that I'd like to see.  (Note that
my descriptions and names are based on intelligent guesses, not facts.
Obviously, if I knew everything about these classes, I wouldn't post this.)

Browser:
- Appears in the Workspace, FontPanel, SavePanel, etc.
- Works kind of like a matrix, except with a fixed cell type (SelectionCell?),
and scrolling handled by the little buttons underneath.  Allows multiple
columns, headers on columns, radio or list selection.
- Workaround: Get the header (.h) file from me (Courtesy Ed Jung), copy the
browser out of /usr/lib/NeXT/fontpanel.nib, and paste into your IB project.

ColumnCell:
- Appears in DigitalLibrary, Mail, Webster, etc.
- Is used to display lines of text for the user to select, when the data in
the lines must be in columns.  For example, in Mail, it's used to keep the
From and Summary parts of the message summary nicely lined up.
Note that ButtonCell just doesn't cut the mustard here.  You can put tabs
in your titles, but you can't set the tab stops easily, and there's no easy
way to predict how wide your text will be with a proportional font (so you
can't pad with spaces).
- Workaround: Maybe I can figure out a way to set tabstops.  Unfortunately,
I'm not even sure if the Text class currently supports them.  Sure, there's
a "setParaStyle" method, but there's no "getParaStyle".  Further, it says
that the style is implementation dependent, and they don't tell us what
THEY'VE implemented.  Weee.  Also, there's maybe an ugly way by creating
multiple subcells, but that sucks.  Or, use a monofont and printf.  That
also sucks.

There are also some things I'd like to do that NeXT has already done,
although I doubt they're in the common libraries.  The source would be
nice.  What do they have to lose?

Date Display:
- Appears in Mail and Preferences.
- Neato display of the date.

Matrix that allows user to move buttons:
- Appears in IB (menus).

-william "newsreaders'r'us" shipley