So as established, there are three different Print
s in SCI.
Print
the function, in SCI0PrintD
the function, supplementingPrint
, in SCI1Print
the 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