After yesterday's work on the executive summary, I remembered the advice of 
the book "Made to Stick" to tell stories.  Following this advice, I wrote 
the following intro to the screencast plugin.  It think it flows much more 
naturally than the executive summary, and is more informative to boot.  
Here it is::

QQQQQ
I created the screencast plugin as a tool for people wanting to demonstrate 
Leo to others. I wanted an *easy* way for people to prepackage an talk so 
that they could plan an *automated* talk in detail ahead of time. We can 
think of a talk as a series of slides *created by Leo itself*. Each slide 
is simply Leo as it appears at a particular time. When giving the talk, the 
presenter moves from one slide to the next by hitting the RtArrow (Right 
Arrow) key. The presenter may also back up from the present slide to the 
previous slide using the LtArrow (Left Arrow) key.

It's surprisingly easy to do this in Leo. The first idea is that Leo 
scripts should create each slide. It was immediately obvious that Leo 
scripts would be the only *easy* way to change Leo's appearance. A 
demonstration will consist of a large number of slides, so we will need a 
correspondingly large number of scripts. Again, it was immediately obvious 
that the scripts should be stored in a tree of Leo nodes, one script per 
node. Let us call this tree of scripts the **controlling tree**. Normally 
the controlling tree will be hidden from view during the presentation.

The scripts contained the controlling tree are normal Leo scripts, but they 
have access to some capabilities provided by this plugin, so let us call 
them **screencast scripts**. In particular, screencast scripts should be 
able to draw attention to various parts of the tree. This plugin gives 
scripts two ways of doing so: scaled images and captions. An **image** is 
an image (from an external file) that is shown overlaying part of Leo's 
screen. For example, a screencast could discuss Leo's icon box by shown 
greatly magnified images of various kinds of icon box. Similarly a 
**caption** is text that overlays part of the screen. By default, captions 
have a bright yellow background so that they clearly stand out from the 
normal appearance of Leo's screen.

To recap: the presenter moves from slide to slide using the RtArrow key. 
This key causes the script in the next node of the controlling tree to be 
executed. The script alters the screen, say by selecting inserting, 
deleting, expanding and contracting nodes, or by inserting, deleting or 
changing headline or body text. The script will typically also show 
graphics or captions to highlight what the slide is supposed to be showing.

Some surprisingly simple infrastructure is needed to make this scheme work. 
An object called the ScreenCastController (SCC) provides this 
infrastructure. When the screencast plugin is active, it injects a SCC into 
the Commander for each Leo outline. The SCC handles the behind-the-scenes 
details of handling the RtArrow and LtArrow keys, that is, of executing
each screencast script. Each script executes with 'c', 'g', and 'p' defined 
as usual. However, the SCC also defines an 'm' variable, which is bound to 
the SCC itself. Thus, screencast scripts have complete access to the SCC 
itself. The SCC provides convenience methods for drawing graphics and 
captions. Other convenience methods allow simple animations, which simulate 
typing in headline or body text.
QQQQQ

I'm pretty happy with this story.  It gives the essentials of the 
screencast plugin in a relaxed, easy-to-understand way.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/leo-editor/-/dR7kOWjB8_IJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/leo-editor?hl=en.

Reply via email to