ui.gadgets.tracks: rewrite pref-dim* method

db4
Eduardo Cavazos 2008-07-15 02:25:37 -05:00
parent 1a04f30c7c
commit 43b2022176
1 changed files with 9 additions and 11 deletions

View File

@ -16,8 +16,7 @@ TUPLE: track < pack sizes ;
V{ } clone >>sizes V{ } clone >>sizes
1 >>fill ; inline 1 >>fill ; inline
: <track> ( orientation -- track ) : <track> ( orientation -- track ) track new-track ;
track new-track ;
: alloted-dim ( track -- dim ) : alloted-dim ( track -- dim )
dup gadget-children swap track-sizes { 0 0 } dup gadget-children swap track-sizes { 0 0 }
@ -29,21 +28,20 @@ TUPLE: track < pack sizes ;
dup available-dim over gadget-children rot normalized-sizes dup available-dim over gadget-children rot normalized-sizes
[ [ over n*v ] [ pref-dim ] ?if ] 2map nip ; [ [ over n*v ] [ pref-dim ] ?if ] 2map nip ;
M: track layout* M: track layout* ( track -- ) dup track-layout pack-layout ;
dup track-layout pack-layout ;
: track-pref-dims-1 ( track -- dim ) : track-pref-dims-1 ( track -- dim ) children>> pref-dims max-dim ;
gadget-children pref-dims max-dim ;
: track-pref-dims-2 ( track -- dim ) : track-pref-dims-2 ( track -- dim )
dup gadget-children pref-dims swap normalized-sizes dup gadget-children pref-dims swap normalized-sizes
[ [ v/n ] when* ] 2map max-dim [ >fixnum ] map ; [ [ v/n ] when* ] 2map max-dim [ >fixnum ] map ;
M: track pref-dim* M: track pref-dim* ( gadget -- dim )
dup track-pref-dims-1 [ track-pref-dims-1 ]
over alloted-dim [ [ alloted-dim ] [ track-pref-dims-1 ] bi v+ ]
pick track-pref-dims-2 v+ [ orientation>> ]
rot gadget-orientation set-axis ; tri
set-axis ;
: track-add ( gadget track constraint -- ) : track-add ( gadget track constraint -- )
over track-sizes push swap add-gadget drop ; over track-sizes push swap add-gadget drop ;