aboutsummaryrefslogtreecommitdiff
path: root/guile
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2023-04-25 21:11:35 +0200
committerThomas White <taw@physics.org>2023-04-25 21:11:35 +0200
commitb238d71fa0310be9a0125ee70da117e5ec27fa36 (patch)
treeaa2fee6538a2bc21fd2a179aa50d9dd1fc442f17 /guile
parentc6e5032e594e07d4b9b94d0d949d66f4a9ebc722 (diff)
Add selected? and desel
Diffstat (limited to 'guile')
-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