mirror of https://github.com/GNOME/gimp.git
menus: add a dockable-menu with the new GtkBuilder format.
The dialogs-menuitems is shared between dockable-menu and image-menu, just as it was with the old format. For this, we use XSL transformation with XInclude, then drop the namespace (because GTK doesn't like the unknown namespace being defined and crash immediately otherwise).
This commit is contained in:
parent
f9fec03751
commit
47ff65aa86
|
@ -0,0 +1,36 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<item><attribute name="action">app.dialogs-tool-options</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-device-status</attribute></item>
|
||||||
|
<section>
|
||||||
|
<item><attribute name="action">app.dialogs-layers</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-channels</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-vectors</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-indexed-palette</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-histogram</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-selection-editor</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-navigation</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-undo-history</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-cursor</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-sample-points</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-symmetry</attribute></item>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<item><attribute name="action">app.dialogs-colors</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-brushes</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-dynamics</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-mypaint-brushes</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-patterns</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-gradients</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-palettes</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-fonts</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-tool-presets</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-buffers</attribute></item>
|
||||||
|
</section>
|
||||||
|
<item><attribute name="action">app.dialogs-images</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-document-history</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-templates</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-error-console</attribute></item>
|
||||||
|
<item><attribute name="action">app.dialogs-dashboard</attribute></item>
|
||||||
|
</section>
|
|
@ -0,0 +1,47 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<interface xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
|
<menu id="/dockable-popup">
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes" context="file-action">_Add Tab</attribute>
|
||||||
|
<xi:include href="dialogs-menuitems.ui" />
|
||||||
|
</submenu>
|
||||||
|
<item><attribute name="action">app.dockable-close-tab</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-detach-tab</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-lock-tab</attribute></item>
|
||||||
|
<section>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes" context="file-action">_Preview Size</attribute>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-tiny</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-extra-small</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-small</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-medium</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-large</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-extra-large</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-enormous</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-preview-size-gigantic</attribute></item>
|
||||||
|
</submenu>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes" context="file-action">_Tab Style</attribute>
|
||||||
|
<item><attribute name="action">app.dockable-tab-style-icon</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-tab-style-preview</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-tab-style-name</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-tab-style-icon-name</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-tab-style-preview-name</attribute></item>
|
||||||
|
</submenu>
|
||||||
|
<item><attribute name="action">app.dockable-view-type-list</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-view-type-grid</attribute></item>
|
||||||
|
<item><attribute name="action">app.dockable-show-button-bar</attribute></item>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<item><attribute name="action">app.dock-show-image-menu</attribute></item>
|
||||||
|
<item><attribute name="action">app.dock-auto-follow-active</attribute></item>
|
||||||
|
</section>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes" context="file-action">Move to Screen</attribute>
|
||||||
|
<section>
|
||||||
|
<item><attribute name="action">app.dock-open-display</attribute></item>
|
||||||
|
</section>
|
||||||
|
</submenu>
|
||||||
|
</menu>
|
||||||
|
</interface>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
<interface>
|
<interface xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
<menu id="/image-menubar">
|
<menu id="/image-menubar">
|
||||||
<!-- File menu -->
|
<!-- File menu -->
|
||||||
<submenu>
|
<submenu>
|
||||||
|
@ -797,42 +797,7 @@
|
||||||
</submenu>
|
</submenu>
|
||||||
<submenu>
|
<submenu>
|
||||||
<attribute name="label" translatable="yes" context="windows-action">_Dockable Dialogs</attribute>
|
<attribute name="label" translatable="yes" context="windows-action">_Dockable Dialogs</attribute>
|
||||||
<section>
|
<xi:include href="dialogs-menuitems.ui" />
|
||||||
<item><attribute name="action">app.dialogs-tool-options</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-device-status</attribute></item>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<item><attribute name="action">app.dialogs-layers</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-channels</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-vectors</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-indexed-palette</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-histogram</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-selection-editor</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-navigation</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-undo-history</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-cursor</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-sample-points</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-symmetry</attribute></item>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<item><attribute name="action">app.dialogs-colors</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-brushes</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-dynamics</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-mypaint-brushes</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-patterns</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-gradients</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-palettes</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-fonts</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-tool-presets</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-buffers</attribute></item>
|
|
||||||
</section>
|
|
||||||
<section>
|
|
||||||
<item><attribute name="action">app.dialogs-images</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-document-history</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-templates</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-error-console</attribute></item>
|
|
||||||
<item><attribute name="action">app.dialogs-dashboard</attribute></item>
|
|
||||||
</section>
|
|
||||||
</submenu>
|
</submenu>
|
||||||
<item><attribute name="action">app.dialogs-toolbox</attribute></item>
|
<item><attribute name="action">app.dialogs-toolbox</attribute></item>
|
||||||
</section>
|
</section>
|
|
@ -38,6 +38,13 @@
|
||||||
<xsl:apply-templates />
|
<xsl:apply-templates />
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<!-- Strip the XInclude namespace declaration from the interface element -->
|
||||||
|
<xsl:template match="interface">
|
||||||
|
<interface>
|
||||||
|
<xsl:apply-templates />
|
||||||
|
</interface>
|
||||||
|
</xsl:template>
|
||||||
|
|
||||||
<!-- need to strip the XInclude namespace declaration from the ui element -->
|
<!-- need to strip the XInclude namespace declaration from the ui element -->
|
||||||
<xsl:template match="ui">
|
<xsl:template match="ui">
|
||||||
<ui>
|
<ui>
|
||||||
|
|
|
@ -39,14 +39,6 @@ install_data(menus_files,
|
||||||
install_dir: menus_dir,
|
install_dir: menus_dir,
|
||||||
)
|
)
|
||||||
|
|
||||||
ui_menus_files = files(
|
|
||||||
'image-menu.ui',
|
|
||||||
)
|
|
||||||
|
|
||||||
install_data(ui_menus_files,
|
|
||||||
install_dir: menus_dir,
|
|
||||||
)
|
|
||||||
|
|
||||||
unstable_menus_args = stable ? [] : [ '--stringparam', 'unstable-menus', 'yes' ]
|
unstable_menus_args = stable ? [] : [ '--stringparam', 'unstable-menus', 'yes' ]
|
||||||
|
|
||||||
menus_built_files = []
|
menus_built_files = []
|
||||||
|
@ -67,6 +59,24 @@ foreach menu_filegen : [ 'dockable-menu.xml', 'image-menu.xml', ]
|
||||||
)
|
)
|
||||||
endforeach
|
endforeach
|
||||||
|
|
||||||
|
menus_ui_built_files = []
|
||||||
|
foreach menu_filegen : [ 'dockable-menu.ui', 'image-menu.ui', ]
|
||||||
|
menus_ui_built_files += custom_target(menu_filegen,
|
||||||
|
input : [ menu_filegen +'.in', 'menus.xsl', ],
|
||||||
|
output: [ menu_filegen ],
|
||||||
|
command: [
|
||||||
|
xsltproc,
|
||||||
|
'--xinclude',
|
||||||
|
unstable_menus_args,
|
||||||
|
'--output', '@OUTPUT@',
|
||||||
|
'@INPUT1@',
|
||||||
|
'@INPUT0@',
|
||||||
|
],
|
||||||
|
install: true,
|
||||||
|
install_dir: menus_dir,
|
||||||
|
)
|
||||||
|
endforeach
|
||||||
|
|
||||||
if xmllint.found()
|
if xmllint.found()
|
||||||
custom_target('validate_menus',
|
custom_target('validate_menus',
|
||||||
command: [
|
command: [
|
||||||
|
@ -90,7 +100,7 @@ if xmllint.found()
|
||||||
xmllint,
|
xmllint,
|
||||||
'--output', '@OUTPUT@',
|
'--output', '@OUTPUT@',
|
||||||
'--path', meson.current_source_dir(),
|
'--path', meson.current_source_dir(),
|
||||||
ui_menus_files, menus_built_files
|
menus_ui_built_files
|
||||||
],
|
],
|
||||||
# The output file is only useful as a flag file, so that the command
|
# The output file is only useful as a flag file, so that the command
|
||||||
# knows if it has been run already.
|
# knows if it has been run already.
|
||||||
|
|
Loading…
Reference in New Issue