
Several menus can be triggered either as popups on their own when right-clicking the dockable or on items, or as a submenu in the docks main menu. In the former case, we want the menu items to be at the root level, whereas in the latter case, we want them inside a properly named submenu. To handle this, I wrap these in a properly labelled <submenu> in the .ui files, and I add a boolean flag to gimp_menu_shell_fill() which will drop the top submenu if and only if this is the only top item. I use this flag only when using these menus as popup menu on their own. Also fixing a few memory leaks around these pieces of code.
92 lines
5.2 KiB
XML
92 lines
5.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
|
|
<interface>
|
|
<menu id="/layers-popup">
|
|
<submenu>
|
|
<attribute name="label" translatable="yes" context="layers-action">Layers Menu</attribute>
|
|
<attribute name="icon">gimp-layers</attribute>
|
|
|
|
<item><attribute name="action">app.layers-edit-text</attribute></item>
|
|
<item><attribute name="action">app.layers-edit-attributes</attribute></item>
|
|
<submenu>
|
|
<attribute name="label">Blend Space</attribute>
|
|
<item><attribute name="action">app.layers-blend-space-auto</attribute></item>
|
|
<item><attribute name="action">app.layers-blend-space-rgb-linear</attribute></item>
|
|
<item><attribute name="action">app.layers-blend-space-rgb-perceptual</attribute></item>
|
|
</submenu>
|
|
<submenu>
|
|
<attribute name="label">Composite Space</attribute>
|
|
<item><attribute name="action">app.layers-composite-space-auto</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-space-rgb-linear</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-space-rgb-perceptual</attribute></item>
|
|
</submenu>
|
|
<submenu>
|
|
<attribute name="label">Composite Mode</attribute>
|
|
<item><attribute name="action">app.layers-composite-mode-auto</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-mode-union</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-mode-clip-to-backdrop</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-mode-clip-to-layer</attribute></item>
|
|
<item><attribute name="action">app.layers-composite-mode-intersection</attribute></item>
|
|
</submenu>
|
|
<submenu>
|
|
<attribute name="label">Color Tags</attribute>
|
|
<item><attribute name="action">app.layers-color-tag-none</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-blue</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-green</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-yellow</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-orange</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-brown</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-red</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-violet</attribute></item>
|
|
<item><attribute name="action">app.layers-color-tag-gray</attribute></item>
|
|
</submenu>
|
|
<section>
|
|
<item><attribute name="action">app.layers-new</attribute></item>
|
|
<item><attribute name="action">app.layers-new-from-visible</attribute></item>
|
|
<item><attribute name="action">app.layers-new-group</attribute></item>
|
|
<!--
|
|
<item><attribute name="action">app.layers-raise</attribute></item>
|
|
<item><attribute name="action">app.layers-raise-to-top</attribute></item>
|
|
<item><attribute name="action">app.layers-lower</attribute></item>
|
|
<item><attribute name="action">app.layers-lower-to-bottom</attribute></item>
|
|
-->
|
|
<item><attribute name="action">app.layers-duplicate</attribute></item>
|
|
<item><attribute name="action">app.layers-anchor</attribute></item>
|
|
<item><attribute name="action">app.layers-merge-down</attribute></item>
|
|
<item><attribute name="action">app.layers-merge-group</attribute></item>
|
|
<item><attribute name="action">app.layers-delete</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-text-discard</attribute></item>
|
|
<item><attribute name="action">app.layers-text-to-vectors</attribute></item>
|
|
<item><attribute name="action">app.layers-text-along-vectors</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-resize</attribute></item>
|
|
<item><attribute name="action">app.layers-resize-to-image</attribute></item>
|
|
<item><attribute name="action">app.layers-scale</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-mask-add</attribute></item>
|
|
<item><attribute name="action">app.layers-mask-apply</attribute></item>
|
|
<item><attribute name="action">app.layers-mask-delete</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-mask-show</attribute></item>
|
|
<item><attribute name="action">app.layers-mask-edit</attribute></item>
|
|
<item><attribute name="action">app.layers-mask-disable</attribute></item>
|
|
<item><attribute name="action">app.layers-mask-selection-replace</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-alpha-add</attribute></item>
|
|
<item><attribute name="action">app.layers-alpha-remove</attribute></item>
|
|
<item><attribute name="action">app.layers-alpha-selection-replace</attribute></item>
|
|
</section>
|
|
<section>
|
|
<item><attribute name="action">app.layers-merge-layers</attribute></item>
|
|
<item><attribute name="action">app.layers-flatten-image</attribute></item>
|
|
</section>
|
|
</submenu>
|
|
</menu>
|
|
</interface>
|