You can use the power of Inspector! Inspect rubric morph and you will see there is shortcuts tab which lists all assigned shortcuts and if you click on one them a new tab will be opened to the right showing exact place in source code when shortcut is defined and its action. On Oct 28, 2015 11:05 PM, "Johan Fabry" <jfa...@dcc.uchile.cl> wrote:
> 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>: > >> 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 <--- >> >> Johan Fabry - 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 > >