<br><br><div class="gmail_quote">On Fri, Nov 20, 2009 at 3:30 AM, Balázs Kósi <span dir="ltr">&lt;<a href="mailto:rebmekop@gmail.com">rebmekop@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
&gt; * Having TheWorldMainDockingBar updateInstances automatically is too<br>
&gt; aggressive. We should do this via an #initialize method which can be touched<br>
&gt; as needed and will only be executed when we have to. The way it is right now<br>
&gt; makes it very hard to add new stuff that temporarily break things (I break<br>
&gt; 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>
&gt; * For consistency I think we should be using the same pattern that is<br>
&gt; generally utilized via MenuMorph&gt;&gt;addList:, i.e.<br>
&gt;<br>
&gt; squeakMenu<br>
&gt;        ^{<br>
&gt;                {&#39;About&#39; translated. #aboutSqueak}.<br>
&gt;                {&#39;Update translated. #updateSqueak}.<br>
&gt;                -.<br>
&gt;                {&#39;Save Image&#39; translated. #saveImage}.<br>
&gt; ...<br>
&gt;<br>
&gt; instead of the custom scheme you&#39;ve been using. I think this way it&#39;s more<br>
&gt; 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: &#39;Save Image&#39; translated;<br>
                        help: &#39;Save the current state of Squeak on disk&#39; translated;<br>
                        icon: MenuIcons smallSaveIcon;<br>
                        action: [ SmalltalkImage current snapshot: true andQuit: false ] ]<br>
<br>
&gt; * The Projects menu should come before the Tools menu and should include a<br>
&gt; submenu for &quot;New Project&quot; listing all the available types of projects (i.e.,<br>
&gt; 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>
&gt; * We definitely also need a Help menu which should include things like the<br>
&gt; command key help (shortcuts), probably a window with additional resources<br>
&gt; (i.e., links to the free Smalltalk books) a quick reference card for syntax.<br>
&gt; Any takers?<br>
I added a stub for it: TheWorldMainDockingBar &gt;&gt; helpMenuOn:<br>
This could also be the place to add tutorial projects to teach<br>
programming kids of<br>
all ages.<br>
<br>
&gt; * The menu items should have a few pixel additional vertical spacing.<br>
I added 2 pixels to MenuItemMorph &gt;&gt; minHeight. It&#39;s easier on the eyes, but<br>
the world menu doesn&#39;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>
&gt; * There seems to be a bit inconsistency about how to shake off an open menu<br>
&gt; depending on how exactly you mouse over / in / out. I haven&#39;t been able to<br>
&gt; make this happen reliably but in some situations it won&#39;t go away.<br>
Yeah, there are glitches, i&#39;ll try to hunt them down.<br>
<br>
&gt; * Finally, I&#39;m not sure but the TheWorldMainDockingBar seems to be a<br>
&gt; singleton. It shouldn&#39;t - we can have different menus for different kinds of<br>
&gt; projects, and one of the first things I&#39;m going to try to do is to make an<br>
&gt; EtoysProject subclass of MorphicProject which wouldn&#39;t contain the various<br>
&gt; 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 &amp; iPhone size screens. </div></div><br>