  var rCmds = newMenu("ROI Menu Tool", 
      newArray("Set Default Group...", "Set Default Stroke Width...", "-", 
      "Set Group of Selected ROIs", "Select Group", "-", "Properties..." , "Install Keypad Shortcuts") );

  macro "ROI Menu Tool - C037T0d15RT8c12oTfc12i" {
      cmd = getArgument();
      if (cmd=="Set Default Group...")
          setDefaultRoiGroup();
      else if (cmd=="Set Default Stroke Width...")
          setDefaultRoiStrokeWidth();
      else if (cmd=="Set Group of Selected ROIs")
          setRoiGroup();       
       else if (cmd=="Select Group")
          selectRoiGroup();
      else if (cmd=="Properties...")
          properties();
      else if (cmd=="Install Keypad Shortcuts")
          call("ij.plugin.MacroInstaller.installFromJar", "/macros/RoiMenuTool.txt+");
  }

  // Numeric keypad shortcuts used to set the default ROI group
 macro "Keypad shortcuts for setting default group" { }
  macro "Group 0 (none) [n0]" { npad(0); }
  macro "Group 1 [n1]" { npad(1); }
  macro "Group 2 [n2]" { npad(2); }
  macro "Group 3 [n3]" { npad(3); }
  macro "Group 4 [n4]" { npad(4); }
  macro "Group 5 [n5]" { npad(5); }
  macro "Group 6 [n6]" { npad(6); }
  macro "Group 7 [n7]" { npad(7); }
  macro "Group 8 [n8]" { npad(8); }
  macro "Group 9 [n9]" { npad(9); }

  function npad(digit) {
      Roi.setDefaultGroup(digit);
  }

  function properties() {
     if (selectionType==-1) {
        showMessage("Selection required");
        exit;
     }
     run("Properties... ");
  }

  function setDefaultRoiGroup() {
     group = Roi.getDefaultGroup;
     Dialog.create("Set Default Group");
     Dialog.addNumber("Default group", group);
     Dialog.show;
     group = Dialog.getNumber();
     Roi.setDefaultGroup(group);
     call("ij.plugin.frame.Recorder.recordString", "Roi.setDefaultGroup("+group+");\n");
  }

  function setDefaultRoiStrokeWidth() {
     width = Roi.getDefaultStrokeWidth;
     Dialog.create("Set Default Stroke Width");
     Dialog.addNumber("Default stroke width", width);
     Dialog.show;
     width = Dialog.getNumber();
     Roi.setDefaultStrokeWidth(width);
     call("ij.plugin.frame.Recorder.recordString", "Roi.setDefaultStrokeWidth("+width+");\n");
  }

  function setRoiGroup() {
     Dialog.create("Set Group");
     Dialog.addString("Group", "1");
     Dialog.show;
     group = Dialog.getString();
     RoiManager.setGroup(group);
     if (call("ij.plugin.frame.Recorder.scriptMode")=="true")
        call("ij.plugin.frame.Recorder.recordString", "rm.setGroup("+group+");\n");
     else
        call("ij.plugin.frame.Recorder.recordString", "RoiManager.setGroup("+group+");\n");
 }

  function selectRoiGroup() {
     Dialog.create("Select group");
     Dialog.addString("Group", "0");
     Dialog.show;
     group = Dialog.getString();
     RoiManager.selectGroup(group);
     if (call("ij.plugin.frame.Recorder.scriptMode")=="true")
        call("ij.plugin.frame.Recorder.recordString", "rm.selectGroup("+group+");\n");
     else
        call("ij.plugin.frame.Recorder.recordString", "RoiManager.selectGroup("+group+");\n");
  }
