David T. Lewis uploaded a new version of MorphicExtras to project The Trunk: http://source.squeak.org/trunk/MorphicExtras-dtl.350.mcz
==================== Summary ====================
Name: MorphicExtras-dtl.350 Author: dtl Time: 4 November 2023, 9:27:15.219925 pm UUID: 8f8728a1-b3bb-4395-8fd3-3df5ca1e3e53 Ancestors: MorphicExtras-mt.349
Method category cleanups based on Marcel's unload-etoys.33.cs Etoys removal script. Reference squeak-dev 29-Aug-2023 Let's discuss the future of Etoys in Squeak 6.1 (and beyond)
=============== Diff against MorphicExtras-mt.349 ===============
Item was changed: + ----- Method: BackgroundMorph>>step (in category 'stepping') ----- - ----- Method: BackgroundMorph>>step (in category 'stepping and presenter') ----- step running ifTrue: [self slideBy: delta]!
Item was changed: + ----- Method: BackgroundMorph>>stepTime (in category 'stepping') ----- - ----- Method: BackgroundMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "Answer the desired time between steps in milliseconds."
^ 20!
Item was changed: + ----- Method: BouncingAtomsMorph>>step (in category 'stepping') ----- - ----- Method: BouncingAtomsMorph>>step (in category 'stepping and presenter') ----- step "Bounce those atoms!!"
| r bounces | super step. bounces := 0. r := bounds origin corner: (bounds corner - (8@8)). self submorphsDo: [ :m | (m isMemberOf: AtomMorph) ifTrue: [ (m bounceIn: r) ifTrue: [bounces := bounces + 1]]]. "compute a 'temperature' that is proportional to the number of bounces divided by the circumference of the enclosing rectangle" self updateTemperature: (10000.0 * bounces) / (r width + r height). transmitInfection ifTrue: [self transmitInfection]. !
Item was changed: + ----- Method: BouncingAtomsMorph>>stepTime (in category 'stepping') ----- - ----- Method: BouncingAtomsMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "As fast as possible."
^ 0 !
Item was changed: + ----- Method: ClockDialMorph>>step (in category 'stepping') ----- - ----- Method: ClockDialMorph>>step (in category 'stepping and presenter') ----- step self setTime: Time now!
Item was changed: + ----- Method: ClockDialMorph>>stepTime (in category 'stepping') ----- - ----- Method: ClockDialMorph>>stepTime (in category 'stepping and presenter') ----- stepTime ^5000!
Item was changed: + ----- Method: EnvelopeEditorMorph>>step (in category 'stepping') ----- - ----- Method: EnvelopeEditorMorph>>step (in category 'stepping and presenter') ----- step | mouseDown hand | hand := self world firstHand. (bounds containsPoint: hand position) ifFalse: [^ self].
mouseDown := hand lastEvent redButtonPressed. mouseDown not & prevMouseDown ifTrue: ["Mouse just went up" limitXs = (limits collect: [:i | (envelope points at: i) x]) ifFalse: ["Redisplay after changing limits" self editEnvelope: envelope]]. prevMouseDown := mouseDown!
Item was changed: + ----- Method: EnvelopeEditorMorph>>stepTime (in category 'stepping') ----- - ----- Method: EnvelopeEditorMorph>>stepTime (in category 'stepping and presenter') ----- stepTime ^ 100!
Item was changed: + ----- Method: EventRecorderMorph>>step (in category 'stepping') ----- - ----- Method: EventRecorderMorph>>step (in category 'stepping and presenter') ----- step
(state == #record and: [voiceRecorder notNil]) ifTrue: [ recordMeter width: (voiceRecorder meterLevel + 1). ]. !
Item was changed: + ----- Method: EventRecorderMorph>>stepTime (in category 'stepping') ----- - ----- Method: EventRecorderMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^500 !
Item was changed: + ----- Method: EventRecorderMorph>>stop (in category 'stepping') ----- - ----- Method: EventRecorderMorph>>stop (in category 'stepping and presenter') ----- stop
state = #record ifTrue: [tape := tapeStream contents. saved := false]. journalFile ifNotNil: [journalFile close]. self pauseIn: self world. tapeStream := nil. state := nil. self setStatusLight: #ready. recordMeter ifNotNil: [recordMeter width: 1].
self checkTape.!
Item was changed: + ----- Method: EventRecorderMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: EventRecorderMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps
^true !
Item was changed: + ----- Method: Flasher>>step (in category 'stepping') ----- - ----- Method: Flasher>>step (in category 'stepping and presenter') ----- step "Perform my standard periodic action"
super step. self color = self onColor ifTrue: [self color: (onColor alphaMixed: 0.5 with: Color black)] ifFalse: [self color: onColor]!
Item was changed: + ----- Method: Flasher>>stepTime (in category 'stepping') ----- - ----- Method: Flasher>>stepTime (in category 'stepping and presenter') ----- stepTime "Answer the desired time between steps, in milliseconds."
^ 500!
Item was changed: + ----- Method: FloatingBookControlsMorph>>step (in category 'stepping') ----- - ----- Method: FloatingBookControlsMorph>>step (in category 'stepping and presenter') ----- step
owner == self world ifFalse: [^ self]. owner addMorphInLayer: self. self position: (owner bottomCenter) - ((self width//2)@self height) !
Item was changed: + ----- Method: FloatingBookControlsMorph>>stepTime (in category 'stepping') ----- - ----- Method: FloatingBookControlsMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^1000!
Item was changed: + ----- Method: FloatingBookControlsMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: FloatingBookControlsMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps
^true!
Item was changed: + ----- Method: FrameRateMorph>>step (in category 'stepping') ----- - ----- Method: FrameRateMorph>>step (in category 'stepping and presenter') ----- step "Compute and display (every half second or so) the current framerate"
| now timePassed newContents | framesSinceLastDisplay := framesSinceLastDisplay + 1. now := TimeStamp now. timePassed := now - lastDisplayTime. (timePassed > self updateInterval) ifTrue: [| mSecs | mSecs := timePassed asMilliSeconds. mSecsPerFrame := mSecs // framesSinceLastDisplay. framesPerSec := (framesSinceLastDisplay * 1000) // mSecs. newContents := mSecsPerFrame printString, ' mSecs (', framesPerSec printString, ' frame', (framesPerSec = 1 ifTrue: [''] ifFalse: ['s']), '/sec)'. self contents: newContents. lastDisplayTime := now. framesSinceLastDisplay := 0] ifFalse: ["Ensure at least one pixel is drawn per frame" Preferences higherPerformance ifTrue: [self invalidRect: (self position extent: 1@1)]]!
Item was changed: + ----- Method: FrameRateMorph>>stepTime (in category 'stepping') ----- - ----- Method: FrameRateMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "Answer the desired time between steps in milliseconds."
^ 0 !
Item was changed: + ----- Method: GraphMorph>>cursor (in category 'accessing') ----- - ----- Method: GraphMorph>>cursor (in category 'e-toy support') ----- cursor
^ cursor !
Item was changed: + ----- Method: GraphMorph>>cursor: (in category 'accessing') ----- - ----- Method: GraphMorph>>cursor: (in category 'e-toy support') ----- cursor: aNumber
| truncP | cursor ~= aNumber ifTrue: [ cursor := aNumber. truncP := aNumber truncated. truncP > data size ifTrue: [cursor := data size]. truncP < 0 ifTrue: [cursor := 1]. self keepIndexInView: truncP. hasChanged := true]. !
Item was changed: + ----- Method: GraphMorph>>step (in category 'stepping') ----- - ----- Method: GraphMorph>>step (in category 'stepping and presenter') ----- step "Make a deferred damage rectangle if I've changed. This allows applications to call methods that invalidate my display at high-bandwidth without paying the cost of doing the damage reporting on ever call; they can merely set hasChanged to true."
super step. hasChanged isNil ifTrue: [hasChanged := false]. hasChanged ifTrue: [self changed. hasChanged := false]!
Item was changed: + ----- Method: LedMorph>>step (in category 'stepping') ----- - ----- Method: LedMorph>>step (in category 'stepping and presenter') ----- step (flash or: [flashing]) ifTrue: [flashing := flashing not. self highlighted: flashing]. scroller ifNil: [scroller := 1]. chars ifNil: [^ self]. scroller + chars < (string size + 1) ifTrue: [scroller := scroller + 1. self stringToLed] ifFalse: [scrollLoop ifTrue: [scroller := 1]]!
Item was changed: + ----- Method: LedMorph>>stepTime (in category 'stepping') ----- - ----- Method: LedMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 500!
Item was changed: + ----- Method: LedTimerMorph>>start (in category 'stepping') ----- - ----- Method: LedTimerMorph>>start (in category 'stepping and presenter') ----- start
counting := true!
Item was changed: + ----- Method: LedTimerMorph>>step (in category 'stepping') ----- - ----- Method: LedTimerMorph>>step (in category 'stepping and presenter') ----- step
flash ifTrue: [super step] ifFalse: [ counting ifTrue: [self updateTime]]!
Item was changed: + ----- Method: LedTimerMorph>>stepTime (in category 'stepping') ----- - ----- Method: LedTimerMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 1000!
Item was changed: + ----- Method: LedTimerMorph>>stop (in category 'stepping') ----- - ----- Method: LedTimerMorph>>stop (in category 'stepping and presenter') ----- stop
counting ifTrue: [self updateTime]. counting := false.!
Item was changed: + ----- Method: LedTimerMorph>>updateTime (in category 'stepping') ----- - ----- Method: LedTimerMorph>>updateTime (in category 'stepping and presenter') ----- updateTime
self value: Time totalSeconds - startSeconds. self changed!
Item was changed: + ----- Method: MagnifierMorph>>step (in category 'stepping') ----- - ----- Method: MagnifierMorph>>step (in category 'stepping and presenter') ----- step self changed!
Item was changed: + ----- Method: MagnifierMorph>>stepTime (in category 'stepping') ----- - ----- Method: MagnifierMorph>>stepTime (in category 'stepping and presenter') ----- stepTime ^ 33 "ms = 30 frames-per-second"!
Item was changed: + ----- Method: MarqueeMorph>>step (in category 'stepping') ----- - ----- Method: MarqueeMorph>>step (in category 'stepping and presenter') ----- step
count := count + 1. count > colors size ifTrue: [count := 1]. self borderColor: (colors at: count)!
Item was changed: + ----- Method: MarqueeMorph>>stepTime (in category 'stepping') ----- - ----- Method: MarqueeMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "Answer the desired time between steps in milliseconds."
^ 200!
Item was changed: + ----- Method: MarqueeMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: MarqueeMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps
^ true!
Item was changed: + ----- Method: MovingEyeMorph>>step (in category 'stepping') ----- - ----- Method: MovingEyeMorph>>step (in category 'stepping and presenter') ----- step | cp | cp := self globalPointToLocal: self world primaryHand position. (inner containsPoint: cp) ifTrue: [iris position: (cp - (iris extent // 2))] ifFalse: [self irisPos: cp].!
Item was changed: + ----- Method: PianoRollScoreMorph>>step (in category 'stepping') ----- - ----- Method: PianoRollScoreMorph>>step (in category 'stepping and presenter') ----- step
| t | score ifNil: [^ self].
lastMutedState ~= scorePlayer mutedState ifTrue: [ self rebuildFromScore. lastMutedState := scorePlayer mutedState copy].
t := scorePlayer ticksSinceStart. t = lastUpdateTick ifFalse: [ self moveCursorToTime: t. lastUpdateTick := t]. !
Item was changed: + ----- Method: PianoRollScoreMorph>>stepTime (in category 'stepping') ----- - ----- Method: PianoRollScoreMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 0 !
Item was changed: + ----- Method: ProjectNavigationMorph>>step (in category 'stepping') ----- - ----- Method: ProjectNavigationMorph>>step (in category 'stepping and presenter') ----- step | wb |
owner ifNil: [^ self]. (self ownerThatIsA: HandMorph) ifNotNil: [^self]. self checkForRebuild. owner == self world ifTrue: [ owner addMorphInLayer: self. wb := self worldBounds. self left < wb left ifTrue: [self left: wb left]. self right > wb right ifTrue: [self right: wb right]. self positionVertically. ].!
Item was changed: + ----- Method: ProjectNavigationMorph>>stepTime (in category 'stepping') ----- - ----- Method: ProjectNavigationMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^1000!
Item was changed: + ----- Method: ProjectNavigationMorph>>undoButtonWording (in category 'stepping') ----- - ----- Method: ProjectNavigationMorph>>undoButtonWording (in category 'stepping and presenter') ----- undoButtonWording "Answer the wording for the Undo button."
| wdng | wdng := Project current world commandHistory undoOrRedoMenuWording. (wdng endsWith: ' (z)') ifTrue: [ wdng := wdng copyFrom: 1to: wdng size - 4]. ^ wdng!
Item was changed: + ----- Method: ProjectNavigationMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: ProjectNavigationMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps
^true!
Item was changed: + ----- Method: RecordingControlsMorph>>startStepping (in category 'stepping') ----- - ----- Method: RecordingControlsMorph>>startStepping (in category 'stepping and presenter') ----- startStepping "Make the level meter active when dropped into the world. Do nothing if already recording. Note that this will cause other recorders to stop recording..."
super startStepping. recorder isPaused ifTrue: [ SoundRecorder allSubInstancesDo: [:r | r stopRecording]. "stop all other sound recorders" recorder pause]. "meter is updated while paused" !
Item was changed: + ----- Method: RecordingControlsMorph>>step (in category 'stepping') ----- - ----- Method: RecordingControlsMorph>>step (in category 'stepping and presenter') ----- step
recorder isPaused ifTrue: [recordingStatusLight color: Color transparent] ifFalse: [recordingStatusLight color: Color red]. recordMeter extent: (recorder meterLevel + 1) @ recordMeter height. !
Item was changed: + ----- Method: RecordingControlsMorph>>stepTime (in category 'stepping') ----- - ----- Method: RecordingControlsMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 50 !
Item was changed: + ----- Method: RecordingControlsMorph>>stop (in category 'stepping') ----- - ----- Method: RecordingControlsMorph>>stop (in category 'stepping and presenter') ----- stop
recorder pause. !
Item was changed: + ----- Method: RecordingControlsMorph>>stopStepping (in category 'stepping') ----- - ----- Method: RecordingControlsMorph>>stopStepping (in category 'stepping and presenter') ----- stopStepping "Turn off recording."
super stopStepping. recorder stopRecording. !
Item was changed: + ----- Method: ScaleMorph>>start (in category 'stepping') ----- - ----- Method: ScaleMorph>>start (in category 'stepping and presenter') ----- start ^ start!
Item was changed: + ----- Method: ScaleMorph>>stop (in category 'stepping') ----- - ----- Method: ScaleMorph>>stop (in category 'stepping and presenter') ----- stop ^ stop!
Item was changed: + ----- Method: ScorePlayerMorph>>step (in category 'stepping') ----- - ----- Method: ScorePlayerMorph>>step (in category 'stepping and presenter') ----- step
scrollSlider adjustToValue: scorePlayer positionInScore.
!
Item was changed: + ----- Method: ScreeningMorph>>wantsRecolorHandle (in category 'halos and balloon help') ----- - ----- Method: ScreeningMorph>>wantsRecolorHandle (in category 'e-toy support') ----- wantsRecolorHandle "Answer whether the receiver would like a recolor handle to be put up for it. We'd want to disable this but for the moment that would cut off access to the button part of the properties sheet. So this remains a loose end." ^ false!
Item was changed: + ----- Method: SoundLoopMorph>>step (in category 'stepping') ----- - ----- Method: SoundLoopMorph>>step (in category 'stepping and presenter') ----- step self positionCursor!
Item was changed: + ----- Method: SoundLoopMorph>>stepTime (in category 'stepping') ----- - ----- Method: SoundLoopMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 50 !
Item was changed: + ----- Method: SoundLoopMorph>>stop (in category 'stepping') ----- - ----- Method: SoundLoopMorph>>stop (in category 'stepping and presenter') ----- stop "Stop playing this sound."
SoundPlayer pauseSound: self. !
Item was changed: + ----- Method: ThumbnailMorph>>step (in category 'stepping') ----- - ----- Method: ThumbnailMorph>>step (in category 'stepping and presenter') ----- step "Optimization: Don't redraw if we're viewing some kind of SketchMorph and its rotated Form hasn't changed."
| viewee f | viewee := self actualViewee. viewee ifNil: [self stopStepping. ^ self]. viewee isSketchMorph ifTrue: [f := viewee rotatedForm. f == lastSketchForm ifTrue: [^ self]. "The optimization" lastSketchForm := f] ifFalse: [lastSketchForm := nil]. "Avoids subtle bug if sketchMorph removed and then put back in" self changed !
Item was changed: + ----- Method: ThumbnailMorph>>stepTime (in category 'stepping') ----- - ----- Method: ThumbnailMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "Adjust my step time to the time it takes drawing my referent" drawTime ifNil:[^ 250]. ^(objectToView updateThresholdForGraphicInViewerTab * drawTime) max: 250.!
Item was changed: + ----- Method: TickIndicatorMorph>>stepAt: (in category 'stepping') ----- - ----- Method: TickIndicatorMorph>>stepAt: (in category 'stepping and presenter') ----- stepAt: nowTick | delta | self isTicking ifTrue: [(lastTick isNil or: [nowTick < lastTick]) ifTrue: [lastTick := nowTick]. delta := (nowTick - lastTick) // self stepTime. delta > 0 ifTrue: [index := index + delta. lastTick := nowTick. self changed]]!
Item was changed: + ----- Method: TickIndicatorMorph>>stepTime (in category 'stepping') ----- - ----- Method: TickIndicatorMorph>>stepTime (in category 'stepping and presenter') ----- stepTime ^(stepTime ifNil:[125]) max: 50!
Item was changed: + ----- Method: TickIndicatorMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: TickIndicatorMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps ^true!
Item was changed: + ----- Method: TransitionMorph>>step (in category 'stepping') ----- - ----- Method: TransitionMorph>>step (in category 'stepping and presenter') ----- step (stepNumber := stepNumber + 1) <= nSteps ifTrue: [self changed] ifFalse: [self completeReplacement]!
Item was changed: + ----- Method: TransitionMorph>>stepTime (in category 'stepping') ----- - ----- Method: TransitionMorph>>stepTime (in category 'stepping and presenter') ----- stepTime ^ stepTime!
Item was changed: + ----- Method: UpdatingRectangleMorph>>step (in category 'stepping') ----- - ----- Method: UpdatingRectangleMorph>>step (in category 'stepping and presenter') ----- step | s | super step. s := self readFromTarget. s = contents ifFalse: [self contents: s. self color: s] !
Item was changed: + ----- Method: UpdatingRectangleMorph>>stepTime (in category 'stepping') ----- - ----- Method: UpdatingRectangleMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^ 50!
Item was changed: + ----- Method: WaveEditor>>step (in category 'stepping') ----- - ----- Method: WaveEditor>>step (in category 'stepping and presenter') ----- step
keyboard soundPrototype: self makeLoopedSampledSound!
Item was changed: + ----- Method: WebCamMorph>>nextFrame (in category 'stepping') ----- - ----- Method: WebCamMorph>>nextFrame (in category 'stepping and presenter') ----- nextFrame | frameCount | frameCount := CameraInterface getFrameForCamera: camNum into: displayForm bits. frameCount = 0 ifTrue: [self increaseCaptureDelay]. frameCount > 2 ifTrue: [self decreaseCaptureDelay]. framesSinceLastDisplay := framesSinceLastDisplay + frameCount!
Item was changed: + ----- Method: WebCamMorph>>step (in category 'stepping') ----- - ----- Method: WebCamMorph>>step (in category 'stepping and presenter') ----- step camIsOn ifFalse:[self stopStepping]. self updateDisplay. !
Item was changed: + ----- Method: WebCamMorph>>stepTime (in category 'stepping') ----- - ----- Method: WebCamMorph>>stepTime (in category 'stepping and presenter') ----- stepTime "Answer the desired time between steps in milliseconds" ^ captureDelayMs !
Item was changed: + ----- Method: WebCamMorph>>updateDisplay (in category 'stepping') ----- - ----- Method: WebCamMorph>>updateDisplay (in category 'stepping and presenter') ----- updateDisplay camIsOn ifTrue:[self nextFrame]. self updateFPS. self changed.!
Item was changed: + ----- Method: WebCamMorph>>updateFPS (in category 'stepping') ----- - ----- Method: WebCamMorph>>updateFPS (in category 'stepping and presenter') ----- updateFPS
| now mSecs | now := Time millisecondClockValue. mSecs := now - lastDisplayTime. (mSecs > 500 or: [mSecs < 0 "clock wrap-around"]) ifTrue: [ fps := (framesSinceLastDisplay * 1000) // mSecs. lastDisplayTime := now. framesSinceLastDisplay := 0].!
Item was changed: + ----- Method: ZASMScriptMorph>>step (in category 'stepping') ----- - ----- Method: ZASMScriptMorph>>step (in category 'stepping and presenter') ----- step
super step. somethingChanged ifFalse: [^self]. self fixup. !
Item was changed: + ----- Method: ZASMScriptMorph>>stepTime (in category 'stepping') ----- - ----- Method: ZASMScriptMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^500!
Item was changed: + ----- Method: ZASMScriptMorph>>wantsSteps (in category 'stepping') ----- - ----- Method: ZASMScriptMorph>>wantsSteps (in category 'stepping and presenter') ----- wantsSteps
^true!
Item was changed: + ----- Method: ZoomAndScrollControllerMorph>>doProgrammedMoves (in category 'stepping') ----- - ----- Method: ZoomAndScrollControllerMorph>>doProgrammedMoves (in category 'stepping and presenter') ----- doProgrammedMoves
| thisMove startPoint endPoint startZoom endZoom newScale newPoint fractionLeft |
programmedMoves isEmptyOrNil ifTrue: [ ^programmedMoves := nil ]. thisMove := programmedMoves first. thisMove at: #pauseTime ifPresent: [ :ignore | ^self].
fractionLeft := self fractionLeftInMove: thisMove. fractionLeft ifNil: [^programmedMoves := programmedMoves allButFirst].
startPoint := thisMove at: #startPoint ifAbsentPut: [self cameraPoint]. endPoint := thisMove at: #endPoint ifAbsentPut: [self cameraPoint].
startZoom := thisMove at: #startZoom ifAbsentPut: [self cameraScale]. endZoom := thisMove at: #endZoom ifAbsentPut: [self cameraScale]. newScale := endZoom - (endZoom - startZoom * fractionLeft). newPoint := (endPoint - (endPoint - startPoint * fractionLeft)) "rounded". target changeScaleTo: newScale. target cameraPoint: newPoint.
fractionLeft <= 0 ifTrue: [^programmedMoves := programmedMoves allButFirst].
!
Item was changed: + ----- Method: ZoomAndScrollControllerMorph>>step (in category 'stepping') ----- - ----- Method: ZoomAndScrollControllerMorph>>step (in category 'stepping and presenter') ----- step
| delta halfDW shift | shift := false. (self valueOfProperty: #currentCameraVersion ifAbsent: [0]) = self currentCameraVersion ifFalse: [ self patchOldVersion1. self setProperty: #currentCameraVersion toValue: self currentCameraVersion. ]. super step. self doProgrammedMoves.
(currentKeyDown ifNil: [#()]) do: [ :each | | action | action := upDownCodes at: each ifAbsent: [shift := true]. action == #in ifTrue: [ target scaleImageBy: -10. ]. action == #out ifTrue: [ target scaleImageBy: 10. ]. action == #up ifTrue: [ target panImageBy: 0@ -20. ]. action == #down ifTrue: [ target panImageBy: 0@20. ]. action == #left ifTrue: [ target panImageBy: -20@0. ]. action == #right ifTrue: [ target panImageBy: 20@0. ]. ]. mouseMovePoint ifNil: [^self]. mouseDownPoint ifNil: [^self]. target ifNil: [^self]. halfDW := self deadZoneWidth // 2. halfDW := self deadZoneWidth // 2. delta := mouseMovePoint - mouseDownPoint. delta x abs <= halfDW ifTrue: [delta := 0@delta y]. delta y abs <= halfDW ifTrue: [delta := delta x@0]. shift ifTrue:[^target scaleImageBy: delta x]. target panImageBy: delta x @ delta y
!
Item was changed: + ----- Method: ZoomAndScrollControllerMorph>>stepTime (in category 'stepping') ----- - ----- Method: ZoomAndScrollControllerMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^10
!
Item was changed: + ----- Method: ZoomAndScrollMorph>>step (in category 'stepping') ----- - ----- Method: ZoomAndScrollMorph>>step (in category 'stepping and presenter') ----- step
| innerPasteUp overlap |
innerPasteUp := self myTransformMorph firstSubmorph. overlap := (innerPasteUp submorphs inject: 0@0 into: [ :min :each | min min: each position]) rounded. overlap = (0@0) ifFalse: [ innerPasteUp submorphs do: [ :each | each position: each position - overlap]. innerPasteUp layoutChanged. ].
!
Item was changed: + ----- Method: ZoomAndScrollMorph>>stepTime (in category 'stepping') ----- - ----- Method: ZoomAndScrollMorph>>stepTime (in category 'stepping and presenter') ----- stepTime
^10 "ms"!
packages@lists.squeakfoundation.org