[Cuis-dev] How to extend BrowserWindow menus?

Mariano Montone marianomontone at gmail.com
Wed Jun 5 06:34:36 PDT 2024


Hi Juan,

I'm looking at what you point, but I can't figure it out.

The easiest way for me would be to see some example code.

If you don't mind, here's what I'm trying to do:

I've implemented a SearchBrowser tool in Cuis-Smalltalk-Tools. Now I 
would like to add a 'Search ...' menu item to the browser's category 
menu that simply calls SearchBrowserWindow class>>searchCategory:  with 
the browser's currently selected category.

Perhaps you can provide the code for that, I will take it from there for 
my other cases. And it may also help with validating your design.

In any case, there's no rush, and thanks,

     Mariano

El 5/6/24 a las 09:19, Juan Vuletich escribió:
> Hi Mariano,
>
> I'm doing a big overhaul of the way to specify Menus and Keyboard 
> Shortcuts in Cuis. The objective is to make it more flexible and nicer 
> to use than DynamicMenuBuilder. It is extensible by third parties, 
> although this is not yet documented and there are not any examples. 
> See #at:registerMenuAndShortcutsSpecProvider:, or give me another week 
> or so until this stabilizes.
>
> For a specific case where the implementor of the menu item action is 
> neither the Window nor the Model, see the menu for the list of files 
> in FileList. In any case, what I'd do perhaps is to extend the window 
> menu with the new operations that require its state.
>
> Cheers,
>
> On 6/4/2024 5:05 PM, Mariano Montone via Cuis-dev wrote:
>> After looking more deeply at the implementation of menus, etc, I 
>> think my problem may be a bit difficult to solve.
>>
>> So perhaps it is better to forget about this, I've got it more or 
>> less "solved" for my purposes.
>>
>> El 4/6/24 a las 12:30, Mariano Montone escribió:
>>> Hello,
>>>
>>> I would like to extend BrowserWindow menus from my extension.
>>>
>>> I have code like this:
>>>
>>> MyExtension class>>systemCategoryMenuOptions
>>>
>>>     ^ {
>>>             {
>>>                 #itemGroup             ->         10.
>>>                 #itemOrder             ->         10.
>>>                 #label             ->         'search...'.
>>>                 #object       ->         self.
>>>                 #selector             -> #searchCategory:.
>>>                 #icon             ->         #findIcon
>>>             } asDictionary.
>>>         }
>>>
>>> But I can't figure out how to access the Browser instance from the 
>>> #searchCategory: method in my extension class. I have no way of 
>>> passing it via #arguments: there either.
>>>
>>> It makes sense to be able to, as extensions will want to access the 
>>> current browser state (selected category, etc). Is there a 
>>> workaround for this?
>>>
>>> Also, if this is solvable, I will want to extend the class list menu 
>>> of the browser too. But it doesn't use DynamicMenuBuilder anymore, 
>>> it was dropped at some point. Could it be brought back?
>>>
>>> Thanks!
>>>
>>>     Mariano
>>>
>
>


More information about the Cuis-dev mailing list