From 193be2996452c9583c6a70a34c21f605bf53f196 Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 2 Feb 2009 13:45:06 -0600 Subject: [PATCH] Working on baseline alignment --- basis/ui/gadgets/labels/labels.factor | 2 +- basis/ui/gadgets/packs/packs.factor | 7 +------ basis/ui/gadgets/paragraphs/paragraphs-tests.factor | 2 +- basis/ui/gadgets/paragraphs/paragraphs.factor | 6 +++++- basis/ui/gadgets/search-tables/search-tables.factor | 4 ++-- basis/ui/tools/browser/browser.factor | 2 +- basis/ui/tools/profiler/profiler.factor | 1 + 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/basis/ui/gadgets/labels/labels.factor b/basis/ui/gadgets/labels/labels.factor index 2eebdac7ff..22d1607072 100644 --- a/basis/ui/gadgets/labels/labels.factor +++ b/basis/ui/gadgets/labels/labels.factor @@ -36,7 +36,7 @@ M: label pref-dim* M: label baseline >label< dup string? [ first ] unless - line-metrics ascent>> ceiling ; + line-metrics ascent>> round ; M: label draw-gadget* >label< origin get draw-text ; diff --git a/basis/ui/gadgets/packs/packs.factor b/basis/ui/gadgets/packs/packs.factor index 85504ebf15..521c74a08b 100644 --- a/basis/ui/gadgets/packs/packs.factor +++ b/basis/ui/gadgets/packs/packs.factor @@ -5,8 +5,6 @@ math.vectors math.order math.geometry.rect namespaces accessors fry combinators arrays ; IN: ui.gadgets.packs -SYMBOL: +baseline+ - TUPLE: pack < gadget { align initial: 0 } { fill initial: 0 } { gap initial: { 0 0 } } ; @@ -28,10 +26,7 @@ TUPLE: pack < gadget [ align>> ] [ dim>> ] bi '[ [ _ _ ] dip v- n*v ] map ; : baseline-aligned-locs ( pack -- seq ) - children>> [ { } ] [ - [ baseline ] map [ supremum ] keep - [ - 0 swap 2array ] with map - ] if-empty ; + children>> baseline-align [ 0 swap 2array ] map ; : aligned-locs ( sizes pack -- seq ) dup align>> +baseline+ eq? diff --git a/basis/ui/gadgets/paragraphs/paragraphs-tests.factor b/basis/ui/gadgets/paragraphs/paragraphs-tests.factor index 32118742d5..62c9c5d2d7 100644 --- a/basis/ui/gadgets/paragraphs/paragraphs-tests.factor +++ b/basis/ui/gadgets/paragraphs/paragraphs-tests.factor @@ -26,6 +26,6 @@ INSTANCE: fake-break word-break [ { 0 0 } ] [ "a" get loc>> ] unit-test -[ { 45 0 } ] [ "b" get loc>> ] unit-test +[ { 45 15 } ] [ "b" get loc>> ] unit-test [ { 0 30 } ] [ "c" get loc>> ] unit-test \ No newline at end of file diff --git a/basis/ui/gadgets/paragraphs/paragraphs.factor b/basis/ui/gadgets/paragraphs/paragraphs.factor index 99e621c0b5..7a26a7b9b1 100644 --- a/basis/ui/gadgets/paragraphs/paragraphs.factor +++ b/basis/ui/gadgets/paragraphs/paragraphs.factor @@ -57,7 +57,11 @@ M: paragraph pref-dim* [ key>> ] 2dip 2array >>loc prefer ; : layout-line ( wrapped-line y -- ) - [ dup word-x-coordinates ] dip '[ _ layout-word ] 2each ; + [ + [ ] + [ word-x-coordinates ] + [ [ key>> ] map baseline-align ] tri + ] dip '[ _ + layout-word ] 3each ; M: paragraph layout* wrap-paragraph dup line-y-coordinates diff --git a/basis/ui/gadgets/search-tables/search-tables.factor b/basis/ui/gadgets/search-tables/search-tables.factor index 78fd3e4f37..0cb46089e7 100644 --- a/basis/ui/gadgets/search-tables/search-tables.factor +++ b/basis/ui/gadgets/search-tables/search-tables.factor @@ -18,9 +18,9 @@ TUPLE: search-field < track field ; : ( model -- gadget ) horizontal search-field new-track { 5 5 } >>gap - "Search:"