factor/basis/ui/gadgets/grid-lines/grid-lines.factor

35 lines
987 B
Factor
Raw Normal View History

2009-01-15 16:48:44 -05:00
! Copyright (C) 2006, 2009 Slava Pestov.
2007-09-20 18:09:08 -04:00
! See http://factorcode.org/license.txt for BSD license.
USING: kernel accessors math namespaces opengl opengl.gl
sequences math.vectors ui.gadgets ui.gadgets.grids ui.render
math.geometry.rect fry ;
2007-09-20 18:09:08 -04:00
IN: ui.gadgets.grid-lines
TUPLE: grid-lines color ;
C: <grid-lines> grid-lines
SYMBOL: grid-dim
2008-12-13 06:06:28 -05:00
: half-gap ( -- gap ) grid get gap>> [ 2/ ] map ; inline
2007-09-20 18:09:08 -04:00
: grid-line-from/to ( orientation point -- from to )
2009-01-15 16:48:44 -05:00
half-gap v- swap
[ [ half-gap ] 2dip set-axis ]
[ [ grid-dim get ] 2dip set-axis ] 2bi ;
2007-09-20 18:09:08 -04:00
: draw-grid-lines ( gaps orientation -- )
[ grid get swap grid-positions grid get dim>> suffix ] dip
[ '[ _ v- ] map ] keep
'[ _ swap grid-line-from/to gl-line ] each ;
2007-09-20 18:09:08 -04:00
M: grid-lines draw-boundary
color>> gl-color [
2009-01-15 16:48:44 -05:00
[ grid set ]
[ dim>> half-gap v- grid-dim set ]
2009-01-15 16:48:44 -05:00
[ compute-grid ] tri
[ horizontal draw-grid-lines ]
[ vertical draw-grid-lines ]
2008-11-18 16:44:26 -05:00
bi*
] with-scope ;