[etoys-dev] Etoys: MorphicExtras-kfr.39.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Oct 12 17:21:20 EDT 2011


Karl Ramberg uploaded a new version of MorphicExtras to project Etoys:
http://source.squeak.org/etoys/MorphicExtras-kfr.39.mcz

==================== Summary ====================

Name: MorphicExtras-kfr.39
Author: kfr
Time: 12 October 2011, 11:20:51 pm
UUID: 80cb5563-dab1-e843-a925-20ae38034dae
Ancestors: MorphicExtras-kfr.38

Fixing up stuff. Making Etoys tiles work as expected.

=============== Diff against MorphicExtras-kfr.38 ===============

Item was changed:
  ----- Method: Player>>setWebCamResolution: (in category '*MorphicExtras-WebCam') -----
  setWebCamResolution: aSymbol
+ 	costume renderedMorph setWebCamResolution: aSymbol!
- 	costume setWebCamResolution: aSymbol!

Item was changed:
  ----- Method: WebCamMorph class>>additionsToViewerCategories (in category 'scripting') -----
  additionsToViewerCategories
  	"Answer a list of (<categoryName> <list of category specs>) pairs that characterize the phrases this kind of morph wishes to add to various Viewer categories."
  	^ #(
+ 
  	(#'camera settings' (
  		(slot resolution '160x120, 320x240 or 640x480' 
  			WebCamResolution readWrite Player getWebCamResolution Player setWebCamResolution:)
  		(slot cameraIsOn 'Whether the camera is on/off' Boolean readWrite Player getWebCamIsOn Player setWebCamIsOn:)
  		(slot useFrameSize 'Resize the morph to match the cameras frame size' 
  			Boolean readWrite Player getUseFrameSize Player setUseFrameSize:)
+ 		(slot graphic 	'The picture currently being worn' Graphic	 readOnly Player getVideoGraphic unused unused)
  	))
  
  )
  !

Item was changed:
  ----- Method: WebCamMorph class>>resolutionFor: (in category 'scripting') -----
  resolutionFor: aSymbol
  	(#(#low #medium #high) includes: aSymbol) ifFalse: [^ 320 at 240].
  
  	^ {160 at 120. 320 at 240. 640 at 480} 
+ 			at: (WebCamResolution resolutions indexOf: aSymbol)
- 			at: (WebCamResolutionType resolutions indexOf: aSymbol)
  !

Item was changed:
  ----- Method: WebCamMorph>>drawOn: (in category 'drawing') -----
  drawOn: aCanvas 
  	useFrameSize ifTrue: [self extent: frameExtent].
+ 	
  	aCanvas
  		drawImage: (
  			(self extent = displayForm extent) 
  				ifTrue: [displayForm] 
  				ifFalse: [displayForm scaledToSize: self extent]
  		) at: bounds origin.
  !

Item was added:
+ ----- Method: WebCamMorph>>getLastFrame (in category 'e-toy - settings') -----
+ getLastFrame
+ 
+ 	
+ 	^ SketchMorph withForm: displayForm !

Item was changed:
  ----- Method: WebCamMorph>>initialize (in category 'initialization') -----
  initialize
  	super initialize.
  	camNum := 1.
  	camIsOn := false.
+ 	captureDelayMs := 10. "stepTime"	
- 	captureDelayMs := 20. "stepTime"	
  	useFrameSize := false.
  	resolution := #'medium'.
  	frameExtent := self class resolutionFor: resolution.
  	displayForm := Form extent: frameExtent depth:32.
  	self extent: frameExtent.
  	self on.
  
  	!

Item was changed:
  ----- Method: WebCamMorph>>on (in category 'accessing') -----
  on
  	camIsOn
  		ifTrue: [^ true].
  	"Avoid more than one WebCamMorph per
  	Camera "
  	(CameraInterface cameraIsOpen: camNum)
  		ifTrue: [^ false].
  	(CameraInterface
  		openCamera: camNum
  		width: frameExtent x
  		height: frameExtent y)
  		ifNil: [^ false].
  	(Delay forSeconds: 1) wait.
  	"why?"
  	camIsOn := true.
+ 	"self startStepping."
- 	self startStepping.
  	^ true!

Item was changed:
  ----- Method: WebCamMorph>>setWebCamResolution: (in category 'e-toy - settings') -----
  setWebCamResolution: aSymbol
  	| wasOn |
  
+ 	((WebCamResolution resolutions) includes: aSymbol) ifFalse: [^ self].
- 	((WebCamResolutionType resolutions) includes: aSymbol) ifFalse: [^ self].
  	resolution := aSymbol.
  
  	(wasOn := camIsOn) ifTrue: [self off].
  	frameExtent := self class resolutionFor: aSymbol.
+ 	displayForm := Form extent: frameExtent depth: 32.
+ 
+      wasOn ifTrue: [self on].
- 	
- "	self resetSize.
- "	wasOn ifTrue: [self on].
  			
  
  !

Item was changed:
  ----- Method: WebCamMorph>>step (in category 'stepping and presenter') -----
  step
  	self getWebCamIsOn ifFalse: [^ nil].
  	CameraInterface getFrameForCamera: camNum into: displayForm bits.
  	self changed!

Item was added:
+ SymbolListType subclass: #WebCamResolution
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'MorphicExtras-WebCam'!

Item was added:
+ ----- Method: WebCamResolution class>>initialize (in category 'as yet unclassified') -----
+ initialize
+ 	Vocabulary initialize!

Item was added:
+ ----- Method: WebCamResolution class>>resolutions (in category 'as yet unclassified') -----
+ resolutions
+ 	^ #(#'low' #'medium' #'high')
+ !

Item was added:
+ ----- Method: WebCamResolution>>initialize (in category 'as yet unclassified') -----
+ initialize
+ 	super initialize.
+ 	self vocabularyName: #WebCamResolution.
+ 	
+ 	self symbols: self class resolutions
+ !

Item was added:
+ ----- Method: WebCamResolution>>representsAType (in category 'as yet unclassified') -----
+ representsAType
+ 	^true!

Item was removed:
- SymbolListType subclass: #WebCamResolutionType
- 	instanceVariableNames: ''
- 	classVariableNames: ''
- 	poolDictionaries: ''
- 	category: 'MorphicExtras-WebCam'!

Item was removed:
- ----- Method: WebCamResolutionType class>>initialize (in category 'as yet unclassified') -----
- initialize
- 	Vocabulary initialize!

Item was removed:
- ----- Method: WebCamResolutionType class>>resolutions (in category 'as yet unclassified') -----
- resolutions
- 	^ #(#'low' #'medium' #'high')
- !

Item was removed:
- ----- Method: WebCamResolutionType>>initialize (in category 'as yet unclassified') -----
- initialize
- 	super initialize.
- 	self vocabularyName: #WebCamResolutionType.
- 	
- 	self symbols: self class resolutions
- !

Item was removed:
- ----- Method: WebCamResolutionType>>representsAType (in category 'as yet unclassified') -----
- representsAType
- 	^true!



More information about the etoys-dev mailing list