ui.gadgets.grid-lines: make it work with non-zero grid gap
parent
64bb5b45c4
commit
38ed0f477a
|
@ -1,9 +1,6 @@
|
||||||
IN: ui.gadgets.grid-lines.tests
|
IN: ui.gadgets.grid-lines.tests
|
||||||
USING: tools.test ui.gadgets.grid-lines ui.gadgets.grid-lines.tests colors ;
|
USING: tools.test ui.gadgets ui.gadgets.grid-lines ui.gadgets.grid-lines.private
|
||||||
|
ui.gadgets.grids.private accessors arrays ui.gadgets.grids sorting kernel ;
|
||||||
[ { 1 3 5 7 9 } ] [
|
|
||||||
8 { 0 2 4 6 } horizontal { 2 2 } grid-line-offsets
|
|
||||||
] unit-test
|
|
||||||
|
|
||||||
: 100x100 ( -- gadget ) <gadget> { 100 100 } >>dim ;
|
: 100x100 ( -- gadget ) <gadget> { 100 100 } >>dim ;
|
||||||
|
|
||||||
|
@ -22,6 +19,22 @@ USING: tools.test ui.gadgets.grid-lines ui.gadgets.grid-lines.tests colors ;
|
||||||
compute-grid-lines natural-sort
|
compute-grid-lines natural-sort
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
{ { 5 5 } { 5 115 } }
|
||||||
|
{ { 5 5 } { 115 5 } }
|
||||||
|
{ { 5 115 } { 115 115 } }
|
||||||
|
{ { 115 5 } { 115 115 } }
|
||||||
|
}
|
||||||
|
] [
|
||||||
|
100x100 1array
|
||||||
|
1array
|
||||||
|
<grid>
|
||||||
|
{ 10 10 } >>gap
|
||||||
|
dup prefer
|
||||||
|
compute-grid-lines natural-sort
|
||||||
|
] unit-test
|
||||||
|
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
{ { 0 0 } { 0 200 } }
|
{ { 0 0 } { 0 200 } }
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
USING: kernel accessors math namespaces opengl opengl.gl
|
USING: kernel accessors math namespaces opengl opengl.gl
|
||||||
sequences math.vectors ui.gadgets ui.gadgets.grids
|
sequences math.vectors ui.gadgets ui.gadgets.grids
|
||||||
ui.gadgets.grids.private ui.render math.rectangles
|
ui.gadgets.grids.private ui.render math.rectangles
|
||||||
fry locals arrays ;
|
fry locals arrays assocs ;
|
||||||
IN: ui.gadgets.grid-lines
|
IN: ui.gadgets.grid-lines
|
||||||
|
|
||||||
TUPLE: grid-lines color ;
|
TUPLE: grid-lines color ;
|
||||||
|
@ -12,15 +12,11 @@ C: <grid-lines> grid-lines
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: grid-line-offsets ( n ns orientation gap -- seq )
|
|
||||||
[ swap suffix ] [ v. 2/ ] 2bi* '[ _ + ] map ;
|
|
||||||
|
|
||||||
:: (compute-grid-lines) ( grid n ns orientation -- seq )
|
:: (compute-grid-lines) ( grid n ns orientation -- seq )
|
||||||
n ns orientation grid gap>> grid-line-offsets [
|
grid gap>> :> gap
|
||||||
[ orientation n*v ]
|
ns n suffix gap orientation v. '[ _ - orientation n*v ] map
|
||||||
[ dup 2array grid dim>> swap orientation set-axis ]
|
dup grid dim>> gap v- orientation reverse v* '[ _ v+ ] map
|
||||||
bi 2array
|
[ [ gap [ 2/ ] map v+ ] map ] bi@ zip ;
|
||||||
] map ;
|
|
||||||
|
|
||||||
: compute-grid-lines ( grid -- lines )
|
: compute-grid-lines ( grid -- lines )
|
||||||
dup <grid-layout>
|
dup <grid-layout>
|
||||||
|
|
Loading…
Reference in New Issue