Transparent Window labels &New Squeak UI Style
Stefan Matthias Aust
sma at kiel.netsurf.de
Tue Jan 12 00:05:58 UTC 1999
>What do you think about different windows styles within squeak (like
>in VisualWorks or Java's Swing) including a special Squeak UI Look
>considering the display depth?
I really like that idea and thought about it myself already, however I
wouldn't try to hack this into one of the existing UI frameworks but create
a new one. Sounds silly at the moment, but here're my reasons:
1/ MVC should be kept to assure compatibiliy for all who don't care.
2/ MVC is IMHO too complex and bloaded with dubious methods to decide
where to add a pluggable look and still kep compatibility.
3/ MVC has major design flaws. In no specific order: Dynamic resing is
too limited: layout managers as in Dolphin or Java or VA or Motif or
OpenView or NextStep are much better. The widget don't support
keyboard natigation: no keyboard focus, no nativation. Not event
driven: difficult to add scripting. Widget set too small.
4/ Morphic changes too fast. It's a playfield of active development
is still evolving. Again protocols are bloaded with undocumented
methods. It might be possible to create a a side version tree,
starting from some cleaned up code as both other flaws of MVC are
fixed.
5/ Morphic isn't fast enough and needs too much space on small systems
like palmtops etc.
6/ Creating a UI framework is fun :-)
I think, one can learn a lot of from both VisualWork's chamelion view and
Swing. Swing can be used to learn how to create a well documented
interface between widget and facade. Other things can be learned from VW.
The goal should be to create a very small and minimal framework. Not much
larger than the old MVC. I already started to implement one, but as time
is very limited and there's so many other things to try, I never got
something really working.
I tried to create a framework from scratch, however using something I'd
call the essence of Morphic (which is basically everything I recognize from
the Self 4.0 paper and with all methods deleted I don't know or understand
their purpose ;-) it might be possible, too. This would already provide
some double buffering canvas and simple morphs which get the usual events.
The Morph #drawOn: method would delegate the real work to facade objects.
A framework for layouting using pluggable manager and for replacing facades
had to be added of course.
bye
--
Stefan Matthias Aust // Are you ready to discover the twilight zone?
More information about the Squeak-dev
mailing list
|