aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guile/starlet/state.scm17
1 files changed, 17 insertions, 0 deletions
diff --git a/guile/starlet/state.scm b/guile/starlet/state.scm
index 3fd77d7..e760d2a 100644
--- a/guile/starlet/state.scm
+++ b/guile/starlet/state.scm
@@ -54,8 +54,10 @@
blackout
blackout!
sel
+ desel
selection-hook
get-selection
+ selected?
value->number
atomically-overlay-state!
update-state!
@@ -469,6 +471,21 @@ pre-existing contents."
(run-hook selection-hook selection))
+(define (selected? . fixture-list)
+ (every (lambda (fix)
+ (memq fix selection))
+ (flatten-sublists fixture-list)))
+
+
+(define (desel . fixture-list)
+ (let ((remove-us (flatten-sublists fixture-list)))
+ (set! selection
+ (filter (lambda (fix)
+ (not (memq fix remove-us)))
+ selection)))
+ (run-hook selection-hook selection))
+
+
(define (state-empty? st)
(hash-table-empty?
(atomic-box-ref