<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p><font size="4">Hi Paul, <br>
      </font></p>
    <p><font size="4">Coincidentally, a few weeks ago, I was reading
        about model-less GUI, not any particular implementation like the
        ones you referred in your email, but about the general idea to
        re-construct the whole or part of the GUI when an event occurs.</font></p>
    <p><font size="4">It is true that it is not obvious to track the
        source of events with the observer pattern: triggered in one
        place, hooked in another ones. The tools to help the developer
        comprehension of events is not really there. The fact that it is
        based on symbol and not object does not help. I guess that what
        we all do is to search for symbol in the source code, i.e.
        #selected.</font></p>
    <p><font size="4">Regarding the model, Morph itself is very neutral
        regarding the necessity to have one. Pluggable morph requires
        one but many others embed it (TextParagraphMorph, TextEnty
        Morph). And when required, there are generic models
        (ValueHolder, ListModel, ...).</font></p>
    <p><b>A few points of thinking.</b> <br>
    </p>
    <p>It is possible to hook programmatically mouse/keyboard events to
      a Morph. In your example the handlesMouseDown: and
      mouseButtons1xxx can be set programmatically, so it avoid
      subclassing. It may help to compose the GUI with sub morphs, using
      sub morphs improves the efficiency. In your example the whole
      rectangle  of the GUI is rebuild even if only a small part needs
      to be updates.</p>
    <p>I am wondering if the simplicity you get from just rebuilding GUI
      comes with a hidden cost.</p>
    <p>Concerning model, don't you need one at some point to represent
      the state of your application ? So most the time the model is not
      a bargain as it already exists. Ok may be not for your converter
      example.<br>
    </p>
    <p>In the Cuis-Smalltalk-UI, there is a UI-Mold package to describe
      field input form, with data validation. It should be possible to
      add a kind of computed ouput object.</p>
    <p>Hilaire</p>
    <pre class="moz-signature" cols="72">-- 
GNU Dr. Geo
<a class="moz-txt-link-freetext" href="http://drgeo.eu">http://drgeo.eu</a>
<a class="moz-txt-link-freetext" href="http://blog.drgeo.eu">http://blog.drgeo.eu</a></pre>
  </body>
</html>