[GRASS-SVN] r56034 - in grass/trunk/gui/wxpython: . core lmgr tools xml

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Apr 29 06:59:43 PDT 2013


Author: annakrat
Date: 2013-04-29 06:59:42 -0700 (Mon, 29 Apr 2013)
New Revision: 56034

Added:
   grass/trunk/gui/wxpython/core/toolboxes.py
   grass/trunk/gui/wxpython/tools/build_modules_xml.py
   grass/trunk/gui/wxpython/xml/main_menu.dtd
   grass/trunk/gui/wxpython/xml/main_menu.xml
   grass/trunk/gui/wxpython/xml/module_items.dtd
   grass/trunk/gui/wxpython/xml/toolboxes.dtd
   grass/trunk/gui/wxpython/xml/toolboxes.xml
   grass/trunk/gui/wxpython/xml/wxgui_items.dtd
   grass/trunk/gui/wxpython/xml/wxgui_items.xml
Removed:
   grass/trunk/gui/wxpython/xml/menudata.xml
Modified:
   grass/trunk/gui/wxpython/Makefile
   grass/trunk/gui/wxpython/core/menutree.py
   grass/trunk/gui/wxpython/lmgr/menudata.py
   grass/trunk/gui/wxpython/xml/menudata.dtd
Log:
wxGUI/toolboxes: initial version of wxGUI toolboxes (co-author: wenzeslaus)

Modified: grass/trunk/gui/wxpython/Makefile
===================================================================
--- grass/trunk/gui/wxpython/Makefile	2013-04-29 13:03:50 UTC (rev 56033)
+++ grass/trunk/gui/wxpython/Makefile	2013-04-29 13:59:42 UTC (rev 56034)
@@ -1,7 +1,7 @@
 MODULE_TOPDIR = ../..
 
 SUBDIRS = docs animation mapswipe gmodeler rlisetup psmap dbmgr vdigit iclass
-EXTRA_CLEAN_FILES = menustrings.py build_ext.pyc
+EXTRA_CLEAN_FILES = menustrings.py build_ext.pyc xml/menudata.xml
 
 include $(MODULE_TOPDIR)/include/Make/Dir.make
 include $(MODULE_TOPDIR)/include/Make/Doxygen.make
@@ -20,18 +20,28 @@
 DSTDIRS := $(patsubst %,$(ETCDIR)/%,icons scripts xml)
 
 default: $(DSTFILES)
+	-$(MAKE) $(ETCDIR)/xml/module_items.xml
+	-$(MAKE) xml/menudata.xml
 	-$(MAKE) menustrings.py
 	$(MAKE) parsubdirs
 
+
 $(ETCDIR)/%: % | $(PYDSTDIRS) $(DSTDIRS)
 	$(INSTALL_DATA) $< $@
 
+xml/menudata.xml: core/toolboxes.py
+	$(call run_grass,$(PYTHON) $< > $@)
+
 menustrings.py: core/menutree.py $(ETCDIR)/xml/menudata.xml $(ETCDIR)/xml/menudata_modeler.xml $(ETCDIR)/xml/menudata_psmap.xml
 	@echo "# This is a generated file.\n" > $@
 	$(call run_grass,$(PYTHON) $< >> $@)
 	$(call run_grass,$(PYTHON) $< "modeler" >> $@)
 	$(call run_grass,$(PYTHON) $< "psmap" >> $@)
 
+$(ETCDIR)/xml/module_items.xml: tools/build_modules_xml.py
+	@echo "Generating interface description for all modules..."
+	$(call run_grass,$(PYTHON) $< > $@)
+	
 $(PYDSTDIRS): %: | $(ETCDIR)
 	$(MKDIR) $@
 

Modified: grass/trunk/gui/wxpython/core/menutree.py
===================================================================
--- grass/trunk/gui/wxpython/core/menutree.py	2013-04-29 13:03:50 UTC (rev 56033)
+++ grass/trunk/gui/wxpython/core/menutree.py	2013-04-29 13:59:42 UTC (rev 56034)
@@ -83,8 +83,8 @@
             self.model.AppendNode(parent=node, label='', data=data)
         elif item.tag == 'menuitem':
             origLabel = _(item.find('label').text)
-            desc     = _(item.find('help').text)
             handler  = item.find('handler').text
+            desc     = item.find('help')  # optional
             gcmd     = item.find('command')  # optional
             keywords = item.find('keywords') # optional
             shortcut = item.find('shortcut') # optional
@@ -93,6 +93,10 @@
                 gcmd = gcmd.text
             else:
                 gcmd = ""
+            if desc.text:
+                desc = _(desc.text)
+            else:
+                desc = ""
             if keywords != None:
                 keywords = keywords.text
             else:
@@ -117,7 +121,7 @@
         elif item.tag == 'menu':
             self._createMenu(item, node)
         else:
-            raise Exception(_("Unknow tag %s") % item.tag)
+            raise ValueError(_("Unknow tag %s") % item.tag)
 
     def GetModel(self, separators=False):
         """Returns copy of model with or without separators
@@ -215,10 +219,12 @@
 
     sys.path.append(os.path.join(os.getenv("GISBASE"), "etc", "gui", "wxpython"))
 
-
+    # FIXME: cross-dependencies
     if menu == 'manager':
         from lmgr.menudata     import LayerManagerMenuData
-        menudata = LayerManagerMenuData()
+        from core.globalvar    import ETCWXDIR
+        filename = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
+        menudata = LayerManagerMenuData(filename)
     elif menu == 'modeler':
         from gmodeler.menudata import ModelerMenuData
         menudata = ModelerMenuData()

Added: grass/trunk/gui/wxpython/core/toolboxes.py
===================================================================
--- grass/trunk/gui/wxpython/core/toolboxes.py	                        (rev 0)
+++ grass/trunk/gui/wxpython/core/toolboxes.py	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,387 @@
+"""!
+ at package core.toolboxes
+
+ at brief Functions for modifying menu from default/user toolboxes specified in XML files
+
+(C) 2013 by the GRASS Development Team
+
+This program is free software under the GNU General Public License
+(>=v2). Read the file COPYING that comes with GRASS for details.
+
+ at author Vaclav Petras <wenzeslaus gmail.com>
+ at author Anna Petrasova <kratochanna gmail.com>
+"""
+
+import os
+import sys
+import copy
+import xml.etree.ElementTree as etree
+from xml.parsers import expat
+
+# Get the XML parsing exceptions to catch. The behavior chnaged with Python 2.7
+# and ElementTree 1.3.
+if hasattr(etree, 'ParseError'):
+    ETREE_EXCEPTIONS = (etree.ParseError, expat.ExpatError)
+else:
+    ETREE_EXCEPTIONS = (expat.ExpatError)
+
+if sys.version_info[0:2] > (2, 6):
+    has_xpath = True
+else:
+    has_xpath = False
+
+
+if __name__ == '__main__':
+    sys.path.append(os.path.join(os.environ['GISBASE'], "etc", "gui", "wxpython"))
+
+from core.globalvar import ETCWXDIR
+from core.utils import GetSettingsPath
+from core.gcmd import GError
+
+import grass.script.task as gtask
+from grass.script.core import ScriptError
+
+
+mainMenuFile = os.path.join(ETCWXDIR, 'xml', 'main_menu.xml')
+toolboxesFile = os.path.join(ETCWXDIR, 'xml', 'toolboxes.xml')
+wxguiItemsFile = os.path.join(ETCWXDIR, 'xml', 'wxgui_items.xml')
+moduleItemsFile = os.path.join(ETCWXDIR, 'xml', 'module_items.xml')
+
+userToolboxesFile = os.path.join(GetSettingsPath(), 'toolboxes', 'toolboxes.xml')
+userMainMenuFile = os.path.join(GetSettingsPath(), 'toolboxes', 'main_menu.xml')
+if not os.path.exists(userToolboxesFile):
+    userToolboxesFile = None
+if not os.path.exists(userMainMenuFile):
+    userMainMenuFile = None
+
+
+def getMenuFile():
+    """!Returns path to XML file for building menu.
+
+    Creates toolbox directory where user defined toolboxes should be located.
+    Checks whether it is needed to create new XML file (user changed toolboxes)
+    or the already generated file could be used.
+    If something goes wrong during building or user doesn't modify menu,
+    default file (from distribution) is returned.
+    """
+    fallback = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
+    # always create toolboxes directory if does not exist yet
+    tbDir = _setupToolboxes()
+
+    if tbDir:
+        menudataFile = os.path.join(tbDir, 'menudata.xml')
+        generateNew = False
+        # when any of main_menu.xml or toolboxes.xml are changed,
+        # generate new menudata.xml
+
+        if os.path.exists(menudataFile):
+            # remove menu file when there is no main_menu and toolboxes
+            if not userToolboxesFile and not userMainMenuFile:
+                os.remove(menudataFile)
+                return fallback
+
+            if bool(userToolboxesFile) != bool(userMainMenuFile):
+                # always generate new because we don't know if there has been any change
+                generateNew = True
+            else:
+                # if newer files -> generate new
+                menudataTime = os.path.getmtime(menudataFile)
+                if userToolboxesFile:
+                    if os.path.getmtime(userToolboxesFile) > menudataTime:
+                        generateNew = True
+                if userMainMenuFile:
+                    if os.path.getmtime(userMainMenuFile) > menudataTime:
+                        generateNew = True
+        elif userToolboxesFile or userMainMenuFile:
+            generateNew = True
+        else:
+            return fallback
+
+        if generateNew:
+            try:
+                tree = toolboxes2menudata()
+            except ETREE_EXCEPTIONS:
+                GError(_("Unable to parse user toolboxes XML files. "
+                         "Default toolboxes will be loaded."))
+                return fallback
+
+            try:
+                xml = _getXMLString(tree.getroot())
+                fh = open(os.path.join(tbDir, 'menudata.xml'), 'w')
+                fh.write(xml)
+                fh.close()
+                return menudataFile
+            except:
+                return fallback
+        else:
+            return menudataFile
+    else:
+        return fallback
+
+
+def _setupToolboxes():
+    """!Create 'toolboxes' directory if doesn't exist."""
+    path = os.path.join(GetSettingsPath(), 'toolboxes')
+    if not os.path.exists(path):
+        try:
+            os.mkdir(path)
+        except:
+            GError(_('Unable to create toolboxes directory.'))
+            return None
+    return path
+
+
+def toolboxes2menudata(userDefined=True):
+    """!Creates XML file with data for menu.
+
+    Parses toolboxes files from distribution and from users,
+    puts them together, adds metadata to modules and convert
+    tree to previous format used for loading menu.
+
+    @param userDefined use toolboxes defined by user or not (during compilation)
+
+    @return ElementTree instance
+    """
+    wxguiItems = etree.parse(wxguiItemsFile)
+    moduleItems = etree.parse(moduleItemsFile)
+
+    if userDefined and userMainMenuFile:
+        mainMenu = etree.parse(userMainMenuFile)
+    else:
+        mainMenu = etree.parse(mainMenuFile)
+    root = mainMenu.getroot()
+
+    if userDefined and userToolboxesFile:
+        userToolboxes = etree.parse(userToolboxesFile)
+        _expandUserToolboxesItem(root, userToolboxes)
+        _expandToolboxes(root, userToolboxes)
+
+    if not userToolboxesFile:
+        _removeUserToolboxesItem(root)
+
+    toolboxes = etree.parse(toolboxesFile)
+    _expandToolboxes(root, toolboxes)
+
+    _expandItems(root, moduleItems, 'module-item')
+    _expandItems(root, wxguiItems, 'wxgui-item')
+
+    # in case of compilation there are no additional runtime modules
+    # but we need to create empty elements
+    _expandRuntimeModules(root)
+
+    _addHandlers(root)
+    _convertTree(root)
+    _indent(root)
+
+    return mainMenu
+
+
+def _indent(elem, level=0):
+    """!Helper function to fix indentation of XML files."""
+    i = "\n" + level * "  "
+    if len(elem):
+        if not elem.text or not elem.text.strip():
+            elem.text = i + "  "
+        if not elem.tail or not elem.tail.strip():
+            elem.tail = i
+        for elem in elem:
+            _indent(elem, level + 1)
+        if not elem.tail or not elem.tail.strip():
+            elem.tail = i
+    else:
+        if level and (not elem.tail or not elem.tail.strip()):
+            elem.tail = i
+
+
+def _expandToolboxes(node, toolboxes):
+    """!Expands tree with toolboxes.
+
+    Function is called recursively.
+
+    @param node tree node where to look for subtoolboxes to be expanded
+    @param toolboxes tree of toolboxes to be used for expansion
+    """
+    nodes = node.findall('.//toolbox')
+    if node.tag == 'toolbox':  # root
+        nodes.append(node)
+    for n in nodes:
+        if n.find('items') is None:
+            continue
+        for subtoolbox in n.findall('./items/subtoolbox'):
+            items = n.find('./items')
+            idx = items.getchildren().index(subtoolbox)
+
+            if has_xpath:
+                toolbox = toolboxes.find('.//toolbox[@name="%s"]' % subtoolbox.get('name'))
+            else:
+                toolbox = None
+                potentialToolboxes = toolboxes.findall('.//toolbox')
+                sName = subtoolbox.get('name')
+                for pToolbox in potentialToolboxes:
+                    if pToolbox.get('name') == sName:
+                        toolbox = pToolbox
+                        break
+
+            if toolbox is None:  # not in file
+                continue
+            _expandToolboxes(toolbox, toolboxes)
+            items.insert(idx, toolbox)
+            items.remove(subtoolbox)
+
+
+def _expandUserToolboxesItem(node, toolboxes):
+    """!Expand tag 'user-toolboxes-list'.
+
+    Include all user toolboxes.
+    """
+    tboxes = toolboxes.findall('.//toolbox')
+
+    for n in node.findall('./items/user-toolboxes-list'):
+        items = node.find('./items')
+        idx = items.getchildren().index(n)
+        el = etree.Element('toolbox', attrib={'name': 'dummy'})
+        items.insert(idx, el)
+        label = etree.SubElement(el, tag='label')
+        label.text = _("Toolboxes")
+        it = etree.SubElement(el, tag='items')
+        for toolbox in tboxes:
+            it.append(copy.deepcopy(toolbox))
+
+
+def _removeUserToolboxesItem(root):
+    """!Removes tag 'user-toolboxes-list' if there are no user toolboxes."""
+    for n in root.findall('./items/user-toolboxes-list'):
+        items = root.find('./items')
+        items.remove(n)
+
+
+def _expandItems(node, items, itemTag):
+    """!Expand items from file"""
+    for moduleItem in node.findall('.//' + itemTag):
+        itemName = moduleItem.get('name')
+        if has_xpath:
+            moduleNode = items.find('.//%s[@name="%s"]' % (itemTag, itemName))
+        else:
+            moduleNode = None
+            potentialModuleNodes = items.findall('.//%s' % itemTag)
+            for mNode in potentialModuleNodes:
+                if mNode.get('name') == itemName:
+                    moduleNode = mNode
+                    break
+
+        if moduleNode is None:  # module not available in dist
+            continue
+        mItemChildren = moduleItem.getchildren()
+        tagList = [n.tag for n in mItemChildren]
+        for node in moduleNode.getchildren():
+            if node.tag not in tagList:
+                moduleItem.append(node)
+
+
+def _expandRuntimeModules(node):
+    """!Add information to modules (desc, keywords)
+    by running them with --interface-description."""
+    modules = node.findall('.//module-item')
+    for module in modules:
+        name = module.get('name')
+        if module.find('module') is None:
+            n = etree.SubElement(parent=module, tag='module')
+            n.text = name
+
+        if module.find('description') is None:
+            desc, keywords = _loadMetadata(name)
+            n = etree.SubElement(parent=module, tag='description')
+            n.text = _escapeXML(desc)
+            n = etree.SubElement(parent=module, tag='keywords')
+            n.text = _escapeXML(','.join(keywords))
+
+
+def _escapeXML(text):
+    """!Helper function for correct escaping characters for XML.
+
+    Duplicate function in core/toolboxes.
+    """
+    return text.replace('<', '<').replace("&", '&').replace(">", '>')
+
+
+def _loadMetadata(module):
+    """!Load metadata to modules.
+
+    @param module module name
+    @return (description, keywords as a list)
+    """
+    try:
+        task = gtask.parse_interface(module)
+    except ScriptError:
+        return '', ''
+
+    return task.get_description(full=True), \
+        task.get_keywords()
+
+
+def _addHandlers(node):
+    """!Add missing handlers to modules"""
+    for n in node.findall('.//module-item'):
+        if n.find('handler') is None:
+            handlerNode = etree.SubElement(parent=n, tag='handler')
+            handlerNode.text = 'OnMenuCmd'
+
+    # e.g. g.region -p
+    for n in node.findall('.//wxgui-item'):
+        if n.find('command') is not None:
+            handlerNode = etree.SubElement(parent=n, tag='handler')
+            handlerNode.text = 'RunMenuCmd'
+
+
+def _convertTag(node, old, new):
+    """!Converts tag name."""
+    for n in node.findall('.//%s' % old):
+        n.tag = new
+
+
+def _convertTagAndRemoveAttrib(node, old, new):
+    "Converts tag name and removes attributes."
+    for n in node.findall('.//%s' % old):
+        n.tag = new
+        n.attrib = {}
+
+
+def _convertTree(root):
+    """!Converts tree to be the form readable by core/menutree.py."""
+    root.attrib = {}
+    label = root.find('label')
+    root.remove(label)
+    _convertTag(root, 'description', 'help')
+    _convertTag(root, 'wx-id', 'id')
+    _convertTag(root, 'module', 'command')
+    _convertTag(root, 'related-module', 'command')
+    _convertTagAndRemoveAttrib(root, 'wxgui-item', 'menuitem')
+    _convertTagAndRemoveAttrib(root, 'module-item', 'menuitem')
+
+    root.tag = 'menudata'
+    i1 = root.find('./items')
+    i1.tag = 'menubar'
+    _convertTagAndRemoveAttrib(root, 'toolbox', 'menu')
+
+
+def _getXMLString(root):
+    """!Adds comment (about aotogenerated file) to XML.
+
+    @return XML as string
+    """
+    xml = etree.tostring(root, encoding='UTF-8')
+    return xml.replace("<?xml version='1.0' encoding='UTF-8'?>\n",
+                       "<?xml version='1.0' encoding='UTF-8'?>\n"
+                       "<!--This is an auto-generated file-->\n")
+
+
+def main():
+    tree = toolboxes2menudata(userDefined=False)
+    root = tree.getroot()
+    sys.stdout.write(_getXMLString(root))
+
+    return 0
+
+
+if __name__ == '__main__':
+    sys.exit(main())


Property changes on: grass/trunk/gui/wxpython/core/toolboxes.py
___________________________________________________________________
Added: svn:mime-type
   + text/x-python
Added: svn:eol-style
   + native

Modified: grass/trunk/gui/wxpython/lmgr/menudata.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/menudata.py	2013-04-29 13:03:50 UTC (rev 56033)
+++ grass/trunk/gui/wxpython/lmgr/menudata.py	2013-04-29 13:59:42 UTC (rev 56034)
@@ -17,12 +17,20 @@
 
 import os
 
+from core.menutree  import MenuTreeModelBuilder
+from core.toolboxes import getMenuFile
 from core.globalvar import ETCWXDIR
-from core.menutree  import MenuTreeModelBuilder
+from core.gcmd import GError
 
+
 class LayerManagerMenuData(MenuTreeModelBuilder):
-    def __init__(self, filename = None):
+    def __init__(self, filename=None):
         if not filename:
-            filename = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
-        
-        MenuTreeModelBuilder.__init__(self, filename)
+            filename = getMenuFile()
+        try:
+            MenuTreeModelBuilder.__init__(self, filename)
+        except (ValueError, AttributeError, TypeError):
+            GError(_("Unable to parse user toolboxes XML files. "
+                     "Default toolboxes will be loaded."))
+            fallback = os.path.join(ETCWXDIR, 'xml', 'menudata.xml')
+            MenuTreeModelBuilder.__init__(self, fallback)

Added: grass/trunk/gui/wxpython/tools/build_modules_xml.py
===================================================================
--- grass/trunk/gui/wxpython/tools/build_modules_xml.py	                        (rev 0)
+++ grass/trunk/gui/wxpython/tools/build_modules_xml.py	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,85 @@
+"""!
+ at package tools.build_modules_xml
+
+ at brief Builds XML metadata of GRASS modules. Runs only during compilation.
+
+(C) 2013 by the GRASS Development Team
+
+This program is free software under the GNU General Public License
+(>=v2). Read the file COPYING that comes with GRASS for details.
+
+ at author Vaclav Petras <wenzeslaus gmail.com>
+ at author Anna Petrasova <kratochanna gmail.com>
+"""
+
+import sys
+from datetime import datetime
+
+
+def escapeXML(text):
+    """!Helper function for correct escaping characters for XML
+
+    Duplicate function in core/toolboxes.
+    """
+    return text.replace('<', '<').replace("&", '&').replace(">", '>')
+
+
+def parse_modules(fd):
+    """!Writes metadata to xml file."""
+    import grass.script as grass
+    mlist = list(grass.get_commands()[0])  # what about windows?
+    indent = 4
+    for m in mlist:
+        # TODO: get rid of g.mapsets_picker.py
+        if m == 'g.mapsets_picker.py':
+            continue
+        desc, keyw = get_module_metadata(m)
+        fd.write('%s<module-item name="%s">\n' % (' ' * indent, m))
+        indent += 4
+        fd.write('%s<module>%s</module>\n' % (' ' * indent, m))
+        fd.write('%s<description>%s</description>\n' % (' ' * indent, escapeXML(desc)))
+        fd.write('%s<keywords>%s</keywords>\n' % (' ' * indent, escapeXML(','.join(keyw))))
+        indent -= 4
+        fd.write('%s</module-item>\n' % (' ' * indent))
+
+
+def get_module_metadata(name):
+    import grass.script.task as gtask
+    try:
+        task = gtask.parse_interface(name)
+    except:
+        return '', ''
+
+    return task.get_description(full=True), \
+        task.get_keywords()
+
+
+def header(fd):
+    import grass.script.core as grass
+    fd.write('<?xml version="1.0" encoding="UTF-8"?>\n')
+    fd.write('<!DOCTYPE module-items SYSTEM "module_items.dtd">\n')
+    fd.write('<!--This file is automatically generated using %s-->\n' % sys.argv[0])
+    vInfo = grass.version()
+    fd.write('<!--version="%s" revision="%s" date="%s"-->\n' % \
+                 (vInfo['version'].split('.')[0],
+                  vInfo['revision'],
+                  datetime.now()))
+    fd.write('<module-items>\n')
+
+
+def footer(fd):
+    fd.write('</module-items>\n')
+
+
+def main():
+    fh = sys.stdout
+
+    header(fh)
+    parse_modules(fh)
+    footer(fh)
+
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())


Property changes on: grass/trunk/gui/wxpython/tools/build_modules_xml.py
___________________________________________________________________
Added: svn:mime-type
   + text/x-python
Added: svn:eol-style
   + native

Added: grass/trunk/gui/wxpython/xml/main_menu.dtd
===================================================================
--- grass/trunk/gui/wxpython/xml/main_menu.dtd	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/main_menu.dtd	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,12 @@
+<!ELEMENT toolbox (label, items)>
+<!ATTLIST toolbox name NMTOKEN #REQUIRED>
+
+<!ELEMENT items ((subtoolbox | user-toolboxes-list)*)>
+
+<!ELEMENT subtoolbox EMPTY>
+<!ATTLIST subtoolbox name NMTOKEN #REQUIRED>
+
+<!ELEMENT user-toolboxes-list EMPTY>
+
+<!ELEMENT label (#PCDATA)>
+

Added: grass/trunk/gui/wxpython/xml/main_menu.xml
===================================================================
--- grass/trunk/gui/wxpython/xml/main_menu.xml	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/main_menu.xml	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolbox SYSTEM "main_menu.dtd">
+<toolbox name="DefaultMainMenu">
+  <label>Default GRASS GIS main menu bar</label>
+  <items>
+    <subtoolbox name="File"/>
+    <subtoolbox name="Settings"/>
+    <subtoolbox name="Raster"/>
+    <subtoolbox name="Vector"/>
+    <subtoolbox name="Imagery"/>
+    <subtoolbox name="Volumes"/>
+    <subtoolbox name="Database"/>
+    <user-toolboxes-list />
+    <subtoolbox name="Help"/>
+  </items>
+</toolbox>
+


Property changes on: grass/trunk/gui/wxpython/xml/main_menu.xml
___________________________________________________________________
Added: svn:mime-type
   + text/xml
Added: svn:eol-style
   + native

Modified: grass/trunk/gui/wxpython/xml/menudata.dtd
===================================================================
--- grass/trunk/gui/wxpython/xml/menudata.dtd	2013-04-29 13:03:50 UTC (rev 56033)
+++ grass/trunk/gui/wxpython/xml/menudata.dtd	2013-04-29 13:59:42 UTC (rev 56034)
@@ -2,7 +2,8 @@
 <!ELEMENT menubar (menu*)>
 <!ELEMENT menu (label, items)>
 <!ELEMENT items ((separator | menuitem | menu)*)>
-<!ELEMENT menuitem (label, help, keywords?, handler, command?, shortcut?, id?)>
+<!ELEMENT menuitem (label, ((help, keywords?, handler, command?, shortcut?, id?) | (command, help, keywords, id?, handler) |
+                            (handler, help, shortcut?, id?)))>
 <!ELEMENT separator EMPTY>
 <!ELEMENT label (#PCDATA)>
 <!ELEMENT help (#PCDATA)>

Deleted: grass/trunk/gui/wxpython/xml/menudata.xml
===================================================================
--- grass/trunk/gui/wxpython/xml/menudata.xml	2013-04-29 13:03:50 UTC (rev 56033)
+++ grass/trunk/gui/wxpython/xml/menudata.xml	2013-04-29 13:59:42 UTC (rev 56034)
@@ -1,3438 +0,0 @@
-<menudata>
-  <menubar>
-    <menu>
-      <label>&File</label>
-      <items>
-        <menu>
-          <label>Workspace</label>
-          <items>
-            <menuitem>
-              <label>New</label>
-              <help>Create new workspace</help>
-              <handler>OnWorkspaceNew</handler>
-              <shortcut>Ctrl+N</shortcut>
-              <id>ID_NEW</id>
-            </menuitem>
-            <menuitem>
-              <label>Open</label>
-              <help>Load workspace from file</help>
-              <handler>OnWorkspaceOpen</handler>
-              <shortcut>Ctrl+O</shortcut>
-              <id>ID_OPEN</id>
-            </menuitem>
-            <menuitem>
-              <label>Save</label>
-              <help>Save workspace</help>
-              <handler>OnWorkspaceSave</handler>
-              <shortcut>Ctrl+S</shortcut>
-              <id>ID_SAVE</id>
-            </menuitem>
-            <menuitem>
-              <label>Save as</label>
-              <help>Save workspace to file</help>
-              <handler>OnWorkspaceSaveAs</handler>
-              <id>ID_SAVEAS</id>
-            </menuitem>
-            <menuitem>
-              <label>Close</label>
-              <help>Close workspace file</help>
-              <handler>OnWorkspaceClose</handler>
-              <id>ID_CLOSE</id>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Load GRC file (Tcl/Tk GUI)</label>
-              <help>Load map layers from GRC file to layer tree</help>
-              <handler>OnWorkspaceLoadGrcFile</handler>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Map display</label>
-          <items>
-            <menuitem>
-              <label>Add raster</label>
-              <help>Add raster map layer to current display</help>
-              <handler>OnAddRaster</handler>
-              <shortcut>Ctrl+Shift+R</shortcut>
-            </menuitem>
-            <menuitem>
-              <label>Add vector</label>
-              <help>Add vector map layer to current display</help>
-              <handler>OnAddVector</handler>
-              <shortcut>Ctrl+Shift+V</shortcut>
-            </menuitem>
-            <menuitem>
-              <label>Add multiple rasters or vectors</label>
-              <help>Add multiple raster or vector map layers to current display</help>
-              <handler>OnAddMaps</handler>
-              <shortcut>Ctrl+Shift+L</shortcut>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>New map display window</label>
-              <help>Open new map display window</help>
-              <handler>OnNewDisplay</handler>
-            </menuitem>
-            <menuitem>
-              <label>Close current map display window</label>
-              <help>Close current map display window</help>
-              <handler>OnDisplayClose</handler>
-              <shortcut>Ctrl+W</shortcut>
-            </menuitem>
-            <menuitem>
-              <label>Close all open map display windows</label>
-              <help>Close all open map display windows</help>
-              <handler>OnDisplayCloseAll</handler>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Import raster data</label>
-          <items>
-            <menuitem>
-              <label>Common formats import</label>
-              <help>Import raster data into a GRASS map layer using GDAL.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnImportGdalLayers</handler>
-              <command>r.in.gdal</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ASCII x,y,z point import and gridding</label>
-              <help>Create a raster map from an assemblage of many coordinates using univariate statistics.</help>
-              <keywords>raster,import,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.xyz</command>
-            </menuitem>
-            <menuitem>
-              <label>ASCII grid import</label>
-              <help>Converts a GRASS ASCII raster file to binary raster map.</help>
-              <keywords>raster,import,conversion,ascii</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>ASCII polygons, lines, and point import</label>
-              <help>Creates raster maps from ASCII polygon/line/point data files.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.poly</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Raw binary array import</label>
-              <help>Import a binary raster file into a GRASS raster map layer.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.bin</command>
-            </menuitem>
-            <menuitem>
-              <label>ESRI ASCII grid import</label>
-              <help>Converts an ESRI ARC/INFO ascii raster file (GRID) into a GRASS raster map.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.arc</command>
-            </menuitem>
-            <menuitem>
-              <label>GRIDATB.FOR import</label>
-              <help>Imports GRIDATB.FOR map file (TOPMODEL) into GRASS raster map</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.gridatb</command>
-            </menuitem>
-            <menuitem>
-              <label>Matlab 2D array import</label>
-              <help>Imports a binary MAT-File(v4) to a GRASS raster.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.mat</command>
-            </menuitem>
-            <menuitem>
-              <label>PNG import</label>
-              <help>Imports non-georeferenced PNG format image.</help>
-              <keywords>raster,import,png</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.png</command>
-            </menuitem>
-            <menuitem>
-              <label>SPOT NDVI import</label>
-              <help>Imports SPOT VGT NDVI data into a raster map.</help>
-              <keywords>imagery,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.in.spotvgt</command>
-            </menuitem>
-            <menuitem>
-              <label>SRTM HGT import</label>
-              <help>Imports SRTM HGT files into raster map.</help>
-              <keywords>raster,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.srtm</command>
-            </menuitem>
-            <menuitem>
-              <label>Terra ASTER HDF import</label>
-              <help>Georeference, rectify, and import Terra-ASTER imagery and relative DEMs using gdalwarp.</help>
-              <keywords>raster,import,imagery,Terra-ASTER</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.aster</command>
-            </menuitem>
-            <menuitem>
-              <label>LAS LiDAR points import</label>
-              <help>Create a raster map from LAS LiDAR points using univariate statistics.</help>
-              <keywords>raster,import,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.in.lidar</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Unpack raster map</label>
-              <help>Unpacks a raster map packed with r.pack.</help>
-              <keywords>raster,import,copying</keywords><handler>OnMenuCmd</handler>
-              <command>r.unpack</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Import vector data</label>
-          <items>
-            <menuitem>
-              <label>Common import formats</label>
-              <help>Converts vector layers into a GRASS vector map using OGR.</help>
-              <keywords>vector,import</keywords>
-              <handler>OnImportOgrLayers</handler>
-              <command>v.in.ogr</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ASCII points or GRASS ASCII format</label>
-              <help>Creates a vector map from an ASCII points file or ASCII vector file.</help>
-              <keywords>vector,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>ASCII points as a vector lines</label>
-              <help>Imports ASCII x,y[,z] coordinates as a series of lines.</help>
-              <keywords>vector,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.lines</command>
-            </menuitem>
-            <menuitem>
-              <label>Historical GRASS vector import</label>
-              <help>Imports older versions of GRASS vector maps.</help>
-              <keywords>vector,import,conversion</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.convert</command>
-            </menuitem>
-            <menuitem>
-              <label>Historical GRASS vector import (all maps)</label>
-              <help>Converts all older versions of GRASS vector maps in current mapset to current format.</help>
-              <keywords>vector,import,conversion</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.convert.all</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>DXF import</label>
-              <help>Converts files in DXF format to GRASS vector map format.</help>
-              <keywords>vector,import,dxf</keywords>
-              <handler>OnImportDxfFile</handler>
-              <command>v.in.dxf</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>WFS</label>
-              <help>Imports GetFeature from a WFS server.</help>
-              <keywords>vector,import,wfs</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.wfs</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ESRI e00 import</label>
-              <help>Imports E00 file into a vector map.</help>
-              <keywords>vector,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.e00</command>
-            </menuitem>
-            <menuitem>
-              <label>GPS data import</label>
-              <help>Import waypoints, routes, and tracks from a GPS receiver or many common GPS file formats.</help>
-              <keywords>vector,import,GPS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.gps</command>
-            </menuitem>
-            <menuitem>
-              <label>Geonames import</label>
-              <help>Imports geonames.org country files into a vector points map.</help>
-              <keywords>vector,import,gazetteer</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.geonames</command>
-            </menuitem>
-            <menuitem>
-              <label>GEOnet import</label>
-              <help>Imports US-NGA GEOnet Names Server (GNS) country files into a GRASS vector points map.</help>
-              <keywords>vector,import,gazetteer</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.gns</command>
-            </menuitem>
-            <menuitem>
-              <label>Matlab array or Mapgen format import</label>
-              <help>Imports Mapgen or Matlab-ASCII vector maps into GRASS.</help>
-              <keywords>vector,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.mapgen</command>
-            </menuitem>
-            <menuitem>
-              <label>LAS LiDAR points import</label>
-              <help>Converts LAS LiDAR point clouds to a GRASS vector map with libLAS.</help>
-              <keywords>vector,import,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.lidar</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Import 3D raster data</label>
-          <items>
-            <menuitem>
-              <label>ASCII 3D import</label>
-              <help>Converts a 3D ASCII raster text file into a (binary) 3D raster map.</help>
-              <keywords>raster3d,voxel,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.in.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>Raw binary array 3D import</label>
-              <help>Imports a binary raster file into a GRASS 3D raster map.</help>
-              <keywords>raster3d,import</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.in.bin</command>
-            </menuitem>
-            <menuitem>
-              <label>Vis5D import</label>
-              <help>Import 3-dimensional Vis5D files.</help>
-              <keywords>raster3d,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.in.v5d</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Import database table</label>
-          <items>
-            <menuitem>
-              <label>Multiple import formats using OGR</label>
-              <help>Imports attribute tables in various formats.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.in.ogr</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Export raster map</label>
-          <items>
-            <menuitem>
-              <label>Common export formats</label>
-              <help>Exports GRASS raster maps into GDAL supported formats.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.gdal</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ASCII grid export</label>
-              <help>Converts a raster map layer into a GRASS ASCII text file.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>ASCII x,y,z points export</label>
-              <help>Exports a raster map to a text file as x,y,z values based on cell centers.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.xyz</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ESRI ASCII grid export</label>
-              <help>Converts a raster map layer into an ESRI ARCGRID file.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.arc</command>
-            </menuitem>
-            <menuitem>
-              <label>GRIDATB.FOR export</label>
-              <help>Exports GRASS raster map to GRIDATB.FOR map file (TOPMODEL).</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.gridatb</command>
-            </menuitem>
-            <menuitem>
-              <label>Matlab 2D array export</label>
-              <help>Exports a GRASS raster to a binary MAT-File.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.mat</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Raw binary array export</label>
-              <help>Exports a GRASS raster to a binary array.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.bin</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>MPEG-1 export</label>
-              <help>Converts raster map series to MPEG movie.</help>
-              <keywords>raster,export,animation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.mpeg</command>
-            </menuitem>
-            <menuitem>
-              <label>PNG export</label>
-              <help>Export a GRASS raster map as a non-georeferenced PNG image.</help>
-              <keywords>raster,export,png</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.png</command>
-            </menuitem>
-            <menuitem>
-              <label>PPM export</label>
-              <help>Converts a GRASS raster map to a PPM image file.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.ppm</command>
-            </menuitem>
-            <menuitem>
-              <label>PPM from RGB export</label>
-              <help>Converts 3 GRASS raster layers (R,G,B) to a PPM image file.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.ppm3</command>
-            </menuitem>
-            <menuitem>
-              <label>POV-Ray export</label>
-              <help>Converts a raster map layer into a height-field file for POV-Ray.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.pov</command>
-            </menuitem>
-            <menuitem>
-              <label>TIFF export</label>
-              <help>Exports a GRASS raster map to a 8/24bit TIFF image file.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.tiff</command>
-            </menuitem>
-            <menuitem>
-              <label>VRML export</label>
-              <help>Exports a raster map to the Virtual Reality Modeling Language (VRML).</help>
-              <keywords>raster,export,VRML</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.vrml</command>
-            </menuitem>
-            <menuitem>
-              <label>VTK export</label>
-              <help>Converts raster maps into the VTK-ASCII format.</help>
-              <keywords>raster,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.out.vtk</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Pack raster map</label>
-              <help>Packs up a raster map and support files for copying.</help>
-              <keywords>raster,export,copying</keywords><handler>OnMenuCmd</handler>
-              <command>r.pack</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Export vector map</label>
-          <items>
-            <menuitem>
-              <label>Common export formats</label>
-              <help>Converts a vector map to any of the supported OGR vector formats.</help>
-              <keywords>vector,export,ogr</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.ogr</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>ASCII points or GRASS ASCII vector export</label>
-              <help>Exports a vector map to a GRASS ASCII vector representation.</help>
-              <keywords>vector,export,ascii</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>DXF export</label>
-              <help>Exports vector map to DXF file format.</help>
-              <keywords>vector,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.dxf</command>
-            </menuitem>
-            <menuitem>
-              <label>Multiple GPS export formats using GPSBabel</label>
-              <help>Exports a vector map to a GPS receiver or file format supported by GPSBabel.</help>
-              <keywords>vector,export,GPS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.gps</command>
-            </menuitem>
-            <menuitem>
-              <label>PostGIS export</label>
-              <help>Exports a vector map layer to PostGIS feature table.</help>
-              <keywords>vector,export,PostGIS,simple features,topology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.postgis</command>
-            </menuitem>
-            <menuitem>
-              <label>POV-Ray export</label>
-              <help>Converts GRASS x,y,z points to POV-Ray x,z,y format.</help>
-              <keywords>vector,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.pov</command>
-            </menuitem>
-            <menuitem>
-              <label>SVG export</label>
-              <help>Exports a vector map to SVG file.</help>
-              <keywords>vector,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.svg</command>
-            </menuitem>
-            <menuitem>
-              <label>VTK export</label>
-              <help>Converts a vector map to VTK ASCII output.</help>
-              <keywords>vector,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.out.vtk</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Export 3D raster maps</label>
-          <items>
-            <menuitem>
-              <label>ASCII 3D export</label>
-              <help>Converts a 3D raster map layer into a ASCII text file.</help>
-              <keywords>raster3d,voxel,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.out.ascii</command>
-            </menuitem>
-            <menuitem>
-              <label>Raw binary array 3D export</label>
-              <help>Exports a GRASS 3D raster map to a binary array.</help>
-              <keywords>raster3d,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.out.bin</command>
-            </menuitem>
-            <menuitem>
-              <label>Vis5D export</label>
-              <help>Exports GRASS 3D raster map to 3-dimensional Vis5D file.</help>
-              <keywords>raster3d,voxel,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.out.v5d</command>
-            </menuitem>
-            <menuitem>
-              <label>VTK export</label>
-              <help>Converts 3D raster maps into the VTK-ASCII format.</help>
-              <keywords>raster3d,voxel,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.out.vtk</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Export database table</label>
-          <items>
-            <menuitem>
-              <label>Common export formats using OGR</label>
-              <help>Exports attribute tables into various formats.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.out.ogr</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Link external formats</label>
-          <items>
-            <menuitem>
-              <label>Link external raster data</label>
-              <help>Link GDAL supported raster data as a pseudo GRASS raster map layer.</help>
-              <keywords>raster,import,input,external</keywords>
-              <handler>OnLinkGdalLayers</handler>
-              <command>r.external</command>
-            </menuitem>
-            <menuitem>
-              <label>Link external vector data</label>
-              <help>Creates a new pseudo-vector map as a link to an OGR-supported layer.</help>
-              <keywords>vector,import,input,external,OGR,PostGIS</keywords>
-              <handler>OnLinkOgrLayers</handler>
-              <command>v.external</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Output format for raster data</label>
-              <help>Defines raster output format utilizing GDAL library.</help>
-              <keywords>raster,export,output,external</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.external.out</command>
-            </menuitem>
-            <menuitem>
-              <label>Output format for vector data</label>
-              <help>Defines vector output format utilizing OGR library.</help>
-              <keywords>vector,export,output,external,OGR,PostGIS</keywords>
-              <handler>OnVectorOutputFormat</handler>
-              <command>v.external.out</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Manage maps and volumes</label>
-          <items>
-            <menuitem>
-              <label>Copy</label>
-              <help>Copies available data files in the current mapset search path to the user's current mapset.</help>
-              <keywords>general,map management,copy</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.copy</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>List</label>
-              <help>Lists available GRASS data base files of the user-specified data type.</help>
-              <keywords>general,map management,list</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.list</command>
-            </menuitem>
-            <menuitem>
-              <label>List filtered</label>
-              <help>Lists available GRASS data base files of the user-specified data type optionally using the search pattern.</help>
-              <keywords>general,map management,list</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.mlist</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Rename</label>
-              <help>Renames data base element files in the user's current mapset.</help>
-              <keywords>general,map management,rename</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.rename</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Delete</label>
-              <help>Removes data base element files from the user's current mapset.</help>
-              <keywords>general,map management,remove</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.remove</command>
-            </menuitem>
-            <menuitem>
-              <label>Delete filtered</label>
-              <help>Removes data base element files from the user's current mapset using regular expressions.</help>
-              <keywords>general,map management,remove,multi</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.mremove</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Map type conversions</label>
-          <items>
-            <menuitem>
-              <label>Raster to vector</label>
-              <help>Converts a raster map into a vector map.</help>
-              <keywords>raster,conversion,geometry,vectorization</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.vect</command>
-            </menuitem>
-            <menuitem>
-              <label>Raster series to volume</label>
-              <help>Converts 2D raster map slices to one 3D raster volume map.</help>
-              <keywords>raster,conversion,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.rast3</command>
-            </menuitem>
-            <menuitem>
-              <label>Raster 2.5D to volume</label>
-              <help>Creates a 3D volume map based on 2D elevation and value raster maps.</help>
-              <keywords>raster,conversion,raster3d,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.rast3elev</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Vector to raster</label>
-              <help>Converts (rasterize) a vector map into a raster map.</help>
-              <keywords>vector,conversion,raster,rasterization</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.rast</command>
-            </menuitem>
-            <menuitem>
-              <label>Vector to volume</label>
-              <help>Converts a vector map (only points) into a 3D raster map.</help>
-              <keywords>vector,conversion,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.rast3</command>
-            </menuitem>
-            <menuitem>
-              <label>2D vector to 3D vector</label>
-              <help>Performs transformation of 2D vector features to 3D.</help>
-              <keywords>vector,geometry,3D</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.3d</command>
-            </menuitem>
-            <menuitem>
-              <label>Sites to vector</label>
-              <help>Converts a GRASS site_lists file into a vector map.</help>
-              <keywords>vector,import,sites</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.sites</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Volume to raster series</label>
-              <help>Converts 3D raster maps to 2D raster maps</help>
-              <keywords>raster3d,conversion,raster,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.to.rast</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>Georectify</label>
-          <help>Manage Ground Control Points for Georectification</help>
-          <handler>OnGCPManager</handler>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Graphical modeler</label>
-          <help>Launch Graphical modeler</help>
-          <keywords>general,gui,graphical modeler,workflow</keywords><handler>OnGModeler</handler>
-          <command>g.gui.gmodeler</command>
-        </menuitem>
-        <menuitem>
-          <label>Run model</label>
-          <help>Run model prepared by Graphical modeler</help>
-          <handler>OnRunModel</handler>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>3D image rendering</label>
-          <help>Creates a 3D rendering of GIS data.</help>
-          <keywords>visualization,graphics,raster,vector,raster3d</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>m.nviz.image</command>
-        </menuitem>
-        <menuitem>
-          <label>Animation tool</label>
-          <help>Launch animation tool.</help>
-          <keywords>general,gui,display</keywords>
-          <handler>OnAnimationTool</handler>
-          <command>g.gui.animation</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Bearing/distance to coordinates</label>
-          <help>A simple utility for converting bearing and distance measurements to coordinates and vice versa.</help>
-          <keywords>miscellaneous,distance</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>m.cogo</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Cartographic Composer</label>
-          <help>Launch Cartographic Composer</help>
-          <keywords>postscript,printing</keywords>
-          <handler>OnPsMap</handler>
-          <command>g.gui.psmap</command>
-        </menuitem>
-        <menuitem>
-          <label>Map Swipe</label>
-          <help>Launch Map Swipe</help>
-          <keywords>general,gui,display</keywords>
-          <handler>OnMapSwipe</handler>
-	  <command>g.gui.mapswipe</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Launch script</label>
-          <help>Launches script file.</help>
-          <handler>OnRunScript</handler>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Quit</label>
-          <help>Quit</help>
-          <handler>OnCloseWindow</handler>
-          <shortcut>Ctrl+Q</shortcut>
-          <id>ID_EXIT</id>
-        </menuitem>
-      </items>
-    </menu>
-    <menu>
-      <label>&Settings</label>
-      <items>
-        <menu>
-          <label>Region</label>
-          <items>
-            <menuitem>
-              <label>Display region</label>
-              <help>Manages the boundary definitions for the geographic region.</help>
-              <keywords>general,settings</keywords>
-              <handler>RunMenuCmd</handler>
-              <command>g.region -p</command>
-            </menuitem>
-            <menuitem>
-              <label>Set region</label>
-              <help>Manages the boundary definitions for the geographic region.</help>
-              <keywords>general,settings</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.region</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>GRASS working environment</label>
-          <items>
-            <menuitem>
-              <label>Mapset access</label>
-              <help>Set/unset access to other mapsets in current location</help>
-              <keywords>general,settings,search path</keywords>
-              <handler>OnMapsets</handler>
-              <command>g.mapsets</command>
-            </menuitem>
-            <menuitem>
-              <label>User access</label>
-              <help>Controls access to the current mapset for other users on the system.</help>
-              <keywords>general,map management,permission</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.access</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Change working environment</label>
-              <help>Changes/reports current mapset.</help>
-              <keywords>general,settings</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.mapset</command>
-            </menuitem>
-            <menuitem>
-              <label>Change location and mapset</label>
-              <help>Change current location and mapset.</help>
-              <keywords>general,location,current</keywords>
-              <handler>OnChangeLocation</handler>
-            </menuitem>
-            <menuitem>
-              <label>Change mapset</label>
-              <help>Change current mapset.</help>
-              <keywords>general,mapset,current</keywords>
-              <handler>OnChangeMapset</handler>
-            </menuitem>
-            <menuitem>
-              <label>Change working directory</label>
-              <help>Change working directory</help>
-              <handler>OnChangeCWD</handler>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Show settings</label>
-              <help>Outputs and modifies the user's current GRASS variable settings.</help>
-              <keywords>general,settings,variables</keywords>
-              <handler>RunMenuCmd</handler>
-              <command>g.gisenv -n</command>
-            </menuitem>
-            <menuitem>
-              <label>Change settings</label>
-              <help>Outputs and modifies the user's current GRASS variable settings.</help>
-              <keywords>general,settings,variables</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.gisenv</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Create new location</label>
-              <help>Launches location wizard to create new GRASS location.</help>
-              <keywords>general,location,wizard</keywords>
-              <handler>OnLocationWizard</handler>
-            </menuitem>
-            <menuitem>
-              <label>Create new mapset</label>
-              <help>Creates new mapset in the current location, changes current mapset.</help>
-              <keywords>general,mapset,create</keywords>
-              <handler>OnCreateMapset</handler>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Version and copyright</label>
-              <help>Displays version and copyright information.</help>
-              <keywords>general,version</keywords>
-              <handler>RunMenuCmd</handler>
-              <command>g.version -c</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Map projections</label>
-          <items>
-            <menuitem>
-             <label>Display map projection</label>
-             <help>Converts co-ordinate system descriptions (i.e. projection information) between various formats (including GRASS format).</help>
-             <keywords>general,projection,create location</keywords>
-             <handler>RunMenuCmd</handler>
-             <command>g.proj -p</command>
-           </menuitem>
-           <menuitem>
-              <label>Manage projections</label>
-              <help>Prints and manipulates GRASS projection information files (in various co-ordinate system descriptions).</help>
-              <keywords>general,projection,create location</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.proj</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Convert coordinates</label>
-              <help>Converts coordinates from one projection to another (cs2cs frontend).</help>
-              <keywords>miscellaneous,projection</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>m.proj</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-	<menu>
-          <label>Addons extensions</label>
-          <items>
-            <menuitem>
-              <label>Install extension from addons</label>
-              <help>Installs new extension from GRASS AddOns SVN repository.</help>
-              <keywords>general,installation,extensions</keywords>
-              <handler>OnInstallExtension</handler>
-              <command>g.extension</command>
-            </menuitem>
-            <menuitem>
-              <label>Update installed extensions</label>
-              <help>Rebuilds all locally installed GRASS Addons extensions.</help>
-              <keywords>general,installation,extensions</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>g.extension.rebuild.all</command>
-            </menuitem>
-            <menuitem>
-              <label>Uninstall extension</label>
-              <help>Removes installed GRASS AddOns extension.</help>
-              <keywords>general,installation,extensions</keywords>
-              <handler>OnUninstallExtension</handler>
-              <command>g.extension</command>
-            </menuitem>
-	  </items>
-	</menu>
-        <separator />
-        <menuitem>
-          <label>Preferences</label>
-          <help>User GUI preferences (display font, commands, digitizer, etc.)</help>
-          <handler>OnPreferences</handler>
-          <id>ID_PREFERENCES</id>
-        </menuitem>
-      </items>
-    </menu>
-    <menu>
-      <label>&Raster</label>
-      <items>
-        <menu>
-          <label>Develop raster map</label>
-          <items>
-            <menuitem>
-              <label>Compress/decompress</label>
-              <help>Compresses and decompresses raster maps.</help>
-              <keywords>raster,map management</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.compress</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Region boundaries</label>
-              <help>Sets the boundary definitions for a raster map.</help>
-              <keywords>raster,metadata</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.region</command>
-            </menuitem>
-            <menuitem>
-              <label>Manage NULL values</label>
-              <help>Manages NULL-values of given raster map.</help>
-              <keywords>raster,null data</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.null</command>
-            </menuitem>
-            <menuitem>
-              <label>Quantization</label>
-              <help>Produces the quantization file for a floating-point map.</help>
-              <keywords>raster,quantization,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.quant</command>
-            </menuitem>
-            <menuitem>
-              <label>Timestamp</label>
-              <help>Modifies a timestamp for a raster map.</help>
-              <keywords>raster,metadata,timestamp</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.timestamp</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Resample using aggregate statistics</label>
-              <help>Resamples raster map layers to a coarser grid using aggregation.</help>
-              <keywords>raster,resample</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resamp.stats</command>
-            </menuitem>
-            <menuitem>
-              <label>Resample using multiple methods</label>
-              <help>Resamples raster map layers to a finer grid using interpolation.</help>
-              <keywords>raster,resample</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resamp.interp</command>
-            </menuitem>
-            <menuitem>
-              <label>Resample using nearest neighbor</label>
-              <help>GRASS raster map layer data resampling capability.</help>
-              <keywords>raster,resample</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resample</command>
-            </menuitem>
-            <menuitem>
-              <label>Resample using spline tension</label>
-              <help>Reinterpolates and optionally computes topographic analysis from input raster map to a new raster map (possibly with different resolution) using regularized spline with tension and smoothing.</help>
-              <keywords>raster,resample</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resamp.rst</command>
-            </menuitem>
-            <menuitem>
-              <label>Resample using bspline</label>
-              <help>Performs bicubic or bilinear spline interpolation with Tykhonov regularization.</help>
-              <keywords>raster,surface,resample,interpolation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resamp.bspline</command>
-            </menuitem>
-            <menuitem>
-              <label>Resample using analytic kernel</label>
-              <help>Resamples raster map layers using an analytic kernel.</help>
-              <keywords>raster,resample</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.resamp.filter</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Support file maintenance</label>
-              <help>Allows creation and/or modification of raster map layer support files.</help>
-              <keywords>raster,metadata</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.support</command>
-            </menuitem>
-            <menuitem>
-              <label>Update map statistics</label>
-              <help>Update raster map statistics</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.support.stats</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Reproject raster map</label>
-              <help>Re-projects a raster map from given location to the current location.</help>
-              <keywords>raster,projection,transformation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.proj</command>
-            </menuitem>
-            <menuitem>
-              <label>Tiling</label>
-              <help>Produces tilings of the source projection for use in the destination region and projection.</help>
-              <keywords>raster,tiling</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.tileset</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Manage colors</label>
-          <items>
-            <menuitem>
-              <label>Color tables</label>
-              <help>Creates/modifies the color table associated with a raster map.</help>
-              <keywords>raster,color table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.colors</command>
-            </menuitem>
-            <menuitem>
-              <label>Color tables (stddev)</label>
-              <help>Sets color rules based on stddev from a raster map's mean value.</help>
-              <keywords>raster,color table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.colors.stddev</command>
-            </menuitem>
-            <menuitem>
-              <label>Manage color rules interactively</label>
-              <help>Interactive management of raster color tables.</help>
-              <keywords>raster,color table</keywords>
-              <handler>OnRasterRules</handler>
-            </menuitem>
-            <menuitem>
-              <label>Export color table</label>
-              <help>Exports the color table associated with a raster map.</help>
-              <keywords>raster,color table,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.colors.out</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Blend 2 color rasters</label>
-              <help>Blends color components of two raster maps by a given ratio.</help>
-              <keywords>raster,composite</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.blend</command>
-            </menuitem>
-            <menuitem>
-              <label>Create RGB</label>
-              <help>Combines red, green and blue raster maps into a single composite raster map.</help>
-              <keywords>raster,composite</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.composite</command>
-            </menuitem>
-            <menuitem>
-              <label>RGB to HIS</label>
-              <help>Generates red, green and blue raster map layers combining hue, intensity and saturation (HIS) values from user-specified input raster map layers.</help>
-              <keywords>raster,color transformation,RGB,HIS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.his</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Query raster maps</label>
-          <items>
-        <menuitem>
-          <label>Query values by coordinates</label>
-          <help>Queries raster maps on their category values and category labels.</help>
-          <keywords>raster,querying,position</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.what</command>
-        </menuitem>
-        <menuitem>
-          <label>Query colors by value</label>
-          <help>Queries colors for a raster map layer.</help>
-          <keywords>raster,querying,color table</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.what.color</command>
-        </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Map type conversions</label>
-          <items>
-            <menuitem>
-              <label>Raster to vector</label>
-              <help>Converts a raster map into a vector map.</help>
-              <keywords>raster,conversion,geometry,vectorization</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.vect</command>
-            </menuitem>
-            <menuitem>
-              <label>Raster series to volume</label>
-              <help>Converts 2D raster map slices to one 3D raster volume map.</help>
-              <keywords>raster,conversion,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.rast3</command>
-            </menuitem>
-            <menuitem>
-              <label>Raster 2.5D to volume</label>
-              <help>Creates a 3D volume map based on 2D elevation and value raster maps.</help>
-              <keywords>raster,conversion,raster3d,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.to.rast3elev</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>Buffer rasters</label>
-          <help>Creates a raster map showing buffer zones surrounding cells that contain non-NULL category values.</help>
-          <keywords>raster,buffer</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.buffer</command>
-        </menuitem>
-        <menuitem>
-          <label>Concentric circles</label>
-          <help>Creates a raster map containing concentric rings around a given point.</help>
-          <keywords>raster,geometry</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.circle</command>
-        </menuitem>
-        <menuitem>
-          <label>Closest points</label>
-          <help>Locates the closest points between objects in two raster maps.</help>
-          <keywords>raster,distance</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.distance</command>
-        </menuitem>
-        <menuitem>
-          <label>Mask</label>
-          <help>Creates a MASK for limiting raster operation.</help>
-          <keywords>raster,mask</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.mask</command>
-        </menuitem>
-        <menuitem>
-          <label>Raster map calculator</label>
-          <help>Raster map calculator.</help>
-          <keywords>raster,algebra</keywords>
-          <handler>OnMapCalculator</handler>
-          <command>r.mapcalc</command>
-        </menuitem>
-        <menu>
-          <label>Neighborhood analysis</label>
-          <items>
-            <menuitem>
-              <label>Moving window</label>
-              <help>Makes each cell category value a function of the category values assigned to the cells around it, and stores new cell values in an output raster map layer.</help>
-              <keywords>raster,algebra,statistics,aggregation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.neighbors</command>
-            </menuitem>
-            <menuitem>
-              <label>Neighborhood points</label>
-              <help>Neighborhood analysis tool for vector point maps.</help>
-              <keywords>vector,algebra,statistics,raster,aggregation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.neighbors</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Overlay rasters</label>
-          <items>
-            <menuitem>
-              <label>Cross product</label>
-              <help>Creates a cross product of the category values from multiple raster map layers.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.cross</command>
-            </menuitem>
-            <menuitem>
-              <label>Raster series</label>
-              <help>Makes each output cell value a function of the values assigned to the corresponding cells in the input raster map layers.</help>
-              <keywords>raster,aggregation,series</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.series</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch raster maps</label>
-              <help>Creates a composite raster map layer by using known category values from one (or more) map layer(s) to fill in areas of "no data" in another map layer.</help>
-              <keywords>raster,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.patch</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Statistical overlay</label>
-              <help>Calculates category or object oriented statistics (accumulator-based statistics).</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.statistics2</command>
-            </menuitem>
-            <menuitem>
-              <label>Quantiles overlay</label>
-              <help>Compute category quantiles using two passes.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.statistics3</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Solar radiance and shadows</label>
-          <items>
-            <menuitem>
-              <label>Solar irradiance and irradiation</label>
-              <help>Solar irradiance and irradiation model.</help>
-              <keywords>raster,solar,sun energy</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.sun</command>
-            </menuitem>
-            <menuitem>
-              <label>Shadows map</label>
-              <help>Calculates cast shadow areas from sun position and elevation raster map.</help>
-              <keywords>raster,solar,sun position</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.sunmask</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Terrain analysis</label>
-          <items>
-            <menuitem>
-              <label>Generate contour lines</label>
-              <help>Produces a vector map of specified contours from a raster map.</help>
-              <keywords>raster,surface,contours,vector</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.contour</command>
-            </menuitem>
-            <menuitem>
-              <label>Cost surface</label>
-              <help>Creates a raster map showing the cumulative cost of moving between different geographic locations on an input raster map whose cell category values represent cost.</help>
-              <keywords>raster,cost surface,cumulative costs</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.cost</command>
-            </menuitem>
-            <menuitem>
-              <label>Cumulative movement costs</label>
-              <help>Outputs a raster map showing the anisotropic cumulative cost.</help>
-              <keywords>raster,cost surface,cumulative costs</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.walk</command>
-            </menuitem>
-            <menuitem>
-              <label>Least cost route or flow</label>
-              <help>Traces a flow through an elevation model or cost surface on a raster map.</help>
-              <keywords>raster,hydrology,cost surface</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.drain</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Shaded relief</label>
-              <help>Creates shaded relief map from an elevation map (DEM).</help>
-              <keywords>raster,terrain</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.shaded.relief2</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Slope and aspect</label>
-              <help>Generates raster maps of slope, aspect, curvatures and partial derivatives from a elevation raster map.</help>
-              <keywords>raster,terrain</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.slope.aspect</command>
-            </menuitem>
-            <menuitem>
-              <label>Terrain parameters</label>
-              <help>Extracts terrain parameters from a DEM.</help>
-              <keywords>raster,geomorphology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.param.scale</command>
-            </menuitem>
-            <menuitem>
-              <label>Textural features</label>
-              <help>Generate images with textural features from a raster map.</help>
-              <keywords>raster,algebra,statistics,texture</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.texture</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Visibility</label>
-              <help>Computes the viewshed of a point on an elevation raster map.</help>
-              <keywords>raster,viewshed,line of sight</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.viewshed</command>
-            </menuitem>
-            <menuitem>
-              <label>Visibility [DEPRECATED]</label>
-              <help>Line-of-sight raster analysis program.</help>
-              <keywords>raster,viewshed</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.los</command>
-            </menuitem>
-            <menuitem>
-              <label>Distance to features</label>
-              <help>Generates a raster map of distance to features in input raster map.</help>
-              <keywords>raster,distance</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.grow.distance</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Horizon angle</label>
-              <help>Horizon angle computation from a digital elevation model.</help>
-              <keywords>raster,solar,sun position</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.horizon</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Transform features</label>
-          <items>
-            <menuitem>
-              <label>Clump</label>
-              <help>Recategorizes data in a raster map by grouping cells that form physically discrete areas into unique categories.</help>
-              <keywords>raster,statistics,reclass</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.clump</command>
-            </menuitem>
-            <menuitem>
-              <label>Grow</label>
-              <help>Generates a raster map layer with contiguous areas grown by one cell.</help>
-              <keywords>raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.grow</command>
-            </menuitem>
-            <menuitem>
-              <label>Thin</label>
-              <help>Thins non-zero cells that denote linear features in a raster map layer.</help>
-              <keywords>raster,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.thin</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Hydrologic modeling</label>
-          <items>
-            <menuitem>
-              <label>Carve stream channels</label>
-              <help>Generates stream channels.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.carve</command>
-            </menuitem>
-            <menuitem>
-              <label>Fill lake</label>
-              <help>Fills lake at given point to given level.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.lake</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Depressionless map and flowlines</label>
-              <help>Filters and generates a depressionless elevation map and a flow direction map from a given elevation raster map.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.fill.dir</command>
-            </menuitem>
-            <menuitem>
-              <label>Flow accumulation</label>
-              <help>Flow computation for massive grids (float version).</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.terraflow</command>
-            </menuitem>
-            <menuitem>
-              <label>Flow lines</label>
-              <help>Constructs flowlines.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.flow</command>
-            </menuitem>
-            <menuitem>
-              <label>Watershed analysis</label>
-              <help>Calculates hydrological parameters and RUSLE factors.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.watershed</command>
-            </menuitem>
-            <menuitem>
-              <label>Watershed subbasins</label>
-              <help>Generates watershed subbasins raster map.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.basins.fill</command>
-            </menuitem>
-            <menuitem>
-              <label>Watershed basin creation</label>
-              <help>Creates watershed basins.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.water.outlet</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>SIMWE Overland flow modeling</label>
-              <help>Overland flow hydrologic simulation using path sampling method (SIMWE).</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.sim.water</command>
-            </menuitem>
-            <menuitem>
-              <label>SIMWE Sediment flux modeling</label>
-              <help>Sediment transport and erosion/deposition simulation using path sampling method (SIMWE).</help>
-              <keywords>raster,hydrology,sediment flow,erosion,deposition</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.sim.sediment</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Topographic index map</label>
-              <help>Creates topographic index map from elevation raster map.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.topidx</command>
-            </menuitem>
-            <menuitem>
-              <label>TOPMODEL simulation</label>
-              <help>Simulates TOPMODEL which is a physically based hydrologic model.</help>
-              <keywords>raster,hydrology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.topmodel</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>USLE K-factor</label>
-              <help>Computes USLE Soil Erodibility Factor (K).</help>
-              <keywords>raster,hydrology,soil,erosion</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.uslek</command>
-            </menuitem>
-            <menuitem>
-              <label>USLE R-factor</label>
-              <help>Computes USLE R factor, Rainfall erosivity index.</help>
-              <keywords>raster,hydrology,rainfall,erosion</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.usler</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Groundwater modeling</label>
-          <items>
-        <menuitem>
-          <label>Groundwater flow</label>
-          <help>Numerical calculation program for transient, confined and unconfined groundwater flow in two dimensions.</help>
-          <keywords>raster,groundwater flow,hydrology</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.gwflow</command>
-        </menuitem>
-        <menuitem>
-          <label>Groundwater solute transport</label>
-          <help>Numerical calculation program for transient, confined and unconfined solute transport in two dimensions</help>
-          <keywords>raster,hydrology,solute transport</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r.solute.transport</command>
-        </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Landscape structure modeling</label>
-          <items>
-
-            <menuitem>
-              <label>Analyze landscape</label>
-              <help>Contains a set of measures for attributes, diversity, texture, juxtaposition, and edge.</help>
-              <keywords>raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.le.pixel</command>
-            </menuitem>
-            <menuitem>
-              <label>Analyze patches</label>
-              <help>Calculates attribute, patch size, core (interior) size, shape, fractal dimension, and perimeter measures for sets of patches in a landscape.</help>
-              <keywords>raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.le.patch</command>
-            </menuitem>
-
-          </items>
-        </menu>
-        <menu>
-          <label>Landscape patch analysis</label>
-          <items>
-            <menuitem>
-              <label>Set up sampling and analysis framework</label>
-              <help>Configuration editor for r.li.'index'</help>
-              <keywords>raster,landscape structure analysis</keywords>
-              <handler>OnRLiSetup</handler>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Edge density</label>
-              <help>Calculates edge density index on a raster map, using a 4 neighbour algorithm</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.edgedensity</command>
-            </menuitem>
-            <menuitem>
-              <label>Contrast weighted edge density</label>
-              <help>Calculates contrast weighted edge density index on a raster map</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.cwed</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Patch area mean</label>
-              <help>Calculates mean patch size index on a raster map, using a 4 neighbour algorithm</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.mps</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch area range</label>
-              <help>Calculates range of patch area size on a raster map</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.padrange</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch area Std Dev</label>
-              <help>Calculates standard deviation of patch area a raster map</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.padsd</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch area Coeff Var</label>
-              <help>Calculates coefficient of variation of patch area on a raster map</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.padcv</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch density</label>
-              <help>Calculates patch density index on a raster map, using a 4 neighbour algorithm</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.patchdensity</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch number</label>
-              <help>Calculates patch number index on a raster map, using a 4 neighbour algorithm.</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.patchnum</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Dominance's diversity</label>
-              <help>Calculates dominance's diversity index on a raster map</help>
-              <keywords>raster,landscape structure analysis,diversity index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.dominance</command>
-            </menuitem>
-            <menuitem>
-              <label>Shannon's diversity</label>
-              <help>Calculates Shannon's diversity index on a raster map</help>
-              <keywords>raster,landscape structure analysis,diversity index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.shannon</command>
-            </menuitem>
-            <menuitem>
-              <label>Simpson's diversity</label>
-              <help>Calculates Simpson's diversity index on a raster map</help>
-              <keywords>raster,landscape structure analysis,diversity index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.simpson</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Richness</label>
-              <help>Calculates dominance's diversity index on a raster map</help>
-              <keywords>raster,landscape structure analysis,dominance index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.richness</command>
-            </menuitem>
-            <menuitem>
-              <label>Shape index</label>
-              <help>Calculates shape index on a raster map</help>
-              <keywords>raster,landscape structure analysis,patch index</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.li.shape</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Wildfire modeling</label>
-          <items>
-            <menuitem>
-              <label>Rate of spread</label>
-              <help>Generates rate of spread raster map layers.</help>
-              <keywords>raster,fire</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.ros</command>
-            </menuitem>
-            <menuitem>
-              <label>Least-cost spread paths</label>
-              <help>Recursively traces the least cost path backwards to cells from which the cumulative cost was determined.</help>
-              <keywords>raster,fire,cumulative costs</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.spreadpath</command>
-            </menuitem>
-            <menuitem>
-              <label>Anisotropic spread simulation</label>
-              <help>Simulates elliptically anisotropic spread on a graphics window and generates a raster map of the cumulative time of spread, given raster maps containing the rates of spread (ROS), the ROS directions and the spread origins.</help>
-              <keywords>raster,fire</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.spread</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Change category values and labels</label>
-          <items>
-            <menuitem>
-              <label>Interactively edit category values</label>
-              <help>Edits cell values in a raster map.</help>
-              <keywords>display,editing,raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>d.rast.edit</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Reclassify by size</label>
-              <help>Reclasses a raster map greater or less than user specified area size (in hectares).</help>
-              <keywords>raster,statistics,aggregation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.reclass.area</command>
-            </menuitem>
-            <menuitem>
-              <label>Reclassify</label>
-              <help>Reclassify raster map based on category values.</help>
-              <keywords>raster,reclassification</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.reclass</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Recode</label>
-              <help>Recodes categorical raster maps.</help>
-              <keywords>raster,recode categories</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.recode</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Rescale</label>
-              <help>Rescales the range of category values in a raster map layer.</help>
-              <keywords>raster,rescale</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.rescale</command>
-            </menuitem>
-            <menuitem>
-              <label>Rescale with histogram</label>
-              <help>Rescales histogram equalized the range of category values in a raster map layer.</help>
-              <keywords>raster,rescale</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.rescale.eq</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Generate random cells</label>
-          <items>
-            <menuitem>
-              <label>Random cells</label>
-              <help>Generates random cell values with spatial dependence.</help>
-              <keywords>raster,sampling,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.random.cells</command>
-            </menuitem>
-            <menuitem>
-              <label>Random cells and vector points</label>
-              <help>Creates a raster map layer and vector point map containing randomly located points.</help>
-              <keywords>raster,sampling,vector,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.random</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Generate surfaces</label>
-          <items>
-            <menuitem>
-              <label>Fractal surface</label>
-              <help>Creates a fractal surface of a given fractal dimension.</help>
-              <keywords>raster,surface,fractal</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.fractal</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Gaussian kernel density surface</label>
-              <help>Generates a raster density map from vector points map.</help>
-              <keywords>vector,kernel density</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.kernel</command>
-            </menuitem>
-            <menuitem>
-              <label>Gaussian deviates surface</label>
-              <help>Generates a raster map using gaussian random number generator.</help>
-              <keywords>raster,surface,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.gauss</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Plane</label>
-              <help>Creates raster plane map given dip (inclination), aspect (azimuth) and one point.</help>
-              <keywords>raster,elevation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.plane</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Random deviates surface</label>
-              <help>Produces a raster map of uniform random deviates whose range can be expressed by the user.</help>
-              <keywords>raster,surface,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.random</command>
-            </menuitem>
-            <menuitem>
-              <label>Random surface with spatial dependence</label>
-              <help>Generates random surface(s) with spatial dependence.</help>
-              <keywords>raster,surface,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.random.surface</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Interpolate surfaces</label>
-          <items>
-            <menuitem>
-              <label>Bilinear and bicubic from vector points</label>
-              <help>Performs bicubic or bilinear spline interpolation with Tykhonov regularization.</help>
-              <keywords>vector,surface,interpolation,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.surf.bspline</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>IDW from raster points</label>
-              <help>Surface interpolation utility for raster map.</help>
-              <keywords>raster,surface,interpolation,IDW</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.idw</command>
-            </menuitem>
-            <menuitem>
-              <label>IDW from raster points (alternate method for sparse points)</label>
-              <help>Surface generation program.</help>
-              <keywords>raster,surface,interpolation,IDW</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.idw2</command>
-            </menuitem>
-            <menuitem>
-              <label>IDW from vector points</label>
-              <help>Surface interpolation from vector point data by Inverse Distance Squared Weighting.</help>
-              <keywords>vector,surface,interpolation,IDW</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.surf.idw</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Raster contours</label>
-              <help>Generates surface raster map from rasterized contours.</help>
-              <keywords>raster,surface,interpolation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.contour</command>
-            </menuitem>
-            <menuitem>
-              <label>Regularized spline tension</label>
-              <help>Spatial approximation and topographic analysis from given point or isoline data in vector format to floating point raster format using regularized spline with tension.</help>
-              <keywords>vector,surface,interpolation,RST</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.surf.rst</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Ordinary or block kriging</label>
-              <help>Performs ordinary or block kriging.</help>
-              <keywords>vector,raster,interpolation,kriging</keywords>
-              <handler>RunMenuCmd</handler>
-              <command>v.krige</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Fill NULL cells</label>
-              <help>Fills no-data areas in raster maps using spline interpolation.</help>
-              <keywords>raster,elevation,interpolation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.fillnulls</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Report and statistics</label>
-          <items>
-            <menuitem>
-              <label>Basic raster metadata</label>
-              <help>Outputs basic information about a raster map.</help>
-              <keywords>raster,metadata,history</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.info</command>
-            </menuitem>
-            <menuitem>
-              <label>Manage category information</label>
-              <help>Manages category values and labels associated with user-specified raster map layers.</help>
-              <keywords>raster,category</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.category</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>General statistics</label>
-              <help>Generates area statistics for raster map layers.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.stats</command>
-            </menuitem>
-            <menuitem>
-              <label>Quantiles for large data sets</label>
-              <help>Compute quantiles using two passes.</help>
-              <keywords>raster,algebra,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.quantile</command>
-            </menuitem>
-            <menuitem>
-              <label>Range of category values</label>
-              <help>Prints terse list of category values found in a raster map layer.</help>
-              <keywords>raster,metadata</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.describe</command>
-            </menuitem>
-            <menuitem>
-              <label>Sum area by raster map and category</label>
-              <help>Reports statistics for raster maps.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.report</command>
-            </menuitem>
-            <menuitem>
-              <label>Statistics for clumped cells</label>
-              <help>Calculates the volume of data "clumps", and (optionally) produces a GRASS vector points map containing the calculated centroids of these clumps.</help>
-              <keywords>raster,volume</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.volume</command>
-            </menuitem>
-            <menuitem>
-              <label>Total corrected area</label>
-              <help>Prints estimation of surface area for raster map.</help>
-              <keywords>raster,surface,statistics,area estimation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.surf.area</command>
-            </menuitem>
-            <menuitem>
-              <label>Univariate raster statistics</label>
-              <help>Calculates univariate statistics from the non-null cells of a raster map.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.univar</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Sample transects</label>
-              <help>Outputs the raster map layer values lying on user-defined line(s).</help>
-              <keywords>raster,profile</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.profile</command>
-            </menuitem>
-            <menuitem>
-              <label>Sample transects (bearing/distance)</label>
-              <help>Outputs raster map layer values lying along user defined transect line(s).</help>
-              <keywords>raster,transect</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.transect</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Covariance/correlation</label>
-              <help>Outputs a covariance/correlation matrix for user-specified raster map layer(s).</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.covar</command>
-            </menuitem>
-            <menuitem>
-              <label>Linear regression</label>
-              <help>Calculates linear regression from two raster maps: y = a + b*x.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.regression.line</command>
-            </menuitem>
-            <menuitem>
-              <label>Mutual category occurrences</label>
-              <help>Tabulates the mutual occurrence (coincidence) of categories for two raster map layers.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.coin</command>
-            </menuitem>
-          </items>
-        </menu>
-      </items>
-    </menu>
-    <menu>
-      <label>&Vector</label>
-      <items>
-        <menu>
-          <label>Develop vector map</label>
-          <items>
-            <menuitem>
-              <label>Create new vector map</label>
-              <help>Create new empty vector map</help>
-              <handler>OnNewVector</handler>
-            </menuitem>
-            <menuitem>
-              <label>Edit vector map (non-interactively)</label>
-              <help>Edits a vector map, allows adding, deleting and modifying selected vector features.</help>
-              <keywords>vector,geometry,editing</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.edit</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Convert object types</label>
-              <help>Changes type of vector features.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.type</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Parallel lines</label>
-              <help>Creates parallel line to input vector lines.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.parallel</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Dissolve boundaries</label>
-              <help>Dissolves boundaries between adjacent areas sharing a common category number or attribute.</help>
-              <keywords>vector,dissolve,area</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.dissolve</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Create 3D vector over raster</label>
-              <help>Converts vector map to 3D by sampling of elevation raster map.</help>
-              <keywords>vector,geometry,sampling,3D</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.drape</command>
-            </menuitem>
-            <menuitem>
-              <label>Extrude 3D vector map</label>
-              <help>Extrudes flat vector features to 3D with defined height.</help>
-              <keywords>vector,geometry,3D</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.extrude</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Create labels</label>
-              <help>Creates paint labels for a vector map from attached attributes.</help>
-              <keywords>vector,paint labels</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.label</command>
-            </menuitem>
-            <menuitem>
-              <label>Create optimally placed labels</label>
-              <help>Create optimally placed labels for vector map(s)</help>
-              <keywords>vector,paint labels</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.label.sa</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Reposition vector map</label>
-              <help>Performs an affine transformation (shift, scale and rotate, or GPCs) on vector map.</help>
-              <keywords>vector,transformation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.transform</command>
-            </menuitem>
-            <menuitem>
-              <label>Rectify vector map</label>
-              <help>Rectifies a vector by computing a coordinate transformation for each object in the vector based on the control points.</help>
-              <keywords>vector,rectify</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.rectify</command>
-            </menuitem>
-            <menuitem>
-              <label>Reproject vector map</label>
-              <help>Re-projects a vector map from one location to the current location.</help>
-              <keywords>vector,projection,transformation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.proj</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Support file maintenance</label>
-              <help>Updates vector map metadata.</help>
-              <keywords>vector,metadata</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.support</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Topology maintenance</label>
-          <items>
-            <menuitem>
-              <label>Create or rebuild topology</label>
-              <help>Creates topology for vector map.</help>
-              <keywords>vector,topology,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.build</command>
-            </menuitem>
-            <menuitem>
-              <label>Rebuild topology on all vector maps</label>
-              <help>Rebuilds topology on all vector maps in the current mapset.</help>
-              <keywords>vector,topology</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.build.all</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Build polylines</label>
-              <help>Builds polylines from lines or boundaries.</help>
-              <keywords>vector,topology,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.build.polylines</command>
-            </menuitem>
-            <menuitem>
-              <label>Split lines</label>
-              <help>Splits vector lines to shorter segments.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.split</command>
-            </menuitem>
-            <menuitem>
-              <label>Split polylines</label>
-              <help>Creates points/segments from input vector lines and positions.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.segment</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Clean vector map</label>
-              <help>Toolset for cleaning topology of vector map.</help>
-              <keywords>vector,topology,geometry</keywords>
-              <handler>OnVectorCleaning</handler>
-              <command>v.clean</command>
-            </menuitem>
-            <menuitem>
-              <label>Smooth or simplify</label>
-              <help>Performs vector based generalization.</help>
-              <keywords>vector,generalization,simplification,smoothing,displacement,network generalization</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.generalize</command>
-            </menuitem>
-            <menuitem>
-              <label>Add centroids</label>
-              <help>Adds missing centroids to closed boundaries.</help>
-              <keywords>vector,centroid,area</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.centroids</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Manage colors</label>
-          <items>
-            <menuitem>
-              <label>Color tables</label>
-              <help>Creates/modifies the color table associated with a vector map.</help>
-              <keywords>vector,color table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.colors</command>
-            </menuitem>
-            <menuitem>
-              <label>Manage color rules interactively</label>
-              <help>Interactive management of vector color tables.</help>
-              <keywords>vector,color table</keywords>
-              <handler>OnVectorRules</handler>
-            </menuitem>
-            <menuitem>
-              <label>Export color table</label>
-              <help>Exports the color table associated with a vector map.</help>
-              <keywords>vector,color table,export</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.colors.out</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Query vector map</label>
-          <items>
-            <menuitem>
-              <label>Query with coordinate(s)</label>
-              <help>Queries a vector map at given locations.</help>
-              <keywords>vector,querying,position</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.what</command>
-            </menuitem>
-            <menuitem>
-              <label>Query vector attribute data</label>
-              <help>Prints vector map attributes.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.select</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Feature selection</label>
-          <items>
-            <menuitem>
-              <label>Select by attributes</label>
-              <help>Selects vector features from an existing vector map and creates a new vector map containing only the selected features.</help>
-              <keywords>vector,extract</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.extract</command>
-            </menuitem>
-            <menuitem>
-              <label>Select by another map</label>
-              <help>Selects features from vector map (A) by features from other vector map (B).</help>
-              <keywords>vector,geometry,spatial query</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.select</command>
-            </menuitem>
-          </items>
-         </menu>
-         <menu>
-          <label>Map type conversions</label>
-          <items>
-            <menuitem>
-              <label>Vector to raster</label>
-              <help>Converts (rasterize) a vector map into a raster map.</help>
-              <keywords>vector,conversion,raster,rasterization</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.rast</command>
-            </menuitem>
-            <menuitem>
-              <label>Vector to volume</label>
-              <help>Converts a vector map (only points) into a 3D raster map.</help>
-              <keywords>vector,conversion,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.rast3</command>
-            </menuitem>
-            <menuitem>
-              <label>2D vector to 3D vector</label>
-              <help>Performs transformation of 2D vector features to 3D.</help>
-              <keywords>vector,geometry,3D</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.3d</command>
-            </menuitem>
-            <menuitem>
-              <label>Sites to vector</label>
-              <help>Converts a GRASS site_lists file into a vector map.</help>
-              <keywords>vector,import,sites</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.sites</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>Buffer vectors</label>
-          <help>Creates a buffer around vector features of given type.</help>
-          <keywords>vector,buffer,geometry</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>v.buffer</command>
-        </menuitem>
-        <menu>
-          <label>Lidar analysis</label>
-          <items>
-            <menuitem>
-              <label>Identify and remove outliers</label>
-              <help>Removes outlier points from a LIDAR data set.</help>
-              <keywords>vector,LIDAR,outliers</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.outlier</command>
-            </menuitem>
-            <menuitem>
-              <label>Detect edges</label>
-              <help>Detects the object's edges from a LIDAR data set.</help>
-              <keywords>vector,LIDAR,edges</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lidar.edgedetection</command>
-            </menuitem>
-            <menuitem>
-              <label>Detect interiors</label>
-              <help>Building contour determination and Region Growing algorithm for determining the building inside</help>
-              <keywords>vector,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lidar.growing</command>
-            </menuitem>
-            <menuitem>
-              <label>Correct and reclassify objects</label>
-              <help>Correction of the v.lidar.growing output. It is the last of the three algorithms for LIDAR filtering.</help>
-              <keywords>vector,LIDAR</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lidar.correction</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Linear referencing</label>
-          <items>
-            <menuitem>
-              <label>Create LRS</label>
-              <help>Creates a linear reference system.</help>
-              <keywords>vector,Linear Reference System,networking</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lrs.create</command>
-            </menuitem>
-            <menuitem>
-              <label>Create stationing</label>
-              <help>Creates stationing from input lines, and linear reference system.</help>
-              <keywords>vector,Linear Reference System,networking</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lrs.label</command>
-            </menuitem>
-            <menuitem>
-              <label>Create points/segments</label>
-              <help>Creates points/segments from input lines, linear reference system and positions read from stdin or a file.</help>
-              <keywords>vector,Linear Reference System,networking</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lrs.segment</command>
-            </menuitem>
-            <menuitem>
-              <label>Find line id and offset</label>
-              <help>Finds line id and real km+offset for given points in vector map using linear reference system.</help>
-              <keywords>vector,Linear Reference System,networking</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.lrs.where</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menuitem>
-          <label>Nearest features</label>
-          <help>Finds the nearest element in vector map 'to' for elements in vector map 'from'.</help>
-          <keywords>vector,distance,database,attribute table</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>v.distance</command>
-        </menuitem>
-        <menu>
-          <label>Network analysis</label>
-          <items>
-           <menuitem>
-              <label>Vector network analysis tool</label>
-              <help>Tool for interactive vector network analysis.</help>
-              <keywords>gui,vector,network</keywords>
-              <handler>OnVNet</handler>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Network preparation</label>
-              <help>Performs network maintenance.</help>
-              <keywords>vector,network,maintenance</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Allocate subnets</label>
-              <help>Allocate subnets for nearest centers (direction from center).</help>
-              <keywords>vector,network,allocation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.alloc</command>
-            </menuitem>
-            <menuitem>
-              <label>Split net</label>
-              <help>Splits net by cost isolines.</help>
-              <keywords>vector,network,isolines</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.iso</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Shortest path</label>
-              <help>Finds shortest path on vector network.</help>
-              <keywords>vector,network,shortest path</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.path</command>
-            </menuitem>
-            <menuitem>
-              <label>Shortest path for sets of features</label>
-              <help>Computes shortest distance via the network between the given sets of features.</help>
-              <keywords>vector,network,shortest path</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.distance</command>
-            </menuitem>
-            <menuitem>
-              <label>Shortest path using timetables</label>
-              <help>Finds shortest path using timetables.</help>
-              <keywords>vector,network,shortest path</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.timetable</command>
-            </menuitem>
-            <menuitem>
-              <label>Shortest path for all pairs</label>
-              <help>Computes the shortest path between all pairs of nodes in the network.</help>
-              <keywords>vector,network,shortest path</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.allpairs</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Visibility network</label>
-              <help>Visibility graph construction.</help>
-              <keywords>vector,network,path,visibility</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.visibility</command>
-            </menuitem>
-            <menuitem>
-              <label>Bridges and articulation points</label>
-              <help>Computes bridges and articulation points in the network.</help>
-              <keywords>vector,network,articulation points</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.bridge</command>
-            </menuitem>
-            <menuitem>
-              <label>Maximum flow</label>
-              <help>Computes the maximum flow between two sets of nodes in the network.</help>
-              <keywords>vector,network,flow</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.flow</command>
-            </menuitem>
-            <menuitem>
-              <label>Vertex connectivity</label>
-              <help>Computes vertex connectivity between two sets of nodes in the network.</help>
-              <keywords>vector,network,connectivity</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.connectivity</command>
-            </menuitem>
-            <menuitem>
-              <label>Components</label>
-              <help>Computes strongly and weakly connected components in the network.</help>
-              <keywords>vector,network,components</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.components</command>
-            </menuitem>
-            <menuitem>
-              <label>Centrality</label>
-              <help>Computes degree, centrality, betweeness, closeness and eigenvector centrality measures in the network.</help>
-              <keywords>vector,network,centrality measures</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.centrality</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Steiner tree</label>
-              <help>Create Steiner tree for the network and given terminals</help>
-              <keywords>vector,network,steiner tree</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.steiner</command>
-            </menuitem>
-            <menuitem>
-              <label>Minimum spanning tree</label>
-              <help>Computes minimum spanning tree for the network.</help>
-              <keywords>vector,network,spanning tree</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.spanningtree</command>
-            </menuitem>
-            <menuitem>
-              <label>Traveling salesman analysis</label>
-              <help>Creates a cycle connecting given nodes (Traveling salesman problem).</help>
-              <keywords>vector,network,salesman</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.net.salesman</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Overlay vector maps</label>
-          <items>
-            <menuitem>
-              <label>Overlay vector maps</label>
-              <help>Overlays two vector maps.</help>
-              <keywords>vector,geometry,spatial query</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.overlay</command>
-            </menuitem>
-            <menuitem>
-              <label>Patch vector maps</label>
-              <help>Creates a new vector map by combining other vector maps.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.patch</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Manage categories</label>
-          <items>
-            <menuitem>
-              <label>Change or report categories</label>
-              <help>Attaches, deletes or reports vector categories to map geometry.</help>
-              <keywords>vector,category</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.category</command>
-            </menuitem>
-            <menuitem>
-              <label>Reclassify</label>
-              <help>Changes vector category values for an existing vector map according to results of SQL queries or a value in attribute table column.</help>
-              <keywords>vector,reclassification,attributes</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.reclass</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Update attributes</label>
-          <items>
-            <menuitem>
-              <label>Update area attributes from raster</label>
-              <help>Calculates univariate statistics from a raster map based on vector polygon map and uploads statistics to new attribute columns.</help>
-              <keywords>vector,statistics,raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.rast.stats</command>
-            </menuitem>
-            <menuitem>
-              <label>Update area attributes from vector</label>
-              <help>Count points in areas, calculate statistics from point attributes.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.vect.stats</command>
-            </menuitem>
-            <menuitem>
-              <label>Update point attributes from areas</label>
-              <help>Uploads vector values at positions of vector points to the table.</help>
-              <keywords>vector,sampling,database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.what.vect</command>
-            </menuitem>
-            <menuitem>
-              <label>Update database values from vector</label>
-              <help>Populates attribute values from vector features.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.db</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Sample raster maps at point locations</label>
-              <help>Uploads raster values at positions of vector points to the table.</help>
-              <keywords>vector,sampling,raster,position,querying,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.what.rast</command>
-            </menuitem>
-            <menuitem>
-              <label>Sample raster neighborhood around points</label>
-              <help>Samples a raster map at vector point locations.</help>
-              <keywords>vector,sampling,raster</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.sample</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>Generate area for current region</label>
-          <help>Creates a vector polygon from the current region extent.</help>
-          <keywords>vector,geometry</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>v.in.region</command>
-        </menuitem>
-        <menu>
-          <label>Generate areas from points</label>
-          <items>
-            <menuitem>
-              <label>Convex hull</label>
-              <help>Produces a 2D/3D convex hull for a given vector map.</help>
-              <keywords>vector,geometry,3D</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.hull</command>
-            </menuitem>
-            <menuitem>
-              <label>Delaunay triangles</label>
-              <help>Creates a Delaunay triangulation from an input vector map containing points or centroids.</help>
-              <keywords>vector,geometry,triangulation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.delaunay</command>
-            </menuitem>
-            <menuitem>
-              <label>Voronoi diagram/Thiessen polygons</label>
-              <help>Creates a Voronoi diagram in current region from an input vector map containing points or centroids.</help>
-              <keywords>vector,geometry,triangulation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.voronoi</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menuitem>
-          <label>Generate grid</label>
-          <help>Creates a vector map of a user-defined grid.</help>
-          <keywords>vector,geometry</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>v.mkgrid</command>
-        </menuitem>
-        <menu>
-          <label>Generate points</label>
-          <items>
-            <menuitem>
-              <label>Generate from database</label>
-              <help>Creates new vector (points) map from database table containing coordinates.</help>
-              <keywords>vector,import,database,points</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.in.db</command>
-            </menuitem>
-            <menuitem>
-              <label>Generate points along lines</label>
-              <help>Creates points along input lines in new vector map with 2 layers.</help>
-              <keywords>vector,geometry</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.to.points</command>
-            </menuitem>
-            <menuitem>
-              <label>Generate random points</label>
-              <help>Generates randomly 2D/3D vector points map.</help>
-              <keywords>vector,sampling,statistics,random</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.random</command>
-            </menuitem>
-            <menuitem>
-              <label>Perturb points</label>
-              <help>Random location perturbations of vector points.</help>
-              <keywords>vector,geometry,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.perturb</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Remove outliers in point sets</label>
-              <help>Removes outliers from vector point data.</help>
-              <keywords>vector,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.outlier</command>
-            </menuitem>
-            <menuitem>
-              <label>Test/training point sets</label>
-              <help>Randomly partition points into test/train sets.</help>
-              <keywords>vector,statistics,points</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.kcv</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Reports and statistics</label>
-          <items>
-            <menuitem>
-              <label>Basic vector metadata</label>
-              <help>Outputs basic information about a vector map.</help>
-              <keywords>vector,metadata,topology,extent,history,attribute columns</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.info</command>
-            </menuitem>
-            <menuitem>
-              <label>Classify attribute data</label>
-              <help>Classifies attribute data, e.g. for thematic mapping</help>
-              <keywords>vector,classification,attribute table,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.class</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Report topology by category</label>
-              <help>Reports geometry statistics for vector maps.</help>
-              <keywords>vector,geometry,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.report</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Univariate attribute statistics for points</label>
-              <help>Calculates univariate statistics for attribute.</help>
-              <keywords>vector,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.univar</command>
-            </menuitem>
-            <menuitem>
-              <label>Univariate statistics for attribute columns</label>
-              <help>Calculates univariate statistics on selected table column for a GRASS vector map.</help>
-              <keywords>vector,statistics,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.univar</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Quadrat indices</label>
-              <help>Indices for quadrat counts of sites lists.</help>
-              <keywords>vector,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.qcount</command>
-            </menuitem>
-            <menuitem>
-              <label>Test normality</label>
-              <help>Tests for normality for vector points.</help>
-              <keywords>vector,statistics,points</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.normal</command>
-            </menuitem>
-          </items>
-        </menu>
-      </items>
-    </menu>
-    <menu>
-      <label>&Imagery</label>
-      <items>
-        <menu>
-          <label>Develop images and groups</label>
-          <items>
-            <menuitem>
-              <label>Create/edit group</label>
-              <help>Creates, edits, and lists groups of imagery files.</help>
-              <keywords>imagery,map management</keywords>
-              <handler>OnEditImageryGroups</handler>
-              <command>i.group</command>
-            </menuitem>
-            <menuitem>
-              <label>Target group</label>
-              <help>Targets an imagery group to a GRASS location and mapset.</help>
-              <keywords>imagery,map management</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.target</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Mosaic images</label>
-              <help>Mosaics several images and extends colormap.</help>
-              <keywords>imagery,geometry,mosaicking</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.image.mosaic</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Manage image colors</label>
-          <items>
-            <menuitem>
-              <label>Color balance for RGB</label>
-              <help>Performs auto-balancing of colors for LANDSAT images.</help>
-              <keywords>imagery,landsat,colors</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.landsat.rgb</command>
-            </menuitem>
-            <menuitem>
-              <label>HIS to RGB</label>
-              <help>Transforms raster maps from HIS (Hue-Intensity-Saturation) color space to RGB (Red-Green-Blue) color space.</help>
-              <keywords>imagery,color transformation,RGB,HIS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.his.rgb</command>
-            </menuitem>
-            <menuitem>
-              <label>RGB to HIS</label>
-              <help>Transforms raster maps from RGB (Red-Green-Blue) color space to HIS (Hue-Intensity-Saturation) color space.</help>
-              <keywords>imagery,color transformation,RGB,HIS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.rgb.his</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>Rectify image or raster</label>
-          <help>Rectifies an image by computing a coordinate transformation for each pixel in the image based on the control points.</help>
-          <keywords>imagery,rectify</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>i.rectify</command>
-        </menuitem>
-        <menuitem>
-          <label>Histogram</label>
-          <help>Generate histogram of image</help>
-          <handler>OnHistogram</handler>
-        </menuitem>
-        <menuitem>
-          <label>Spectral response</label>
-          <help>Displays spectral response at user specified locations in group or images.</help>
-          <keywords>imagery,querying,raster,multispectral</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>i.spectral</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>Pan sharpening</label>
-          <help>Image fusion algorithms to sharpen multispectral with high-res panchromatic channels</help>
-          <keywords>imagery,fusion,sharpen,Brovey,IHS,PCA</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>i.pansharpen</command>
-        </menuitem>
-        <menu>
-          <label>Classify image</label>
-          <items>
-            <menuitem>
-              <label>Clustering input for unsupervised classification</label>
-              <help>Generates spectral signatures for land cover types in an image using a clustering algorithm.</help>
-              <keywords>imagery,classification,signatures</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.cluster</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Input for supervised MLC</label>
-              <help>Generates statistics for i.maxlik from raster map.</help>
-              <keywords>imagery,classification,supervised,MLC</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.gensig</command>
-            </menuitem>
-            <menuitem>
-              <label>Maximum likelihood classification (MLC)</label>
-              <help>Classifies the cell spectral reflectances in imagery data.</help>
-              <keywords>imagery,classification,MLC</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.maxlik</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Interactive input for supervised classification</label>
-              <help>Generates spectral signatures by allowing the user to outline training areas.</help>
-              <keywords>general,gui,imagery,classification,signatures</keywords>
-              <handler>OnIClass</handler>
-              <command>g.gui.iclass</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Input for supervised SMAP</label>
-              <help>Generates statistics for i.smap from raster map.</help>
-              <keywords>imagery,classification,supervised,SMAP</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.gensigset</command>
-            </menuitem>
-            <menuitem>
-              <label>Sequential maximum a posteriori classification (SMAP)</label>
-              <help>Performs contextual image classification using sequential maximum a posteriori (SMAP) estimation.</help>
-              <keywords>imagery,classification,supervised,SMAP</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.smap</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Object segmentation</label>
-              <help>Generates object segmentation map from raster group.</help>
-              <keywords>imagery,classification,segmentation,object</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.segment</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Filter image</label>
-          <items>
-            <menuitem>
-              <label>Edge detection</label>
-              <help>Zero-crossing "edge detection" raster function for image processing.</help>
-              <keywords>imagery,edges</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.zc</command>
-            </menuitem>
-            <menuitem>
-              <label>Matrix/convolving filter</label>
-              <help>Performs raster map matrix filter.</help>
-              <keywords>raster,algebra,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.mfilter</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Transform image</label>
-          <items>
-            <menuitem>
-              <label>Canonical correlation</label>
-              <help>Canonical components analysis (cca) program for image processing.</help>
-              <keywords>imagery,statistics,CCA</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.cca</command>
-            </menuitem>
-            <menuitem>
-              <label>Principal components</label>
-              <help>Principal components analysis (PCA) for image processing.</help>
-              <keywords>imagery,transformation,PCA</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.pca</command>
-            </menuitem>
-            <menuitem>
-              <label>Fast Fourier</label>
-              <help>Fast Fourier Transform (FFT) for image processing.</help>
-              <keywords>imagery,Fast Fourier Transform</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.fft</command>
-            </menuitem>
-            <menuitem>
-              <label>Inverse Fast Fourier</label>
-              <help>Inverse Fast Fourier Transform (IFFT) for image processing.</help>
-              <keywords>imagery,Fast Fourier Transform</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.ifft</command>
-            </menuitem>
-          </items>
-        </menu>
-    <separator />
-        <menu>
-          <label>Satellite images tools</label>
-          <items>
-            <menuitem>
-              <label>Aster DN to radiance/reflectance</label>
-              <help>Calculates Top of Atmosphere Radiance/Reflectance/Brightness Temperature from ASTER DN.</help>
-              <keywords>imagery,radiometric conversion,Terra-ASTER,radiance,reflectance,brightness temperature</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.aster.toar</command>
-            </menuitem>
-            <menuitem>
-              <label>Landsat DN to radiance/reflectance</label>
-              <help>Calculates top-of-atmosphere radiance or reflectance and temperature for Landsat MSS/TM/ETM+.</help>
-              <keywords>imagery,radiometric conversion,landsat,top-of-atmosphere reflectance,dos-type simple atmospheric correction</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.landsat.toar</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Landsat cloud cover assessment</label>
-              <help>Performs Landsat TM/ETM+ Automatic Cloud Cover Assessment (ACCA).</help>
-              <keywords>imagery,landsat,acca</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.landsat.acca</command>
-            </menuitem>
-            <menuitem>
-              <label>Modis quality control</label>
-              <help>Extracts quality control parameters from Modis QC layers.</help>
-              <keywords>imagery,imagery quality assessment,surface reflectance,land surface temperature,vegetation,MODIS</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.modis.qc</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Atmospheric correction</label>
-              <help>Performs atmospheric correction using the 6S algorithm.</help>
-              <keywords>imagery,atmospheric correction</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.atcorr</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>LatLong map</label>
-              <help>Creates a latitude/longitude raster map.</help>
-              <keywords>imagery,latitude,longitude,projection</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.latlong</command>
-            </menuitem>
-            <menuitem>
-              <label>Sunshine hours</label>
-              <help>Creates a sunshine hours map.</help>
-              <keywords>imagery,solar,sunshine,hours,daytime</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.sunhours</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Satellite images products</label>
-          <items>
-            <menuitem>
-              <label>Vegetation indices</label>
-              <help>Calculates different types of vegetation indices.</help>
-              <keywords>imagery,vegetation index,biophysical parameters</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.vi</command>
-            </menuitem>
-            <menuitem>
-              <label>Tasseled cap vegetation index</label>
-              <help>Performs Tasseled Cap (Kauth Thomas) transformation for LANDSAT-TM data.</help>
-              <keywords>imagery,transformation</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.tasscap</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Albedo</label>
-              <help>Computes broad band albedo from surface reflectance.</help>
-              <keywords>imagery,albedo,surface reflectance</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.albedo</command>
-            </menuitem>
-            <menuitem>
-              <label>Emissivity</label>
-              <help>Computes emissivity from NDVI, generic method for sparse land.</help>
-              <keywords>imagery,emissivity,land flux,energy balance</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.emissivity</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Biomass growth</label>
-              <help>Computes biomass growth, precursor of crop yield calculation.</help>
-              <keywords>imagery,biomass,fpar,yield</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.biomass</command>
-            </menuitem>
-           </items>
-          </menu> 
-          <menu> 
-          <label>Evapotranspiration calculation</label>
-          <items>
-            <menuitem>
-              <label>Instantaneaous Net Radiation</label>
-              <help>Net radiation approximation (Bastiaanssen, 1995).</help>
-              <keywords>imagery,energy balance,net radiation,SEBAL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.eb.netrad</command>
-            </menuitem>
-            <menuitem>
-              <label>Soil heat flux</label>
-              <help>Soil heat flux approximation (Bastiaanssen, 1995).</help>
-              <keywords>imagery,energy balance,soil heat flux,SEBAL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.eb.soilheatflux</command>
-            </menuitem>
-            <menuitem>
-              <label>Sensible heat flux</label>
-              <help>Computes sensible heat flux iteration SEBAL 01.</help>
-              <keywords>imagery,energy balance,soil moisture,evaporative fraction,SEBAL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.eb.h_sebal01</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Evaporative fraction</label>
-              <help>Computes evaporative fraction (Bastiaanssen, 1995) and root zone soil moisture (Makin, Molden and Bastiaanssen, 2001).</help>
-              <keywords>imagery,energy balance,soil moisture,evaporative fraction,SEBAL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.eb.evapfr</command>
-            </menuitem>
-            <menuitem>
-              <label>Actual Evapotranspiration</label>
-              <help>Actual evapotranspiration for diurnal period (Bastiaanssen, 1995).</help>
-              <keywords>imagery,energy balance,actual evapotranspiration,SEBAL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.eb.eta</command>
-            </menuitem>
-            <menuitem>
-              <label>Temporal integration of ETa</label>
-              <help>Computes temporal integration of satellite ET actual (ETa) following the daily ET reference (ETo) from meteorological station(s).</help>
-              <keywords>imagery,evapotranspiration</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.evapo.time</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Hargreaves methods Evapotranspiration</label>
-              <help>Computes evapotranspiration calculation modified or original Hargreaves formulation, 2001.</help>
-              <keywords>imagery,evapotranspiration</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.evapo.mh</command>
-            </menuitem>
-            <menuitem>
-              <label>Penman-Monteith Evapotranspiration</label>
-              <help>Computes potential evapotranspiration calculation with hourly Penman-Monteith.</help>
-              <keywords>imagery,evapotranspiration</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.evapo.pm</command>
-            </menuitem>
-            <menuitem>
-              <label>Priestley-Taylor Evapotranspiration</label>
-              <help>Computes evapotranspiration calculation Prestley and Taylor formulation, 1972.</help>
-              <keywords>imagery,evapotranspiration</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.evapo.pt</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Report and statistics</label>
-          <items>
-            <menuitem>
-              <label>Bit pattern comparison </label>
-              <help>Compares bit patterns with a raster map.</help>
-              <keywords>raster,algebra</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.bitpattern</command>
-            </menuitem>
-            <menuitem>
-              <label>Kappa analysis</label>
-              <help>Calculate error matrix and kappa parameter for accuracy assessment of classification result.</help>
-              <keywords>raster,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r.kappa</command>
-            </menuitem>
-            <menuitem>
-              <label>OIF for LandSat TM</label>
-              <help>Calculates Optimum-Index-Factor table for LANDSAT TM bands 1-5, & 7</help>
-              <keywords>imagery,landsat,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>i.oif</command>
-            </menuitem>
-          </items>
-        </menu>
-      </items>
-    </menu>
-    <menu>
-      <label>V&olumes</label>
-      <items>
-        <menu>
-          <label>Develop volumes</label>
-          <items>
-            <menuitem>
-              <label>Manage 3D NULL values</label>
-              <help>Explicitly create the 3D NULL-value bitmap file.</help>
-              <keywords>raster3d,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.null</command>
-            </menuitem>
-            <menuitem>
-              <label>Manage timestamp</label>
-              <help>Print/add/remove a timestamp for a 3D raster map</help>
-              <keywords>raster3d,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.timestamp</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Map type conversions</label>
-          <items>
-            <menuitem>
-              <label>Volume to raster series</label>
-              <help>Converts 3D raster maps to 2D raster maps</help>
-              <keywords>raster3d,conversion,raster,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.to.rast</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menuitem>
-          <label>3D color tables</label>
-          <help>Creates/modifies the color table associated with a 3D raster map.</help>
-          <keywords>raster3d,color table</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r3.colors</command>
-        </menuitem>
-        <menuitem>
-          <label>Export 3D color table</label>
-          <help>Exports the color table associated with a 3D raster map.</help>
-          <keywords>raster3d,color table,export</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r3.colors.out</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>3D Mask</label>
-          <help>Establishes the current working 3D raster mask.</help>
-          <keywords>raster3d,voxel</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r3.mask</command>
-        </menuitem>
-        <menuitem>
-          <label>Volume calculator</label>
-          <help>3D raster map calculator.</help>
-          <keywords>raster,algebra</keywords>
-          <handler>OnMapCalculator</handler>
-          <command>r3.mapcalc</command>
-        </menuitem>
-        <menuitem>
-          <label>Cross section</label>
-          <help>Creates cross section 2D raster map from 3D raster map based on 2D elevation map</help>
-          <keywords>raster3d,profile,raster,voxel</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>r3.cross.rast</command>
-        </menuitem>
-    <menuitem>
-      <label>Groundwater modeling</label>
-      <help>Numerical calculation program for transient, confined groundwater flow in three dimensions.</help>
-      <keywords>raster3d,groundwater flow,voxel,hydrology</keywords>
-      <handler>OnMenuCmd</handler>
-      <command>r3.gwflow</command>
-    </menuitem>
-        <menuitem>
-          <label>Interpolate volume from points</label>
-          <help>Interpolates point data to a 3D raster map using regularized spline with tension (RST) algorithm.</help>
-          <keywords>vector,voxel,surface,interpolation,RST</keywords>
-          <handler>OnMenuCmd</handler>
-          <command>v.vol.rst</command>
-        </menuitem>
-        <separator />
-        <menu>
-          <label>Report and Statistics</label>
-          <items>
-            <menuitem>
-              <label>Basic volume metadata</label>
-              <help>Outputs basic information about a user-specified 3D raster map layer.</help>
-              <keywords>raster3d,metadata,voxel</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.info</command>
-            </menuitem>
-            <menuitem>
-              <label>Voxel statistics</label>
-              <help>Generates volume statistics for 3D raster maps.</help>
-              <keywords>raster3d,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.stats</command>
-            </menuitem>
-            <menuitem>
-              <label>Univariate statistics for volumes</label>
-              <help>Calculates univariate statistics from the non-null 3d cells of a raster3d map.</help>
-              <keywords>raster3d,statistics</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>r3.univar</command>
-            </menuitem>
-          </items>
-        </menu>
-      </items>
-    </menu>
-    <menu>
-      <label>&Database</label>
-      <items>
-        <menu>
-          <label>Database information</label>
-          <items>
-            <menuitem>
-              <label>List databases</label>
-              <help>Lists all databases for a given driver and location.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.databases</command>
-            </menuitem>
-            <menuitem>
-              <label>List drivers</label>
-              <help>Lists all database drivers.</help>
-              <keywords>database,drivers</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.drivers</command>
-            </menuitem>
-            <menuitem>
-              <label>List tables</label>
-              <help>Lists all tables for a given database.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.tables</command>
-            </menuitem>
-            <menuitem>
-              <label>Describe table</label>
-              <help>Describes a table in detail.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.describe</command>
-            </menuitem>
-            <menuitem>
-              <label>List columns</label>
-              <help>List all columns for a given table.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.columns</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Manage databases</label>
-          <items>
-            <menuitem>
-              <label>Connect</label>
-              <help>Prints/sets general DB connection for current mapset.</help>
-              <keywords>database,attribute table,connection settings</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.connect</command>
-            </menuitem>
-            <menuitem>
-              <label>Login</label>
-              <help>Sets user/password for DB driver/database.</help>
-              <keywords>database,attribute table,connection settings</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.login</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Create database</label>
-              <help>Creates an empty database.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.createdb</command>
-            </menuitem>
-            <menuitem>
-              <label>Drop database</label>
-              <help>Removes an existing database.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.dropdb</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Drop table</label>
-              <help>Drops an attribute table.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.droptable</command>
-            </menuitem>
-            <menuitem>
-              <label>Copy table</label>
-              <help>Copy a table.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.copy</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Drop column</label>
-              <help>Drops a column from selected attribute table.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.dropcolumn</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Test</label>
-              <help>Test database driver, database must exist and set by db.connect.</help>
-              <keywords>database,attribute table</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.test</command>
-            </menuitem>
-          </items>
-        </menu>
-        <menu>
-          <label>Query</label>
-          <items>
-            <menuitem>
-              <label>Query any table</label>
-              <help>Selects data from attribute table.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.select</command>
-            </menuitem>
-            <menuitem>
-              <label>Query vector attribute data</label>
-              <help>Prints vector map attributes.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.select</command>
-            </menuitem>
-            <menuitem>
-              <label>SQL statement</label>
-              <help>Executes any SQL statement.</help>
-              <keywords>database,attribute table,SQL</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>db.execute</command>
-            </menuitem>
-          </items>
-        </menu>
-        <separator />
-        <menu>
-          <label>Vector database connections</label>
-          <items>
-            <menuitem>
-              <label>New table</label>
-              <help>Creates and connects a new attribute table to a given layer of an existing vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.addtable</command>
-            </menuitem>
-            <menuitem>
-              <label>Remove table</label>
-              <help>Removes existing attribute table of a vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.droptable</command>
-            </menuitem>
-            <menuitem>
-              <label>Join table</label>
-              <help>Allows to join a table to a vector map table.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.join</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Add columns</label>
-              <help>Adds one or more columns to the attribute table connected to a given vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.addcolumn</command>
-            </menuitem>
-            <menuitem>
-              <label>Drop column</label>
-              <help>Drops a column from the attribute table connected to a given vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.dropcolumn</command>
-            </menuitem>
-            <menuitem>
-              <label>Rename column</label>
-              <help>Renames a column in the attribute table connected to a given vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.renamecolumn</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Change values</label>
-              <help>Allows to update a column in the attribute table connected to a vector map.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.update</command>
-            </menuitem>
-            <menuitem>
-              <label>Drop row</label>
-              <help>Removes a vector feature from a vector map through attribute selection.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.droprow</command>
-            </menuitem>
-            <separator />
-            <menuitem>
-              <label>Reconnect vectors to database</label>
-              <help>Reconnects attribute tables for all vector maps from the current mapset to a new database.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.reconnect.all</command>
-            </menuitem>
-            <menuitem>
-              <label>Set vector map - database connection</label>
-              <help>Prints/sets DB connection for a vector map to attribute table.</help>
-              <keywords>vector,attribute table,database</keywords>
-              <handler>OnMenuCmd</handler>
-              <command>v.db.connect</command>
-            </menuitem>
-          </items>
-        </menu>
-      </items>
-    </menu>
-    <menu>
-      <label>&Help</label>
-      <items>
-        <menuitem>
-          <label>GRASS help</label>
-          <help>Display the HTML man pages of GRASS GIS</help>
-          <keywords>general,manual,help</keywords>
-          <handler>RunMenuCmd</handler>
-          <command>g.manual -i</command>
-          <id>ID_HELP</id>
-        </menuitem>
-        <menuitem>
-          <label>GUI help</label>
-          <help>Display the HTML man pages of GRASS GIS</help>
-          <keywords>general,manual,help</keywords>
-          <handler>RunMenuCmd</handler>
-          <command>g.manual entry=wxGUI</command>
-        </menuitem>
-        <separator />
-        <menuitem>
-          <label>About system</label>
-          <help>Prints system information</help>
-          <handler>OnSystemInfo</handler>
-        </menuitem>
-        <menuitem>
-          <label>About GRASS GIS</label>
-          <help>About GRASS GIS</help>
-          <handler>OnAboutGRASS</handler>
-          <id>ID_ABOUT</id>
-        </menuitem>
-      </items>
-    </menu>
-  </menubar>
-</menudata>

Added: grass/trunk/gui/wxpython/xml/module_items.dtd
===================================================================
--- grass/trunk/gui/wxpython/xml/module_items.dtd	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/module_items.dtd	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,10 @@
+<!ELEMENT module-items (module-item*)>
+
+<!ELEMENT module-item (label?, module, description, keywords)>
+<!ATTLIST module-item name NMTOKEN #REQUIRED>
+
+<!ELEMENT label (#PCDATA)>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT module (#PCDATA)>
+<!ELEMENT keywords (#PCDATA)>
+

Added: grass/trunk/gui/wxpython/xml/toolboxes.dtd
===================================================================
--- grass/trunk/gui/wxpython/xml/toolboxes.dtd	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/toolboxes.dtd	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,34 @@
+<!ELEMENT toolboxes (toolbox*)>
+
+<!ELEMENT toolbox (label, items)>
+<!ATTLIST toolbox name NMTOKEN #REQUIRED>
+
+<!ELEMENT items ((module-item | wxgui-item | subtoolbox | separator)*)>
+
+<!-- Subelement label is mandatory, however this may change in the future. -->
+<!ELEMENT module-item (label, module?, description?, keywords?)>
+<!ATTLIST module-item name NMTOKEN #REQUIRED>
+
+<!ELEMENT wxgui-item (label?, ((handler, related-module?) | command)?, description?, keywords?, shortcut?, wx-id?)>
+<!ATTLIST wxgui-item name NMTOKEN #REQUIRED>
+
+<!--
+Element subtoolbox could use xlink syntax but it is not much supported,
+so it would be useless. Used syntax is easier and more conforms to other
+elements which are not typical candidates for xlink use.
+-->
+<!ELEMENT subtoolbox EMPTY>
+<!ATTLIST subtoolbox name NMTOKEN #REQUIRED>
+
+<!ELEMENT separator EMPTY>
+
+<!ELEMENT label (#PCDATA)>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT handler (#PCDATA)>
+<!ELEMENT command (#PCDATA)>
+<!ELEMENT module (#PCDATA)>
+<!ELEMENT related-module (#PCDATA)>
+<!ELEMENT keywords (#PCDATA)>
+<!ELEMENT shortcut (#PCDATA)>
+<!ELEMENT wx-id (#PCDATA)>
+

Added: grass/trunk/gui/wxpython/xml/toolboxes.xml
===================================================================
--- grass/trunk/gui/wxpython/xml/toolboxes.xml	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/toolboxes.xml	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,1736 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE toolboxes SYSTEM "toolboxes.dtd">
+<toolboxes>
+  <toolbox name="File">
+    <label>&File</label>
+    <items>
+      <subtoolbox name="Workspace"/>
+      <subtoolbox name="MapDisplay"/>
+      <separator/>
+      <subtoolbox name="ImportRasterData"/>
+      <subtoolbox name="ImportVectorData"/>
+      <subtoolbox name="Import3DRasterData"/>
+      <subtoolbox name="ImportDatabaseTable"/>
+      <separator/>
+      <subtoolbox name="ExportRasterMap"/>
+      <subtoolbox name="ExportVectorMap"/>
+      <subtoolbox name="Export3DRasterMaps"/>
+      <subtoolbox name="ExportDatabaseTable"/>
+      <separator/>
+      <subtoolbox name="LinkExternalFormats"/>
+      <separator/>
+      <subtoolbox name="ManageMapsAndVolumes"/>
+      <subtoolbox name="MapTypeConversions"/>
+      <separator/>
+      <wxgui-item name="Georectify"/>
+      <separator/>
+      <wxgui-item name="GraphicalModeler"/>
+      <wxgui-item name="RunModel"/>
+      <separator/>
+      <module-item name="m.nviz.image">
+        <label>3D image rendering</label>
+      </module-item>
+      <wxgui-item name="AnimationTool"/>
+      <separator/>
+      <module-item name="m.cogo">
+        <label>Bearing/distance to coordinates</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="CartographicComposer"/>
+      <wxgui-item name="MapSwipe"/>
+      <separator/>
+      <wxgui-item name="LaunchScript"/>
+      <separator/>
+      <wxgui-item name="Quit"/>
+    </items>
+  </toolbox>
+  <toolbox name="Settings">
+    <label>&Settings</label>
+    <items>
+      <subtoolbox name="Region"/>
+      <subtoolbox name="GRASSWorkingEnvironment"/>
+      <subtoolbox name="MapProjections"/>
+      <separator/>
+      <subtoolbox name="AddonsExtensions"/>
+      <separator/>
+      <wxgui-item name="Preferences"/>
+    </items>
+  </toolbox>
+  <toolbox name="Raster">
+    <label>&Raster</label>
+    <items>
+      <subtoolbox name="DevelopRasterMap"/>
+      <subtoolbox name="ManageColors"/>
+      <subtoolbox name="QueryRasterMaps"/>
+      <subtoolbox name="MapTypeConversions"/>
+      <separator/>
+      <module-item name="r.buffer">
+        <label>Buffer rasters</label>
+      </module-item>
+      <module-item name="r.circle">
+        <label>Concentric circles</label>
+      </module-item>
+      <module-item name="r.distance">
+        <label>Closest points</label>
+      </module-item>
+      <module-item name="r.mask">
+        <label>Mask</label>
+      </module-item>
+      <wxgui-item name="RasterMapCalculator"/>
+      <subtoolbox name="NeighborhoodAnalysis"/>
+      <subtoolbox name="OverlayRasters"/>
+      <subtoolbox name="SolarRadianceAndShadows"/>
+      <subtoolbox name="TerrainAnalysis"/>
+      <subtoolbox name="TransformFeatures"/>
+      <separator/>
+      <subtoolbox name="HydrologicModeling"/>
+      <subtoolbox name="GroundwaterModeling"/>
+      <subtoolbox name="LandscapeStructureModeling"/>
+      <subtoolbox name="LandscapePatchAnalysis"/>
+      <subtoolbox name="WildfireModeling"/>
+      <separator/>
+      <subtoolbox name="ChangeCategoryValuesAndLabels"/>
+      <separator/>
+      <subtoolbox name="GenerateRandomCells"/>
+      <subtoolbox name="GenerateSurfaces"/>
+      <subtoolbox name="InterpolateSurfaces"/>
+      <separator/>
+      <subtoolbox name="ReportAndStatistics"/>
+    </items>
+  </toolbox>
+  <toolbox name="Vector">
+    <label>&Vector</label>
+    <items>
+      <subtoolbox name="DevelopVectorMap"/>
+      <subtoolbox name="TopologyMaintenance"/>
+      <subtoolbox name="ManageColors"/>
+      <subtoolbox name="QueryVectorMap"/>
+      <subtoolbox name="FeatureSelection"/>
+      <subtoolbox name="MapTypeConversions"/>
+      <separator/>
+      <module-item name="v.buffer">
+        <label>Buffer vectors</label>
+      </module-item>
+      <subtoolbox name="LidarAnalysis"/>
+      <subtoolbox name="LinearReferencing"/>
+      <module-item name="v.distance">
+        <label>Nearest features</label>
+      </module-item>
+      <subtoolbox name="NetworkAnalysis"/>
+      <subtoolbox name="OverlayVectorMaps"/>
+      <separator/>
+      <subtoolbox name="ManageCategories"/>
+      <subtoolbox name="UpdateAttributes"/>
+      <separator/>
+      <module-item name="v.in.region">
+        <label>Generate area for current region</label>
+      </module-item>
+      <subtoolbox name="GenerateAreasFromPoints"/>
+      <module-item name="v.mkgrid">
+        <label>Generate grid</label>
+      </module-item>
+      <subtoolbox name="GeneratePoints"/>
+      <separator/>
+      <subtoolbox name="ReportsAndStatistics"/>
+    </items>
+  </toolbox>
+  <toolbox name="Imagery">
+    <label>&Imagery</label>
+    <items>
+      <subtoolbox name="DevelopImagesAndGroups"/>
+      <subtoolbox name="ManageImageColors"/>
+      <separator/>
+      <module-item name="i.rectify">
+        <label>Rectify image or raster</label>
+      </module-item>
+      <wxgui-item name="Histogram"/>
+      <module-item name="i.spectral">
+        <label>Spectral response</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.pansharpen">
+        <label>Pan sharpening</label>
+      </module-item>
+      <subtoolbox name="ClassifyImage"/>
+      <subtoolbox name="FilterImage"/>
+      <subtoolbox name="TransformImage"/>
+      <separator/>
+      <subtoolbox name="SatelliteImagesTools"/>
+      <subtoolbox name="SatelliteImagesProducts"/>
+      <subtoolbox name="EvapotranspirationCalculation"/>
+      <separator/>
+      <subtoolbox name="ReportAndStatistics"/>
+    </items>
+  </toolbox>
+  <toolbox name="Volumes">
+    <label>V&olumes</label>
+    <items>
+      <subtoolbox name="DevelopVolumes"/>
+      <subtoolbox name="MapTypeConversions"/>
+      <separator/>
+      <module-item name="r3.colors">
+        <label>3D color tables</label>
+      </module-item>
+      <module-item name="r3.colors.out">
+        <label>Export 3D color table</label>
+      </module-item>
+      <separator/>
+      <module-item name="r3.mask">
+        <label>3D Mask</label>
+      </module-item>
+      <wxgui-item name="VolumeCalculator"/>
+      <module-item name="r3.cross.rast">
+        <label>Cross section</label>
+      </module-item>
+      <module-item name="r3.gwflow">
+        <label>Groundwater modeling</label>
+      </module-item>
+      <module-item name="v.vol.rst">
+        <label>Interpolate volume from points</label>
+      </module-item>
+      <separator/>
+      <subtoolbox name="ReportAndStatistics"/>
+    </items>
+  </toolbox>
+  <toolbox name="Database">
+    <label>&Database</label>
+    <items>
+      <subtoolbox name="DatabaseInformation"/>
+      <separator/>
+      <subtoolbox name="ManageDatabases"/>
+      <subtoolbox name="Query"/>
+      <separator/>
+      <subtoolbox name="VectorDatabaseConnections"/>
+    </items>
+  </toolbox>
+  <toolbox name="Help">
+    <label>&Help</label>
+    <items>
+      <wxgui-item name="GRASSHelp"/>
+      <wxgui-item name="GUIHelp"/>
+      <separator/>
+      <wxgui-item name="AboutSystem"/>
+      <wxgui-item name="AboutGRASSGIS"/>
+    </items>
+  </toolbox>
+  <toolbox name="Workspace">
+    <label>Workspace</label>
+    <items>
+      <wxgui-item name="New"/>
+      <wxgui-item name="Open"/>
+      <wxgui-item name="Save"/>
+      <wxgui-item name="SaveAs"/>
+      <wxgui-item name="Close"/>
+      <separator/>
+      <wxgui-item name="LoadGRCFileTclTkGUI"/>
+    </items>
+  </toolbox>
+  <toolbox name="MapDisplay">
+    <label>Map display</label>
+    <items>
+      <wxgui-item name="AddRaster"/>
+      <wxgui-item name="AddVector"/>
+      <wxgui-item name="AddMultipleRastersOrVectors"/>
+      <separator/>
+      <wxgui-item name="NewMapDisplayWindow"/>
+      <wxgui-item name="CloseCurrentMapDisplayWindow"/>
+      <wxgui-item name="CloseAllOpenMapDisplayWindows"/>
+    </items>
+  </toolbox>
+  <toolbox name="ImportRasterData">
+    <label>Import raster data</label>
+    <items>
+      <wxgui-item name="CommonFormatsImport"/>
+      <separator/>
+      <module-item name="r.in.xyz">
+        <label>ASCII x,y,z point import and gridding</label>
+      </module-item>
+      <module-item name="r.in.ascii">
+        <label>ASCII grid import</label>
+      </module-item>
+      <module-item name="r.in.poly">
+        <label>ASCII polygons, lines, and point import</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.in.bin">
+        <label>Raw binary array import</label>
+      </module-item>
+      <module-item name="r.in.arc">
+        <label>ESRI ASCII grid import</label>
+      </module-item>
+      <module-item name="r.in.gridatb">
+        <label>GRIDATB.FOR import</label>
+      </module-item>
+      <module-item name="r.in.mat">
+        <label>Matlab 2D array import</label>
+      </module-item>
+      <module-item name="r.in.png">
+        <label>PNG import</label>
+      </module-item>
+      <module-item name="i.in.spotvgt">
+        <label>SPOT NDVI import</label>
+      </module-item>
+      <module-item name="r.in.srtm">
+        <label>SRTM HGT import</label>
+      </module-item>
+      <module-item name="r.in.aster">
+        <label>Terra ASTER HDF import</label>
+      </module-item>
+      <module-item name="r.in.lidar">
+        <label>LAS LiDAR points import</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.unpack">
+        <label>Unpack raster map</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ImportVectorData">
+    <label>Import vector data</label>
+    <items>
+      <wxgui-item name="CommonImportFormats"/>
+      <separator/>
+      <module-item name="v.in.ascii">
+        <label>ASCII points or GRASS ASCII format</label>
+      </module-item>
+      <module-item name="v.in.lines">
+        <label>ASCII points as a vector lines</label>
+      </module-item>
+      <module-item name="v.convert">
+        <label>Historical GRASS vector import</label>
+      </module-item>
+      <module-item name="v.convert.all">
+        <label>Historical GRASS vector import (all maps)</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="DXFImport"/>
+      <separator/>
+      <module-item name="v.in.wfs">
+        <label>WFS</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.in.e00">
+        <label>ESRI e00 import</label>
+      </module-item>
+      <module-item name="v.in.gps">
+        <label>GPS data import</label>
+      </module-item>
+      <module-item name="v.in.geonames">
+        <label>Geonames import</label>
+      </module-item>
+      <module-item name="v.in.gns">
+        <label>GEOnet import</label>
+      </module-item>
+      <module-item name="v.in.mapgen">
+        <label>Matlab array or Mapgen format import</label>
+      </module-item>
+      <module-item name="v.in.lidar">
+        <label>LAS LiDAR points import</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="Import3DRasterData">
+    <label>Import 3D raster data</label>
+    <items>
+      <module-item name="r3.in.ascii">
+        <label>ASCII 3D import</label>
+      </module-item>
+      <module-item name="r3.in.bin">
+        <label>Raw binary array 3D import</label>
+      </module-item>
+      <module-item name="r3.in.v5d">
+        <label>Vis5D import</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ImportDatabaseTable">
+    <label>Import database table</label>
+    <items>
+      <module-item name="db.in.ogr">
+        <label>Multiple import formats using OGR</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ExportRasterMap">
+    <label>Export raster map</label>
+    <items>
+      <module-item name="r.out.gdal">
+        <label>Common export formats</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.out.ascii">
+        <label>ASCII grid export</label>
+      </module-item>
+      <module-item name="r.out.xyz">
+        <label>ASCII x,y,z points export</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.out.arc">
+        <label>ESRI ASCII grid export</label>
+      </module-item>
+      <module-item name="r.out.gridatb">
+        <label>GRIDATB.FOR export</label>
+      </module-item>
+      <module-item name="r.out.mat">
+        <label>Matlab 2D array export</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.out.bin">
+        <label>Raw binary array export</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.out.mpeg">
+        <label>MPEG-1 export</label>
+      </module-item>
+      <module-item name="r.out.png">
+        <label>PNG export</label>
+      </module-item>
+      <module-item name="r.out.ppm">
+        <label>PPM export</label>
+      </module-item>
+      <module-item name="r.out.ppm3">
+        <label>PPM from RGB export</label>
+      </module-item>
+      <module-item name="r.out.pov">
+        <label>POV-Ray export</label>
+      </module-item>
+      <module-item name="r.out.tiff">
+        <label>TIFF export</label>
+      </module-item>
+      <module-item name="r.out.vrml">
+        <label>VRML export</label>
+      </module-item>
+      <module-item name="r.out.vtk">
+        <label>VTK export</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.pack">
+        <label>Pack raster map</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ExportVectorMap">
+    <label>Export vector map</label>
+    <items>
+      <module-item name="v.out.ogr">
+        <label>Common export formats</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.out.ascii">
+        <label>ASCII points or GRASS ASCII vector export</label>
+      </module-item>
+      <module-item name="v.out.dxf">
+        <label>DXF export</label>
+      </module-item>
+      <module-item name="v.out.gps">
+        <label>Multiple GPS export formats using GPSBabel</label>
+      </module-item>
+      <module-item name="v.out.postgis">
+        <label>PostGIS export</label>
+      </module-item>
+      <module-item name="v.out.pov">
+        <label>POV-Ray export</label>
+      </module-item>
+      <module-item name="v.out.svg">
+        <label>SVG export</label>
+      </module-item>
+      <module-item name="v.out.vtk">
+        <label>VTK export</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="Export3DRasterMaps">
+    <label>Export 3D raster maps</label>
+    <items>
+      <module-item name="r3.out.ascii">
+        <label>ASCII 3D export</label>
+      </module-item>
+      <module-item name="r3.out.bin">
+        <label>Raw binary array 3D export</label>
+      </module-item>
+      <module-item name="r3.out.v5d">
+        <label>Vis5D export</label>
+      </module-item>
+      <module-item name="r3.out.vtk">
+        <label>VTK export</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ExportDatabaseTable">
+    <label>Export database table</label>
+    <items>
+      <module-item name="db.out.ogr">
+        <label>Common export formats using OGR</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="LinkExternalFormats">
+    <label>Link external formats</label>
+    <items>
+      <wxgui-item name="LinkExternalRasterData"/>
+      <wxgui-item name="LinkExternalVectorData"/>
+      <separator/>
+      <module-item name="r.external.out">
+        <label>Output format for raster data</label>
+      </module-item>
+      <wxgui-item name="OutputFormatForVectorData"/>
+    </items>
+  </toolbox>
+  <toolbox name="ManageMapsAndVolumes">
+    <label>Manage maps and volumes</label>
+    <items>
+      <module-item name="g.copy">
+        <label>Copy</label>
+      </module-item>
+      <separator/>
+      <module-item name="g.list">
+        <label>List</label>
+      </module-item>
+      <module-item name="g.mlist">
+        <label>List filtered</label>
+      </module-item>
+      <separator/>
+      <module-item name="g.rename">
+        <label>Rename</label>
+      </module-item>
+      <separator/>
+      <module-item name="g.remove">
+        <label>Delete</label>
+      </module-item>
+      <module-item name="g.mremove">
+        <label>Delete filtered</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="MapTypeConversions">
+    <label>Map type conversions</label>
+    <items>
+      <module-item name="r.to.vect">
+        <label>Raster to vector</label>
+      </module-item>
+      <module-item name="r.to.rast3">
+        <label>Raster series to volume</label>
+      </module-item>
+      <module-item name="r.to.rast3elev">
+        <label>Raster 2.5D to volume</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.to.rast">
+        <label>Vector to raster</label>
+      </module-item>
+      <module-item name="v.to.rast3">
+        <label>Vector to volume</label>
+      </module-item>
+      <module-item name="v.to.3d">
+        <label>2D vector to 3D vector</label>
+      </module-item>
+      <module-item name="v.in.sites">
+        <label>Sites to vector</label>
+      </module-item>
+      <separator/>
+      <module-item name="r3.to.rast">
+        <label>Volume to raster series</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="Region">
+    <label>Region</label>
+    <items>
+      <wxgui-item name="DisplayRegion"/>
+      <module-item name="g.region">
+        <label>Set region</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GRASSWorkingEnvironment">
+    <label>GRASS working environment</label>
+    <items>
+      <wxgui-item name="MapsetAccess"/>
+      <module-item name="g.access">
+        <label>User access</label>
+      </module-item>
+      <separator/>
+      <module-item name="g.mapset">
+        <label>Change working environment</label>
+      </module-item>
+      <wxgui-item name="ChangeLocationAndMapset"/>
+      <wxgui-item name="ChangeMapset"/>
+      <wxgui-item name="ChangeWorkingDirectory"/>
+      <separator/>
+      <wxgui-item name="ShowSettings"/>
+      <module-item name="g.gisenv">
+        <label>Change settings</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="CreateNewLocation"/>
+      <wxgui-item name="CreateNewMapset"/>
+      <separator/>
+      <wxgui-item name="VersionAndCopyright"/>
+    </items>
+  </toolbox>
+  <toolbox name="MapProjections">
+    <label>Map projections</label>
+    <items>
+      <wxgui-item name="DisplayMapProjection"/>
+      <module-item name="g.proj">
+        <label>Manage projections</label>
+      </module-item>
+      <separator/>
+      <module-item name="m.proj">
+        <label>Convert coordinates</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="AddonsExtensions">
+    <label>Addons extensions</label>
+    <items>
+      <wxgui-item name="InstallExtensionFromAddons"/>
+      <module-item name="g.extension.rebuild.all">
+        <label>Update installed extensions</label>
+      </module-item>
+      <wxgui-item name="UninstallExtension"/>
+    </items>
+  </toolbox>
+  <toolbox name="DevelopRasterMap">
+    <label>Develop raster map</label>
+    <items>
+      <module-item name="r.compress">
+        <label>Compress/decompress</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.region">
+        <label>Region boundaries</label>
+      </module-item>
+      <module-item name="r.null">
+        <label>Manage NULL values</label>
+      </module-item>
+      <module-item name="r.quant">
+        <label>Quantization</label>
+      </module-item>
+      <module-item name="r.timestamp">
+        <label>Timestamp</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.resamp.stats">
+        <label>Resample using aggregate statistics</label>
+      </module-item>
+      <module-item name="r.resamp.interp">
+        <label>Resample using multiple methods</label>
+      </module-item>
+      <module-item name="r.resample">
+        <label>Resample using nearest neighbor</label>
+      </module-item>
+      <module-item name="r.resamp.rst">
+        <label>Resample using spline tension</label>
+      </module-item>
+      <module-item name="r.resamp.bspline">
+        <label>Resample using bspline</label>
+      </module-item>
+      <module-item name="r.resamp.filter">
+        <label>Resample using analytic kernel</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.support">
+        <label>Support file maintenance</label>
+      </module-item>
+      <module-item name="r.support.stats">
+        <label>Update map statistics</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.proj">
+        <label>Reproject raster map</label>
+      </module-item>
+      <module-item name="r.tileset">
+        <label>Tiling</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ManageColors">
+    <label>Manage colors</label>
+    <items>
+      <module-item name="r.colors">
+        <label>Color tables</label>
+      </module-item>
+      <module-item name="r.colors.stddev">
+        <label>Color tables (stddev)</label>
+      </module-item>
+      <wxgui-item name="ManageColorRulesInteractively"/>
+      <module-item name="r.colors.out">
+        <label>Export color table</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.blend">
+        <label>Blend 2 color rasters</label>
+      </module-item>
+      <module-item name="r.composite">
+        <label>Create RGB</label>
+      </module-item>
+      <module-item name="r.his">
+        <label>RGB to HIS</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="QueryRasterMaps">
+    <label>Query raster maps</label>
+    <items>
+      <module-item name="r.what">
+        <label>Query values by coordinates</label>
+      </module-item>
+      <module-item name="r.what.color">
+        <label>Query colors by value</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="MapTypeConversions">
+    <label>Map type conversions</label>
+    <items>
+      <module-item name="r.to.vect">
+        <label>Raster to vector</label>
+      </module-item>
+      <module-item name="r.to.rast3">
+        <label>Raster series to volume</label>
+      </module-item>
+      <module-item name="r.to.rast3elev">
+        <label>Raster 2.5D to volume</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="NeighborhoodAnalysis">
+    <label>Neighborhood analysis</label>
+    <items>
+      <module-item name="r.neighbors">
+        <label>Moving window</label>
+      </module-item>
+      <module-item name="v.neighbors">
+        <label>Neighborhood points</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="OverlayRasters">
+    <label>Overlay rasters</label>
+    <items>
+      <module-item name="r.cross">
+        <label>Cross product</label>
+      </module-item>
+      <module-item name="r.series">
+        <label>Raster series</label>
+      </module-item>
+      <module-item name="r.patch">
+        <label>Patch raster maps</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.statistics2">
+        <label>Statistical overlay</label>
+      </module-item>
+      <module-item name="r.statistics3">
+        <label>Quantiles overlay</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="SolarRadianceAndShadows">
+    <label>Solar radiance and shadows</label>
+    <items>
+      <module-item name="r.sun">
+        <label>Solar irradiance and irradiation</label>
+      </module-item>
+      <module-item name="r.sunmask">
+        <label>Shadows map</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="TerrainAnalysis">
+    <label>Terrain analysis</label>
+    <items>
+      <module-item name="r.contour">
+        <label>Generate contour lines</label>
+      </module-item>
+      <module-item name="r.cost">
+        <label>Cost surface</label>
+      </module-item>
+      <module-item name="r.walk">
+        <label>Cumulative movement costs</label>
+      </module-item>
+      <module-item name="r.drain">
+        <label>Least cost route or flow</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.shaded.relief2">
+        <label>Shaded relief</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.slope.aspect">
+        <label>Slope and aspect</label>
+      </module-item>
+      <module-item name="r.param.scale">
+        <label>Terrain parameters</label>
+      </module-item>
+      <module-item name="r.texture">
+        <label>Textural features</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.viewshed">
+        <label>Visibility</label>
+      </module-item>
+      <module-item name="r.los">
+        <label>Visibility [DEPRECATED]</label>
+      </module-item>
+      <module-item name="r.grow.distance">
+        <label>Distance to features</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.horizon">
+        <label>Horizon angle</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="TransformFeatures">
+    <label>Transform features</label>
+    <items>
+      <module-item name="r.clump">
+        <label>Clump</label>
+      </module-item>
+      <module-item name="r.grow">
+        <label>Grow</label>
+      </module-item>
+      <module-item name="r.thin">
+        <label>Thin</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="HydrologicModeling">
+    <label>Hydrologic modeling</label>
+    <items>
+      <module-item name="r.carve">
+        <label>Carve stream channels</label>
+      </module-item>
+      <module-item name="r.lake">
+        <label>Fill lake</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.fill.dir">
+        <label>Depressionless map and flowlines</label>
+      </module-item>
+      <module-item name="r.terraflow">
+        <label>Flow accumulation</label>
+      </module-item>
+      <module-item name="r.flow">
+        <label>Flow lines</label>
+      </module-item>
+      <module-item name="r.watershed">
+        <label>Watershed analysis</label>
+      </module-item>
+      <module-item name="r.basins.fill">
+        <label>Watershed subbasins</label>
+      </module-item>
+      <module-item name="r.water.outlet">
+        <label>Watershed basin creation</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.sim.water">
+        <label>SIMWE Overland flow modeling</label>
+      </module-item>
+      <module-item name="r.sim.sediment">
+        <label>SIMWE Sediment flux modeling</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.topidx">
+        <label>Topographic index map</label>
+      </module-item>
+      <module-item name="r.topmodel">
+        <label>TOPMODEL simulation</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.uslek">
+        <label>USLE K-factor</label>
+      </module-item>
+      <module-item name="r.usler">
+        <label>USLE R-factor</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GroundwaterModeling">
+    <label>Groundwater modeling</label>
+    <items>
+      <module-item name="r.gwflow">
+        <label>Groundwater flow</label>
+      </module-item>
+      <module-item name="r.solute.transport">
+        <label>Groundwater solute transport</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="LandscapeStructureModeling">
+    <label>Landscape structure modeling</label>
+    <items>
+      <module-item name="r.le.pixel">
+        <label>Analyze landscape</label>
+      </module-item>
+      <module-item name="r.le.patch">
+        <label>Analyze patches</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="LandscapePatchAnalysis">
+    <label>Landscape patch analysis</label>
+    <items>
+      <wxgui-item name="SetUpSamplingAndAnalysisFramework"/>
+      <separator/>
+      <module-item name="r.li.edgedensity">
+        <label>Edge density</label>
+      </module-item>
+      <module-item name="r.li.cwed">
+        <label>Contrast weighted edge density</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.li.mps">
+        <label>Patch area mean</label>
+      </module-item>
+      <module-item name="r.li.padrange">
+        <label>Patch area range</label>
+      </module-item>
+      <module-item name="r.li.padsd">
+        <label>Patch area Std Dev</label>
+      </module-item>
+      <module-item name="r.li.padcv">
+        <label>Patch area Coeff Var</label>
+      </module-item>
+      <module-item name="r.li.patchdensity">
+        <label>Patch density</label>
+      </module-item>
+      <module-item name="r.li.patchnum">
+        <label>Patch number</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.li.dominance">
+        <label>Dominance's diversity</label>
+      </module-item>
+      <module-item name="r.li.shannon">
+        <label>Shannon's diversity</label>
+      </module-item>
+      <module-item name="r.li.simpson">
+        <label>Simpson's diversity</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.li.richness">
+        <label>Richness</label>
+      </module-item>
+      <module-item name="r.li.shape">
+        <label>Shape index</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="WildfireModeling">
+    <label>Wildfire modeling</label>
+    <items>
+      <module-item name="r.ros">
+        <label>Rate of spread</label>
+      </module-item>
+      <module-item name="r.spreadpath">
+        <label>Least-cost spread paths</label>
+      </module-item>
+      <module-item name="r.spread">
+        <label>Anisotropic spread simulation</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ChangeCategoryValuesAndLabels">
+    <label>Change category values and labels</label>
+    <items>
+      <module-item name="d.rast.edit">
+        <label>Interactively edit category values</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.reclass.area">
+        <label>Reclassify by size</label>
+      </module-item>
+      <module-item name="r.reclass">
+        <label>Reclassify</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.recode">
+        <label>Recode</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.rescale">
+        <label>Rescale</label>
+      </module-item>
+      <module-item name="r.rescale.eq">
+        <label>Rescale with histogram</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GenerateRandomCells">
+    <label>Generate random cells</label>
+    <items>
+      <module-item name="r.random.cells">
+        <label>Random cells</label>
+      </module-item>
+      <module-item name="r.random">
+        <label>Random cells and vector points</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GenerateSurfaces">
+    <label>Generate surfaces</label>
+    <items>
+      <module-item name="r.surf.fractal">
+        <label>Fractal surface</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.kernel">
+        <label>Gaussian kernel density surface</label>
+      </module-item>
+      <module-item name="r.surf.gauss">
+        <label>Gaussian deviates surface</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.plane">
+        <label>Plane</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.surf.random">
+        <label>Random deviates surface</label>
+      </module-item>
+      <module-item name="r.random.surface">
+        <label>Random surface with spatial dependence</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="InterpolateSurfaces">
+    <label>Interpolate surfaces</label>
+    <items>
+      <module-item name="v.surf.bspline">
+        <label>Bilinear and bicubic from vector points</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.surf.idw">
+        <label>IDW from raster points</label>
+      </module-item>
+      <module-item name="r.surf.idw2">
+        <label>IDW from raster points (alternate method for sparse points)</label>
+      </module-item>
+      <module-item name="v.surf.idw">
+        <label>IDW from vector points</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.surf.contour">
+        <label>Raster contours</label>
+      </module-item>
+      <module-item name="v.surf.rst">
+        <label>Regularized spline tension</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="OrdinaryOrBlockKriging"/>
+      <separator/>
+      <module-item name="r.fillnulls">
+        <label>Fill NULL cells</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ReportAndStatistics">
+    <label>Report and statistics</label>
+    <items>
+      <module-item name="r.info">
+        <label>Basic raster metadata</label>
+      </module-item>
+      <module-item name="r.category">
+        <label>Manage category information</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.stats">
+        <label>General statistics</label>
+      </module-item>
+      <module-item name="r.quantile">
+        <label>Quantiles for large data sets</label>
+      </module-item>
+      <module-item name="r.describe">
+        <label>Range of category values</label>
+      </module-item>
+      <module-item name="r.report">
+        <label>Sum area by raster map and category</label>
+      </module-item>
+      <module-item name="r.volume">
+        <label>Statistics for clumped cells</label>
+      </module-item>
+      <module-item name="r.surf.area">
+        <label>Total corrected area</label>
+      </module-item>
+      <module-item name="r.univar">
+        <label>Univariate raster statistics</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.profile">
+        <label>Sample transects</label>
+      </module-item>
+      <module-item name="r.transect">
+        <label>Sample transects (bearing/distance)</label>
+      </module-item>
+      <separator/>
+      <module-item name="r.covar">
+        <label>Covariance/correlation</label>
+      </module-item>
+      <module-item name="r.regression.line">
+        <label>Linear regression</label>
+      </module-item>
+      <module-item name="r.coin">
+        <label>Mutual category occurrences</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="DevelopVectorMap">
+    <label>Develop vector map</label>
+    <items>
+      <wxgui-item name="CreateNewVectorMap"/>
+      <module-item name="v.edit">
+        <label>Edit vector map (non-interactively)</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.type">
+        <label>Convert object types</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.parallel">
+        <label>Parallel lines</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.dissolve">
+        <label>Dissolve boundaries</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.drape">
+        <label>Create 3D vector over raster</label>
+      </module-item>
+      <module-item name="v.extrude">
+        <label>Extrude 3D vector map</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.label">
+        <label>Create labels</label>
+      </module-item>
+      <module-item name="v.label.sa">
+        <label>Create optimally placed labels</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.transform">
+        <label>Reposition vector map</label>
+      </module-item>
+      <module-item name="v.rectify">
+        <label>Rectify vector map</label>
+      </module-item>
+      <module-item name="v.proj">
+        <label>Reproject vector map</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.support">
+        <label>Support file maintenance</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="TopologyMaintenance">
+    <label>Topology maintenance</label>
+    <items>
+      <module-item name="v.build">
+        <label>Create or rebuild topology</label>
+      </module-item>
+      <module-item name="v.build.all">
+        <label>Rebuild topology on all vector maps</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.build.polylines">
+        <label>Build polylines</label>
+      </module-item>
+      <module-item name="v.split">
+        <label>Split lines</label>
+      </module-item>
+      <module-item name="v.segment">
+        <label>Split polylines</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="CleanVectorMap"/>
+      <module-item name="v.generalize">
+        <label>Smooth or simplify</label>
+      </module-item>
+      <module-item name="v.centroids">
+        <label>Add centroids</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ManageColors">
+    <label>Manage colors</label>
+    <items>
+      <module-item name="v.colors">
+        <label>Color tables</label>
+      </module-item>
+      <wxgui-item name="ManageColorRulesInteractively"/>
+      <module-item name="v.colors.out">
+        <label>Export color table</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="QueryVectorMap">
+    <label>Query vector map</label>
+    <items>
+      <module-item name="v.what">
+        <label>Query with coordinate(s)</label>
+      </module-item>
+      <module-item name="v.db.select">
+        <label>Query vector attribute data</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="FeatureSelection">
+    <label>Feature selection</label>
+    <items>
+      <module-item name="v.extract">
+        <label>Select by attributes</label>
+      </module-item>
+      <module-item name="v.select">
+        <label>Select by another map</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="MapTypeConversions">
+    <label>Map type conversions</label>
+    <items>
+      <module-item name="v.to.rast">
+        <label>Vector to raster</label>
+      </module-item>
+      <module-item name="v.to.rast3">
+        <label>Vector to volume</label>
+      </module-item>
+      <module-item name="v.to.3d">
+        <label>2D vector to 3D vector</label>
+      </module-item>
+      <module-item name="v.in.sites">
+        <label>Sites to vector</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="LidarAnalysis">
+    <label>Lidar analysis</label>
+    <items>
+      <module-item name="v.outlier">
+        <label>Identify and remove outliers</label>
+      </module-item>
+      <module-item name="v.lidar.edgedetection">
+        <label>Detect edges</label>
+      </module-item>
+      <module-item name="v.lidar.growing">
+        <label>Detect interiors</label>
+      </module-item>
+      <module-item name="v.lidar.correction">
+        <label>Correct and reclassify objects</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="LinearReferencing">
+    <label>Linear referencing</label>
+    <items>
+      <module-item name="v.lrs.create">
+        <label>Create LRS</label>
+      </module-item>
+      <module-item name="v.lrs.label">
+        <label>Create stationing</label>
+      </module-item>
+      <module-item name="v.lrs.segment">
+        <label>Create points/segments</label>
+      </module-item>
+      <module-item name="v.lrs.where">
+        <label>Find line id and offset</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="NetworkAnalysis">
+    <label>Network analysis</label>
+    <items>
+      <wxgui-item name="VectorNetworkAnalysisTool"/>
+      <separator/>
+      <module-item name="v.net">
+        <label>Network preparation</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.net.alloc">
+        <label>Allocate subnets</label>
+      </module-item>
+      <module-item name="v.net.iso">
+        <label>Split net</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.net.path">
+        <label>Shortest path</label>
+      </module-item>
+      <module-item name="v.net.distance">
+        <label>Shortest path for sets of features</label>
+      </module-item>
+      <module-item name="v.net.timetable">
+        <label>Shortest path using timetables</label>
+      </module-item>
+      <module-item name="v.net.allpairs">
+        <label>Shortest path for all pairs</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.net.visibility">
+        <label>Visibility network</label>
+      </module-item>
+      <module-item name="v.net.bridge">
+        <label>Bridges and articulation points</label>
+      </module-item>
+      <module-item name="v.net.flow">
+        <label>Maximum flow</label>
+      </module-item>
+      <module-item name="v.net.connectivity">
+        <label>Vertex connectivity</label>
+      </module-item>
+      <module-item name="v.net.components">
+        <label>Components</label>
+      </module-item>
+      <module-item name="v.net.centrality">
+        <label>Centrality</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.net.steiner">
+        <label>Steiner tree</label>
+      </module-item>
+      <module-item name="v.net.spanningtree">
+        <label>Minimum spanning tree</label>
+      </module-item>
+      <module-item name="v.net.salesman">
+        <label>Traveling salesman analysis</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="OverlayVectorMaps">
+    <label>Overlay vector maps</label>
+    <items>
+      <module-item name="v.overlay">
+        <label>Overlay vector maps</label>
+      </module-item>
+      <module-item name="v.patch">
+        <label>Patch vector maps</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ManageCategories">
+    <label>Manage categories</label>
+    <items>
+      <module-item name="v.category">
+        <label>Change or report categories</label>
+      </module-item>
+      <module-item name="v.reclass">
+        <label>Reclassify</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="UpdateAttributes">
+    <label>Update attributes</label>
+    <items>
+      <module-item name="v.rast.stats">
+        <label>Update area attributes from raster</label>
+      </module-item>
+      <module-item name="v.vect.stats">
+        <label>Update area attributes from vector</label>
+      </module-item>
+      <module-item name="v.what.vect">
+        <label>Update point attributes from areas</label>
+      </module-item>
+      <module-item name="v.to.db">
+        <label>Update database values from vector</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.what.rast">
+        <label>Sample raster maps at point locations</label>
+      </module-item>
+      <module-item name="v.sample">
+        <label>Sample raster neighborhood around points</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GenerateAreasFromPoints">
+    <label>Generate areas from points</label>
+    <items>
+      <module-item name="v.hull">
+        <label>Convex hull</label>
+      </module-item>
+      <module-item name="v.delaunay">
+        <label>Delaunay triangles</label>
+      </module-item>
+      <module-item name="v.voronoi">
+        <label>Voronoi diagram/Thiessen polygons</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="GeneratePoints">
+    <label>Generate points</label>
+    <items>
+      <module-item name="v.in.db">
+        <label>Generate from database</label>
+      </module-item>
+      <module-item name="v.to.points">
+        <label>Generate points along lines</label>
+      </module-item>
+      <module-item name="v.random">
+        <label>Generate random points</label>
+      </module-item>
+      <module-item name="v.perturb">
+        <label>Perturb points</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.outlier">
+        <label>Remove outliers in point sets</label>
+      </module-item>
+      <module-item name="v.kcv">
+        <label>Test/training point sets</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ReportsAndStatistics">
+    <label>Reports and statistics</label>
+    <items>
+      <module-item name="v.info">
+        <label>Basic vector metadata</label>
+      </module-item>
+      <module-item name="v.class">
+        <label>Classify attribute data</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.report">
+        <label>Report topology by category</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.univar">
+        <label>Univariate attribute statistics for points</label>
+      </module-item>
+      <module-item name="v.db.univar">
+        <label>Univariate statistics for attribute columns</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.qcount">
+        <label>Quadrat indices</label>
+      </module-item>
+      <module-item name="v.normal">
+        <label>Test normality</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="DevelopImagesAndGroups">
+    <label>Develop images and groups</label>
+    <items>
+      <wxgui-item name="CreateOrEditGroup"/>
+      <module-item name="i.target">
+        <label>Target group</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.image.mosaic">
+        <label>Mosaic images</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ManageImageColors">
+    <label>Manage image colors</label>
+    <items>
+      <module-item name="i.landsat.rgb">
+        <label>Color balance for RGB</label>
+      </module-item>
+      <module-item name="i.his.rgb">
+        <label>HIS to RGB</label>
+      </module-item>
+      <module-item name="i.rgb.his">
+        <label>RGB to HIS</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ClassifyImage">
+    <label>Classify image</label>
+    <items>
+      <module-item name="i.cluster">
+        <label>Clustering input for unsupervised classification</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.gensig">
+        <label>Input for supervised MLC</label>
+      </module-item>
+      <module-item name="i.maxlik">
+        <label>Maximum likelihood classification (MLC)</label>
+      </module-item>
+      <separator/>
+      <wxgui-item name="InteractiveInputForSupervisedClassification"/>
+      <separator/>
+      <module-item name="i.gensigset">
+        <label>Input for supervised SMAP</label>
+      </module-item>
+      <module-item name="i.smap">
+        <label>Sequential maximum a posteriori classification (SMAP)</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.segment">
+        <label>Object segmentation</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="FilterImage">
+    <label>Filter image</label>
+    <items>
+      <module-item name="i.zc">
+        <label>Edge detection</label>
+      </module-item>
+      <module-item name="r.mfilter">
+        <label>Matrix/convolving filter</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="TransformImage">
+    <label>Transform image</label>
+    <items>
+      <module-item name="i.cca">
+        <label>Canonical correlation</label>
+      </module-item>
+      <module-item name="i.pca">
+        <label>Principal components</label>
+      </module-item>
+      <module-item name="i.fft">
+        <label>Fast Fourier</label>
+      </module-item>
+      <module-item name="i.ifft">
+        <label>Inverse Fast Fourier</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="SatelliteImagesTools">
+    <label>Satellite images tools</label>
+    <items>
+      <module-item name="i.aster.toar">
+        <label>Aster DN to radiance/reflectance</label>
+      </module-item>
+      <module-item name="i.landsat.toar">
+        <label>Landsat DN to radiance/reflectance</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.landsat.acca">
+        <label>Landsat cloud cover assessment</label>
+      </module-item>
+      <module-item name="i.modis.qc">
+        <label>Modis quality control</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.atcorr">
+        <label>Atmospheric correction</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.latlong">
+        <label>LatLong map</label>
+      </module-item>
+      <module-item name="i.sunhours">
+        <label>Sunshine hours</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="SatelliteImagesProducts">
+    <label>Satellite images products</label>
+    <items>
+      <module-item name="i.vi">
+        <label>Vegetation indices</label>
+      </module-item>
+      <module-item name="i.tasscap">
+        <label>Tasseled cap vegetation index</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.albedo">
+        <label>Albedo</label>
+      </module-item>
+      <module-item name="i.emissivity">
+        <label>Emissivity</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.biomass">
+        <label>Biomass growth</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="EvapotranspirationCalculation">
+    <label>Evapotranspiration calculation</label>
+    <items>
+      <module-item name="i.eb.netrad">
+        <label>Instantaneaous Net Radiation</label>
+      </module-item>
+      <module-item name="i.eb.soilheatflux">
+        <label>Soil heat flux</label>
+      </module-item>
+      <module-item name="i.eb.h_sebal01">
+        <label>Sensible heat flux</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.eb.evapfr">
+        <label>Evaporative fraction</label>
+      </module-item>
+      <module-item name="i.eb.eta">
+        <label>Actual Evapotranspiration</label>
+      </module-item>
+      <module-item name="i.evapo.time">
+        <label>Temporal integration of ETa</label>
+      </module-item>
+      <separator/>
+      <module-item name="i.evapo.mh">
+        <label>Hargreaves methods Evapotranspiration</label>
+      </module-item>
+      <module-item name="i.evapo.pm">
+        <label>Penman-Monteith Evapotranspiration</label>
+      </module-item>
+      <module-item name="i.evapo.pt">
+        <label>Priestley-Taylor Evapotranspiration</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ReportAndStatistics">
+    <label>Report and statistics</label>
+    <items>
+      <module-item name="r.bitpattern">
+        <label>Bit pattern comparison </label>
+      </module-item>
+      <module-item name="r.kappa">
+        <label>Kappa analysis</label>
+      </module-item>
+      <module-item name="i.oif">
+        <label>OIF for LandSat TM</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="DevelopVolumes">
+    <label>Develop volumes</label>
+    <items>
+      <module-item name="r3.null">
+        <label>Manage 3D NULL values</label>
+      </module-item>
+      <module-item name="r3.timestamp">
+        <label>Manage timestamp</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="MapTypeConversions">
+    <label>Map type conversions</label>
+    <items>
+      <module-item name="r3.to.rast">
+        <label>Volume to raster series</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ReportAndStatistics">
+    <label>Report and Statistics</label>
+    <items>
+      <module-item name="r3.info">
+        <label>Basic volume metadata</label>
+      </module-item>
+      <module-item name="r3.stats">
+        <label>Voxel statistics</label>
+      </module-item>
+      <module-item name="r3.univar">
+        <label>Univariate statistics for volumes</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="DatabaseInformation">
+    <label>Database information</label>
+    <items>
+      <module-item name="db.databases">
+        <label>List databases</label>
+      </module-item>
+      <module-item name="db.drivers">
+        <label>List drivers</label>
+      </module-item>
+      <module-item name="db.tables">
+        <label>List tables</label>
+      </module-item>
+      <module-item name="db.describe">
+        <label>Describe table</label>
+      </module-item>
+      <module-item name="db.columns">
+        <label>List columns</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="ManageDatabases">
+    <label>Manage databases</label>
+    <items>
+      <module-item name="db.connect">
+        <label>Connect</label>
+      </module-item>
+      <module-item name="db.login">
+        <label>Login</label>
+      </module-item>
+      <separator/>
+      <module-item name="db.createdb">
+        <label>Create database</label>
+      </module-item>
+      <module-item name="db.dropdb">
+        <label>Drop database</label>
+      </module-item>
+      <separator/>
+      <module-item name="db.droptable">
+        <label>Drop table</label>
+      </module-item>
+      <module-item name="db.copy">
+        <label>Copy table</label>
+      </module-item>
+      <separator/>
+      <module-item name="db.dropcolumn">
+        <label>Drop column</label>
+      </module-item>
+      <separator/>
+      <module-item name="db.test">
+        <label>Test</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="Query">
+    <label>Query</label>
+    <items>
+      <module-item name="db.select">
+        <label>Query any table</label>
+      </module-item>
+      <module-item name="v.db.select">
+        <label>Query vector attribute data</label>
+      </module-item>
+      <module-item name="db.execute">
+        <label>SQL statement</label>
+      </module-item>
+    </items>
+  </toolbox>
+  <toolbox name="VectorDatabaseConnections">
+    <label>Vector database connections</label>
+    <items>
+      <module-item name="v.db.addtable">
+        <label>New table</label>
+      </module-item>
+      <module-item name="v.db.droptable">
+        <label>Remove table</label>
+      </module-item>
+      <module-item name="v.db.join">
+        <label>Join table</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.db.addcolumn">
+        <label>Add columns</label>
+      </module-item>
+      <module-item name="v.db.dropcolumn">
+        <label>Drop column</label>
+      </module-item>
+      <module-item name="v.db.renamecolumn">
+        <label>Rename column</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.db.update">
+        <label>Change values</label>
+      </module-item>
+      <module-item name="v.db.droprow">
+        <label>Drop row</label>
+      </module-item>
+      <separator/>
+      <module-item name="v.db.reconnect.all">
+        <label>Reconnect vectors to database</label>
+      </module-item>
+      <module-item name="v.db.connect">
+        <label>Set vector map - database connection</label>
+      </module-item>
+    </items>
+  </toolbox>
+</toolboxes>
+


Property changes on: grass/trunk/gui/wxpython/xml/toolboxes.xml
___________________________________________________________________
Added: svn:mime-type
   + text/xml
Added: svn:eol-style
   + native

Added: grass/trunk/gui/wxpython/xml/wxgui_items.dtd
===================================================================
--- grass/trunk/gui/wxpython/xml/wxgui_items.dtd	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/wxgui_items.dtd	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,14 @@
+<!ELEMENT wxgui-items (wxgui-item*)>
+
+<!ELEMENT wxgui-item (label, ((handler, related-module?) | command), description, keywords?, shortcut?, wx-id?)>
+<!ATTLIST wxgui-item name NMTOKEN #REQUIRED>
+
+<!ELEMENT label (#PCDATA)>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT handler (#PCDATA)>
+<!ELEMENT command (#PCDATA)>
+<!ELEMENT related-module (#PCDATA)>
+<!ELEMENT keywords (#PCDATA)>
+<!ELEMENT shortcut (#PCDATA)>
+<!ELEMENT wx-id (#PCDATA)>
+

Added: grass/trunk/gui/wxpython/xml/wxgui_items.xml
===================================================================
--- grass/trunk/gui/wxpython/xml/wxgui_items.xml	                        (rev 0)
+++ grass/trunk/gui/wxpython/xml/wxgui_items.xml	2013-04-29 13:59:42 UTC (rev 56034)
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE wxgui_items SYSTEM "wxgui_items.dtd">
+<wxgui-items>
+  <wxgui-item name="Georectify">
+    <label>Georectify</label>
+    <handler>OnGCPManager</handler>
+    <description>Manage Ground Control Points for Georectification</description>
+  </wxgui-item>
+  <wxgui-item name="GraphicalModeler">
+    <label>Graphical modeler</label>
+    <handler>OnGModeler</handler>
+    <related-module>g.gui.gmodeler</related-module>
+    <description>Launch Graphical modeler</description>
+    <keywords>general,gui,graphical modeler,workflow</keywords>
+  </wxgui-item>
+  <wxgui-item name="RunModel">
+    <label>Run model</label>
+    <handler>OnRunModel</handler>
+    <description>Run model prepared by Graphical modeler</description>
+  </wxgui-item>
+  <wxgui-item name="AnimationTool">
+    <label>Animation tool</label>
+    <handler>OnAnimationTool</handler>
+    <related-module>g.gui.animation</related-module>
+    <description>Launch animation tool.</description>
+    <keywords>general,gui,display</keywords>
+  </wxgui-item>
+  <wxgui-item name="CartographicComposer">
+    <label>Cartographic Composer</label>
+    <handler>OnPsMap</handler>
+    <related-module>g.gui.psmap</related-module>
+    <description>Launch Cartographic Composer</description>
+    <keywords>postscript,printing</keywords>
+  </wxgui-item>
+  <wxgui-item name="MapSwipe">
+    <label>Map Swipe</label>
+    <handler>OnMapSwipe</handler>
+    <related-module>g.gui.mapswipe</related-module>
+    <description>Launch Map Swipe</description>
+    <keywords>general,gui,display</keywords>
+  </wxgui-item>
+  <wxgui-item name="LaunchScript">
+    <label>Launch script</label>
+    <handler>OnRunScript</handler>
+    <description>Launches script file.</description>
+  </wxgui-item>
+  <wxgui-item name="Quit">
+    <label>Quit</label>
+    <handler>OnCloseWindow</handler>
+    <description>Quit</description>
+    <shortcut>Ctrl+Q</shortcut>
+    <wx-id>ID_EXIT</wx-id>
+  </wxgui-item>
+  <wxgui-item name="Preferences">
+    <label>Preferences</label>
+    <handler>OnPreferences</handler>
+    <description>User GUI preferences (display font, commands, digitizer, etc.)</description>
+    <wx-id>ID_PREFERENCES</wx-id>
+  </wxgui-item>
+  <wxgui-item name="RasterMapCalculator">
+    <label>Raster map calculator</label>
+    <handler>OnMapCalculator</handler>
+    <related-module>r.mapcalc</related-module>
+    <description>Raster map calculator.</description>
+    <keywords>raster,algebra</keywords>
+  </wxgui-item>
+  <wxgui-item name="Histogram">
+    <label>Histogram</label>
+    <handler>OnHistogram</handler>
+    <description>Generate histogram of image</description>
+  </wxgui-item>
+  <wxgui-item name="VolumeCalculator">
+    <label>Volume calculator</label>
+    <handler>OnMapCalculator</handler>
+    <related-module>r3.mapcalc</related-module>
+    <description>3D raster map calculator.</description>
+    <keywords>raster,algebra</keywords>
+  </wxgui-item>
+  <wxgui-item name="GRASSHelp">
+    <label>GRASS help</label>
+    <command>g.manual -i</command>
+    <description>Display the HTML man pages of GRASS GIS</description>
+    <keywords>general,manual,help</keywords>
+    <wx-id>ID_HELP</wx-id>
+  </wxgui-item>
+  <wxgui-item name="GUIHelp">
+    <label>GUI help</label>
+    <command>g.manual entry=wxGUI</command>
+    <description>Display the HTML man pages of GRASS GIS</description>
+    <keywords>general,manual,help</keywords>
+  </wxgui-item>
+  <wxgui-item name="AboutSystem">
+    <label>About system</label>
+    <handler>OnSystemInfo</handler>
+    <description>Prints system information</description>
+  </wxgui-item>
+  <wxgui-item name="AboutGRASSGIS">
+    <label>About GRASS GIS</label>
+    <handler>OnAboutGRASS</handler>
+    <description>About GRASS GIS</description>
+    <wx-id>ID_ABOUT</wx-id>
+  </wxgui-item>
+  <wxgui-item name="New">
+    <label>New</label>
+    <handler>OnWorkspaceNew</handler>
+    <description>Create new workspace</description>
+    <shortcut>Ctrl+N</shortcut>
+    <wx-id>ID_NEW</wx-id>
+  </wxgui-item>
+  <wxgui-item name="Open">
+    <label>Open</label>
+    <handler>OnWorkspaceOpen</handler>
+    <description>Load workspace from file</description>
+    <shortcut>Ctrl+O</shortcut>
+    <wx-id>ID_OPEN</wx-id>
+  </wxgui-item>
+  <wxgui-item name="Save">
+    <label>Save</label>
+    <handler>OnWorkspaceSave</handler>
+    <description>Save workspace</description>
+    <shortcut>Ctrl+S</shortcut>
+    <wx-id>ID_SAVE</wx-id>
+  </wxgui-item>
+  <wxgui-item name="SaveAs">
+    <label>Save as</label>
+    <handler>OnWorkspaceSaveAs</handler>
+    <description>Save workspace to file</description>
+    <wx-id>ID_SAVEAS</wx-id>
+  </wxgui-item>
+  <wxgui-item name="Close">
+    <label>Close</label>
+    <handler>OnWorkspaceClose</handler>
+    <description>Close workspace file</description>
+    <wx-id>ID_CLOSE</wx-id>
+  </wxgui-item>
+  <wxgui-item name="LoadGRCFileTclTkGUI">
+    <label>Load GRC file (Tcl/Tk GUI)</label>
+    <handler>OnWorkspaceLoadGrcFile</handler>
+    <description>Load map layers from GRC file to layer tree</description>
+  </wxgui-item>
+  <wxgui-item name="AddRaster">
+    <label>Add raster</label>
+    <handler>OnAddRaster</handler>
+    <description>Add raster map layer to current display</description>
+    <shortcut>Ctrl+Shift+R</shortcut>
+  </wxgui-item>
+  <wxgui-item name="AddVector">
+    <label>Add vector</label>
+    <handler>OnAddVector</handler>
+    <description>Add vector map layer to current display</description>
+    <shortcut>Ctrl+Shift+V</shortcut>
+  </wxgui-item>
+  <wxgui-item name="AddMultipleRastersOrVectors">
+    <label>Add multiple rasters or vectors</label>
+    <handler>OnAddMaps</handler>
+    <description>Add multiple raster or vector map layers to current display</description>
+    <shortcut>Ctrl+Shift+L</shortcut>
+  </wxgui-item>
+  <wxgui-item name="NewMapDisplayWindow">
+    <label>New map display window</label>
+    <handler>OnNewDisplay</handler>
+    <description>Open new map display window</description>
+  </wxgui-item>
+  <wxgui-item name="CloseCurrentMapDisplayWindow">
+    <label>Close current map display window</label>
+    <handler>OnDisplayClose</handler>
+    <description>Close current map display window</description>
+    <shortcut>Ctrl+W</shortcut>
+  </wxgui-item>
+  <wxgui-item name="CloseAllOpenMapDisplayWindows">
+    <label>Close all open map display windows</label>
+    <handler>OnDisplayCloseAll</handler>
+    <description>Close all open map display windows</description>
+  </wxgui-item>
+  <wxgui-item name="CommonFormatsImport">
+    <label>Common formats import</label>
+    <handler>OnImportGdalLayers</handler>
+    <related-module>r.in.gdal</related-module>
+    <description>Import raster data into a GRASS map layer using GDAL.</description>
+    <keywords>raster,import</keywords>
+  </wxgui-item>
+  <wxgui-item name="CommonImportFormats">
+    <label>Common import formats</label>
+    <handler>OnImportOgrLayers</handler>
+    <related-module>v.in.ogr</related-module>
+    <description>Converts vector layers into a GRASS vector map using OGR.</description>
+    <keywords>vector,import</keywords>
+  </wxgui-item>
+  <wxgui-item name="DXFImport">
+    <label>DXF import</label>
+    <handler>OnImportDxfFile</handler>
+    <related-module>v.in.dxf</related-module>
+    <description>Converts files in DXF format to GRASS vector map format.</description>
+    <keywords>vector,import,dxf</keywords>
+  </wxgui-item>
+  <wxgui-item name="LinkExternalRasterData">
+    <label>Link external raster data</label>
+    <handler>OnLinkGdalLayers</handler>
+    <related-module>r.external</related-module>
+    <description>Link GDAL supported raster data as a pseudo GRASS raster map layer.</description>
+    <keywords>raster,import,input,external</keywords>
+  </wxgui-item>
+  <wxgui-item name="LinkExternalVectorData">
+    <label>Link external vector data</label>
+    <handler>OnLinkOgrLayers</handler>
+    <related-module>v.external</related-module>
+    <description>Creates a new pseudo-vector map as a link to an OGR-supported layer.</description>
+    <keywords>vector,import,input,external,OGR,PostGIS</keywords>
+  </wxgui-item>
+  <wxgui-item name="OutputFormatForVectorData">
+    <label>Output format for vector data</label>
+    <handler>OnVectorOutputFormat</handler>
+    <related-module>v.external.out</related-module>
+    <description>Defines vector output format utilizing OGR library.</description>
+    <keywords>vector,export,output,external,OGR,PostGIS</keywords>
+  </wxgui-item>
+  <wxgui-item name="DisplayRegion">
+    <label>Display region</label>
+    <command>g.region -p</command>
+    <description>Manages the boundary definitions for the geographic region.</description>
+    <keywords>general,settings</keywords>
+  </wxgui-item>
+  <wxgui-item name="MapsetAccess">
+    <label>Mapset access</label>
+    <handler>OnMapsets</handler>
+    <related-module>g.mapsets</related-module>
+    <description>Set/unset access to other mapsets in current location</description>
+    <keywords>general,settings,search path</keywords>
+  </wxgui-item>
+  <wxgui-item name="ChangeLocationAndMapset">
+    <label>Change location and mapset</label>
+    <handler>OnChangeLocation</handler>
+    <description>Change current location and mapset.</description>
+    <keywords>general,location,current</keywords>
+  </wxgui-item>
+  <wxgui-item name="ChangeMapset">
+    <label>Change mapset</label>
+    <handler>OnChangeMapset</handler>
+    <description>Change current mapset.</description>
+    <keywords>general,mapset,current</keywords>
+  </wxgui-item>
+  <wxgui-item name="ChangeWorkingDirectory">
+    <label>Change working directory</label>
+    <handler>OnChangeCWD</handler>
+    <description>Change working directory</description>
+  </wxgui-item>
+  <wxgui-item name="ShowSettings">
+    <label>Show settings</label>
+    <command>g.gisenv -n</command>
+    <description>Outputs and modifies the user's current GRASS variable settings.</description>
+    <keywords>general,settings,variables</keywords>
+  </wxgui-item>
+  <wxgui-item name="CreateNewLocation">
+    <label>Create new location</label>
+    <handler>OnLocationWizard</handler>
+    <description>Launches location wizard to create new GRASS location.</description>
+    <keywords>general,location,wizard</keywords>
+  </wxgui-item>
+  <wxgui-item name="CreateNewMapset">
+    <label>Create new mapset</label>
+    <handler>OnCreateMapset</handler>
+    <description>Creates new mapset in the current location, changes current mapset.</description>
+    <keywords>general,mapset,create</keywords>
+  </wxgui-item>
+  <wxgui-item name="VersionAndCopyright">
+    <label>Version and copyright</label>
+    <command>g.version -c</command>
+    <description>Displays version and copyright information.</description>
+    <keywords>general,version</keywords>
+  </wxgui-item>
+  <wxgui-item name="DisplayMapProjection">
+    <label>Display map projection</label>
+    <command>g.proj -p</command>
+    <description>Converts co-ordinate system descriptions (i.e. projection information) between various formats (including GRASS format).</description>
+    <keywords>general,projection,create location</keywords>
+  </wxgui-item>
+  <wxgui-item name="InstallExtensionFromAddons">
+    <label>Install extension from addons</label>
+    <handler>OnInstallExtension</handler>
+    <related-module>g.extension</related-module>
+    <description>Installs new extension from GRASS AddOns SVN repository.</description>
+    <keywords>general,installation,extensions</keywords>
+  </wxgui-item>
+  <wxgui-item name="UninstallExtension">
+    <label>Uninstall extension</label>
+    <handler>OnUninstallExtension</handler>
+    <related-module>g.extension</related-module>
+    <description>Removes installed GRASS AddOns extension.</description>
+    <keywords>general,installation,extensions</keywords>
+  </wxgui-item>
+  <wxgui-item name="ManageColorRulesInteractively">
+    <label>Manage color rules interactively</label>
+    <handler>OnRasterRules</handler>
+    <description>Interactive management of raster color tables.</description>
+    <keywords>raster,color table</keywords>
+  </wxgui-item>
+  <wxgui-item name="SetUpSamplingAndAnalysisFramework">
+    <label>Set up sampling and analysis framework</label>
+    <handler>OnRLiSetup</handler>
+    <description>Configuration editor for r.li.'index'</description>
+    <keywords>raster,landscape structure analysis</keywords>
+  </wxgui-item>
+  <wxgui-item name="OrdinaryOrBlockKriging">
+    <label>Ordinary or block kriging</label>
+    <command>v.krige</command>
+    <description>Performs ordinary or block kriging.</description>
+    <keywords>vector,raster,interpolation,kriging</keywords>
+  </wxgui-item>
+  <wxgui-item name="CreateNewVectorMap">
+    <label>Create new vector map</label>
+    <handler>OnNewVector</handler>
+    <description>Create new empty vector map</description>
+  </wxgui-item>
+  <wxgui-item name="CleanVectorMap">
+    <label>Clean vector map</label>
+    <handler>OnVectorCleaning</handler>
+    <related-module>v.clean</related-module>
+    <description>Toolset for cleaning topology of vector map.</description>
+    <keywords>vector,topology,geometry</keywords>
+  </wxgui-item>
+  <wxgui-item name="ManageColorRulesInteractively">
+    <label>Manage color rules interactively</label>
+    <handler>OnVectorRules</handler>
+    <description>Interactive management of vector color tables.</description>
+    <keywords>vector,color table</keywords>
+  </wxgui-item>
+  <wxgui-item name="VectorNetworkAnalysisTool">
+    <label>Vector network analysis tool</label>
+    <handler>OnVNet</handler>
+    <description>Tool for interactive vector network analysis.</description>
+    <keywords>gui,vector,network</keywords>
+  </wxgui-item>
+  <wxgui-item name="CreateOrEditGroup">
+    <label>Create/edit group</label>
+    <handler>OnEditImageryGroups</handler>
+    <related-module>i.group</related-module>
+    <description>Creates, edits, and lists groups of imagery files.</description>
+    <keywords>imagery,map management</keywords>
+  </wxgui-item>
+  <wxgui-item name="InteractiveInputForSupervisedClassification">
+    <label>Interactive input for supervised classification</label>
+    <handler>OnIClass</handler>
+    <related-module>g.gui.iclass</related-module>
+    <description>Generates spectral signatures by allowing the user to outline training areas.</description>
+    <keywords>general,gui,imagery,classification,signatures</keywords>
+  </wxgui-item>
+</wxgui-items>
+


Property changes on: grass/trunk/gui/wxpython/xml/wxgui_items.xml
___________________________________________________________________
Added: svn:mime-type
   + text/xml
Added: svn:eol-style
   + native



More information about the grass-commit mailing list