Table gadget rendered differently when no focus
parent
52d6ee7041
commit
79548f5963
|
@ -19,7 +19,8 @@ M: object row-value drop ;
|
||||||
TUPLE: table < gadget
|
TUPLE: table < gadget
|
||||||
renderer filled-column column-alignment action
|
renderer filled-column column-alignment action
|
||||||
column-widths total-width
|
column-widths total-width
|
||||||
font text-color selection-color mouse-color column-line-color
|
font text-color selection-color focus-border-color
|
||||||
|
mouse-color column-line-color
|
||||||
selected-index selected-value
|
selected-index selected-value
|
||||||
mouse-index
|
mouse-index
|
||||||
focused? ;
|
focused? ;
|
||||||
|
@ -32,6 +33,7 @@ focused? ;
|
||||||
f <model> >>selected-value
|
f <model> >>selected-value
|
||||||
sans-serif-font >>font
|
sans-serif-font >>font
|
||||||
selection-color >>selection-color
|
selection-color >>selection-color
|
||||||
|
focus-border-color >>focus-border-color
|
||||||
dark-gray >>column-line-color
|
dark-gray >>column-line-color
|
||||||
black >>mouse-color
|
black >>mouse-color
|
||||||
black >>text-color ;
|
black >>text-color ;
|
||||||
|
@ -78,25 +80,28 @@ M: table layout*
|
||||||
[ [ line-height ] dip * 0 swap 2array ]
|
[ [ line-height ] dip * 0 swap 2array ]
|
||||||
[ drop [ dim>> first ] [ line-height ] bi 2array ] 2bi <rect> ;
|
[ drop [ dim>> first ] [ line-height ] bi 2array ] 2bi <rect> ;
|
||||||
|
|
||||||
: highlight-row ( table row color filled? -- )
|
: highlight-row ( table row color quot -- )
|
||||||
[ dup ] 2dip '[
|
[ [ row-rect rect-bounds ] dip gl-color ] dip
|
||||||
_ gl-color
|
'[ _ @ ] with-translation ; inline
|
||||||
row-rect rect-bounds swap [
|
|
||||||
_ [ gl-fill-rect ] [ gl-rect ] if
|
: draw-selected-row ( table row -- )
|
||||||
] with-translation
|
over selection-color>> [ gl-fill-rect ] highlight-row ;
|
||||||
|
|
||||||
|
: draw-focused-row ( table row -- )
|
||||||
|
over focused?>> [
|
||||||
|
over focus-border-color>> [ gl-rect ] highlight-row
|
||||||
] [ 2drop ] if ;
|
] [ 2drop ] if ;
|
||||||
|
|
||||||
: draw-selected ( table -- )
|
: draw-selected ( table -- )
|
||||||
{
|
dup selected-index>> dup
|
||||||
[ ]
|
[ [ draw-selected-row ] [ draw-focused-row ] 2bi ]
|
||||||
[ selected-index>> ]
|
[ 2drop ]
|
||||||
[ selection-color>> ]
|
if ;
|
||||||
[ focused?>> ]
|
|
||||||
} cleave
|
|
||||||
highlight-row ;
|
|
||||||
|
|
||||||
: draw-moused ( table -- )
|
: draw-moused ( table -- )
|
||||||
[ ] [ mouse-index>> ] [ mouse-color>> ] tri f highlight-row ;
|
dup mouse-index>> dup [
|
||||||
|
over mouse-color>> [ gl-rect ] highlight-row
|
||||||
|
] [ 2drop ] if ;
|
||||||
|
|
||||||
: column-offsets ( table -- xs )
|
: column-offsets ( table -- xs )
|
||||||
0 [ table-gap + + ] accumulate nip ;
|
0 [ table-gap + + ] accumulate nip ;
|
||||||
|
|
|
@ -15,7 +15,9 @@ IN: ui.gadgets.theme
|
||||||
: faint-boundary ( gadget -- gadget )
|
: faint-boundary ( gadget -- gadget )
|
||||||
colors:gray solid-boundary ; inline
|
colors:gray solid-boundary ; inline
|
||||||
|
|
||||||
: selection-color ( -- color ) light-purple ;
|
: selection-color ( -- color ) light-purple ; inline
|
||||||
|
|
||||||
|
: focus-border-color ( -- color ) medium-purple ; inline
|
||||||
|
|
||||||
: plain-gradient ( -- gradient )
|
: plain-gradient ( -- gradient )
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue