Screen Print from ParcPlace Smalltalk-80 filein
Darren New
new at ee.udel.edu
Thu Jan 3 05:39:59 AEST 1991
'From Objectworks for Smalltalk-80(tm), Version 2.5 of 29 July 1989 on 2 January 1991 at 1:31:10 pm'!
!ScreenController methodsFor: 'menu messages'!
hardcopyDisplay
"This will optionally wait ten seconds, then send a copy of the
display to the postscript printer. Fix ScreenController class>>initialize
to make a background menu to call this method, and put this method
in ScreenController>menu messages. The #GropeDisplay symbol is to
allow ease of finding this method when GROPE is filed out. You will
need to manually adjust the landscape mode and the scale for your
display, printer, and desired image size. Note that since this runs at
lowIOPriority, you should *NOT* attempt to edit the name of the
file that the postscript is going to, as you will hang and need to kill
the interpreter. I've done this so that one may snapshot a screen
with menus showing and/or graphics changing. Probably putting the
showWhile: message inside a process at the normal priority would fix
this, but I don't want to play with it lest it break. For an Apple
LaserWriter and a Sun-3 screen, scale 2.3 landscape gives me a full
page and scale 1.5 portrait gives me an image appropriate for
inclusion in other publications. A test program follows this method."
| document scale form |
document _ #GropeDisplay.
[scale _ 2.3.
scale _ 1.5.
Sensor leftShiftDown ifFalse: [(Delay forSeconds: 10) wait].
form _ Display copy.
Cursor write
showWhile:
[document _ Document new.
"document setLandscape."
document startParagraph.
document addImageOneToN: (Array with: form with: scale).
document close.
document toPrinter]]
forkAt: Processor lowIOPriority! !
'From Objectworks for Smalltalk-80(tm), Version 2.5 of 29 July 1989 on 2 January 1991 at 1:34:32 pm'!
!GropeSpec class methodsFor: 'examples'!
testScaling
"GropeSpec testScaling"
"This prints out a full screen box so that you can tell how many
pixels are on a page. The lines are 100 pixels apart. You can file
this into any convenient class, or just select from the temp vars on
down and DoIt."
| f i l dot document |
f _ Form extent: Display extent.
dot _ Form dotOfSize: 1.
f
fill: f boundingBox
rule: Form paint
mask: Form white.
i _ 0.
[i <= f extent x]
whileTrue:
[l _ Line
from: i @ 0
to: i @ f extent y
withForm: dot.
l displayOn: f.
f display.
i _ i + 20].
i _ 0.
[i <= f extent y]
whileTrue:
[l _ Line
from: 0 @ i
to: f extent x @ i
withForm: dot.
l displayOn: f.
f display.
i _ i + 20].
f display.
Cursor write
showWhile:
[document _ Document new.
document setBottomMargin: 0.
document setTopMargin: 0.
document setLeftMargin: 0.
document setRightMargin: 0.
document addImageOneToN: (Array with: f with: 5).
document close.
document toPrinter].
ScheduledControllers restore! !
--
--- Darren New --- Grad Student --- CIS --- Univ. of Delaware ---
----- Network Protocols, Graphics, Programming Languages,
Formal Description Techniques (esp. Estelle), Coffee, Amigas -----
=+=+=+ Let GROPE be an N-tuple where ... +=+=+=
More information about the Alt.sources
mailing list