So as established, there are three different Prints in SCI.
Printthe function, in SCI0PrintDthe function, supplementingPrint, in SCI1Printthe class, in SCI11.
They each have their own strengths and weaknesses, of course.
| SCI0 | SCI1 | SCI11 | |
|---|---|---|---|
| Max text items | 1 | infinite | |
| Max buttons | 6 | infinite | |
| Max icons | 1 | infinite | |
| Max input fields | 1 | infinite | |
| Animated icons¹ | yes | no | yes |
| Size to fit | yes | ||
| Size to max width | yes | no | yes |
| Auto-dismiss | yes | no | yes |
| Auto-layout² | yes | no | |
| Position | yes | ||
| Font | yes | ||
| Text tuples³ | yes | no | yes |
¹: Animated icons require the ability to pass a reference to a DCIcon object instead of a view/loop/cel tuples.
²: Items added by PrintD flow to the right with a four pixel margin. Pass the #new command argument to reset the flow to the left edge and below the last item, or the #x/#y modifiers to shift the last item’s position. In the Print class, every item added must be manually positioned as everything defaults to the top-left. The Print function has its limits specifically because it automatically lays out the controls.
³: The Print class being from SCI11, it takes noun/verb/case/seq tuples.
That comes down to the following actions:
SCI0 Print: required string or tuple for text (may be empty), mode, font, width, time, title, at, draw, edit, button (up to six times), icon, dispose, window, first
SCI1 PrintD: new, at, title, first, text, button, icon, edit, x, y
SCI11 Print: addButton, addEdit, addIcon, addText, addTextF, addTitle, posn methods, plus mode, font, width, ticks, modeless, and saveCursor properties
…And then I messed everything up by rewriting PrintD as a wrapper around the Print class so it runs on SCI11, adding everything but auto-dismiss and animated icon support. It’s available from my SCI stash, of course. Hell, by this time tomorrow those last two things may well be included.
SCI11 PrintD: all of SCI1’s, plus modNum, cue, font, and width






