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
|