We probably do not need that anymore…

HandMorph>>triggerHaloFor: aMorph after: timeOut
        "Trigger automatic halo after the given time out for some morph"
        self addAlarm: #spawnMagicHaloFor: with: aMorph after: timeOut


HandMorph>>spawnMagicHaloFor: aMorph
        (self halo notNil and:[self halo target == aMorph]) ifTrue:[^self].
        aMorph addMagicHaloFor: self.



Morph>>addMagicHaloFor: aHand
        | halo prospectiveHaloClass |
        aHand halo
                ifNotNil: [ 
                        aHand halo target == self
                                ifTrue: [ ^ self ].
                        aHand halo isMagicHalo
                                ifFalse: [ ^ self ] ].
        prospectiveHaloClass := Smalltalk globals at: self haloClass ifAbsent: 
[ HaloMorph ].
        halo := prospectiveHaloClass new.
        halo bounds: (halo worldBoundsForMorph: self).
        halo popUpMagicallyFor: self hand: aHand

probably a christmas present :)

We will have to remove it when we will undress the christmas tree.

MagicHalo seems to be halo that smoothly vanish and appear.


popUpFor: aMorph event: evt 
        "This message is sent by morphs that explicitly request the halo on a 
button click. Note: anEvent is in aMorphs coordinate frame."

        | hand anEvent |
        self flag: #workAround. "We should really have some event/hand here..."
        anEvent := evt isNil 
                                ifTrue: 
                                        [hand := aMorph world activeHand.
                                        hand ifNil: [hand := aMorph world 
primaryHand]. 
                                        hand lastEvent transformedBy: (aMorph 
transformedFrom: nil)]
                                ifFalse: 
                                        [hand := evt hand.
                                        evt].
        self target: aMorph.
        hand halo: self.
        hand world addMorphFront: self.
        positionOffset := anEvent position 
                                - (aMorph point: aMorph position in: owner).
        self startStepping.
        (self haloTransitions or: [self isMagicHalo]) 
                ifTrue: 
                        [self magicAlpha: 0.0.
                        self startSteppingSelector: #fadeInInitially]



Stef




Reply via email to