When I awoke just now several important ideas about the demo plugin 
appeared. This post is pre-writing for a new section in demo.md 
<https://github.com/leo-editor/leo-editor/blob/demo/leo/doc/demo.md>.

*tl;dr:* See the bold headings. But really, this post is worth careful 
study.

*No need for helper methods*

Unlike the screencast plugin, *the full power of Leo scripting is available 
to demo scripts.* Examples:

1. Demo scripts can call c.editHeadline() to start editing a headline. 

2. Demo scripts can call c.bodyWantsFocusNow() or c.treeWantsFocusNow() or 
c.minibufferWantsFocusNow() to switch panes.

These "just work" because the demo plugin does not interfere with Leo's 
focus or key handling.

*Presentations can be descriptive*

Demo scripts can focus on *what* should be done, not *how*. Subclasses of 
demo.Demo can (should) define helpers that hide implementation or 
configuration details.

Basing presentations on (subclasses of) demo.Demo is a major innovation. 
It's much more powerful and flexible than screencast.py, or demo.el.

*Presentations can be fully automated*

Aha: demo scripts can be chained using demo.next().  Like this:

    demo.wait(whatever)
    demo.next()

Alternatively, a single demo script suffices:

    << section 1 >>
    demo.wait(n1)
    << section 2 >>
    demo.wait(n2)
    ...

This means that...

*No post production required !!*

This is huge. Fixed wait times make it easy to create finished 
presentations that can be recorded without any further editing! Two new 
helpers would be good:

- *demo.callout*: Shows a highlighted message at a given location on the 
screen.

- *demo.subtitle*: Shows a subtitle in a standard location on the screen.

Both these helpers will auto-size themselves based on the text.

*Summary*

The demo plugin does not interfere focus or key-handling. As a result, the 
full power of Leo scripting is available to demo scripts.

Demo scripts can (and should) be descriptive. Subclasses of demo.Demo can 
define methods that hide implementation and configuration details.

Demo scripts can insert fixed delays, callouts and subtitles. As a result, 
demo scripts can be fully automated. They can be recorded without any 
post-production editing.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to