bind_model
Description:
public void bind_model (MenuModel? model, string? action_namespace, bool with_separators)
Establishes a binding between a MenuShell and a MenuModel.
The contents of shell
are removed and then refilled with menu items according to model
. When model
changes, shell
is updated. Calling this function twice on shell
with different model
will cause the first
binding to be replaced with a binding to the new model. If model
is null then any previous
binding is undone and all children are removed.
with_separators
determines if toplevel items (eg: sections) have separators inserted between them. This is typically desired for
menus but doesn’t make sense for menubars.
If action_namespace
is non-null then the effect is as if all actions mentioned in the
model
have their names prefixed with the namespace, plus a dot. For example, if the action “quit” is mentioned and
action_namespace
is “app” then the effective action name is “app.quit”.
This function uses Actionable to define the action name and target values on the created menu items. If you want to use an action group other than “app” and “win”, or if you want to use a MenuShell outside of a ApplicationWindow, then you will need to attach your own action group to the widget hierarchy using insert_action_group. As an example, if you created a group with a “quit” action and inserted it with the name “mygroup” then you would use the action name “mygroup.quit” in your MenuModel.
For most cases you are probably better off using Menu.from_model or MenuBar.from_model or just directly passing the MenuModel to set_app_menu or set_menubar.
Parameters:
this | |
model |
the MenuModel to bind to or null to remove binding |
action_namespace |
the namespace for actions in |
with_separators |
true if toplevel items in |