]> gitweb.factorcode.org Git - factor.git/commitdiff
Merge branch 'master' of git://factorcode.org/git/factor
authorSam Anklesaria <sam@Tintin.local>
Thu, 14 May 2009 01:03:22 +0000 (20:03 -0500)
committerSam Anklesaria <sam@Tintin.local>
Thu, 14 May 2009 01:03:22 +0000 (20:03 -0500)
Conflicts:
basis/io/launcher/launcher.factor

1  2 
basis/io/launcher/launcher.factor
basis/ui/gadgets/tables/tables.factor
core/sequences/sequences.factor

index cf03565770d293ad8cc99e579ed56ef0c079dcc5,745149997868e531f19462f648ed74d1cfb3f3bc..63df12fc1a2e9317cc50118996be42c9840add41
@@@ -266,4 -281,4 +281,4 @@@ M: output-process-error error
      [ ]
  } cond
  
- : run-desc ( desc -- result ) utf8 [ contents [ but-last ] [ f ] if* ] with-process-reader ;
 -: run-desc ( desc -- result ) ascii <process-reader> f swap stream-read-until drop ;
++: run-desc ( desc -- result ) utf8 [ contents [ but-last ] [ f ] if* ] with-process-reader ;
index 50ddbb31840895b53e17f7faff6d77c2b5b65740,ba3b5a2f789bba08637e2392e6ad49e02d80df14..831a643377708726f77c0d8580c01f2bdf8947a5
@@@ -41,27 -41,10 +41,27 @@@ focus-border-colo
  { mouse-color initial: COLOR: black }
  column-line-color
  selection-required?
 -selected-index selected-value
 +selected-indices selected-values
  mouse-index
  { takes-focus? initial: t }
 -focused? ;
 +focused?
 +multiple-selection? ;
 +
 +IN: accessors
 +GENERIC: selected-value>> ( table -- n )
 +GENERIC: selected-index>> ( table -- n )
 +GENERIC: (>>selected-index) ( n table -- )
 +GENERIC: (>>selected-value) ( val table -- )
 +: >>selected-index ( table n -- table ) over (>>selected-index) ;
 +: >>selected-value ( table val -- table ) over (>>selected-value) ;
 +
 +M: table selected-value>> selected-values>> [ [ f ] [ peek ] if-empty ] <arrow> ;
- M: table (>>selected-value) [ [ 1vector ] <arrow> ] dip (>>selected-values) ;
++M: table (>>selected-value) [ [ 1vector ] change-model ] dip (>>selected-values) ;
 +M: table selected-index>> selected-indices>> [ f ] [ peek ] if-empty ;
 +M: table (>>selected-index) [ 1vector ] dip (>>selected-indices) ;
 +
 +IN: ui.gadgets.tables
 +: push-selected-index ( table n -- table ) over selected-indices>> push ;
  
  : new-table ( rows renderer class -- table )
      new-line-gadget
@@@ -253,14 -236,12 +253,16 @@@ M: table pref-dim
  
  PRIVATE>
  
 -: (selected-row) ( table -- value/f ? )
 -    [ selected-index>> ] keep nth-row ;
 +: (selected-rows) ( table -- {row} )
 +    [ selected-indices>> ] keep
 +    [ nth-row [ 1array ] [ drop { } ] if ] curry map concat ;
 +
 +: selected-rows ( table -- {value} )
 +    [ (selected-rows) ] [ renderer>> ] bi [ row-value ] curry map ;
  
- : selected-row ( table -- value ? ) selected-rows [ f f ] [ peek t ] if-empty ;
 -: selected-row ( table -- value/f ? )
 -    [ (selected-row) ] keep
 -    swap [ renderer>> row-value t ] [ 2drop f f ] if ;
++: multiple>single ( values -- value/f ? ) [ f f ] [ peek t ] if-empty ;
++: (selected-row) ( table -- value/f ? ) (selected-rows) multiple>single ;
++: selected-row ( table -- value/f ? ) selected-rows multiple>single ;
  
  <PRIVATE
  
Simple merge