                            :modifiers (translate-modifier (.getModifiersEx event))
                            :position [(.getX event) (.getY event)]
                            :buttons-down (translate-pressed-btns (.getModifiersEx event))})]
-    (proxy [MouseInputListener] []
+    (proxy [MouseInputAdapter] []
       (mousePressed [event]
         (with-swing-threads* (pressed (translate-event event))))
       (mouseReleased [event]

      (mouseClicked [event]
        (with-swing-threads* (clicked (translate-event event))))
      (mouseMoved [event]
        (with-swing-threads* (message-box "MOVED")
          (moved (translate-event event))))
      (mouseDragged [event]
        (with-swing-threads* (dragged (translate-event event)))))))


(defn add-control-mouse-listener
  "Adds a mouse-listener proxy to the given control."
  [control proxy]
  (.addMouseListener (get-control control) proxy)
  (.addMouseMotionListener (get-control control) proxy))


;;; Button
