I think it's a great idea to clean up multiple plugins defining an action 
on a node.

Mouse clicks should ideally be second class citizens, but citizens 
none-the-less. I find that if I have a particularly large tree it is useful 
to be able to expand all nodes and scan with the mouse to quickly jump to a 
node of interest, and if I have the mouse in my hand anyway I tend to use 
it for bringing up a node menu.

Currently double clicking enables editing the node headline, this would 
mean that editing a headline would only be available via keyboard. I don't 
have a problem with it, but it's worth noting.

On Thursday, March 26, 2015 at 2:58:28 PM UTC-4, Edward K. Ream wrote:
>
> Apparently, there are a number of plugins that were designed in the Tk 
> days and that allowed clicks of various sorts to do things.  John Lunzer 
> points out that all such usages could be considered bugs.
>
> Imo, clicks in headlines are, or should be, second-class citizens.  It's 
> never elegant to use the mouse, and questions of taste aside, anything that 
> can be done with a mouse click really should have a key-based alternative.
>
> I wonder how many people realize that there is a generic act-on-node 
> command that plugins can appropriate as they like. I didn't, until I redid 
> the Commands Reference. Here is the docstring, as reported by F11 
> (help-for-command)::
>
>     Executes node-specific action, typically defined in a plugins as 
> follows:
>
>     import leo.core.leoPlugins
>     def act_print_upcase(c,p,event):
>         if not p.h.startswith('@up'):
>             raise leo.core.leoPlugins.TryNext
>         p.h = p.h.upper()
>     g.act_on_node.add(act_print_upcase)
>
>     This will upcase the headline when it starts with @up.
>
> I'm not sure what happens if multiple plugins define act_on_node.  Otoh, 
> multiple plugins could define an action that fires when the user 
> double-clicks an icon...
>
> Hmm.  Why not turn potential confusion to our advantage?  Suppose the 
> act-on-node command brings up a menu of possible actions if several plugins 
> define act-on-node handlers.  Even better, why not have act-on-node be 
> another way of bringing up the right-click menu defined by the contextmenu 
> plugin!
>
> This has real promise:
>
> - It's an extensible framework for adding arbitrarily many actions to a 
> node.
> - Imo, it's a superior alternative to mouse clicking of various kinds.
> - At a stroke, act-on-node becomes worthy of a default key binding.
>
> Implementation should be easy:
>
> - Leo will define a new 'act-on-node' event.
> - The contextmenu plugin could easily be extended to handle 'act-on-node' 
> events.
> - It would take very little work to replace 'click' handlers in plugins 
> with 'act-on-node' events.
> - Double-clicks would be synonymous with 'act-on-node'.
>   No need right-click or control-click handlers.
>
> The more I think about this, the better it seems.  Your comments, please.
>
> 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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to