       menu)))
 
 (defn add-menus
-  "Adds the additional menus to the frame in front of the first Box.Filler
-  found in the menu-bar of frame."
+  "Adds the menus (specified as hash-maps) to the frame in front of
+  the first Box.Filler found in the menu-bar of frame. Returns the
+  menus added."
   [frame menus]
   (let [our-menus (map #(hash-map->menu frame %) menus)]
     (do-swing-and-wait

  [frame]
  (get-component frame #(= (class %) JToolBar)))

(defvar *default-icon* (get-resource "images/default.jpg")
  "Default icon image used when no other image is found.")
(defvar *icon-size* 17
  "Default icon size.")

  (:import [javax.swing JFrame JMenuBar JMenu JMenuItem Box JToolBar JPanel
	                JButton ImageIcon JSeparator JTabbedPane JSplitPane
	                JLabel JTextArea JScrollPane SwingUtilities BorderFactory
	                AbstractButton SwingConstants]
	   [javax.imageio ImageIO]
	   [java.awt GridLayout BorderLayout Dimension Image Font Color
	             Graphics Graphics2D BasicStroke FlowLayout]
	   [java.awt.event KeyEvent ActionListener MouseAdapter MouseEvent]
	   [java.io File])
  (:use [conexp.base :only (defvar first-non-nil)]
	[clojure.contrib.seq :only (indexed partition-by)]
	clojure.contrib.swing-utils))


