[squeak-dev] The Trunk: MorphicExtras-mt.157.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Mar 4 20:10:28 UTC 2015
Marcel Taeumel uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-mt.157.mcz
==================== Summary ====================
Name: MorphicExtras-mt.157
Author: mt
Time: 4 March 2015, 9:10:14.479 pm
UUID: 0b806ef9-9fe4-4a42-a854-bd1a7c18f358
Ancestors: MorphicExtras-mt.156
Reverted eToys-specific changes in AnimatedImageMorph but kept its working core in #step for displaying animated gifs.
=============== Diff against MorphicExtras-mt.156 ===============
Item was changed:
ImageMorph subclass: #AnimatedImageMorph
+ instanceVariableNames: 'images delays stepTime nextTime imageIndex'
- instanceVariableNames: 'images delays stepTime nextTime imageIndex stepper'
classVariableNames: ''
poolDictionaries: ''
category: 'MorphicExtras-AdditionalMorphs'!
!AnimatedImageMorph commentStamp: '<historical>' prior: 0!
I am an ImageMorph that can hold more than one image. Each image has its own delay time.!
Item was removed:
- ----- Method: AnimatedImageMorph class>>additionsToViewerCategories (in category 'class initialization') -----
- 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."
- ^ #(
-
- (#'graphics'
- (
- (slot isGifPlaying 'Whether the gif is playing'
- Boolean readWrite Player getGifPlaying Player setGifPlaying:)
- (slot opaque 'Whether the gif opaque'
- Boolean readWrite Player getOpaque Player setOpaque:)
-
- ))
-
- )
- !
Item was changed:
----- Method: AnimatedImageMorph class>>fromGIFFileNamed: (in category 'instance creation') -----
fromGIFFileNamed: fileName
| reader |
+ reader := AnimatedGIFReadWriter formsFromFileNamed: fileName.
- reader _ AnimatedGIFReadWriter formsFromFileNamed: fileName.
^reader forms size = 1
ifTrue: [ ImageMorph new image: reader forms first ]
ifFalse: [ self new fromReader: reader ]!
Item was changed:
----- Method: AnimatedImageMorph class>>fromStream: (in category 'instance creation') -----
fromStream: aStream
| reader |
+ reader := AnimatedGIFReadWriter formsFromStream: aStream.
- reader _ AnimatedGIFReadWriter formsFromStream: aStream.
^reader forms size = 1
ifTrue: [ ImageMorph new image: reader forms first ]
ifFalse: [ self new fromReader: reader ]!
Item was added:
+ ----- Method: AnimatedImageMorph class>>initialize (in category 'class initialization') -----
+ initialize
+ "register the receiver in the global registries"
+ self environment
+ at: #FileList
+ ifPresent: [:cl | cl registerFileReader: self]!
Item was changed:
----- Method: AnimatedImageMorph class>>serviceOpenGIFInWindow (in category 'fileIn/Out') -----
serviceOpenGIFInWindow
"Answer a service for opening a gif graphic in a window"
^ (SimpleServiceEntry
provider: self
label: 'open the graphic as a morph'
selector: #openGIFInWindow:
description: 'open a GIF graphic file as a morph'
+ buttonLabel: 'open')
- buttonLabel: 'open gif')
argumentGetter: [:fileList | fileList readOnlyStream]!
Item was changed:
----- Method: AnimatedImageMorph class>>services (in category 'fileIn/Out') -----
services
^ Array
with: self serviceOpenGIFInWindow
"with: Form serviceImageImports"
+ with: Form serviceImageAsBackground!
- "with: Form serviceImageAsBackground"!
Item was removed:
- ----- Method: AnimatedImageMorph>>addCustomMenuItems:hand: (in category 'stepping and presenter') -----
- addCustomMenuItems: aMenu hand: aHand
- super addCustomMenuItems: aMenu hand: aHand.
- aMenu addUpdating: #steppingString action: #toggleStepping!
Item was removed:
- ----- Method: AnimatedImageMorph>>fromArray: (in category 'private') -----
- fromArray: reader
- images := reader first.
- delays := reader second.
- imageIndex := 0.
- self
- image: (Form extent: images first extent depth: 32).
- self isOpaque: true.
- self step!
Item was changed:
----- Method: AnimatedImageMorph>>fromReader: (in category 'private') -----
+ fromReader: reader
+
- fromReader: reader
images := reader forms.
delays := reader delays.
- imageIndex := 0.
- self
- image: (Form extent: images first extent depth: 32).
self isOpaque: true.
+ self reset.!
- self step!
Item was changed:
----- Method: AnimatedImageMorph>>initialize (in category 'private') -----
initialize
nextTime := Time millisecondClockValue.
imageIndex := 1.
stepTime := 10.
- stepper :=true.
super initialize!
Item was added:
+ ----- Method: AnimatedImageMorph>>reset (in category 'private') -----
+ reset
+
+ imageIndex := 0.
+ self image: (Form extent: images first extent depth: 32).
+ self step.!
Item was removed:
- ----- Method: AnimatedImageMorph>>setStepping: (in category 'stepping and presenter') -----
- setStepping: aBoolean
- self wantsSteps ifFalse:[^false].
- stepper := aBoolean.
- stepper ifTrue:[self startStepping]
- ifFalse:[self stopStepping].
-
- !
Item was changed:
----- Method: AnimatedImageMorph>>step (in category 'stepping and presenter') -----
step
+ | d form |
+ images isEmpty ifTrue: [^ self].
+
+ nextTime > Time millisecondClockValue
+ ifTrue: [^self].
+ " self changed."
+ imageIndex > 0 ifTrue: [
- | form delay |
- stepper ifFalse:[ self stopStepping].
- images isEmpty
- ifTrue: [^ self].
- nextTime > Time millisecondClockValue
- ifTrue: [^self].
- imageIndex > 0 ifTrue: [
form := images at: imageIndex.
+ form displayOn: self image at: 0 at 0 rule: (self isOpaque ifTrue: [Form paint] ifFalse: [Form erase])].
+ form := images at: (imageIndex := imageIndex \\ images size + 1).
+ form displayOn: self image at: 0 at 0 rule: Form paint.
+ self changed.
+ d := (delays at: imageIndex) ifNil: [0].
+ nextTime := Time millisecondClockValue + d
+ !
- form displayOn: self image at: 0 at 0 rule:
- ((self isOpaque) ifTrue:[Form paint] ifFalse:[Form erase]).
- ].
- imageIndex _ imageIndex \\ images size + 1.
- form := images at: imageIndex.
- form displayOn: self image at: 0 at 0 rule: Form paint.
- self changed.
- delay := (delays at: imageIndex) ifNil: [0].
- nextTime := Time millisecondClockValue +delay!
Item was changed:
----- Method: AnimatedImageMorph>>stepTime: (in category 'stepping and presenter') -----
stepTime: anInteger
+ stepTime := anInteger!
- stepTime _ anInteger!
Item was removed:
- ----- Method: AnimatedImageMorph>>steppingString (in category 'stepping and presenter') -----
- steppingString
- ^ (stepper
- ifTrue: ['<on>']
- ifFalse: ['<off>']), 'stepping' translated!
Item was removed:
- ----- Method: AnimatedImageMorph>>toggleStepping (in category 'stepping and presenter') -----
- toggleStepping
- self wantsSteps
- ifTrue: [stepper := stepper not].
- stepper ifTrue:[self startStepping]
- ifFalse:[self stopStepping].
-
- !
More information about the Squeak-dev
mailing list
|