Mercurial > hg > indyvon
changeset 35:0d593970cb76
Separate namespace for demo and experiments.
author | Mikhail Kryshen <mikhail@kryshen.net> |
---|---|
date | Thu, 08 Jul 2010 06:02:12 +0400 |
parents | 6975b9a71eec |
children | 5413b188d112 |
files | project.clj src/indyvon/component.clj src/indyvon/demo.clj |
diffstat | 3 files changed, 91 insertions(+), 78 deletions(-) [+] |
line diff
1.1 --- a/project.clj Thu Jul 08 05:27:54 2010 +0400 1.2 +++ b/project.clj Thu Jul 08 06:02:12 2010 +0400 1.3 @@ -5,4 +5,5 @@ 1.4 :dev-dependencies [[leiningen/lein-swank "1.2.0-SNAPSHOT"]] 1.5 :namespaces [indyvon.core 1.6 indyvon.layers 1.7 - indyvon.component]) 1.8 + indyvon.component 1.9 + indyvon.demo])
2.1 --- a/src/indyvon/component.clj Thu Jul 08 05:27:54 2010 +0400 2.2 +++ b/src/indyvon/component.clj Thu Jul 08 06:02:12 2010 +0400 2.3 @@ -50,80 +50,3 @@ 2.4 (.setBackground panel (:back-color *theme*)) 2.5 (listen! event-dispatcher panel) 2.6 panel))) 2.7 - 2.8 -(comment 2.9 - (do 2.10 - (def frame (JFrame. "Test")) 2.11 - 2.12 - (def layer1 2.13 - (reify 2.14 - Layer 2.15 - (render! [layer opts] 2.16 - (with-handlers layer 2.17 - (doto *graphics* 2.18 - (.setColor Color/RED) 2.19 - (.fillRect 0 0 (:width *bounds*) (:height *bounds*))) 2.20 - (:mouse-entered e (println e)) 2.21 - (:mouse-exited e (println e)) 2.22 - (:mouse-moved e (println e)))) 2.23 - (size [layer opts] (Size. 30 20)))) 2.24 - 2.25 - (def layer1b (border-layer layer1 2 3)) 2.26 - 2.27 - (def layer2 2.28 - (reify 2.29 - Layer 2.30 - (render! [layer opts] 2.31 - (doto *graphics* 2.32 - (.setColor Color/YELLOW) 2.33 - (.fillRect 0 0 (:width *bounds*) (:height *bounds*))) 2.34 - (draw! layer1b [10 5]) 2.35 - (draw! layer1 [55 5])) 2.36 - (size [layer opts] (Size. 70 65)))) 2.37 - 2.38 - (def layer3 2.39 - (border-layer (text-layer "Sample\ntext" :right :center))) 2.40 - 2.41 - (defn fps-layer [fps] 2.42 - (border-layer (text-layer (format "%.1f" fps) :right :bottom) 0 5)) 2.43 - 2.44 - (def fps 2.45 - (let [update-interval 0.1 2.46 - frames (ref 0) 2.47 - last (ref 0) 2.48 - fl (ref (fps-layer 0.0))] 2.49 - (reify 2.50 - Layer 2.51 - (render! [layer opts] 2.52 - (render! @fl nil) 2.53 - (dosync 2.54 - (alter frames + 1) 2.55 - (let [time (System/currentTimeMillis) 2.56 - elapsed (/ (- time @last) 1000.0)] 2.57 - (when (> elapsed update-interval) 2.58 - (ref-set fl (fps-layer (/ @frames elapsed))) 2.59 - (ref-set frames 0) 2.60 - (ref-set last time))))) 2.61 - (size [layer opts] (size @fl nil))))) 2.62 - 2.63 - (def layer 2.64 - (reify Layer 2.65 - (render! [layer opts] 2.66 - (*update*) 2.67 - (doto *graphics* 2.68 - (.setColor (rand-nth [Color/BLACK Color/BLUE Color/RED])) 2.69 - (.drawLine 0 0 (:width *bounds*) (:height *bounds*))) 2.70 - (draw! layer2 [15 20]) 2.71 - (draw! layer3 [100 100 80 50]) 2.72 - (render! fps nil)) 2.73 - (size [layer opts] (Size. 400 300)))) 2.74 - 2.75 - (doto frame 2.76 - (.addWindowListener 2.77 - (proxy [java.awt.event.WindowAdapter] [] 2.78 - (windowClosing [event] (.dispose frame)))) 2.79 - (.. (getContentPane) (add (make-jpanel (viewport layer)))) 2.80 - (.pack) 2.81 - (.setVisible true)) 2.82 - ) 2.83 - )
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 3.2 +++ b/src/indyvon/demo.clj Thu Jul 08 06:02:12 2010 +0400 3.3 @@ -0,0 +1,89 @@ 3.4 +;; 3.5 +;; Copyright (C) 2010 Mikhail Kryshen <mikhail@kryshen.net> 3.6 +;; 3.7 +;; This file is part of Indyvon. 3.8 +;; 3.9 + 3.10 +(ns indyvon.demo 3.11 + (:gen-class) 3.12 + (:use indyvon.core 3.13 + indyvon.layers 3.14 + indyvon.component) 3.15 + (:import (indyvon.core Size Bounds) 3.16 + (java.awt Graphics2D Component Dimension Color) 3.17 + (javax.swing JFrame JPanel))) 3.18 + 3.19 +(def frame (JFrame. "Test")) 3.20 + 3.21 +(def layer1 3.22 + (reify 3.23 + Layer 3.24 + (render! [layer opts] 3.25 + (with-handlers layer 3.26 + (doto *graphics* 3.27 + (.setColor Color/RED) 3.28 + (.fillRect 0 0 (:width *bounds*) (:height *bounds*))) 3.29 + (:mouse-entered e (println e)) 3.30 + (:mouse-exited e (println e)) 3.31 + (:mouse-moved e (println e)))) 3.32 + (size [layer opts] (Size. 30 20)))) 3.33 + 3.34 +(def layer1b (border-layer layer1 2 3)) 3.35 + 3.36 +(def layer2 3.37 + (reify 3.38 + Layer 3.39 + (render! [layer opts] 3.40 + (doto *graphics* 3.41 + (.setColor Color/YELLOW) 3.42 + (.fillRect 0 0 (:width *bounds*) (:height *bounds*))) 3.43 + (draw! layer1b [10 5]) 3.44 + (draw! layer1 [55 5])) 3.45 + (size [layer opts] (Size. 70 65)))) 3.46 + 3.47 +(def layer3 3.48 + (border-layer (text-layer "Sample\ntext" :right :center))) 3.49 + 3.50 +(defn fps-layer [fps] 3.51 + (border-layer (text-layer (format "%.1f" fps) :right :bottom) 0 5)) 3.52 + 3.53 +(def fps 3.54 + (let [update-interval 0.1 3.55 + frames (ref 0) 3.56 + last (ref 0) 3.57 + fl (ref (fps-layer 0.0))] 3.58 + (reify 3.59 + Layer 3.60 + (render! [layer opts] 3.61 + (render! @fl nil) 3.62 + (dosync 3.63 + (alter frames + 1) 3.64 + (let [time (System/currentTimeMillis) 3.65 + elapsed (/ (- time @last) 1000.0)] 3.66 + (when (> elapsed update-interval) 3.67 + (ref-set fl (fps-layer (/ @frames elapsed))) 3.68 + (ref-set frames 0) 3.69 + (ref-set last time))))) 3.70 + (size [layer opts] (size @fl nil))))) 3.71 + 3.72 +(def layer 3.73 + (reify 3.74 + Layer 3.75 + (render! [layer opts] 3.76 + (*update*) 3.77 + (doto *graphics* 3.78 + (.setColor (rand-nth [Color/BLACK Color/BLUE Color/RED])) 3.79 + (.drawLine 0 0 (:width *bounds*) (:height *bounds*))) 3.80 + (draw! layer2 [15 20]) 3.81 + (draw! layer3 [100 100 80 50]) 3.82 + (render! fps nil)) 3.83 + (size [layer opts] (Size. 400 300)))) 3.84 + 3.85 +(defn -main [] 3.86 + (doto frame 3.87 + (.addWindowListener 3.88 + (proxy [java.awt.event.WindowAdapter] [] 3.89 + (windowClosing [event] (.dispose frame)))) 3.90 + (.. (getContentPane) (add (make-jpanel (viewport layer)))) 3.91 + (.pack) 3.92 + (.setVisible true)))