Sign up

Issue adding menu items to right click menu of SourceView

I am trying to add new MenuItems to the context menu of a SourceView. So I hooked into the addOnPopulatePopup callback which looks like this:


...
   SourceView sourceView = new SourceView();
   sourceView.addOnPopulatePopup(&onTextViewPopulatePopup); 
...

private void onTextViewPopulatePopup(Widget w, TextView v)
{
   Menu m = new Menu(cast(GtkMenu*)w.getWidgetStruct());
   m.append(new MenuItem("Test", &onTestMenuItem, "Test"));
   m.showAll();
}

The issue that I am having is that the Menu is being sent as Widget, first I tried casting the Widget w to a Menu, but that didn't work.

The way I was able to get it to work was to cast the GtkWidget* to a GTKMenu*.

Is this a bug, or the correct way to do it?

Re: Issue adding menu items to right click menu of SourceView

On 02/01/2017 05:49 PM, dlang user wrote:

I am trying to add new MenuItems to the context menu of a SourceView. So I hooked into the addOnPopulatePopup callback which looks like this:


 ...
    SourceView sourceView = new SourceView();
    sourceView.addOnPopulatePopup(&onTextViewPopulatePopup);
 ...

 private void onTextViewPopulatePopup(Widget w, TextView v)
 {
    Menu m = new Menu(cast(GtkMenu*)w.getWidgetStruct());
    m.append(new MenuItem("Test", &onTestMenuItem, "Test"));
    m.showAll();
 }

The issue that I am having is that the Menu is being sent as Widget, first I tried casting the Widget w to a Menu, but that didn't work.

The way I was able to get it to work was to cast the GtkWidget* to a GTKMenu*.

Is this a bug, or the correct way to do it?

At some point we should try and make the cast work, but for now the
workaround you found will do the trick.