### Class

# Panel MenuManager

since: 1

#### Description [src]

    final class Panel.MenuManager : GObject.Object
    {
      /* No available fields */
    }

The goal of `PanelMenuManager` is to simplify the process of merging multiple GtkBuilder .ui files containing menus into a single representation of the application menus. Additionally, it provides the ability to “unmerge” previously merged menus.

This allows for an application to have plugins which seemlessly extends the core application menus.

Implementation notes:

To make this work, we don’t use the GMenu instances created by a GtkBuilder instance. Instead, we create the menus ourself and recreate section and submenu links. This allows the `PanelMenuManager` to be in full control of the generated menus.

`panel_menu_manager_get_menu_by_id()` will always return a `GMenu`, however that menu may contain no children until something has extended it later on during the application process.

Available since: 1

#### Ancestors

- GObject

#### Constructors

###### panel_menu_manager_new

No description available.

since: 1

#### Instance methods

###### panel_menu_manager_add_filename

No description available.

since: 1

###### panel_menu_manager_add_resource

No description available.

since: 1.4

###### panel_menu_manager_find_item_by_id

Locates a menu item that matches `id` and sets the position within the resulting `GMenu` to `position`.

since: 1.4

###### panel_menu_manager_get_menu_by_id

No description available.

since: 1.4

###### panel_menu_manager_get_menu_ids

Gets the known menu ids as a string array.

since: 1.4

###### panel_menu_manager_merge

Note that `menu_model` is not retained, a copy of it is made.

since: 1.4

###### panel_menu_manager_remove

This removes items from menus that were added as part of a previous menu merge. Use the value returned from `panel_menu_manager_merge()` as the `merge_id`.

since: 1.4

###### panel_menu_manager_set_attribute_string

Overwrites an attribute for a menu that was created by `PanelMenuManager`.

since: 1.4

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

unstable since: 2.0

#### Class structure

    struct PanelMenuManagerClass {
      GObjectClass parent_class;

    }

No description available.

###### Class members

`parent_class: GObjectClass`
  No description available.