Working on baseline alignment
parent
a4362512f7
commit
193be29964
|
@ -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 ;
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -18,9 +18,9 @@ TUPLE: search-field < track field ;
|
|||
: <search-field> ( model -- gadget )
|
||||
horizontal search-field new-track
|
||||
{ 5 5 } >>gap
|
||||
"Search:" <label> f track-add
|
||||
+baseline+ >>align
|
||||
swap <model-field> 10 >>min-width >>field
|
||||
dup field>> 1 track-add
|
||||
dup field>> "Search:" label-on-left 1 track-add
|
||||
dup <clear-button> f track-add ;
|
||||
|
||||
TUPLE: search-table < track table field ;
|
||||
|
|
|
@ -30,7 +30,7 @@ TUPLE: browser-gadget < tool pane scroller search-field ;
|
|||
|
||||
: <browser-toolbar> ( browser -- toolbar )
|
||||
<shelf>
|
||||
+baseline+ >>align
|
||||
1/2 >>align
|
||||
{ 5 5 } >>gap
|
||||
over <toolbar> add-gadget
|
||||
swap search-field>> "Search:" label-on-left add-gadget ;
|
||||
|
|
|
@ -102,6 +102,7 @@ M: method-renderer row-value drop first ;
|
|||
|
||||
: <profiler-tool-bar> ( profiler -- gadget )
|
||||
<shelf>
|
||||
+baseline+ >>align
|
||||
{ 5 5 } >>gap
|
||||
over <toolbar> add-gadget
|
||||
"Sort by:" <label> add-gadget
|
||||
|
|
Loading…
Reference in New Issue