Hi Nicolai,

thanks for your answer! However, apparently the problem is a bit different: the 
shortcut I wanted to add, cmd-s, already existed but I did not realize it! I 
want to add cmd-s to save the text to a file, but the editor has auto accept 
set to true and cmd-s calls accept by default. So adding another cmd-s did not 
do anything and neither could I see that the existing cmd-s binding was 
executing some other behavior :-/

After seeing this, I expected that I would be able to remove the cmd-s 
keybinding, using removeKeyCombination: but apparently I cannot (see example 
below). 

In general, it’s not nice to discover from the code that there are keyboard 
shortcuts that are not listed in the context menu. The enduser should be able 
to discover all active keybindings from what is visible in the UI and this is 
not the case here. Maybe I’ll make a subclass of RubTextEditor that only 
reimplements buildShortcutsOn: so that it is without all these hidden 
keybindings.

But for now I’ll add cmd-d to do save … although that’s ugly. :-(

    |  window text |
    text := RubScrolledTextMorph new.
    
    "define a custom shortcut"
    text removeKeyCombination: $s command.
    text on:$s command do:[
        text setText: text text asString reverse].
    
    window := StandardWindow new.
    window addMorph: text fullFrame: (0@0 corner: 1@1) asLayoutFrame.
    window title: 'Example'.
    window openInWorld.


> On Oct 28, 2015, at 17:58, Nicolai Hess <nicolaih...@gmail.com> wrote:
> 
> 
> 
> 2015-10-28 19:59 GMT+01:00 Johan Fabry <jfa...@dcc.uchile.cl 
> <mailto:jfa...@dcc.uchile.cl>>:
> Hi all,
> 
> I am trying to add a keyboard shortcut to a RubTextEditor. I have tried 
> different ways but nothing seems to work. I have even tried modifying 
> buildShortcutsOn: at class side to include the extra shortcut but it does not 
> have any effect at all.
> 
> Ideally I’d take an existing instance and add the keyboard shortcut there, 
> but if that is impossible I’m willing to make a subclass just to get this 
> extra shortcut. Can anybody give me pointers?
> 
> ---> Save our in-boxes! http://emailcharter.org <http://emailcharter.org/> 
> <---
> 
> Johan Fabry   -   http://pleiad.cl/~jfabry <http://pleiad.cl/~jfabry>
> PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of 
> Chile
> 
> 
> 
> Hi Johan,
> adding a custom shortcut for a Rubric-TextMorph is easy:
> 
> 
>     |  window text |
>     text := RubWorkspaceExample new newScrolledText.
>     
>     "define a custom shortcut"
>     text on:$t command do:[
>         text setText: text text asString reverse].
>     
>     window := StandardWindow new.
>     window addMorph: text fullFrame: (0@0 corner: 1@1) asLayoutFrame.
>     window title: 'Example'.
>     window openInWorld.
> 
> 
> This simple example will build a Rubric Scrolled Textmorph and add a 
> alt+t shortcut to reverse the current text 
> 
> What ways did you already tried?
> 
> Modifying the existing #buildShortcuts method should work, for existing 
> RubTextEditor (or subclasses). 
> But if you define your own RubTextEditor you may need to define another 
> shortcut category and register your editor with that 
> category on the Morph you use.
> 
> For example, RubAbstractTextArea (a Morph) calls
> 
> super initializeShortcuts: aKMDispatcher.
> self editor initializeShortcuts: aKMDispatcher
> 
> and teh editors #initializeShortcuts 
> will attach the editors category, defined in the editors class side 
> buildShortCutsOn method.
> 
> 
> 
> 
> 



---> Save our in-boxes! http://emailcharter.org <---

Johan Fabry   -   http://pleiad.cl/~jfabry
PLEIAD and RyCh labs  -  Computer Science Department (DCC)  -  University of 
Chile

Reply via email to