[Fwd: Morphic Wrappers] (fwd)

Gerardo Richarte gera at core-sdi.com
Tue Sep 22 23:48:01 UTC 1998



Daniel wrote:

> Double click on my just dragged supposedly wrapped Form. Bummer -
> Morphs aren't really wrappers. They don't give you a message menu,
> they just blink dumbly.

    I had this problem myself, and Leandro [Caniglie] also has it. Once
we use MorphicWrappers, we want everything to act as a MW, but no...
As a result of this we started moving some messages in MW to Morph, this
work is not finished yet, but it will be soon. We have to solve some
design problems... if we move doubleClick menu, drop menu or keyboard
handling to Morph then no Morph will be able to use those events
anymore.
    As an example of this, suppose you have a GraphMorphicWrapper (one
that I've done, and will post it somewhere soon) and you drop something
over it. It can be a Number, as argument to some message, or it can ve a
Vertex, so it can be added to the Graph. (this can be a default
message... it's not a bad idea). I solved this problem checking the
class of what is dropped, but this is not a good generic solution... Now
I'm thinking that a default message can be sent holding shift down while
dropping something in the MorphicWrapper... I'll test this, it sounds
good, what do you think? (still don't know how to solve keyboard focus)

> I started thinking about it, and realized that wrappers allow Objects
> to live in Morphic, imitating Morphs. But by adding all that wonderful
> Wrapper functionality, you leave Morphs behind, and therefore, they
> don't mix.
>
> I was wondering whether and how you intended to address this.

    Ohhh, emmmm, well... one solution can be to turn everything Morphic
in something MorphWrapped, and leave some Morphs as construction blocks,
but I don't know if this is a good design idea.

> Off the top of my head, it seems to me that the functionality in
> Wrappers today might be better split between two levels, one allowing
> a readable represetation on screen and the basic Morph menus, and the
> next level providing the message sending interface.

What do you mean with “message sending interface”? If you mean talking
(typing) to an object, this can be moved to Morph with some work: We
have to solve the problem of setting the keyboard focus by clicking on
an object, because there are some morphs that need keyboard for their
use (StringMorph for example)

> [..] and the send level would allow all objects, Morph or wrapped, to
> be sent arbitrary messages.

    I don't fully understand how to implement this interface on Morphs
(or may be I don't understand what this message sending interface is...)

> Which level is used should be decided by the World you're in.

    Can you expand this, please?

> Waddaya think?
> Anyway, thank you for Wrappers, certainly one of the coolest things
> I've seen in Squeak.

    Ups! thanks!

> What do you have in mind for version 2?

    + WrapperWorldMorph is gone, WorldMorph has learned all its
functionallity
    + History (by Class) is implemented in CodeStringMorph.
    + A package with some interesting examples will be available,
including GraphMorphicWrapper, VertexMorphicWrapper and (probably) some
very interesting use of them, !!! ClassMorphicWrapper and (some kinf of)
MethodMorphicWrapper (thanks to Leandro) !!! Some of them may be moved
to the basic package...
    + Some rearrangement in classes: there is no more
RoughMorphicWrapper, some methods have been moved from to
MorphicWrapper, and some other to Morph.
    + everything I'm forgetting...


    Improving Bye!
    Richie++





More information about the Squeak-dev mailing list