changeset 50:409b1b16053d

Code cleanup and docstrings.
author Mikhail Kryshen <mikhail@kryshen.net>
date Thu, 29 Jul 2010 01:28:30 +0400
parents ca728127d605
children a20b1fccc0ef
files src/net/kryshen/indyvon/component.clj src/net/kryshen/indyvon/core.clj src/net/kryshen/indyvon/layers.clj
diffstat 3 files changed, 23 insertions(+), 17 deletions(-) [+]
line diff
     1.1 --- a/src/net/kryshen/indyvon/component.clj	Thu Jul 29 01:08:34 2010 +0400
     1.2 +++ b/src/net/kryshen/indyvon/component.clj	Thu Jul 29 01:28:30 2010 +0400
     1.3 @@ -5,6 +5,7 @@
     1.4  ;;
     1.5  
     1.6  (ns net.kryshen.indyvon.component
     1.7 +  "Integrating Indyvon into AWT and Swing components."
     1.8    (:use
     1.9     net.kryshen.indyvon.core)
    1.10    (:import
     2.1 --- a/src/net/kryshen/indyvon/core.clj	Thu Jul 29 01:08:34 2010 +0400
     2.2 +++ b/src/net/kryshen/indyvon/core.clj	Thu Jul 29 01:28:30 2010 +0400
     2.3 @@ -58,19 +58,19 @@
     2.4  (extend-protocol Anchored
     2.5    net.kryshen.indyvon.core.Layer
     2.6    (anchor [this h-align v-align]
     2.7 -          (if (and (= h-align :left)
     2.8 -                   (= v-align :top))
     2.9 -            (Location. 0 0)
    2.10 -            (let [size (layer-size this)]
    2.11 -              (Location.
    2.12 -               (case h-align
    2.13 -                     :top 0
    2.14 -                     :center (/ (:width size) 2)
    2.15 -                     :right (:width size))
    2.16 -               (case v-align
    2.17 -                     :left 0
    2.18 -                     :center (/ (:height size) 2)
    2.19 -                     :bottom (:height size)))))))
    2.20 +     (if (and (= h-align :left)
    2.21 +              (= v-align :top))
    2.22 +       (Location. 0 0)
    2.23 +       (let [size (layer-size this)]
    2.24 +         (Location.
    2.25 +          (case h-align
    2.26 +            :top 0
    2.27 +            :center (/ (:width size) 2)
    2.28 +            :right (:width size))
    2.29 +          (case v-align
    2.30 +            :left 0
    2.31 +            :center (/ (:height size) 2)
    2.32 +            :bottom (:height size)))))))
    2.33  
    2.34  (defn- ^Graphics2D make-graphics [^Graphics2D graphics x y w h]
    2.35    (.create graphics x y w h))
    2.36 @@ -81,6 +81,7 @@
    2.37      (.setFont (:font theme))))
    2.38  
    2.39  (defn intersect
    2.40 +  "Compute intersection between a pair of rectangles (Bounds)."
    2.41    ([b1 b2]
    2.42       (let [x1 (:x b1)
    2.43             y1 (:y b1)
     3.1 --- a/src/net/kryshen/indyvon/layers.clj	Thu Jul 29 01:08:34 2010 +0400
     3.2 +++ b/src/net/kryshen/indyvon/layers.clj	Thu Jul 29 01:28:30 2010 +0400
     3.3 @@ -5,6 +5,7 @@
     3.4  ;;
     3.5  
     3.6  (ns net.kryshen.indyvon.layers
     3.7 +  "Implementations of Layer protocol."
     3.8    (:use
     3.9     net.kryshen.indyvon.core)
    3.10    (:import
    3.11 @@ -28,7 +29,9 @@
    3.12  (defmacro align-y [inner outer align]
    3.13    `(align-xy ~inner ~outer ~align :top :center :bottom))
    3.14  
    3.15 -(defmacro decorate-layer [layer & render-tail]
    3.16 +(defmacro decorate-layer
    3.17 +  "Decorate Layer and Anchored replacing render! implementation."
    3.18 +  [layer & render-tail]
    3.19    `(reify
    3.20      Layer
    3.21      (render! ~@render-tail)
    3.22 @@ -37,6 +40,7 @@
    3.23      (anchor [t# xa# ya#] (anchor ~layer xa# ya#))))
    3.24  
    3.25  (defn padding
    3.26 +  "Decorates layer adding padding."
    3.27    ([content pad]
    3.28       (padding content pad pad pad pad))
    3.29    ([content top left bottom right]
    3.30 @@ -139,7 +143,7 @@
    3.31                   height (text-height layouts)]
    3.32               (Size. width height)))))))
    3.33  
    3.34 -(defn- image-observer [update-fn]
    3.35 +(defn- ^ImageObserver image-observer [update-fn]
    3.36    (reify
    3.37     ImageObserver
    3.38     (imageUpdate [this img infoflags x y width height]
    3.39 @@ -158,8 +162,7 @@
    3.40      (reify
    3.41       Layer
    3.42       (render! [layer]
    3.43 -        (.drawImage *graphics* image 0 0
    3.44 -                    ^ImageObserver (image-observer *update*)))
    3.45 +        (.drawImage *graphics* image 0 0 (image-observer *update*)))
    3.46       (layer-size [layer]
    3.47          (let [observer (image-observer *update*)
    3.48                width (.getWidth image observer)
    3.49 @@ -212,6 +215,7 @@
    3.50  ;;
    3.51  
    3.52  (defmacro handler [layer & handlers]
    3.53 +  "Decorate layer to handle events."
    3.54    `(let [layer# ~layer]
    3.55       (decorate-layer layer# [t#]
    3.56          (with-handlers t#