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.MenuManager.getMenuById will always return a #GMenu, however
that menu may contain no children until something has extended it later
on during the application process.
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.MenuManager.getMenuById will always return a #GMenu, however that menu may contain no children until something has extended it later on during the application process.