Hi Nicolai,
> I like the idea.
cool
> The current Morph classes are too big. It is
> difficult to understand them and to find out how to work with them
> "the right way" (event handling for example or layouting).
this is our goal to clean and make the hierarchy easier to understand.
Morph has to much responsibilities.
Regarding the Morph hierarchy, so far, there are:
BlProtoMorph
BlAtomicMorph
BlImageMorph
BlHandMorph
BlMorph
BlCompositeMorph
BlMorphWithLayout ( not ready )
BlPasteUpMorph
BlWorldMorph
BlProtoMorph
"space owner drawer announcer visible locked position properties
layerNumber transform errorOnDraw"
BlHandMorph
"pointer targetOffset savedPatch dragged"
BlImageMorph
"form alpha cachedForm"
BlMorph
"extent layoutProperties fillStyle boundsCache eventHandler borderStyle"
BlCompositeMorph
"submorphs"
BlMorphWithLayout
"layoutPolicy"
BlWorldMorph
"menuBuilder"
As an example of cleaning, just compare HandMorph and BlHandMorph.
HandMorph
'mouseFocus keyboardFocus eventListeners mouseListeners
keyboardListeners mouseClickState mouseOverHandler lastMouseEvent targetOffset
damageRecorder cacheCanvas cachedCanvasHasHoles temporaryCursor
temporaryCursorOffset hardwareCursor hasChanged savedPatch lastEventBuffer
lastKeyScanCode combinedChar eventSource lastSystemEvent captureBlock
recentModifiers'
A lot of HandMorph responsibilities and inst vars are now implemented in other
classes (BlUserInputProcessor and BlSpace)
Sorry it is a bit short but we will explain them (and more) in deeper detail
later
with a separate documentation and then we will discuss and learn from feedbacks
:)
>
> Can you describe something more about the design. Or is the design
> a work in progress.
yes, it is in progress
>
> Please, I hope the "properties"-Dictionary is only a left over for
> Morphic compatibility. I never understood why these are
> used instead of proper selector and objects representing actual
> properties.
It is mandatory for MorphCompatibility.
A lot of properties have already been properly reified as inst vars.
But I don't have a definitive opinion about if it is useful/good design or not.
Cheers
Alain
>
> nicolai
>
>
>
> On 11 juin 2014, at 22:11, Tudor Girba <[email protected]> wrote:
>
> > I would be interested in trying to play with Block. Is it available?
> >
> > Cheers,
> > Doru
> >
> >
> > On Wed, Jun 11, 2014 at 9:55 PM, Esteban Lorenzano <[email protected]>
> > wrote:
> >
> > On 11 Jun 2014, at 16:39, kilon alios <[email protected]> wrote:
> >
> >> excellent news. I really believe in Morphic and I really like its general
> >> design. If you we can clean the mud I am sure we will discover quite a
> >> diamond underneath. Thanks.
> >
> > which general design? the pattern in which is based? that’s not enough to
> > keep it :)
> > Sorry but there is no easy/efficient way to clean it.
> > The only way to clean Morphic is to reimplement it.
> > Clean it is just too much work… and too many design decisions where made
> > that time and patches made them obsolete or not correct.
> > Not to talk about the mix of concepts (bah, the no existence of separation
> > between them).
> >
> > Block is not a clean. Is a revamp.
> >
> > No offence intended to Morphic: no matter how good was at the beginning,
> > *every* system evolves up to a point the effort required to maintain it is
> > superior to the effort required to reimplement it (with all the experience
> > as a superior step).
> > (yeah, yeah… a lot of people will disagree. But time has proven me right…
> > and will continue doing it :P)
> >
> > Esteban
> >
> >>
> >>
> >> On Wed, Jun 11, 2014 at 10:25 PM, François Stephany
> >> <[email protected]> wrote:
> >> \o/
> >>
> >>
> >> On Wed, Jun 11, 2014 at 4:23 PM, Camille Teruel <[email protected]>
> >> wrote:
> >>
> >> On 11 juin 2014, at 15:31, François Stephany <[email protected]>
> >> wrote:
> >>
> >>> What is bloc ?
> >>> I've searched in the pharo-dev list but couldn't find it :/
> >>
> >> A Morphic clean/revamp lead by Alain and Stef.
> >>
> >>>
> >>> On Wed, Jun 11, 2014 at 2:26 PM, stepharo <[email protected]> wrote:
> >>> looks so exciting...
> >>>
> >>> From: Alain Plantec <[email protected]>
> >>> Subject: Bloc news
> >>> Date: 11 Jun 2014 14:10:29 GMT+2
> >>> To: Stéphane Ducasse <[email protected]>
> >>> Cc: Alain Plantec <[email protected]>
> >>>
> >>> Name: Bloc-Core-AlainPlantec.15
> >>> Author: AlainPlantec
> >>> Time: 11 June 2014, 2:07:16.813171 pm
> >>> UUID: d58ae82e-b5dd-41d9-bc31-a48c3e9e5cf1
> >>> Ancestors: Bloc-Core-AlainPlantec.14
> >>>
> >>> - BlMorphs manage their submorphs with local coordinate.
> >>> - Drawing and drag&drop has been adapted to local coordinate
> >>> - Consequence: TransformationMorph should not be useful anymore because
> >>> each morph has its own transform (not only TransformationMorph). Each
> >>> morph uses its own transform to declare changed portions of its bounds
> >>> and to draw its submorphs.
> >>> - The world is no more a special morph:
> >>> - the hand is owned by the space
> >>> - the canvas and the display/redisplay of morphs are space
> >>> responsibilities.
> >>> This open the door to several worlds per space.
> >>>
> >>> Now the current global redrawing mechanism efficiency is not obvious.
> >>> Next actions:
> >>> - try to localize as much as possible the redrawing of morphs,
> >>> - dig several Worlds for a space
> >>> - start to comment and write a separate documentation with the help of
> >>> Stephane :)
> >>>
> >>>
> >>>
> >>
> >>
> >>
> >
> >
> >
> >
> > --
> > www.tudorgirba.com
> >
> > "Every thing has its own flow"
>
>
>