Impressive! Let us know Alexandre On 25 Nov 2011, at 07:00, Fernando Olivero wrote:
Dear all,
I've been working on a hole replacement of Morphic myself, because if was tired of fixing Morphic (or porting CUIS Morphic into Pharo), and found much more productive the approach of rewriting it from scratch.
In my expierience, i was 100% more productive by not trying to be backward compatible with Morphic, Polymorph , etc.
I found it easier to come up with a new set of widgets (EntryField, AutoCompletionEntryField, Button, Label, Column, Row, ScrollableColumns) from scratch. They are all fairly tested also.
Maybe it's time to move on, and develop from the ground up a Morphic-like successor, instead of fixing the current Morphic. There's no problem with preserving the current UI for all the apps that are out there, and provide a cleaner, simpler UI framework for the new apps.
Regarding the new "morphic", I only assume that i have a scalable canvas, and the vm's notifying me of the user events. On top of that i recreated a World, that can have multiple views. There's only one World at a given time. Views are presented within the world in a given viewport, and present a scene. Scene are were the shapes live in. No World as a subclass of PasteUpMorph, no globals such as World, ActiveWorld, Hand. ActiveHand, etcs..
The world has a mouse and a keyboard, which take care of events announced by the world. For example GMouse>>down: aDisplayPosition, would take care of transforming the display position into a world position, into a view position, into a scene position, and finally notifying the proper shape under the mouse that it has been clicked at a certain local position. GShape>>clickedAt: , GShape>>secondaryClickedAt:, etc.. No Events hierarchy, or the awful switch currently in HandMorph ( generateMouseEvent: or generateKeyboardEvent:).
I have a "Gaucho" system working now, with GShape (instead of Morphs), using the simple new layouts developed by Juan in CUIS, uniform usage of keybindings across the whole GShape hierarchy, amongst other goodies. It's still tailored to be a Morphic replacement for Gaucho, so first i need to polish a few things prior to releasing it.
For example, i'm going to ditch my current scalable canvas implementation, in favor of Athens.
Hope that very soon i can provide more details, but my plans are to release it as part of the next Gaucho version, to provide a working example.
Fernando
-- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.