]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorSam Anklesaria <sam@Tintin.local>
Thu, 6 Aug 2009 20:40:57 +0000 (15:40 -0500)
committerSam Anklesaria <sam@Tintin.local>
Thu, 6 Aug 2009 20:40:57 +0000 (15:40 -0500)
1  2 
basis/ui/gadgets/tables/tables.factor

index 081e5267b9fe2e4189aa67311b45688c120bd433,225cf90d8c16536cdbaaa1b52b5d6ab69cf5441e..f548c10606d7f6716b5926d44711bd632847469e
@@@ -50,19 -49,25 +49,27 @@@ mouse-inde
  focused?
  multiple-selection? ;
  
 +M: table output-model selection>> ;
 +
  <PRIVATE
  
- : push-selected-index ( table n -- table ) swap
-     [ insert-sorted prune >array ] change-selected-indices ;
- : multiple>single ( values -- value/f ? ) [ f f ] [ first t ] if-empty ;
- : multiple>single* ( values -- value/f ) multiple>single drop ;
- : selected-index ( table -- n ) selected-indices>> multiple>single* ;
- : set-selected-index ( table n -- table ) 1array >>selected-indices ;
+ : add-selected-index ( table n -- table )
+     over selected-indices>> conjoin ;
+ : multiple>single ( values -- value/f ? )
+     dup assoc-empty? [ drop f f ] [ values first t ] if ;
+ : selected-index ( table -- n )
+     selected-indices>> multiple>single drop ;
+ : set-selected-index ( table n -- table )
+     dup associate >>selected-indices ;
  PRIVATE>
- : selected ( table -- index/indices ) dup multiple-selection?>>
-     [ selected-indices>> ] [ selected-index ] if ;
+ : selected ( table -- index/indices )
+     [ selected-indices>> ] [ multiple-selection?>> ] bi
+     [ multiple>single drop ] unless ;
  
  : new-table ( rows renderer class -- table )
      new-line-gadget