<br><br><div class="gmail_quote">On Fri, Nov 20, 2009 at 3:30 AM, Balázs Kósi <span dir="ltr"><<a href="mailto:rebmekop@gmail.com">rebmekop@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
> * Having TheWorldMainDockingBar updateInstances automatically is too<br>
> aggressive. We should do this via an #initialize method which can be touched<br>
> as needed and will only be executed when we have to. The way it is right now<br>
> makes it very hard to add new stuff that temporarily break things (I break<br>
> stuff all the time :-)<br>
I added a preamble to Morphic(-kb.241) to unsubscribe TheWorldMainDockingBar<br>
from SystemChangeNotifier. Now TheWorldMainDockingBar initialize updates<br>
the docking bar.<br>
<br>
> * For consistency I think we should be using the same pattern that is<br>
> generally utilized via MenuMorph>>addList:, i.e.<br>
><br>
> squeakMenu<br>
> ^{<br>
> {'About' translated. #aboutSqueak}.<br>
> {'Update translated. #updateSqueak}.<br>
> -.<br>
> {'Save Image' translated. #saveImage}.<br>
> ...<br>
><br>
> instead of the custom scheme you've been using. I think this way it's more<br>
> recognizable.<br>
I dropped the descriptor array scheme to build the menus. Now things<br>
are a bit more<br>
verbose, but more straightforward and flexible, i think. e.g.:<br>
<br>
...<br>
item addSubMenu: [ :menu |<br>
self<br>
aboutMenuItemOn: menu;<br>
updateMenuItemOn: menu.<br>
menu addLine.<br>
self saveMenuItemOn: menu<br>
...<br>
<br>
saveMenuItemOn: menu<br>
<br>
menu addItem: [ :item |<br>
item<br>
contents: 'Save Image' translated;<br>
help: 'Save the current state of Squeak on disk' translated;<br>
icon: MenuIcons smallSaveIcon;<br>
action: [ SmalltalkImage current snapshot: true andQuit: false ] ]<br>
<br>
> * The Projects menu should come before the Tools menu and should include a<br>
> submenu for "New Project" listing all the available types of projects (i.e.,<br>
> Project allSubclasses). (I can help you with this)<br>
I added the submenu to the New Project item and kept its default<br>
action to open a<br>
MorphicProject.<br>
<br>
> * We definitely also need a Help menu which should include things like the<br>
> command key help (shortcuts), probably a window with additional resources<br>
> (i.e., links to the free Smalltalk books) a quick reference card for syntax.<br>
> Any takers?<br>
I added a stub for it: TheWorldMainDockingBar >> helpMenuOn:<br>
This could also be the place to add tutorial projects to teach<br>
programming kids of<br>
all ages.<br>
<br>
> * The menu items should have a few pixel additional vertical spacing.<br>
I added 2 pixels to MenuItemMorph >> minHeight. It's easier on the eyes, but<br>
the world menu doesn't fit anymore on my 600px tall screen. Is this<br>
ok, or should<br>
we only pad menu items in the docking bar?<br>
<br>
> * There seems to be a bit inconsistency about how to shake off an open menu<br>
> depending on how exactly you mouse over / in / out. I haven't been able to<br>
> make this happen reliably but in some situations it won't go away.<br>
Yeah, there are glitches, i'll try to hunt them down.<br>
<br>
> * Finally, I'm not sure but the TheWorldMainDockingBar seems to be a<br>
> singleton. It shouldn't - we can have different menus for different kinds of<br>
> projects, and one of the first things I'm going to try to do is to make an<br>
> EtoysProject subclass of MorphicProject which wouldn't contain the various<br>
> Tools but rather replace them by an Authoring menu.<br>
It is. But it has no state, just builds and updates DockingBarMorphs.<br>
We should rename it to DockingBarBuilder or something.<br>
We can subclass it, override it here and there, and make the project decide<br>
which subclass to use.<br>
<br>
This is just the start, highly experimental. There are lots of space<br>
to improve and for cleanup.<br>
Any suggestions on content, behaviour and implementation are welcome!<br>
<font color="#888888"><br>
Balázs<br>
</font><br>
p.s.: What should we do with preferences like tinyDisplay, noviceUser<br>
and the like governing Morphic? For me the easiest thing seems to get<br>
rid of them :)<br></blockquote><div><br></div><div>Keep tinyDisplay and tailor the responses to it to favour iPod & iPhone size screens. </div></div><br>