When you have a Playfield/PasteUpMorph open in the world you had to be careful where you placed the ScriptEditorMorphs otherwise they would embed them self into the Playfield and some annoying cropping would occur. karl
'From OLPC2.0 of ''24 October 2006'' [latest update: #1134] on 1 December 2006 at 4:47:57 pm'!
!PasteUpMorph methodsFor: 'dropping/grabbing' stamp: 'kfr 12/1/2006 12:55'! acceptDroppingMorph: dropped event: evt "The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| mm tfm aMorph | aMorph _ self morphToDropFrom: dropped. self isWorldMorph ifTrue:["Add the given morph to this world and start stepping it if it wants to be." self addMorphFront: aMorph. (aMorph fullBounds intersects: self viewBox) ifFalse: [Beeper beep. aMorph position: self bounds center]] ifFalse:[(dropped isKindOf: ScriptEditorMorph) ifTrue:[self world acceptDroppingMorph: aMorph event: evt] ifFalse:[super acceptDroppingMorph: aMorph event: evt]].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]]. aMorph allMorphsDo: "Establish any penDown morphs in new world" [:m | m player ifNotNil: [m player getPenDown ifTrue: [((mm _ m player costume) notNil and: [(tfm _ mm owner transformFrom: self) notNil]) ifTrue: [self noteNewLocation: (tfm localPointToGlobal: mm referencePosition) forPlayer: m player]]]].
self isPartsBin ifTrue: [aMorph isPartsDonor: true. aMorph stopSteppingSelfAndSubmorphs. aMorph suspendEventHandler] ifFalse: [self world startSteppingSubmorphsOf: aMorph].
self presenter morph: aMorph droppedIntoPasteUpMorph: self.
self showingListView ifTrue: [self sortSubmorphsBy: (self valueOfProperty: #sortOrder). self currentWorld abandonAllHalos]! !
Karl wrote:
When you have a Playfield/PasteUpMorph open in the world you had to be careful where you placed the ScriptEditorMorphs otherwise they would embed them self into the Playfield and some annoying cropping would occur. karl
Fixed issue with PhraseTileMorph embedding in same manner as ScriptEditorMorph.
karl
'From OLPC2.0 of ''24 October 2006'' [latest update: #1134] on 1 December 2006 at 8:02:04 pm'!
!PasteUpMorph methodsFor: 'dropping/grabbing' stamp: 'kfr 12/1/2006 19:30'! acceptDroppingMorph: dropped event: evt "The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| mm tfm aMorph | aMorph _ self morphToDropFrom: dropped. self isWorldMorph ifTrue:["Add the given morph to this world and start stepping it if it wants to be." self addMorphFront: aMorph. (aMorph fullBounds intersects: self viewBox) ifFalse: [Beeper beep. aMorph position: self bounds center]] ifFalse:[ (dropped isKindOf: PhraseTileMorph) ifTrue:[^ self world acceptDroppingMorph: aMorph event: evt].(dropped isKindOf: ScriptEditorMorph) ifTrue:[self world acceptDroppingMorph: aMorph event: evt] ifFalse:[super acceptDroppingMorph: aMorph event: evt]].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]]. aMorph allMorphsDo: "Establish any penDown morphs in new world" [:m | m player ifNotNil: [m player getPenDown ifTrue: [((mm _ m player costume) notNil and: [(tfm _ mm owner transformFrom: self) notNil]) ifTrue: [self noteNewLocation: (tfm localPointToGlobal: mm referencePosition) forPlayer: m player]]]].
self isPartsBin ifTrue: [aMorph isPartsDonor: true. aMorph stopSteppingSelfAndSubmorphs. aMorph suspendEventHandler] ifFalse: [self world startSteppingSubmorphsOf: aMorph].
self presenter morph: aMorph droppedIntoPasteUpMorph: self.
self showingListView ifTrue: [self sortSubmorphsBy: (self valueOfProperty: #sortOrder). self currentWorld abandonAllHalos]! !
Karl wrote:
Karl wrote:
When you have a Playfield/PasteUpMorph open in the world you had to be careful where you placed the ScriptEditorMorphs otherwise they would embed them self into the Playfield and some annoying cropping would occur. karl
Fixed issue with PhraseTileMorph embedding in same manner as ScriptEditorMorph.
karl
Fixed issue with watchers and some more tiles Karl
'From OLPC2.0 of ''24 October 2006'' [latest update: #1134] on 2 December 2006 at 5:26:54 pm'!
!PasteUpMorph methodsFor: 'dropping/grabbing' stamp: 'kfr 12/2/2006 17:25'! acceptDroppingMorph: dropped event: evt "The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| mm tfm aMorph | aMorph _ self morphToDropFrom: dropped. self isWorldMorph ifTrue:["Add the given morph to this world and start stepping it if it wants to be." self addMorphFront: aMorph. (aMorph fullBounds intersects: self viewBox) ifFalse: [Beeper beep. aMorph position: self bounds center]] ifFalse:[(dropped isKindOf: TileLikeMorph) ifTrue:[^ self world acceptDroppingMorph: aMorph event: evt]. ((dropped isKindOf: ScriptEditorMorph) or:[ (dropped isKindOf: WatcherWrapper)]) ifTrue:[self world acceptDroppingMorph: aMorph event: evt] ifFalse:[super acceptDroppingMorph: aMorph event: evt]].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]]. aMorph allMorphsDo: "Establish any penDown morphs in new world" [:m | m player ifNotNil: [m player getPenDown ifTrue: [((mm _ m player costume) notNil and: [(tfm _ mm owner transformFrom: self) notNil]) ifTrue: [self noteNewLocation: (tfm localPointToGlobal: mm referencePosition) forPlayer: m player]]]].
self isPartsBin ifTrue: [aMorph isPartsDonor: true. aMorph stopSteppingSelfAndSubmorphs. aMorph suspendEventHandler] ifFalse: [self world startSteppingSubmorphsOf: aMorph].
self presenter morph: aMorph droppedIntoPasteUpMorph: self.
self showingListView ifTrue: [self sortSubmorphsBy: (self valueOfProperty: #sortOrder). self currentWorld abandonAllHalos]! !
Karl wrote:
Karl wrote:
Karl wrote:
When you have a Playfield/PasteUpMorph open in the world you had to be careful where you placed the ScriptEditorMorphs otherwise they would embed them self into the Playfield and some annoying cropping would occur. karl
Fixed issue with PhraseTileMorph embedding in same manner as ScriptEditorMorph.
karl
Fixed issue with watchers and some more tiles Karl
Hm, I played with the EventTheatre, which is really cool, and it seems my 'fix' will give some not wanted features, eg. a script added to the EventTheatre will be added to the world as well. I'll have to investigate a little.... Karl
Karl,
Thank you for bunch of fixes. There are some comments:
* [FIX]ObjectsTool drag and drop
This was a feature so that you *can* drop a newly instanciated object onto the tab to dismiss it. Given that the screen resolution is rather large, the chance of accidental drop is relatively low. Do you have strong feeling?
* [fix] PasteUpMorph shall not accept ScriptEditorMorph (version 3)
This was also a feature. Think Takashi's Demon Castle tutorial. This one and the other one has upside and downside, and not entirely obvious whether to be included or not.
* [FIX]Position of picked up tile morph
This is also a feature but a new one (See the versions). It has been always an issue that kids couldn't see the drop zone in the scriptor. I think the current behavior is ok, although hardcoded offset may not be right.
* [BUG]ScriptEditorMorph>>acceptDroppingMorph: aMorph event: evt
I'll take a look at it.
* [ENH]BookMorph buttons more visible
Ah, this looks good. I'd take this^^;
Thank you again. Not all may not get in, but that is how it works for the code from the "team" member^^; Of course, if somebody has another rationale, I'm all ears.
-- Yoshiki
Yoshiki Ohshima wrote:
Karl,
Thank you for bunch of fixes. There are some comments:
[FIX]ObjectsTool drag and drop
This was a feature so that you *can* drop a newly instanciated object onto the tab to dismiss it. Given that the screen resolution is rather large, the chance of accidental drop is relatively low. Do you have strong feeling?
I watched a screen capture video of a guy testing the OPLC etoy and this stood out as a confusing feature. http://www.youtube.com/watch?v=DwzCsOFxT-U&mode=related&search=
[fix] PasteUpMorph shall not accept ScriptEditorMorph (version 3)
This was also a feature. Think Takashi's Demon Castle tutorial. This one and the other one has upside and downside, and not entirely obvious whether to be included or not.
Most of the time I use etoys I have a world and maybe a PasteUpMorph as a playfield for my morphs. When the playfield embeds the script editors you soon run out of screen estate. I can see that it has it's uses but for me those are the exeptions, not the rule.
[FIX]Position of picked up tile morph
This is also a feature but a new one (See the versions). It has been always an issue that kids couldn't see the drop zone in the scriptor. I think the current behavior is ok, although hardcoded offset may not be right.
Only a few of the tiles that had this implemented so there was some inconsistency.
[BUG]ScriptEditorMorph>>acceptDroppingMorph: aMorph event: evt
I'll take a look at it.
This is a visual bug with no real bad side effect, but still it would be nice to get it fixed :-)
[ENH]BookMorph buttons more visible
Ah, this looks good. I'd take this^^;
:-)
Thank you again. Not all may not get in, but that is how it works for the code from the "team" member^^; Of course, if somebody has another rationale, I'm all ears.
-- Yoshiki _______________________________________________ Etoys mailing list Etoys@laptop.org http://mailman.laptop.org/mailman/listinfo/etoys
Yoshiki Ohshima wrote:
[fix] PasteUpMorph shall not accept ScriptEditorMorph (version 3)
This was also a feature. Think Takashi's Demon Castle tutorial. This one and the other one has upside and downside, and not entirely obvious whether to be included or not.
Thinking about this a little I remembered that we have a preference that deals with this issue : systemWindowEmbedOK Before the preference was introduced all menus and SystemWindows would embed into PasteUpMorphs etc. What do you think of using the preference on ScriptEditorMorphs as well, I think they are a kind of SystemWindow and it would be possible to change setting when one really wants to embed the ScriptEditorMorph. Maybe one wants to embed some menus and SystemWindows in the future as well and the preference is then already set for you :-)
Karl
Karl wrote:
Yoshiki Ohshima wrote:
[fix] PasteUpMorph shall not accept ScriptEditorMorph (version 3)
This was also a feature. Think Takashi's Demon Castle tutorial. This one and the other one has upside and downside, and not entirely obvious whether to be included or not.
Thinking about this a little I remembered that we have a preference that deals with this issue : systemWindowEmbedOK Before the preference was introduced all menus and SystemWindows would embed into PasteUpMorphs etc. What do you think of using the preference on ScriptEditorMorphs as well, I think they are a kind of SystemWindow and it would be possible to change setting when one really wants to embed the ScriptEditorMorph. Maybe one wants to embed some menus and SystemWindows in the future as well and the preference is then already set for you :-)
Here is the change set with the preference systemWindowEmbedOK.
Karl
Karl wrote:
Karl wrote:
Yoshiki Ohshima wrote:
[fix] PasteUpMorph shall not accept ScriptEditorMorph (version 3)
This was also a feature. Think Takashi's Demon Castle tutorial. This one and the other one has upside and downside, and not entirely obvious whether to be included or not.
Thinking about this a little I remembered that we have a preference that deals with this issue : systemWindowEmbedOK Before the preference was introduced all menus and SystemWindows would embed into PasteUpMorphs etc. What do you think of using the preference on ScriptEditorMorphs as well, I think they are a kind of SystemWindow and it would be possible to change setting when one really wants to embed the ScriptEditorMorph. Maybe one wants to embed some menus and SystemWindows in the future as well and the preference is then already set for you :-)
Here is the change set with the preference systemWindowEmbedOK.
Karl
And here _with_ the change set :-) Karl
'From OLPC2.0 of ''24 October 2006'' [latest update: #1135] on 5 December 2006 at 6:13:09 pm'!
!PasteUpMorph methodsFor: 'dropping/grabbing' stamp: 'kfr 12/5/2006 18:11'! acceptDroppingMorph: dropped event: evt "The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| mm tfm aMorph | aMorph _ self morphToDropFrom: dropped. self isWorldMorph ifTrue:["Add the given morph to this world and start stepping it if it wants to be." self addMorphFront: aMorph. (aMorph fullBounds intersects: self viewBox) ifFalse: [Beeper beep. aMorph position: self bounds center]] ifFalse:[((dropped isKindOf: TileLikeMorph) and:[Preferences systemWindowEmbedOK not]) ifTrue:[^ self world acceptDroppingMorph: aMorph event: evt]. (((dropped isKindOf: ScriptEditorMorph) or:[ (dropped isKindOf: WatcherWrapper)]) and:[Preferences systemWindowEmbedOK not]) ifTrue:[self world acceptDroppingMorph: aMorph event: evt] ifFalse:[super acceptDroppingMorph: aMorph event: evt]].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]]. aMorph allMorphsDo: "Establish any penDown morphs in new world" [:m | m player ifNotNil: [m player getPenDown ifTrue: [((mm _ m player costume) notNil and: [(tfm _ mm owner transformFrom: self) notNil]) ifTrue: [self noteNewLocation: (tfm localPointToGlobal: mm referencePosition) forPlayer: m player]]]].
self isPartsBin ifTrue: [aMorph isPartsDonor: true. aMorph stopSteppingSelfAndSubmorphs. aMorph suspendEventHandler] ifFalse: [self world startSteppingSubmorphsOf: aMorph].
self presenter morph: aMorph droppedIntoPasteUpMorph: self.
self showingListView ifTrue: [self sortSubmorphsBy: (self valueOfProperty: #sortOrder). self currentWorld abandonAllHalos]! !
etoys-dev@lists.squeakfoundation.org