From b238d71fa0310be9a0125ee70da117e5ec27fa36 Mon Sep 17 00:00:00 2001 From: Thomas White Date: Tue, 25 Apr 2023 21:11:35 +0200 Subject: Add selected? and desel --- guile/starlet/state.scm | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) 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 -- cgit v1.2.3