From 2eac58c271e2eaaeacb25931905ef87e2ecc292d Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Thu, 20 Nov 2008 21:57:56 -0600 Subject: [PATCH] Fix '0 track-add' --- basis/ui/gadgets/tracks/tracks-tests.factor | 7 +++++++ basis/ui/gadgets/tracks/tracks.factor | 8 ++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/basis/ui/gadgets/tracks/tracks-tests.factor b/basis/ui/gadgets/tracks/tracks-tests.factor index 93f2d14528..5381eebb01 100644 --- a/basis/ui/gadgets/tracks/tracks-tests.factor +++ b/basis/ui/gadgets/tracks/tracks-tests.factor @@ -14,3 +14,10 @@ IN: ui.gadgets.tracks.tests { 100 100 } >>dim 1 track-add pref-dim ] unit-test + +[ { 10 10 } ] [ + { 0 1 } + { 10 10 } >>dim 1 track-add + { 10 10 } >>dim 0 track-add + pref-dim +] unit-test diff --git a/basis/ui/gadgets/tracks/tracks.factor b/basis/ui/gadgets/tracks/tracks.factor index 771c489ce3..dc176b5bf7 100644 --- a/basis/ui/gadgets/tracks/tracks.factor +++ b/basis/ui/gadgets/tracks/tracks.factor @@ -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 f track-add ; + : track-remove ( track gadget -- track ) dupd dup [ [ swap children>> index ]