Gimp/menus
Jehan 342ad2c37f app, menus: very early prototype for a GimpMenu.
This demonstrates a first version of our replacing menu, using GAction and
GMenuModel. I had to make our own subclass of GtkMenu to process the model (from
a .ui XML file) for the following reasons:

* gtk_menu_new_from_model() doesn't support tooltips, which is a feature we use
  quite extensively in GIMP: with all our filters, being able to give a longer
  description is often useful; moreover we use tooltips to give hints about why
  a menu item is deactivated as well.
  Unfortunately it looks like GTK doesn't consider this lack as a problem and
  don't plan on adding tooltip support.
  See: https://gitlab.gnome.org/GNOME/gtk/-/issues/785
* I won't to avoid copying action's label and icons in the .ui file. This only
  duplicates strings and would be a source of issues each time we change
  action's strings (we'd have to do it in 2 places, which someone will
  inevitably forget).

Now it still has various issues:

* The syncing between actions and menu items need to be cleaned up. It's still
  in early demo code.
* It uses directly some Gtk*Action code because GimpRadioAction and
  GimpToggleAction are not directly related right now (only through their
  parents).
* gtk_application_set_menubar() might still be necessary on macOS as I think
  it's what enables the native menu system on this OS. It means that we'll have
  to edit the menu model to add back the labels (as this function does not
  extract these from the linked action since GAction has no label or icon
  concept).
* Icons are not taken into account right now.
* I'll have to verify if GimpAction with proxy work (but my guess is that right
  now, it won't).
* Action's active state is not synced with menu item active state right now.
* Various actions are inserted live, such as opened images, opened views,
  recently opened images, and so on. This needs to be implemented back.
* Plug-ins need to be able to create their own menu item into this new menu.
* For all these various reasons, I'm keeping the old menu around, for the sake
  of comparison, until the time the new one becomes feature-full.

Part of this commit is inspired by !558 and obsoletes this MR.
2023-04-12 22:07:08 +02:00
..
.gitignore
brush-editor-menu.xml
brushes-menu.xml
buffers-menu.xml
channels-menu.xml
colormap-menu.xml
cursor-info-menu.xml
dashboard-menu.xml
dialogs-menuitems.xml
dockable-menu.xml.in
documents-menu.xml
dynamics-editor-menu.xml
dynamics-menu.xml
error-console-menu.xml
fonts-menu.xml
gradient-editor-menu.xml
gradients-menu.xml
gtkuimanager.dtd
image-menu.ui app, menus: very early prototype for a GimpMenu. 2023-04-12 22:07:08 +02:00
image-menu.xml.in app, menus, pdb: new "Paste as Single Layer( in Place)?" actions. 2022-11-12 22:34:51 +01:00
images-menu.xml
layers-menu.xml
Makefile.am app: Add basic infratructure for a vector tool popup menu. 2020-05-25 22:13:45 +02:00
menus.xsl
meson.build app, menus: very early prototype for a GimpMenu. 2023-04-12 22:07:08 +02:00
mypaint-brushes-menu.xml
palette-editor-menu.xml
palettes-menu.xml
patterns-menu.xml
quick-mask-menu.xml
sample-points-menu.xml
selection-menu.xml
templates-menu.xml
text-editor-toolbar.xml
text-tool-menu.xml app, menus: get rid of custom input method menu. 2020-12-15 03:04:15 +01:00
tool-options-menu.xml
tool-preset-editor-menu.xml
tool-presets-menu.xml
undo-menu.xml
vector-toolpath-menu.xml app: implement a few more functions for the ToolPath context menu. 2020-05-25 22:13:45 +02:00
vectors-menu.xml