Hi,

My try. Not tested, though...

(defn create-toggle-shape
  "Creates an ellipse that changes shape when it is clicked."
  []
  (let [fIsPressed? (atom false)
        shape       (proxy [PPath] []
                      (paint
                        [#^PPaintContext paintContext]
                        (if @fIsPressed?
                          (doto (.getGraphics paintContext)
                            (.setPaint (.getPaint this))
                            (.fill (.getBoundReference this)))
                          (proxy-super paint paintContext))))]
    (doto shape
      (.setPathToEllipse 0 0 100 80)
      (.addInputEventListener
        (proxy [PBasicInputEventHandler] []
          (mousePressed
            [evt]
            (proxy-super mousePressed evt)
            (reset! fIsPressed? true)
            (.repaint shape))
          (mouseReleased
            [evt]
            (proxy-super mouseReleased evt)
            (reset! fIsPressed? false)
            (.repaint shape)))))))

Sincerely
Meikel

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

To unsubscribe, reply using "remove me" as the subject.

Reply via email to