menus.xsl 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- This is an XSL transformation that we use to generate XML menu
  3. files. So far it contains a template to generate a menubar and a
  4. popup with identical content.
  5. -->
  6. <xsl:stylesheet version="1.0"
  7. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  8. <xsl:param name="unstable-menus" />
  9. <xsl:output method="xml"
  10. version="1.0"
  11. encoding="utf-8"
  12. indent="yes"
  13. doctype-system="gtkuimanager.dtd" />
  14. <xsl:template match="/">
  15. <xsl:comment> This file is automatically generated. Do not edit! </xsl:comment>
  16. <xsl:apply-templates />
  17. </xsl:template>
  18. <xsl:template match="menubar-and-popup">
  19. <menubar>
  20. <xsl:attribute name="action"><xsl:value-of select="@action-name"/>-menubar</xsl:attribute>
  21. <xsl:apply-templates />
  22. </menubar>
  23. <menubar name="dummy-menubar">
  24. <menu>
  25. <xsl:attribute name="action"><xsl:value-of select="@action-name"/>-popup</xsl:attribute>
  26. <xsl:apply-templates />
  27. </menu>
  28. </menubar>
  29. </xsl:template>
  30. <xsl:template match="menuitems">
  31. <xsl:apply-templates />
  32. </xsl:template>
  33. <xsl:template match="menu[@action='debug-menu' or
  34. @action='view-use-gegl' or
  35. @action='config-use-gegl']">
  36. <xsl:if test="$unstable-menus='yes'">
  37. <xsl:call-template name="identity" />
  38. </xsl:if>
  39. </xsl:template>
  40. <!-- need to strip the XInclude namespace declaration from the ui element -->
  41. <xsl:template match="ui">
  42. <ui>
  43. <xsl:apply-templates />
  44. </ui>
  45. </xsl:template>
  46. <xsl:template match="@*|node()" name="identity">
  47. <xsl:copy>
  48. <xsl:apply-templates select="@*|node()" />
  49. </xsl:copy>
  50. </xsl:template>
  51. </xsl:stylesheet>