'From etoys3.0 of 24 February 2008 [latest update: #1969] on 18 April 2008 at 12:47:55 pm'! "Change Set: transTransition-KR Date: 18 April 2008 Author: Korakurider Cross-published from etoys3.0 update 1984transTransition-KR translate effects of page transition for BookMorph"! !BookMorph methodsFor: 'menu' stamp: 'KR 4/16/2008 01:11'! menuPageVisualFor: target event: evt | tSpec menu subMenu directionChoices | tSpec _ self transitionSpecFor: target. menu _ (MenuMorph entitled: ('Choose an effect (it is now {1})' translated format:{tSpec second asString translated})) defaultTarget: target. TransitionMorph allEffects do: [:effect | directionChoices _ TransitionMorph directionsForEffect: effect. directionChoices isEmpty ifTrue: [menu add: effect asString fromCamelCase translated target: target selector: #setProperty:toValue: argumentList: (Array with: #transitionSpec with: (Array with: tSpec first with: effect with: #none))] ifFalse: [subMenu _ MenuMorph new. directionChoices do: [:dir | subMenu add: dir asString fromCamelCase translated target: target selector: #setProperty:toValue: argumentList: (Array with: #transitionSpec with: (Array with: tSpec first with: effect with: dir))]. menu add: effect asString fromCamelCase translated subMenu: subMenu]]. menu popUpEvent: evt in: self world! ! !TransitionMorph class methodsFor: 'available effects' stamp: 'KR 4/16/2008 01:14'! allEffects #('none' 'slide over' 'slide both' 'slide away' 'slide border' 'page forward' 'page back' 'french door' 'zoom frame' 'zoom' 'dissolve') translatedNoop. ^ #(none slideOver slideBoth slideAway slideBorder pageForward pageBack frenchDoor zoomFrame zoom dissolve)! ! !TransitionMorph class methodsFor: 'available effects' stamp: 'KR 4/18/2008 12:47'! directionsForEffect: eff "All these arrays are ordered so inverse is atWrap: size//2." #('right' 'down right' 'down' 'down left' 'left' 'up left' 'up' 'up right' 'in' 'in h' 'out' 'out h') translatedNoop. (#(slideOver slideBoth slideAway slideBorder) includes: eff) ifTrue: [^ #(right downRight down downLeft left upLeft up upRight)]. (#(pageForward pageBack) includes: eff) ifTrue: [^ #(right down left up)]. (#(frenchDoor) includes: eff) ifTrue: [^ #(in inH out outH)]. (#(zoomFrame zoom) includes: eff) ifTrue: [^ #(in out)]. ^ Array new! !