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++