How to improve Squeak (InternalThreadNavigationMorph question)

C. David Shaffer cdshaffer at acm.org
Fri Jul 16 13:56:38 UTC 2004


Milan Zimmermann wrote:

>Hi,
>
>Playing with InternalThreadNavigationMorph .. I have created a "My 
>PresentationProject" which has 4 Projects in it, each intended to be one 
>"Page" of the presentation. As well, in "My PresentationProject" I have a 
>there a InternalThreadNavigationMorph which navigates through the 4 pages. 
>
>My problem is that once navigating inside the InternalThreadNavigationMorph , 
>I cannot find a straightforward way to go back to the "parent" "My 
>PresentationProject" ... I was thinking it should be on the middle button ... 
>anyway, is there a way to go back to parent?
>  
>
Milan,

I usually make the "parent" the first project in my thread that way you 
can use the "First project in thread" menu item from the ITNM.  
Recently, I got out of the habit of having all of the projects be 
children of the root project.  Instead, I use the ITNM's "insert new 
project" menu option to create a new project.  You may or may not like 
this since it won't create a thumbnail of the project anywhere.  The 
only places you'll see it are in the ITNM and in the "jump to 
project..." menu.  It is certainly a matter of personal preference but 
the reason I stopped creating all of the projects rooted in a single 
project is that lengthy talks make crowded root projects and I found 
myself wasting time rearranging the thumbnails so I could see them all.

I've been using projects to make my presentations for a year now (3 
presentations).  I have a lot of complaints but I'm reluctant to share 
them as I don't have any code to share.  Now, if someone solicits 
comments that would be another story :-)  I can add at least one hint in 
addition to Lex's comment regarding flaps: copy morphs.  One thing I 
found myself doing consistently was (pseudo-smalltalk/morph, sorry, 
don't have my actual code handy):

    "Do this once to set up the container for your templates"
    Smalltalk at: #PageTemplates put: Dictionary new.

    "Execute this code in a page which has a format you like, change 
BulletPage to something which describes the page"
    PageTemplates at: #BulletPage put: (World submorphs collect: [:morph 
| morph copy])

    "Go to the new/destination project and execute this code"
    (PageTemplates at: #BulletPage) do: [:morph | morph copy 
openInWorld: World]

I think that's how it worked.  The thing I most fuzzy on is sending copy 
(was it deepCopy or something?).  The wonderful thing about this 
mailling list is that I'm sure if it's wrong someone will correct me 
:-)  Anyway this works well if you write presentations where the slide 
format doesn't vary much from slide to slide (like us boring academic 
types tend to do).  The reason I used a dictionary was to keep from 
having globals scattered all around Smalltalk.  It also makes creating 
some scripted buttons quite easy.

Also, I couldn't get any of the ServerDirectory classes to work with my 
Apache+WebDAV system so I wrote DAVServerDirectory and posted it to the 
list.  It allows you to save your projects right to an Apache web server 
(I recommend using stunnel since Squeak doesn't support SSL and 
publishing unencrypted is begging for trouble).

Finally, if you're using 3.6 and True-Type Fonts, be sure to get Diego's 
patch from BFAV since otherwise you won't be able to properly load your 
published presentations (you must have the patch installed when you 
publish!).

David





More information about the Squeak-dev mailing list