Base image, Windows look

Stefan Matthias Aust sma at kiel.netsurf.de
Tue Sep 1 20:04:31 UTC 1998


Doug Way wrote:

>Still, after playing around with Squeak for a few months, there are some
>things I'd like to see moved to the base image.

(Additional to the things already mentioned, I'd like to see the monolithic
base image getting extended and eventually replaced by some kind of
packages/parcels, similar to Dolphin ST or VisualWorks ST.)

>A related item is supporting widgets with a Windows (or Mac, Motif, etc.)
>look & feel.  Although I could understand keeping this kind of thing out
>of the base image, as it could start to take up a decent amount of
>space... it could be part of a larger Windows-look development goodie or
>something.  Probably the way to go with this would be emulated (Morphic)
>widgets rather than native widgets, sticking with the philosophy of
>keeping Squeak very portable.  Has anyone tried creating Windows-look
>widgets with Morphic?

Well, I didn't tried this so far, but I already wrote a Windows look for
VisualWorks and I'm currently experimenting with a NextStep look (but no
feel) for Squeak's MVC classes.

First of all, emulating an existing GUI is a damn big challenge you cannot
code in a weekend (unfortunately, I once tried ;-). There's always the
problem that you get the look only 90% right and the last remaining 10%
make the people notice that everything is only fake. Then, at least as
important as the look is the right feel. It's not a big problem if button
shadows don't look right, but if you cannot use the usual short cut keys,
or if menus behave differently or if you cannot use the GUI also without a
mouse, then people will refuse the emulation.

Both Squeak's MVC and Morphic GUI behave very different compared to Apple's
GUI or Microsoft's Windows (not even thinking about X Windows here). This
means, if you want to get the right feel, you've basically to rewrite the
whole GUI.

Currently, Squeak doesn't support keyboard navigation (keyboard support is
overall different, you've to move the mouse over the window you want to
type in, for example), doesn't support accelerator keys for menus, no
keyboard menu control, no concept of an input focus.  Squeak doesn't
support a large number of common widgets like tree views, table views, file
selectors, sliders, spin buttons, (c/t)oolbars, floating toolboxes, etc. It
has no real concept of scrolling panes (horizontal scrollbars are missing
altogether and the vertical ones are hacked into the ScrollController). The
text widget (although quite powerful) if very different to something you
are used to use in Windows. Pulldown menus and submenus are missing, popup
menus behave different. I prefer to perform two clicks instead of
continuesly pressing the mouse button. The request paradigm of Squeak is
different. It uses special popup menus where the Windows user would expect
messages boxes or dialogs. Last but no least, Squeak's cursors are only
monochrome and doesn't resemble the Windows ones.

For my experiments with a NextStep look, I changed the MVC classes. So far,
this wasn't very difficult after I eventually figured out the meaning of
the existing stuff. There's definitely not enough documentation, (but that
seems to be a typical Smalltalk problem). Using the browsers to change the
underlying GUI framework if however a little bit like brain surgery :-)

The feel is however still Squeakish and probably not Next-like at all (I
don't know as I never had the chance to see or use a Next, but I always
liked its look.) but that's wasn't my goal.

I also looked at Morphic and found this much more difficult to use. Morphic
is very promising, but still very experimental. As it mixes up model, view
and controller in just one class, it's difficult for me to tell what method
is used (if it's used at all) for which task. It's lacking documentation!
(also Morphic is too slow on my P100) I've attached a Win4-style button
written in Morphic. Feel free to extend this :-)

I'd be interested in a NextStep- (or Win4-)like look (and feel) based on
the MVC framework. You cannot scale and rotate this, but it's much faster
and (at least for me) easier to understand. Something that looks better and
can be used to create some good looking applications without too much
difficulties.

BTW, there's already a patch at the UIUC Smalltalk archive which gives you
a sort-of Win4 look, but again just the look, not the feel, I think.


bye
Content-Type: application/octet-stream; name="Morphic-Win4.1Sept944pm.cs"
Content-Disposition: attachment; filename="Morphic-Win4.1Sept944pm.cs"

Attachment converted: Cog:Morphic-Win4.1Sept944pm.cs (????/----) (0000E42A)

--
Stefan Matthias Aust  //  Are you ready to discover the twilight zone?





More information about the Squeak-dev mailing list