Web lists-archives.com

Re: Gio.Menu item with data ?




Hi,

On 12/05/2015 06:06 AM, Stuart Axon wrote:
> Hi,
>    I'm going a bit mad trying to find decent examples - I want to have a
> bit of data attached to a menu item, how can I do it ?
> (my action is something like win.open_example + I want to have a
> filename attached to each item).
> - I can't find anything with SimpleAction so far.

You want to make a single action that takes a parameter, in this case,
your filename (or rather, a string URI).

static void
on_open_file (GSimpleAction *action,
              GVariant      *param,
              gpointer       user_data)
{
  const gchar *uri = g_variant_get_string (param);
  GFile *file = g_file_new_for_uri (uri);

  // ...
}

static const GActionEntry entries[] = {
  { "open-file", on_open_file, "s" },
};

and then where you call the action, use the detailed action name or
specify a target like:

  g_menu_item_set_action_and_target (menu_item, "prefix.open-file",
                                     "s", uri);

If you'd like a similar, rather complex example, check out how we open
files based on mime-types in Builder.

 https://git.gnome.org/browse/gnome-builder/tree/plugins/project-tree/gb-project-tree-builder.c?h=wip/chergert/perspective#n223
 https://git.gnome.org/browse/gnome-builder/tree/plugins/project-tree/gb-project-tree-actions.c?h=wip/chergert/perspective#n152

Hope that helps,

-- Christian

_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-devel-list