diff options
author | Thomas White <taw@physics.org> | 2023-04-25 21:11:35 +0200 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2023-04-25 21:11:35 +0200 |
commit | b238d71fa0310be9a0125ee70da117e5ec27fa36 (patch) | |
tree | aa2fee6538a2bc21fd2a179aa50d9dd1fc442f17 /guile/starlet | |
parent | c6e5032e594e07d4b9b94d0d949d66f4a9ebc722 (diff) |
Add selected? and desel
Diffstat (limited to 'guile/starlet')
-rw-r--r-- | guile/starlet/state.scm | 17 |
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 |