David T. Lewis uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-dtl.312.mcz
==================== Summary ====================
Name: Morphic-dtl.312
Author: dtl
Time: 24 January 2010, 2:55:45.458 pm
UUID: f5977ce2-8b97-401f-a0e5-18b2e8ac60d1
Ancestors: Morphic-ar.311
Remove all MVC BitEditor references from non-MVC packages.
Form>>bitEdit to Project class>>bitEdit:
Form>>bitEditAt:scale: to Project class>>bitEdit:at:scale:
BitEditor class>>locateMagnifiedView:scale: to Rectangle class>>locateMagnifiedView:scale:
Note: StrikeFont>>edit: now notifies user to edit strike fonts from an MVC project.
Help needed: There is no Morphic editor for strike fonts, see implementors of #editCharacter:ofFont:
=============== Diff against Morphic-ar.311 ===============
Item was added:
+ ----- Method: MorphicProject>>editCharacter:ofFont: (in category 'editors') -----
+ editCharacter: character ofFont: strikeFont
+ "Open a bit editor on a character in the given strike font."
+ "Note that BitEditor only works in MVC currently."
+
+ "(TextStyle default fontAt: 1) edit: $="
+
+ self inform: 'A Morphic editor has not been implemented. Enter an MVC project to edit this font.'!
Item was added:
+ ----- Method: MorphicProject>>bitEdit:at:scale: (in category 'editors') -----
+ bitEdit: aForm at: magnifiedFormLocation scale: scaleFactor
+ "Create and schedule a view whose top left corner is magnifiedLocation
+ and that contains a view of aForm magnified by scaleFactor that can be
+ modified using the Bit Editor. It also contains a view of the original form."
+
+ self notYetImplemented!
Item was added:
+ ----- Method: MorphicProject>>bitEdit: (in category 'editors') -----
+ bitEdit: aForm
+ "Create and schedule a view located in an area designated by the user
+ that contains a view of the receiver magnified by 8@8 that can be
+ modified using the Bit Editor. It also contains a view of the original
+ form."
+
+ aForm currentHand attachMorph: (FatBitsPaint new editForm: aForm;
+ magnification: 8;
+ brushColor: Color black;
+ penSize: 1;
+ yourself)
+ !
I just put together a one-click image of Juan's Cuis2.0 if anyone
wants it.
There is one little addition, see if you can spot it.
http://cuis.safeprayer.com/~cuis/
Keith
Folks -
Since it's been a while, I've put an updated trunk image on
http://ftp.squeak.org/trunk/Squeak3.11-8931-alpha.zip
The summary of latest changes is below.
Cheers,
- Andreas
(for the full history refer to the "What's new" section in the image)
[------------------------- updated 01/23/10 ---------------------------]
Modularity
----------
The following packages have been made reloadable: ReleaseBuilder,
ScriptLoader, 311Deprecated, 39Deprecated, Universes, SMLoader, SMBase,
Installer-Core, VersionNumberTests, VersionNumber, Services-Base,
PreferenceBrowser, Nebraska, CollectionsTests, GraphicsTests,
KernelTests, MorphicTests, MultilingualTests, NetworkTests, ToolsTests,
TraitsTests, XML-Parser, Traits, SystemChangeNotification-Tests,
FlexibleVocabularies, EToys, Protocols, Tests, SUnitGUI. To unload all
of these, execute:
Smalltalk unloadAllKnownPackages.
[------------------------- updated 01/02/10 ---------------------------]
NanoTraits
----------
A new traits implementation has been added. The implementation is
significantly smaller and simpler than the old version and can be
unloaded and reloaded without loss of information (i.e., traits
flattened during unload are restored during traits reloading). To unload
traits simply execute:
Trait unloadTraits.
To restore traits load the traits package from the repository at
source.squeak.org.
TextDiffBuilder
---------------
A new algorithm for producing text diffs has been added. The algorithm
is smaller, faster, and provides better results compared to the previous
implementation.
Source / Changes Files
----------------------
Sources and changes files are no longer limited to 32MB max size.
ExpandedSourceFileArray provides an implementation for source files of
arbitrary length, based on the CompiledMethodTrailer changes.
CompiledMethodTrailer
---------------------
Handling compiled method trailers for storing source code has been
generalized. The new representation deals more explicitly with various
forms of encodings (source pointer, temps-only, etc) and has room for
future extensions (i.e., retrieval from other sources).
Future Messages
---------------
Support for the future/future: keywords has been added. Future messages
enable sending messaging at a later point in time. Timed futures allow
sending messages a specific number of miliseconds into the future,
futures without arguments are executed at the earliest convenience. For
example a message like:
MyMorph>>mouseDown: event
self color: Color red.
(self future: 1000) color: Color white.
will turn the given morph red and one second later back to white.
[------------------------- updated 12/12/09 ---------------------------]
Image Version
-------------
The new version scheme is now active. The image version number is the
sum of all package versions. A stub package "Squeak-Version" has been
added to define the "base" number for the version. This image is
designated as "Squeak3.11.alpha".
Morphic
-------
New window resizers better in tone with the general UI look. A new
UserDialogBoxMorph for simple modal inform/confirm dialogs.
Files
-----
StandardFilestream now performs read-buffering, dramatically speading up
some operations like "Object compileAll" (2x improvement) as well as
various other operations (scanning change lists etc).
Numbers
-------
Implementations for Float #predecessor, #successor etc. Update to the
compact class indexes of LargePositiveInteger and LargeNegativeInteger
for Cog. Additional tests for all of the new features.
Exceptions
----------
OutOfMemory has been added as a standard exception being signaled when
an allocation fails, replacing the previous signaling of the low space
semaphore. Improved #ensure: performance avoiding remote context
manipulation (via #tempAt:put:) in the default case.
SUnit
-----
Faster execution by speeding up some low level operations (like
allTestSelectors). Fixes for thumbnail creation which would leave open
morphs around after some tests.
Kernel
------
The default hash for all objects is now a scaled identity has to avoid
extreme degradations in speed when using large numbers of objects
without explicit hash implementation in Dictionary and Set.
Changes to Trunk (http://source.squeak.org/trunk.html) in the last 24 hours:
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002476.ht…
Name: Kernel-dtl.381
Ancestors: Kernel-nice.380
Use probabilistic algorithm (Knuth) for testing primality of large integers, and add method comments for explanation.
Rationale for use of probabilistic algorithm provided by Enrico Spinielli:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-December/142372…
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002477.ht…
Name: Kernel-ar.381
Ancestors: Kernel-nice.380, Kernel-Igor.Stasenko.377
Merging Kernel-Igor.Stasenko.377:
- Date class>>#readFrom:pattern:
(cross-fork compatibility)
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002478.ht…
Name: ToolBuilder-Kernel-mtf.30
Ancestors: ToolBuilder-Kernel-jrd.29, ToolBuilder-Kernel-ar.25
Merged in Cobalt branch of ToolBuilder. This includes the addition of a few properties, and moving the help ivar all the way to the top of the spec heirarchy, since so many subclasses used it
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002479.ht…
Name: Morphic-ar.310
Ancestors: Morphic-ar.309
Preps for merging Cobalt's ToolBuilder-Morphic changes:
Extend UserDialogBoxMorph with confirm:trueChoice:falseChoice: and fix a small but relevant buglet in flushing a PLMs list when an unchanged getListElementSelector is installed.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002480.ht…
Name: ToolBuilder-Morphic-ar.49
Ancestors: ToolBuilder-Morphic-Igor.Stasenko.48, ToolBuilder-Morphic-mtf.46
Merging ToolBuilder-Morphic-mtf.46:
Merged in the Cobalt version of ToolBuilder. Just makes use of the new properties and the fact that any widget can now have help texs
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002481.ht…
Name: Graphics-ar.101
Ancestors: Graphics-nice.100, Graphics-nice.96
Merging Graphics-nice.96:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002482.ht…
Name: Morphic-ar.311
Ancestors: Morphic-ar.310, Morphic-nice.277
Merging Morphic-nice.277:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002483.ht…
Name: MorphicExtras-ar.72
Ancestors: MorphicExtras-dtl.71, MorphicExtras-nice.65
Merging MorphicExtras-nice.65:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002484.ht…
Name: ST80-ar.86
Ancestors: ST80-ar.85, ST80-nice.80
Merging ST80-nice.80:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============================================
http://lists.squeakfoundation.org/pipermail/packages/2010-January/002485.ht…
Name: System-ar.238
Ancestors: System-nice.237
Provide a script via Smalltalk unloadAllKnownPackages that can be used to unload all packages that we know how to un- and reload.
=============================================
Andreas Raab uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-ar.86.mcz
==================== Summary ====================
Name: ST80-ar.86
Author: ar
Time: 23 January 2010, 2:51:15.768 pm
UUID: f6be286b-4c61-1444-b8a0-7e205b369609
Ancestors: ST80-ar.85, ST80-nice.80
Merging ST80-nice.80:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============== Diff against ST80-ar.85 ===============
Item was changed:
----- Method: View>>defaultWindow (in category 'window access') -----
defaultWindow
"Build the minimum Rectangle that encloses all the windows of the
receiver's subViews. The answer is a Rectangle obtained by expanding
this minimal Rectangle by the borderWidth of the receiver. If the
receiver has no subViews, then a Rectangle enclosing the entire display
screen is answered. It is used internally by View methods if no window
has been specified for the View. Specialized subclasses of View should
redefine View|defaultWindow to handle the default case for instances
that have no subViews."
| aRectangle |
subViews isEmpty ifTrue: [^DisplayScreen boundingBox].
+ aRectangle := self firstSubView viewport copy.
+ subViews do: [:aView | aRectangle swallow: aView viewport].
- aRectangle := self firstSubView viewport.
- subViews do: [:aView | aRectangle := aRectangle merge: aView viewport].
^aRectangle expandBy: borderWidth!
Item was changed:
----- Method: View>>computeBoundingBox (in category 'display box access') -----
computeBoundingBox
"Answer the minimum Rectangle that encloses the bounding boxes of the
receiver's subViews. If the receiver has no subViews, then the bounding
box is the receiver's window. Subclasses should redefine
View|boundingBox if a more suitable default for the case of no subViews
is available."
| aRectangle |
subViews isEmpty ifTrue: [^self getWindow].
+ aRectangle := (self firstSubView transform: self firstSubView boundingBox) copy.
- aRectangle := self firstSubView transform: self firstSubView boundingBox.
subViews do:
[:aView |
+ aRectangle swallow: (aView transform: aView boundingBox).].
- aRectangle := aRectangle merge: (aView transform: aView boundingBox).].
^aRectangle expandBy: borderWidth!
Item was changed:
----- Method: Path>>computeBoundingBox (in category 'display box access') -----
computeBoundingBox
"Refer to the comment in DisplayObject|computeBoundingBox."
| box |
box := Rectangle origin: (self at: 1) extent: 0 @ 0.
collectionOfPoints do:
+ [:aPoint | box swallow: (Rectangle origin: aPoint extent: 0 @ 0)].
- [:aPoint | box := box merge: (Rectangle origin: aPoint extent: 0 @ 0)].
^box!
Andreas Raab uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-ar.72.mcz
==================== Summary ====================
Name: MorphicExtras-ar.72
Author: ar
Time: 23 January 2010, 2:50:05.444 pm
UUID: e8ecb63e-4699-974e-9af9-bb7b9a0c1e9c
Ancestors: MorphicExtras-dtl.71, MorphicExtras-nice.65
Merging MorphicExtras-nice.65:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============== Diff against MorphicExtras-dtl.71 ===============
Item was changed:
----- Method: BackgroundMorph>>subBounds (in category 'accessing') -----
subBounds
"calculate the submorph bounds"
| subBounds |
+ subBounds := (submorphs ifEmpty: [^nil]) anyOne fullBounds copy.
+ self submorphsDo: [:m | subBounds swallow: m fullBounds].
- subBounds := nil.
- self submorphsDo:
- [:m |
- subBounds := subBounds isNil
- ifTrue: [m fullBounds]
- ifFalse: [subBounds merge: m fullBounds]].
^subBounds!
Andreas Raab uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-ar.101.mcz
==================== Summary ====================
Name: Graphics-ar.101
Author: ar
Time: 23 January 2010, 2:46:39.342 pm
UUID: eabefc92-902b-6848-86e8-746360d5e4c8
Ancestors: Graphics-nice.100, Graphics-nice.96
Merging Graphics-nice.96:
Experimental: let a Rectangle merge in place (I called this swallow:)
This has two advantages:
- avoid repeated Object creation when we just want the gross result
- avoid closures writing to outer temps
IMHO, generalizing this kind of policy could have a measurable impact on GUI speed.
However, this is against current policy to never change a Point nor rectangle in place, so I let gurus judge if worth or not.
=============== Diff against Graphics-nice.100 ===============
Item was added:
+ ----- Method: Rectangle>>swallow: (in category 'rectangle functions') -----
+ swallow: aRectangle
+ "Modify the receiver so that it contains aRectangle."
+
+ origin := origin min: aRectangle origin.
+ corner := corner max: aRectangle corner!