Squeak's user interface

tblanchard at mac.com tblanchard at mac.com
Wed Jul 16 02:17:11 UTC 2003


Well, you've done a good job of describing various things I'm working 
on in Bricks.  Just need a few more hours in the day...
For instance:

> 	6. For the programmers, make morphic prototypes get saved.  When you 
> do
> "make own subclass", save the morph in a class instance variable, and
> have that morph get veryDeepCopied when you do a #new on that class.
> Also add menus to save a different prototype and to abolish the
> prototype (because you've written an #initialize method that sets
> everything up).  For extra credit, make the prototype get serialized
> into

You can save a filed out version of the morph into a class variable on 
any class you like.
That's pretty good.

On Tuesday, July 15, 2003, at 09:04  PM, Lex Spoon wrote:

> Tim Rowledge <tim at sumeru.stanford.edu> wrote:
>> I do like the point about designing the UI early (on
>> http://mpt.phrasewise.com/discuss/msgReader$182) - since the UI is 
>> what
>> you (usually) have to explain to users it helps if there is
>> something that _can_ be explained.
>>
>> Once you have a decent idea of what you actually want to achieve you 
>> can
>> try to work out how to use it. If you then make an attempt to write an
>> explanation of how to use it you learn a great deal about what you 
>> will
>> need to implement.
>>
>
> This is the hardest part of making a UI for Squeak.  How many people
> have a good grasp of  what, exactly, are the individual tasks you
> perform in Squeak?  Of those people, how many are any good with UI's?
>
> To complicate things, there are *two* flavors of Squeak usage, at the
> very least:
>
> 	1. One is the etoy-ish interface.  This is people who jump to all the
> example projects, browse around on the SuperSwiki, and maybe on 
> accasion
> get excited and fiddle with an EToys exercise.  Also, this is the kind
> of person who might make a presentation in Squeak.
>
> 	2. The second flavor of usage is people writing Smalltalk programs and
> taking advantage of the heavy integration between browsers, the
> debugger, and the morphic world.  Classic Smalltalk.
>
>
> Hmm, you know, this consideration gives me a lot of ideas, for anyone
> who wants to work on this.  Here are a few areas that would help
> immensely:
>
> 	1. Work out the UI for SuperSwiki usage.  The buttons and menus are
> confusing, there are multiple ways to save projects, and the multiple
> progress meters are stunning to the eye.  This is a classic UI design
> situation if anyone wants to go for it.  It looks like there is
> something very simple and intuitive underneath it.  After all, it's 
> just
> load and save, right?
>
> 	2. Make SystemWindows not pop forward all the time -- instead, make 
> the
> top-most system window be the "active" one and leave it where it is.
> This is a small thing, but it really drives me crazy.  Often it even
> gives the illusion that something has completely disappeared, which
> really throws newbies.
>
> 	3. Reorganize the SystemWindow menus.  There are *three* top-level
> menus for SystemWindow's, and they're all different: one is from the 
> red
> halo, one isfrom the icon next to the X button, and one comes up after
> ctrl-click.  They should probably be the same menu.
>
> 	4. Reorganize the "help" menu.   It should really only have help-like
> things in it.  Some of the stuff in there is preferences and shouldn't
> be in any menu.  Some of the stuff is fine to have around but is weird
> to have in the "help" menu.  Feel free to create new menus if 
> necessary.
>  "help" is an important menu item to get correct.  Probably it should
> link to the Swiki documentation....
>
> 	5. Go through the preferences and get rid of as many as possible.  At
> the very least, hide most of them under some kind of expert panel, so
> that newbies don't get overwhelmed.  While you're at it, feel free to
> rename them all consistently.
>
> 	6. For the programmers, make morphic prototypes get saved.  When you 
> do
> "make own subclass", save the morph in a class instance variable, and
> have that morph get veryDeepCopied when you do a #new on that class.
> Also add menus to save a different prototype and to abolish the
> prototype (because you've written an #initialize method that sets
> everything up).  For extra credit, make the prototype get serialized
> into
>
>
> There are other things, too, but this is a start and any one of these
> things would help a lot.
>
>
> Lex
>



More information about the Squeak-dev mailing list