aboutsummaryrefslogtreecommitdiff
path: root/guile/starlet/base.scm
diff options
context:
space:
mode:
Diffstat (limited to 'guile/starlet/base.scm')
-rw-r--r--guile/starlet/base.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/guile/starlet/base.scm b/guile/starlet/base.scm
index ea7850c..bbb98e2 100644
--- a/guile/starlet/base.scm
+++ b/guile/starlet/base.scm
@@ -1,5 +1,6 @@
(define-module (starlet base)
#:use-module (starlet utils)
+ #:use-module (starlet colours)
#:use-module (oop goops)
#:use-module (ice-9 threads)
#:use-module (ice-9 atomic)
@@ -22,12 +23,14 @@
<fixture-attribute>
attr-continuous
attr-list
+ attr-colour
get-attr-type
get-attr-range
get-attr-name
get-attr-home-val
intensity?
continuous-attribute?
+ colour-attribute?
<starlet-state>
make-empty-state
@@ -207,6 +210,11 @@
(get-attr-type aobj)))
+(define (colour-attribute? aobj)
+ (eq? 'colour
+ (get-attr-type aobj)))
+
+
(define (append-or-replace-named-state orig-list name new-state)
(let ((new-list (map (lambda (st)
(if (eq? (get-state-name st) name)
@@ -520,6 +528,15 @@ pre-existing contents."
#:home-value attr-home-value))))
+(define-syntax attr-colour
+ (syntax-rules ()
+ ((_ attr-name attr-home-value)
+ (make <fixture-attribute>
+ #:name attr-name
+ #:type 'colour
+ #:home-value attr-home-value))))
+
+
(define current-state (make-parameter programmer-state))