The Trunk: System-mha.167.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
32 messages Options
12
cbc
Reply | Threaded
Open this post in threaded view
|

Re: Re: The Trunk: System-mha.167.mcz

cbc
On Wed, Nov 18, 2009 at 12:06 AM, Michael Haupt <[hidden email]> wrote:
>
> sorry, I meant the "personalized" world menu, and the question
> actually is whether anybody is using this feature.
>
Since you are asking, yes, I use it.  I mostly use Squeak as a
personal toolkit to assist in whatever else I'm working on, and
certain custom tools I like to have at my fingertips.  So, I use the
personalized menu.  Sure, I could modify the actual menu, but then I'd
have to redo that each time it was 'fixed' elsewhere in the update
stream(s).

-Chris

Reply | Threaded
Open this post in threaded view
|

Re: Re: The Trunk: System-mha.167.mcz

Ken Causey-3
On Wed, 2009-11-18 at 09:13 -0800, Chris Cunningham wrote:

> On Wed, Nov 18, 2009 at 12:06 AM, Michael Haupt <[hidden email]> wrote:
> >
> > sorry, I meant the "personalized" world menu, and the question
> > actually is whether anybody is using this feature.
> >
> Since you are asking, yes, I use it.  I mostly use Squeak as a
> personal toolkit to assist in whatever else I'm working on, and
> certain custom tools I like to have at my fingertips.  So, I use the
> personalized menu.  Sure, I could modify the actual menu, but then I'd
> have to redo that each time it was 'fixed' elsewhere in the update
> stream(s).
>
> -Chris
Like Igor I could not figure out what was being discussed here.  I did
some searching and believe I found relevant code including a preference
which is enabled by default but it doesn't work in Trunk it seems, the
relevant code is not even used as far as I can tell.

See: Preference personalizedWorldMenu and
PasteUpMorph>>yellowButtonClickOnDesktopWithEvent:.

Ken



signature.asc (197 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Menu structure (Re: The Trunk: System-mha.167.mcz)

Andreas.Raab
In reply to this post by Michael Haupt-3
Michael Haupt wrote:

> I know, this doesn't look much different from what we have now, but
> there's something behind the scenes. The "more tools ..." entry would
> open a sub-menu with all the tools to pick from. The four entries
> above that (i.e., the four first entries in the world menu) are
> adaptive. The most frequently selected tools make it there, replacing
> the less frequently used ones. So, if I rarely open a Transcript but
> often the Monticello browser, the latter will eventually replace the
> former.
>
> What about that?

One thing we could do is to use a plain old menu bar. This has the
advantage that people who try Squeak on their own get more guidance
about "where to click next" (the world menu is surprisingly hard to
discover if you don't know about it). We currently have
TheMainWorldDockingBar as a starting point (a bit too colorful but I'm
sure we can fix that) and then we could restructure that menu bar along
the lines of:

Squeak            Tools         Projects
   About Squeak      Browser       New Project
   Update Squeak     Workspace     Save Project
   Save Image        TestRunner    Load Project
   Save Image As     FileList      Previous Project
   Quit              ...           Jump To Project >

etc. Not only would this provide newcomers with a bit more familiar
structure in the environment but it would also allow us to repurpose the
  world menu as the menu with the 10 things that we use most. For me,
that would be a mixture of tools and projects, and perhaps that menu
should then be completely customizable (i.e., like the "do..." menu).

How about that?

Cheers,
   - Andreas


Reply | Threaded
Open this post in threaded view
|

Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

K. K. Subramaniam
On Thursday 19 November 2009 11:11:03 am Andreas Raab wrote:
> One thing we could do is to use a plain old menu bar. This has the
> advantage that people who try Squeak on their own get more guidance
> about "where to click next" ...
+1. It will lower the bar for beginners. Advanced users who don't need the
main bar will know how to get rid of it.

Subbu

Reply | Threaded
Open this post in threaded view
|

Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Colin Putney
In reply to this post by Andreas.Raab

On 18-Nov-09, at 9:41 PM, Andreas Raab wrote:

> One thing we could do is to use a plain old menu bar. This has the  
> advantage that people who try Squeak on their own get more guidance  
> about "where to click next" (the world menu is surprisingly hard to  
> discover if you don't know about it). We currently have  
> TheMainWorldDockingBar as a starting point (a bit too colorful but  
> I'm sure we can fix that) and then we could restructure that menu  
> bar along the lines of:
>
> Squeak            Tools         Projects
>  About Squeak      Browser       New Project
>  Update Squeak     Workspace     Save Project
>  Save Image        TestRunner    Load Project
>  Save Image As     FileList      Previous Project
>  Quit              ...           Jump To Project >
>
> etc. Not only would this provide newcomers with a bit more familiar  
> structure in the environment but it would also allow us to repurpose  
> the  world menu as the menu with the 10 things that we use most. For  
> me, that would be a mixture of tools and projects, and perhaps that  
> menu should then be completely customizable (i.e., like the "do..."  
> menu).
>
> How about that?

+1

Colin

Reply | Threaded
Open this post in threaded view
|

Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Balázs Kósi
Hi,

I uploaded a first stab to The Inbox (Morphic-kb.238).
What do you think?

Balázs

Reply | Threaded
Open this post in threaded view
|

Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Andreas.Raab
Balázs Kósi wrote:
> I uploaded a first stab to The Inbox (Morphic-kb.238).
> What do you think?

I think it's a *great* start. A couple of things I noticed:

* Having TheWorldMainDockingBar updateInstances automatically is too
aggressive. We should do this via an #initialize method which can be
touched as needed and will only be executed when we have to. The way it
is right now makes it very hard to add new stuff that temporarily break
things (I break stuff all the time :-)

* For consistency I think we should be using the same pattern that is
generally utilized via MenuMorph>>addList:, i.e.

squeakMenu
        ^{
                {'About' translated. #aboutSqueak}.
                {'Update translated. #updateSqueak}.
                -.
                {'Save Image' translated. #saveImage}.
...

instead of the custom scheme you've been using. I think this way it's
more recognizable.

* The Projects menu should come before the Tools menu and should include
a submenu for "New Project" listing all the available types of projects
(i.e., Project allSubclasses). (I can help you with this)

* We definitely also need a Help menu which should include things like
the command key help (shortcuts), probably a window with additional
resources (i.e., links to the free Smalltalk books) a quick reference
card for syntax. Any takers?

* The menu items should have a few pixel additional vertical spacing.

* There seems to be a bit inconsistency about how to shake off an open
menu depending on how exactly you mouse over / in / out. I haven't been
able to make this happen reliably but in some situations it won't go away.

* Finally, I'm not sure but the TheWorldMainDockingBar seems to be a
singleton. It shouldn't - we can have different menus for different
kinds of projects, and one of the first things I'm going to try to do is
to make an EtoysProject subclass of MorphicProject which wouldn't
contain the various Tools but rather replace them by an Authoring menu.

Cheers,
   - Andreas

Reply | Threaded
Open this post in threaded view
|

Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Michael Haupt-3
In reply to this post by Balázs Kósi
Hi Balázs,

On Thu, Nov 19, 2009 at 9:48 PM, Balázs Kósi <[hidden email]> wrote:
> I uploaded a first stab to The Inbox (Morphic-kb.238).
> What do you think?

"you de man". :-)

This is really nice, and a sensible structure. It makes complete sense
to me. Who would have thought I'd return to using a menu bar that
easily? ;-)

Best,

Michael

Reply | Threaded
Open this post in threaded view
|

Re: Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Balázs Kósi
In reply to this post by Andreas.Raab
Hi,

> * Having TheWorldMainDockingBar updateInstances automatically is too
> aggressive. We should do this via an #initialize method which can be touched
> as needed and will only be executed when we have to. The way it is right now
> makes it very hard to add new stuff that temporarily break things (I break
> stuff all the time :-)
I added a preamble to Morphic(-kb.241) to unsubscribe TheWorldMainDockingBar
from SystemChangeNotifier. Now TheWorldMainDockingBar initialize updates
the docking bar.

> * For consistency I think we should be using the same pattern that is
> generally utilized via MenuMorph>>addList:, i.e.
>
> squeakMenu
>        ^{
>                {'About' translated. #aboutSqueak}.
>                {'Update translated. #updateSqueak}.
>                -.
>                {'Save Image' translated. #saveImage}.
> ...
>
> instead of the custom scheme you've been using. I think this way it's more
> recognizable.
I dropped the descriptor array scheme to build the menus. Now things
are a bit more
verbose, but more straightforward and flexible, i think. e.g.:

        ...
        item addSubMenu: [ :menu |
                self
                        aboutMenuItemOn: menu;
                        updateMenuItemOn: menu.
                menu addLine.
                self saveMenuItemOn: menu
                ...

saveMenuItemOn: menu

        menu addItem: [ :item |
                item
                        contents: 'Save Image' translated;
                        help: 'Save the current state of Squeak on disk' translated;
                        icon: MenuIcons smallSaveIcon;
                        action: [ SmalltalkImage current snapshot: true andQuit: false ] ]

> * The Projects menu should come before the Tools menu and should include a
> submenu for "New Project" listing all the available types of projects (i.e.,
> Project allSubclasses). (I can help you with this)
I added the submenu to the New Project item and kept its default
action to open a
MorphicProject.

> * We definitely also need a Help menu which should include things like the
> command key help (shortcuts), probably a window with additional resources
> (i.e., links to the free Smalltalk books) a quick reference card for syntax.
> Any takers?
I added a stub for it: TheWorldMainDockingBar >> helpMenuOn:
This could also be the place to add tutorial projects to teach
programming kids of
all ages.

> * The menu items should have a few pixel additional vertical spacing.
I added 2 pixels to MenuItemMorph >> minHeight. It's easier on the eyes, but
the world menu doesn't fit anymore on my 600px tall screen. Is this
ok, or should
we only pad menu items in the docking bar?

> * There seems to be a bit inconsistency about how to shake off an open menu
> depending on how exactly you mouse over / in / out. I haven't been able to
> make this happen reliably but in some situations it won't go away.
Yeah, there are glitches, i'll try to hunt them down.

> * Finally, I'm not sure but the TheWorldMainDockingBar seems to be a
> singleton. It shouldn't - we can have different menus for different kinds of
> projects, and one of the first things I'm going to try to do is to make an
> EtoysProject subclass of MorphicProject which wouldn't contain the various
> Tools but rather replace them by an Authoring menu.
It is. But it has no state, just builds and updates DockingBarMorphs.
We should rename it to DockingBarBuilder or something.
We can subclass it, override it here and there, and make the project decide
which subclass to use.

This is just the start, highly experimental. There are lots of space
to improve and for cleanup.
Any suggestions on content, behaviour and implementation are welcome!

Balázs

p.s.: What should we do with preferences like tinyDisplay, noviceUser
and the like governing Morphic? For me the easiest thing seems to get
rid of them :)

Reply | Threaded
Open this post in threaded view
|

Re: Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Eliot Miranda-2


On Fri, Nov 20, 2009 at 3:30 AM, Balázs Kósi <[hidden email]> wrote:
Hi,

> * Having TheWorldMainDockingBar updateInstances automatically is too
> aggressive. We should do this via an #initialize method which can be touched
> as needed and will only be executed when we have to. The way it is right now
> makes it very hard to add new stuff that temporarily break things (I break
> stuff all the time :-)
I added a preamble to Morphic(-kb.241) to unsubscribe TheWorldMainDockingBar
from SystemChangeNotifier. Now TheWorldMainDockingBar initialize updates
the docking bar.

> * For consistency I think we should be using the same pattern that is
> generally utilized via MenuMorph>>addList:, i.e.
>
> squeakMenu
>        ^{
>                {'About' translated. #aboutSqueak}.
>                {'Update translated. #updateSqueak}.
>                -.
>                {'Save Image' translated. #saveImage}.
> ...
>
> instead of the custom scheme you've been using. I think this way it's more
> recognizable.
I dropped the descriptor array scheme to build the menus. Now things
are a bit more
verbose, but more straightforward and flexible, i think. e.g.:

       ...
       item addSubMenu: [ :menu |
               self
                       aboutMenuItemOn: menu;
                       updateMenuItemOn: menu.
               menu addLine.
               self saveMenuItemOn: menu
               ...

saveMenuItemOn: menu

       menu addItem: [ :item |
               item
                       contents: 'Save Image' translated;
                       help: 'Save the current state of Squeak on disk' translated;
                       icon: MenuIcons smallSaveIcon;
                       action: [ SmalltalkImage current snapshot: true andQuit: false ] ]

> * The Projects menu should come before the Tools menu and should include a
> submenu for "New Project" listing all the available types of projects (i.e.,
> Project allSubclasses). (I can help you with this)
I added the submenu to the New Project item and kept its default
action to open a
MorphicProject.

> * We definitely also need a Help menu which should include things like the
> command key help (shortcuts), probably a window with additional resources
> (i.e., links to the free Smalltalk books) a quick reference card for syntax.
> Any takers?
I added a stub for it: TheWorldMainDockingBar >> helpMenuOn:
This could also be the place to add tutorial projects to teach
programming kids of
all ages.

> * The menu items should have a few pixel additional vertical spacing.
I added 2 pixels to MenuItemMorph >> minHeight. It's easier on the eyes, but
the world menu doesn't fit anymore on my 600px tall screen. Is this
ok, or should
we only pad menu items in the docking bar?

> * There seems to be a bit inconsistency about how to shake off an open menu
> depending on how exactly you mouse over / in / out. I haven't been able to
> make this happen reliably but in some situations it won't go away.
Yeah, there are glitches, i'll try to hunt them down.

> * Finally, I'm not sure but the TheWorldMainDockingBar seems to be a
> singleton. It shouldn't - we can have different menus for different kinds of
> projects, and one of the first things I'm going to try to do is to make an
> EtoysProject subclass of MorphicProject which wouldn't contain the various
> Tools but rather replace them by an Authoring menu.
It is. But it has no state, just builds and updates DockingBarMorphs.
We should rename it to DockingBarBuilder or something.
We can subclass it, override it here and there, and make the project decide
which subclass to use.

This is just the start, highly experimental. There are lots of space
to improve and for cleanup.
Any suggestions on content, behaviour and implementation are welcome!

Balázs

p.s.: What should we do with preferences like tinyDisplay, noviceUser
and the like governing Morphic? For me the easiest thing seems to get
rid of them :)

Keep tinyDisplay and tailor the responses to it to favour iPod & iPhone size screens. 



Reply | Threaded
Open this post in threaded view
|

Re: Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Balázs Kósi
Hi,

> Keep tinyDisplay and tailor the responses to it to favour iPod & iPhone size
> screens.
Or we could have a separate widget set for tiny displays, and a
TinyMorphicProject
using those widgets. Or something like that, but not branching all the
time around those
preferences.

Balázs

Reply | Threaded
Open this post in threaded view
|

Re: Re: Menu structure (Re: The Trunk: System-mha.167.mcz)

Eliot Miranda-2


On Fri, Nov 20, 2009 at 9:45 AM, Balázs Kósi <[hidden email]> wrote:
Hi,

> Keep tinyDisplay and tailor the responses to it to favour iPod & iPhone size
> screens.
Or we could have a separate widget set for tiny displays, and a
TinyMorphicProject
using those widgets. Or something like that, but not branching all the
time around those
preferences.

Sounds better.  Just as long as support for tiny displays is kept!
 

Balázs




12