diff options
author | lanius <lanius> | 2003-11-09 13:10:06 +0000 |
---|---|---|
committer | lanius <lanius> | 2003-11-09 13:10:06 +0000 |
commit | 7d616706bba168427214848c6fbb77da5a30e04d (patch) | |
tree | e56264f6da815061392c911e6e589c2bea4fe9b5 | |
parent | 8601b0136a361b59c69cbd99fb8ce77a7e6f66ec (diff) | |
download | xdg-specs-7d616706bba168427214848c6fbb77da5a30e04d.tar.xz |
see changelog
-rw-r--r-- | menu/ChangeLog | 11 | ||||
-rw-r--r-- | menu/menu-spec.xml | 324 | ||||
-rw-r--r-- | menu/menu.dtd | 81 |
3 files changed, 315 insertions, 101 deletions
diff --git a/menu/ChangeLog b/menu/ChangeLog index 7de8791..4e3edcb 100644 --- a/menu/ChangeLog +++ b/menu/ChangeLog @@ -1,3 +1,14 @@ +2003-11-09 Heinrich Wendel <h_wendel@cojobo.net> + * menu-spec.xml: patch for categories based on Suse 9.0 + * menu-spec.xml: Grahpics -> Graphics + * menu-spec.xml: DTD fix + * menu.dtd: added dtd + * testsuite: fixed errors highlighted by havoc + +2003-10-23 Havoc Pennington <hp@redhat.com> + + * menu-spec.xml: clarify how <Move> elements are resolved + 2003-10-21 Havoc Pennington <hp@redhat.com> * create autotools setup diff --git a/menu/menu-spec.xml b/menu/menu-spec.xml index 23f4771..380e2da 100644 --- a/menu/menu-spec.xml +++ b/menu/menu-spec.xml @@ -2,10 +2,10 @@ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ ]> <article id="index"> - <articleinfo> + <artheader> <title>Desktop Menu Specification</title> - <releaseinfo>Version 0.7</releaseinfo> - <date>30 September 2003</date> + <releaseinfo>Version 0.8</releaseinfo> + <date>9 November 2003</date> <authorgroup> <author> <firstname>Waldo</firstname> @@ -62,7 +62,7 @@ </affiliation> </author> </authorgroup> - </articleinfo> + </artheader> <sect1 id="introduction"> <title>Introduction</title> @@ -270,18 +270,18 @@ entries</ulink>: <varname>Categories</varname>, </listitem> </varlistentry> <varlistentry> - <term>Public Identifier for 1.0</term> + <term>Public Identifier for 0.8</term> <listitem> <para> - <literal>PUBLIC "-//freedesktop//DTD Menu 1.0//EN"</literal> + <literal>PUBLIC "-//freedesktop//DTD Menu 0.8//EN"</literal> </para> </listitem> </varlistentry> <varlistentry> - <term>System Identifier for 1.0</term> + <term>System Identifier for 0.8</term> <listitem> <para> - <literal>http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd</literal> + <literal>http://www.freedesktop.org/standards/menu-spec/menu-0.8.dtd</literal> </para> </listitem> </varlistentry> @@ -290,8 +290,8 @@ entries</ulink>: <varname>Categories</varname>, Here is a sample doctype declaration: <informalexample> <programlisting> - <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" - "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> + <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 0.8//EN" + "http://www.freedesktop.org/standards/menu-spec/menu-0.8.dtd"> </programlisting> </informalexample> @@ -930,7 +930,7 @@ entries</ulink>: <varname>Categories</varname>, </para> <para> Once all files have been loaded into a single tree, scan the tree - recursively performing these steps: + recursively performing these steps to remove duplicates: <orderedlist> <listitem> <para> @@ -957,37 +957,40 @@ entries</ulink>: <varname>Categories</varname>, </listitem> <listitem> <para> - Recurse into each child <Menu>, performing this list of - steps for each child in order. - </para> - </listitem> - <listitem> - <para> Resolve duplicate <Move> operations (with the same origin path) by keeping the last one. </para> </listitem> <listitem> <para> - Execute <Move> operations in the order that they appear. If - the destination path does not exist, simply relocate the origin - <Menu> element, and change its <Name> field to match the - destination path. If the origin path does not exist, do nothing. - If both paths exist, take the origin <Menu> element, delete - its <Name> element, and prepend its remaining child elements - to the destination <Menu> element. Then, recursively re-run - the previous merge steps on the resulting combined <Menu> in order to - consolidate duplicates. - </para> - </listitem> - <listitem> - <para> - For each <Menu> containing a <Deleted> element which is - not followed by a <NotDeleted> element, remove that menu. + Recurse into each child <Menu>, performing this list of + steps for each child in order. </para> </listitem> </orderedlist> </para> + <para> + After recursing once to remove duplicates, resolve <Move> elements + for each menu starting with the top level and recursing into child menus. + So the deepest menus have their <Move> operations performed last. + Within each <Menu>, execute <Move> operations in the order + that they appear. If the destination path does not exist, simply relocate + the origin <Menu> element, and change its <Name> field to + match the destination path. If the origin path does not exist, do + nothing. If both paths exist, take the origin <Menu> element, + delete its <Name> element, and prepend its remaining child elements + to the destination <Menu> element. + </para> + <para> + If any <Move> operations affect a menu, then re-run the + steps to resolve duplicates in case any duplicates have been + created. + </para> + <para> + Finally, for each <Menu> containing a <Deleted> element which + is not followed by a <NotDeleted> element, remove that menu and all + its child menus. + </para> <para> Merged menu elements are kept in order because <Include> and @@ -1142,8 +1145,8 @@ entries</ulink>: <varname>Categories</varname>, Conceptually that is converted to the following <Menu>: <informalexample> <programlisting> - <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" - "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> + <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 0.8//EN" + "http://www.freedesktop.org/standards/menu-spec/menu-0.8.dtd"> <Menu> <AppDir>/usr/share/applnk</AppDir> @@ -1172,8 +1175,8 @@ entries</ulink>: <varname>Categories</varname>, <para> <informalexample> <programlisting> - <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 1.0//EN" - "http://www.freedesktop.org/standards/menu-spec/1.0/menu.dtd"> + <!DOCTYPE Menu PUBLIC "-//freedesktop//DTD Menu 0.8//EN" + "http://www.freedesktop.org/standards/menu-spec/menu-0.8.dtd"> <Menu> <Name>Applications</Name> @@ -1271,6 +1274,11 @@ entries</ulink>: <varname>Categories</varname>, <entry></entry> </row><row> + <entry>Building</entry> + <entry>A tool to build applications</entry> + <entry>Development</entry> + + </row><row> <entry>Debugger</entry> <entry>A tool to debug applications</entry> <entry>Development</entry> @@ -1286,11 +1294,21 @@ entries</ulink>: <varname>Categories</varname>, <entry>Development</entry> </row><row> + <entry>Profiling</entry> + <entry>A profiling tool</entry> + <entry>Development</entry> + + </row><row> <entry>RevisionControl</entry> <entry>Applications like cvs or subversion</entry> <entry>Development</entry> </row><row> + <entry>Translation</entry> + <entry>A translation tool</entry> + <entry>Development</entry> + + </row><row> <entry>Office</entry> <entry>An office type application</entry> @@ -1307,7 +1325,12 @@ entries</ulink>: <varname>Categories</varname>, </row><row> <entry>Database</entry> <entry>Application to manage a database</entry> - <entry>Office;Development</entry> + <entry>Office or Development or AudioVideo</entry> + + </row><row> + <entry>Dictionary</entry> + <entry>A dictionary</entry> + <entry>Office</entry> </row><row> <entry>Chart</entry> @@ -1325,6 +1348,11 @@ entries</ulink>: <varname>Categories</varname>, <entry>Office</entry> </row><row> + <entry>FlowChart</entry> + <entry>A flowchart application</entry> + <entry>Office</entry> + + </row><row> <entry>PDA</entry> <entry>Tool to manage your PDA</entry> <entry>Office</entry> @@ -1354,42 +1382,51 @@ entries</ulink>: <varname>Categories</varname>, <entry>Graphical application</entry> </row><row> - <entry>3DGraphics</entry> - <entry>3D based graphical application</entry> + <entry>2DGraphics</entry> + <entry>2D based graphical application</entry> <entry>Graphics</entry> </row><row> + <entry>VectorGraphics</entry> + <entry>Vector based graphical application</entry> + <entry>2DGraphics</entry> + + </row><row> <entry>RasterGraphics</entry> <entry>Raster based graphical application</entry> + <entry>2DGraphics</entry> + + </row><row> + <entry>3DGraphics</entry> + <entry>3D based graphical application</entry> <entry>Graphics</entry> </row><row> - <entry>ScanTool</entry> + <entry>Scanning</entry> <entry>Tool to scan a file/text</entry> <entry>Graphics</entry> </row><row> - <entry>VectorGraphics</entry> - <entry>Vector based graphical application</entry> - <entry>Graphics</entry> + <entry>OCR</entry> + <entry>Tool to text</entry> + <entry>Scanning</entry> + + </row><row> + <entry>Photograph</entry> + <entry>Camera tools, etc.</entry> + <entry>Graphics or Office</entry> </row><row> <entry>Viewer</entry> <entry>Tool to view e.g. a graphic or pdf file</entry> - <entry>(Graphics)</entry> + <entry>Graphics or Office</entry> </row><row> <entry>Settings</entry> <entry>Settings applications</entry> </row><row> - <entry>AccessibilitySettings</entry> - <entry>Accessibility settings</entry> - <entry>Settings</entry> - - - </row><row> - <entry>Desktop-Settings</entry> + <entry>DesktopSettings</entry> <entry>ConfigurationTool for the GUI</entry> <entry>Settings</entry> @@ -1399,27 +1436,18 @@ entries</ulink>: <varname>Categories</varname>, <entry>Settings</entry> </row><row> - <entry>NetworkSettings</entry> - <entry>Application to manage network settings</entry> - <entry>Settings</entry> - - </row><row> <entry>PackageManager</entry> <entry>A package manager application</entry> <entry>Settings</entry> </row><row> - <entry>SystemSetup</entry> - <entry>System setup application, e.g. init level configuration</entry> - <entry>Settings</entry> - - </row><row> <entry>Network</entry> <entry>Network application such as a webbrowser</entry> + <entry>(Settings)</entry> </row><row> - <entry>WebBrowser</entry> - <entry>A webbrowser</entry> + <entry>Dialup</entry> + <entry>A dialup program</entry> <entry>Network</entry> </row><row> @@ -1433,13 +1461,23 @@ entries</ulink>: <varname>Categories</varname>, <entry>Network</entry> </row><row> + <entry>FileTransfer</entry> + <entry>Tools like FTP or P2P programs</entry> + <entry>Network</entry> + + </row><row> + <entry>HamRadio</entry> + <entry>HAM radio software</entry> + <entry>Network or Audio</entry> + + </row><row> <entry>News</entry> <entry>A newsreader or newsticker</entry> - <entry>Network</entry> </row><row> - <entry>FileTransfer</entry> - <entry>Tools like FTP or P2P programs</entry> + <entry>P2P</entry> + <entry>A P2P program</entry> + <entry>Network</entry> <entry>Network</entry> </row><row> @@ -1453,27 +1491,72 @@ entries</ulink>: <varname>Categories</varname>, <entry>Network</entry> </row><row> + <entry>WebBrowser</entry> + <entry>A webbrowser</entry> + <entry>Network</entry> + + </row><row> + <entry>WebDevelopment</entry> + <entry>A tool for web developers</entry> + <entry>Network or Development</entry> + + </row><row> <entry>AudioVideo</entry> <entry>A multimedia (audio/video) application</entry> </row><row> - <entry>AudioVideoEditing</entry> - <entry>Application to edit audio or video files</entry> + <entry>Audio</entry> + <entry>An audio application</entry> <entry>AudioVideo</entry> </row><row> - <entry>DiscBurning</entry> - <entry>Application to burn a disc</entry> - <entry>AudioVideo</entry> + <entry>Midi</entry> + <entry>An app related to midi</entry> + <entry>Audio</entry> </row><row> <entry>Mixer</entry> <entry>Just a mixer</entry> + <entry>Audio</entry> + + </row><row> + <entry>Sequencer</entry> + <entry>a sequencer</entry> + <entry>Audio</entry> + + </row><row> + <entry>Tuner</entry> + <entry>a tuner</entry> + <entry>Audio</entry> + + </row><row> + <entry>Video</entry> + <entry>A video application</entry> <entry>AudioVideo</entry> </row><row> + <entry>TV</entry> + <entry>A TV application</entry> + <entry>Video</entry> + + </row><row> + <entry>AudioVideoEditing</entry> + <entry>Application to edit audio or video files</entry> + <entry>Audio or Video or AudiVideo</entry> + + </row><row> <entry>Player</entry> <entry>Application to play audio/video files</entry> + <entry>Audio or Video or AudioVideo</entry> + + </row><row> + <entry>Recorder</entry> + <entry>Application to record audio/video files</entry> + <entry>Audio or Video or AudioVideo</entry> + + </row><row> + <entry>DiscBurning</entry> + <entry>Application to burn a disc</entry> <entry>AudioVideo</entry> </row><row> @@ -1481,6 +1564,11 @@ entries</ulink>: <varname>Categories</varname>, <entry>A game</entry> </row><row> + <entry>ActionGame</entry> + <entry>An actiongame</entry> + <entry>Game</entry> + + </row><row> <entry>AdventureGame</entry> <entry>Adventure style game</entry> <entry>Game</entry> @@ -1506,11 +1594,6 @@ entries</ulink>: <varname>Categories</varname>, <entry>Game</entry> </row><row> - <entry>FirstPersonGame</entry> - <entry>First person perspective game</entry> - <entry>Game</entry> - - </row><row> <entry>KidsGame</entry> <entry>A game for kids</entry> <entry>Game</entry> @@ -1521,6 +1604,16 @@ entries</ulink>: <varname>Categories</varname>, <entry>Game</entry> </row><row> + <entry>RolePlaying</entry> + <entry>A roleplaying game</entry> + <entry>Game</entry> + + </row><row> + <entry>Simulation</entry> + <entry>A simulation game</entry> + <entry>Game</entry> + + </row><row> <entry>SportsGame</entry> <entry>A Sports game</entry> <entry>Game</entry> @@ -1535,6 +1628,21 @@ entries</ulink>: <varname>Categories</varname>, <entry>Educational software</entry> </row><row> + <entry>Art</entry> + <entry>software to teach arts</entry> + <entry>Education</entry> + + </row><row> + <entry>Art</entry> + <entry></entry> + <entry>Education</entry> + + </row><row> + <entry>Contruction</entry> + <entry></entry> + <entry>Education</entry> + + </row><row> <entry>Music</entry> <entry>Musical Software</entry> <entry>AudioVideo;Education</entry> @@ -1585,6 +1693,11 @@ entries</ulink>: <varname>Categories</varname>, <entry>Science</entry> </row><row> + <entry>Teaching</entry> + <entry>An education program for teachers</entry> + <entry>Education</entry> + + </row><row> <entry>Amusement</entry> <entry>A simple amusement</entry> <entry></entry> @@ -1600,16 +1713,10 @@ entries</ulink>: <varname>Categories</varname>, <entry></entry> </row><row> - <entry>Clock</entry> - <entry>A clock application/applet</entry> - <entry></entry> - - </row><row> <entry>Electronics</entry> <entry>Electronics software, e.g. a circuit designer</entry> <entry></entry> - </row><row> <entry>Emulator</entry> <entry>Emulator of another platform, such as a DOS emulator</entry> @@ -1626,11 +1733,6 @@ entries</ulink>: <varname>Categories</varname>, <entry></entry> </row><row> - <entry>HamRadio</entry> - <entry>HAM radio software</entry> - <entry></entry> - - </row><row> <entry>Shell</entry> <entry>A shell (an actual specific shell such as <filename>bash</filename> or <filename>tcsh</filename>, not a TerminalEmulator)</entry> @@ -1641,29 +1743,34 @@ entries</ulink>: <varname>Categories</varname>, <entry></entry> </row><row> - <entry>System</entry> - <entry>System application, "System Tools" such as say a log viewer or network monitor</entry> + <entry>TerminalEmulator</entry> + <entry>A terminal emulator application</entry> <entry></entry> </row><row> - <entry>Monitor</entry> - <entry>Monitor application/applet that monitors some resource or activity</entry> - <entry>System</entry> + <entry>TrayIcon</entry> + <entry>An application that is primarily an icon for the "system tray" or "notification area" (apps that open a normal window and just happen to have a tray icon as well should not list this category)</entry> + <entry></entry> </row><row> - <entry>TerminalEmulator</entry> - <entry>A terminal emulator application</entry> - <entry></entry> + <entry>System</entry> + <entry>System application, "System Tools" such as say a log viewer or network monitor</entry> + <entry>(Settings)</entry> </row><row> - <entry>TextEditor</entry> - <entry>A text editor</entry> - <entry></entry> + <entry>Filesystem</entry> + <entry>A filesytem tool</entry> + <entry>System</entry> </row><row> - <entry>TrayIcon</entry> - <entry>An application that is primarily an icon for the "system tray" or "notification area" (apps that open a normal window and just happen to have a tray icon as well should not list this category)</entry> - <entry></entry> + <entry>Monitor</entry> + <entry>Monitor application/applet that monitors some resource or activity</entry> + <entry>System</entry> + + </row><row> + <entry>Security</entry> + <entry>A security tool</entry> + <entry>Settings or System</entry> </row><row> <entry>Utility</entry> @@ -1673,9 +1780,24 @@ entries</ulink>: <varname>Categories</varname>, </row><row> <entry>Accessibility</entry> <entry>Accessibility</entry> + <entry>Settings or Utility</entry> + + </row><row> + <entry>Calculator</entry> + <entry>A calculator</entry> + <entry>Utilitiy</entry> + + </row><row> + <entry>Clock</entry> + <entry>A clock application/applet</entry> <entry>Utility</entry> </row><row> + <entry>TextEditor</entry> + <entry>A text editor</entry> + <entry>Utilitiy</entry> + + </row><row> <entry>KDE</entry> <entry>Application based on KDE libraries</entry> <entry>QT</entry> diff --git a/menu/menu.dtd b/menu/menu.dtd new file mode 100644 index 0000000..893097e --- /dev/null +++ b/menu/menu.dtd @@ -0,0 +1,81 @@ +<!-- For explanations see http://www.freedesktop.org/standards/menu/draft/menu-spec/ --> +<!ELEMENT Menu ( + Name, ( + Directory + | DefaultAppDirs + | AppDir + | DefaultDirectoryDirs + | DirectoryDir + | LegacyDir + | KDELegacyDirs + | MergeFile + | DefaultMergeDirs + | MergeDir + | OnlyUnallocated + | NotOnlyUnallocated + | Deleted + | NotDeleted + | Include + | Exclude + | Move + | Menu + | Layout + | DefaultLayout + )* +)> + +<!ELEMENT Name (#PCDATA)> + +<!ELEMENT Directory (#PCDATA)> + +<!ELEMENT DefaultAppDirs EMPTY> +<!ELEMENT AppDir (#PCDATA)> + +<!ELEMENT DefaultDirectoryDirs EMPTY> +<!ELEMENT DirectoryDir (#PCDATA)> + +<!ELEMENT LegacyDir (#PCDATA)> +<!ATTLIST LegacyDir prefix CDATA #IMPLIED> +<!ELEMENT KDELegacyDirs EMPTY> + +<!ELEMENT MergeFile (#PCDATA)> +<!ELEMENT DefaultMergeDirs EMPTY> +<!ELEMENT MergeDir (#PCDATA)> + +<!ELEMENT OnlyUnallocated EMPTY> +<!ELEMENT NotOnlyUnallocated EMPTY> + +<!ELEMENT Deleted EMPTY> +<!ELEMENT NotDeleted EMPTY> + +<!ELEMENT Exclude ((Category|Filename|And|Or|Not)*)> +<!ELEMENT Include ((Category|Filename|And|Or|Not)*)> + +<!ELEMENT And ((Category|Filename|And|Or|Not)*)> +<!ELEMENT Or ((Category|Filename|And|Or|Not)*)> +<!ELEMENT Not ((Category|Filename|And|Or|Not)*)> +<!ELEMENT Filename (#PCDATA)> +<!ELEMENT Category (#PCDATA)> + +<!ELEMENT Move ((Old,New)*)> +<!ELEMENT Old (#PCDATA)> +<!ELEMENT New (#PCDATA)> + +<!ELEMENT Layout ((Filename|Menuname|Separator|Merge)*)> +<!ELEMENT DefaultLayout ((Filename|Menuname|Separator|Merge)*)> +<!ATTLIST DefaultLayout show_empty (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline_limit CDATA #IMPLIED> +<!ATTLIST DefaultLayout inline_header (true|false) #IMPLIED> +<!ATTLIST DefaultLayout inline_alias (true|false) #IMPLIED> + +<!ELEMENT Menuname (#PCDATA)> +<!ATTLIST Menuname inline (true|false) #IMPLIED> +<!ATTLIST Menuname inline_limit CDATA #IMPLIED> +<!ATTLIST Menuname inline_header (true|false) #IMPLIED> +<!ATTLIST Menuname inline_alias (true|false) #IMPLIED> + +<!ELEMENT Separator EMPTY> + +<!ELEMENT Merge EMPTY> +<!ATTLIST Merge type (menus|files|all) #REQUIRED> |