Fix '0 track-add'

db4
Slava Pestov 2008-11-20 21:57:56 -06:00
parent 2e2856b9a4
commit 2eac58c271
2 changed files with 13 additions and 2 deletions

View File

@ -14,3 +14,10 @@ IN: ui.gadgets.tracks.tests
<gadget> { 100 100 } >>dim 1 track-add
pref-dim
] unit-test
[ { 10 10 } ] [
{ 0 1 } <track>
<gadget> { 10 10 } >>dim 1 track-add
<gadget> { 10 10 } >>dim 0 track-add
pref-dim
] unit-test

View File

@ -2,7 +2,7 @@
! See http://factorcode.org/license.txt for BSD license.
USING: accessors io kernel namespaces fry
math math.vectors math.geometry.rect math.order
sequences words ui.gadgets ui.gadgets.packs ;
sequences words ui.gadgets ui.gadgets.packs ui.gadgets.buttons ;
IN: ui.gadgets.tracks
@ -41,7 +41,8 @@ M: track layout* ( track -- ) dup track-layout pack-layout ;
: track-pref-dims-2 ( track -- dim )
[
[ children>> pref-dims ] [ normalized-sizes ] bi
[ [ v/n ] when* ] 2map max-dim [ >fixnum ] map
[ dup { 0 f } memq? [ drop ] [ v/n ] if ] 2map
max-dim [ >fixnum ] map
]
[ [ gap>> ] [ children>> length 1 [-] ] bi v*n ] bi
v+ ;
@ -56,6 +57,9 @@ M: track pref-dim* ( gadget -- dim )
: track-add ( track gadget constraint -- track )
pick sizes>> push add-gadget ;
: add-toolbar ( track -- track )
dup <toolbar> f track-add ;
: track-remove ( track gadget -- track )
dupd dup [
[ swap children>> index ]