[squeak-dev] The Trunk: Morphic-mt.1733.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Mar 4 14:36:26 UTC 2021
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.1733.mcz
==================== Summary ====================
Name: Morphic-mt.1733
Author: mt
Time: 4 March 2021, 3:36:21.510661 pm
UUID: 6c985504-3f57-4349-9f09-1476a647e3a3
Ancestors: Morphic-mt.1732
Rudimentary support for dropping source-code artifacts into the world. Just attach #sourceCode as #dragTransferType during a drag operation to trigger the code path.
=============== Diff against Morphic-mt.1732 ===============
Item was changed:
----- Method: PasteUpMorph>>acceptDroppingMorph:event: (in category 'dropping/grabbing') -----
acceptDroppingMorph: dropped event: evt
"The supplied morph, known to be acceptable to the receiver, is now to be assimilated; the precipitating event is supplied"
| aMorph |
+ (self isWorldMorph and: [dropped isTransferMorph]) ifTrue: [
+ dropped dragTransferType = #filesAndDirectories
+ ifTrue: [^ self dropFiles: dropped passenger event: evt].
+ dropped dragTransferType = #sourceCode
+ ifTrue: [^ self dropSourceCode: dropped passenger event: evt]].
- (self isWorldMorph and:
- [dropped isTransferMorph and:
- [dropped dragTransferType = #filesAndDirectories]]) ifTrue:
- [^ self dropFiles: dropped passenger event: evt].
aMorph := self morphToDropFrom: dropped.
self isWorldMorph
ifFalse: [super acceptDroppingMorph: aMorph event: evt]
ifTrue:
["Add the given morph to this world and start stepping it if it wants to be."
aMorph isInWorld ifFalse: [aMorph position: evt position].
self addMorphFront: aMorph.
(aMorph fullBounds intersects: self viewBox) ifFalse:
[Beeper beep.
aMorph position: self bounds center]].
aMorph submorphsDo: [:m | (m isKindOf: HaloMorph) ifTrue: [m delete]].
aMorph allMorphsDo: "Establish any penDown morphs in new world"
[:m | | tfm mm |
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].
self bringTopmostsToFront.!
Item was added:
+ ----- Method: PasteUpMorph>>dropSourceCode:event: (in category 'event handling') -----
+ dropSourceCode: anObject event: evt
+
+ anObject isCompiledMethod
+ ifTrue: [
+ | tool window |
+ tool := CodeHolder new
+ setClass: anObject methodClass
+ selector: anObject selector.
+ window := ToolBuilder open: tool.
+ window center: evt position.
+ window bounds: (window bounds translatedToBeWithin: self bounds)].
+
+ anObject isString
+ ifTrue: [anObject edit].!
Item was changed:
----- Method: PasteUpMorph>>wantsDroppedTransferMorph: (in category 'dropping/grabbing') -----
wantsDroppedTransferMorph: transferMorph
^ self hasTransferMorphConverter
+ or: [transferMorph dragTransferType = #filesAndDirectories]
+ or: [transferMorph dragTransferType = #sourceCode]!
- or: [transferMorph dragTransferType = #filesAndDirectories]!
More information about the Squeak-dev
mailing list
|