On Sun, Sep 16, 2012 at 6:29 AM, Edward K. Ream <
edre...@gmail.com> wrote:
>> Two big steps forward today:
The latest work: rev 4443 removes the "fakes" in m.state_handler that
simulated minibuffer handling. Now m.next, m.single_key and
m.state_handler properly switch between key-handling states so that:
a) RtArrow still switches between slides and
b) All "simulated" keys produced by m.ctrl_key and m.plain_keys now
actually switch input modes.
Examples:
1. The revised minibuffer screencast simply does m.ctrl_key('Alt-x')
in one node. Another node does m.keys('ins'). Another node does
m.key('\t'). This actually invokes the minibuffuffer(!) and it shows
the Completion tab in the log pane. When the minibuffer shows
"insert-node", a final m.key('\n') actually inserts a node(!!)
The point is that the user has just been hitting RtArrow all along:
the screencast plugin switches between key states behind the scenes.
It was tricky to get right.
2. Similarly, the screencast that discusses the find command starts
with m.ctrl_key('ctrl-f'). This shows the screen exactly as if I had
typed ctrl-f outside a screencast.
Important: the arg to m.ctrl_key can be anything that would be a
valid key setting. So the following are all equivalent: "ctrl-f",
"Ctrl-f", "Ctrl+F", etc. But "ctrl-F" is different from
"ctrl-shift-f".
Note: m.ctrl_key is somewhat misnamed. Alt keys work too. In fact,
m.ctrl_key is equivalent to m.single_key. I'll be eliminating
redundant methods soon.
With these improvements, the essentials of the screencast plugin are
complete. Still to do:
- One bug remains: for some reason, backspace doesn't get handled
properly in the minibuffer screencast. I'll fix this asap.
- Document the plugin, both in the docstring, and in a screencast!
- Create screencast-start and screencast-find-and-start commands. The
former will allow *any* sequence of nodes to be a screencast; the
latter will look for an @screencast node, and then start a screencast
at that node.
Edward