Karl Ramberg uploaded a new version of Sound to project Etoys:
http://source.squeak.org/etoys/Sound-kfr.2.mcz
==================== Summary ====================
Name: Sound-kfr.2
Author: kfr
Time: 30 May 2010, 1:57:46 am
UUID: 72cae229-af48-9047-9875-7c19f86b4336
Ancestors: Sound-bf.1
We must keep a reference to the sound we are playing so we can stop it later...
=============== Diff against Sound-bf.1 ===============
Item was changed:
----- Method: BaseSoundSystem>>playSoundNamed: (in category 'playing') -----
playSoundNamed: soundName
"There is sound support, so we play the given sound."
Preferences soundsEnabled ifTrue: [
+ ^SampledSound playSoundNamed: soundName asString]!
- SampledSound playSoundNamed: soundName asString]!
Karl Ramberg uploaded a new version of Connectors to project Etoys:
http://source.squeak.org/etoys/Connectors-kfr.188.mcz
==================== Summary ====================
Name: Connectors-kfr.188
Author: kfr
Time: 30 May 2010, 1:48:03 am
UUID: 2707f7a6-10ce-f343-bac3-aed3a747f5eb
Ancestors: Connectors-bf.187
Fix the overlap logic in Morph>>overlapsShadowForm:bounds:
Fix for not including self in testing for overlaps i Player>>overlapsAny:
Refactor Player>>overlaps: to use Morph>>overlapsShadowForm:bounds:
=============== Diff against Connectors-bf.187 ===============
Item was added:
+ ----- Method: Morph>>overlapsShadowForm:bounds: (in category '*connectors-geometry') -----
+ overlapsShadowForm: itsShadow bounds: itsBounds
+ "Answer true if itsShadow and my shadow overlap at all"
+ | overlapExtent overlap myRect myShadow goalRect goalShadow bb |
+ overlap _ self fullBounds intersect: itsBounds.
+ overlapExtent _ overlap extent.
+ overlapExtent > (0 @ 0)
+ ifFalse: [^ false].
+ myRect := overlap translateBy: 0 @ 0 - self topLeft.
+ myShadow := (self imageForm contentsOfArea: myRect) stencil.
+ goalRect := overlap translateBy: 0 @ 0 - itsBounds topLeft.
+ goalShadow := (itsShadow contentsOfArea: goalRect) stencil.
+
+ "compute a pixel-by-pixel AND of the two stencils. Result will be black
+ (pixel value = 1) where black parts of the stencils overlap"
+ bb := BitBlt toForm: myShadow.
+ bb
+ copyForm: goalShadow
+ to: 0 @ 0
+ rule: Form and.
+
+ ^(bb destForm tallyPixelValues second) > 0 !
At DrGeo Monticello reposittory (http://www.squeaksource.com/DrGeoII), I
have added two packages DrGeo-Core and DrGeo-Etoys to be installed in
this order in Etoys image.
I still have to get the DrGeo Etoys tiles code (in a separate Changeset)
into the DrGeo-Etoys Monticello package.
Hil
Karl Ramberg uploaded a new version of Tools to project Etoys:
http://source.squeak.org/etoys/Tools-kfr.2.mcz
==================== Summary ====================
Name: Tools-kfr.2
Author: kfr
Time: 29 May 2010, 1:51:37 pm
UUID: 7ae07604-07c6-cf40-9246-22549542587c
Ancestors: Tools-bf.1
Offer a menu in the seach pane of MessageName tool. Now possible to paste with mouse :-)
=============== Diff against Tools-bf.1 ===============
Item was changed:
----- Method: MessageNames>>inMorphicWindowWithInitialSearchString: (in category 'initialization') -----
inMorphicWindowWithInitialSearchString: initialString
"Answer a morphic window with the given initial search string, nil if none"
"MessageNames openMessageNames"
| window selectorListView firstDivider secondDivider horizDivider typeInPane searchButton plugTextMor |
window _ (SystemWindow labelled: 'Message Names') model: self.
firstDivider _ 0.07.
secondDivider _ 0.5.
horizDivider _ 0.5.
typeInPane _ AlignmentMorph newRow vResizing: #spaceFill; height: 14.
typeInPane hResizing: #spaceFill.
typeInPane listDirection: #leftToRight.
plugTextMor _ PluggableTextMorph on: self
text: #searchString accept: #searchString:notifying:
+ readSelection: nil menu: #codePaneMenu:shifted:.
- readSelection: nil menu: nil.
plugTextMor setProperty: #alwaysAccept toValue: true.
plugTextMor askBeforeDiscardingEdits: false.
plugTextMor acceptOnCR: true.
plugTextMor setTextColor: Color brown.
plugTextMor setNameTo: 'Search'.
plugTextMor vResizing: #spaceFill; hResizing: #spaceFill.
plugTextMor hideScrollBarsIndefinitely.
plugTextMor setTextMorphToSelectAllOnMouseEnter.
searchButton _ SimpleButtonMorph new
target: self;
beTransparent;
label: 'Search';
actionSelector: #doSearchFrom:;
arguments: {plugTextMor}.
searchButton setBalloonText: 'Type some letters into the pane at right, and then press this Search button (or hit RETURN) and all method selectors that match what you typed will appear in the list pane below. Click on any one of them, and all the implementors of that selector will be shown in the right-hand pane, and you can view and edit their code without leaving this tool.'.
typeInPane addMorphFront: searchButton.
typeInPane addTransparentSpacerOfSize: 6@0.
typeInPane addMorphBack: plugTextMor.
initialString isEmptyOrNil ifFalse:
[plugTextMor setText: initialString].
window addMorph: typeInPane frame: (0@0 corner: horizDivider @ firstDivider).
selectorListView _ PluggableListMorph on: self
list: #selectorList
selected: #selectorListIndex
changeSelected: #selectorListIndex:
menu: #selectorListMenu:
keystroke: #selectorListKey:from:.
selectorListView menuTitleSelector: #selectorListMenuTitle.
window addMorph: selectorListView frame: (0 @ firstDivider corner: horizDivider @ secondDivider).
window addMorph: self buildMorphicMessageList frame: (horizDivider @ 0 corner: 1@ secondDivider).
self
addLowerPanesTo: window
at: (0 @ secondDivider corner: 1@1)
with: nil.
initialString isEmptyOrNil ifFalse:
[self searchString: initialString notifying: nil].
^ window!