Mercurial > hg > indyvon
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#