[squeak-dev] The Trunk: MorphicExtras-hjh.210.mcz

H. Hirzel hannes.hirzel at gmail.com
Sat Sep 30 16:23:45 UTC 2017


Thank you for the commit, David.

This test now nicely shows what happens if you move

    FlattenEncoder subclass: #Canvas

to

    Object subclass: Canvas

thus separating the Canvas hierarchy from the NullEncoder -
FlattenEncoder hierarchy.


-------------------------
The fix just needs a class CanvasWithEncoder [1] with three methods
inserted as a subclass of Canvas and as a superclass of
PostscriptCanvas.

Maybe there are more methods needed for other test cases.

And I do not understand yet where #filterSelector comes into action.
See thread 'NullEncoder'.

--Hannes
---------------------------

[1] Class CanvasWithEncoder inserted between under Canvas and above
PostScriptCanvas


'From Squeak6.0alpha of 28 September 2017 [latest update: #17405] on
30 September 2017 at 6:17:59 pm'!
Canvas subclass: #CanvasWithEncoder
	instanceVariableNames: 'target filterSelector'
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Morphic-Support'!
!CanvasWithEncoder commentStamp: 'hjh 9/30/2017 15:58' prior: 0!
A CanvasWithEncoder maintains a target to keep an Encoder which is
used by subclasses to execute drawing commands.

Instance Variables
	filterSelector:		<Object>
	target:		<Object>

filterSelector
	- xxxxx

target
	- xxxxx
!


!CanvasWithEncoder methodsFor: 'as yet unclassified' stamp: 'hjh
9/30/2017 15:02'!
contents
	^target contents.! !

!CanvasWithEncoder methodsFor: 'as yet unclassified' stamp: 'hjh
9/30/2017 15:00'!
initWithTarget:aTarget
	target := aTarget.
	filterSelector := self class filterSelector.
	^self.! !

!CanvasWithEncoder methodsFor: 'as yet unclassified' stamp: 'hjh
9/30/2017 14:59'!
reset
	"Reset the canvas."

	self  initWithTarget: self class defaultTarget.! !


On Sat, 30 Sep 2017 16:11:48 0000, commits at source.squeak.org
<commits at source.squeak.org> wrote:
> David T. Lewis uploaded a new version of MorphicExtras to project The Trunk:
> http://source.squeak.org/trunk/MorphicExtras-hjh.210.mcz
>
> ==================== Summary ====================
>
> Name: MorphicExtras-hjh.210
> Author: hjh
> Time: 30 September 2017, 11:55:17.310454 am
> UUID: 3a05acb5-0d83-424c-8471-b7b5af288d35
> Ancestors: MorphicExtras-tpr.209
>
> A smoke test for Postscript support.
>
> =============== Diff against MorphicExtras-tpr.209 ===============
>
> Item was added:
> + TestCase subclass: #EPSCanvasTest
> + 	instanceVariableNames: ''
> + 	classVariableNames: ''
> + 	poolDictionaries: ''
> + 	category: 'MorphicExtras-Postscript Canvases'!
>
> Item was added:
> + ----- Method: EPSCanvasTest>>testSmokeTest (in category 'as yet
> unclassified') -----
> + testSmokeTest
> + | epsCode |
> + epsCode := (RectangleMorph new asEPS).
> +
> + self assert: epsCode lines first = '%!!PS-Adobe-2.0 EPSF-2.0'.
> +
> + self assert: (epsCode lines detect: [:line | line beginsWith: '%start
> morph:  a RectangleMorph'] ifNone: [nil]) notNil.
> +
> + self assert: epsCode lines last = '%%EOF'
> + !
>
>
>


More information about the Squeak-dev mailing list