simplified splitter gadget
parent
7c65ed1423
commit
930ac75dbd
|
@ -26,15 +26,6 @@ GENERIC: orientation
|
|||
: pref-dims ( gadget -- list )
|
||||
gadget-children [ pref-dim ] map ;
|
||||
|
||||
: packed-pref-dim ( gadget -- dim )
|
||||
#! The preferred size of the gadget, if all children are
|
||||
#! packed in the direction of the given axis.
|
||||
[
|
||||
pref-dims
|
||||
[ { 0 0 0 } [ vmax ] reduce ] keep
|
||||
{ 0 0 0 } [ v+ ] reduce
|
||||
] keep orientation set-axis ;
|
||||
|
||||
: orient ( gadget list1 list2 -- list )
|
||||
zip >r orientation r> [ uncons rot set-axis ] map-with ;
|
||||
|
||||
|
@ -91,12 +82,16 @@ M: pack filling pack-fill ;
|
|||
|
||||
M: pack alignment pack-align ;
|
||||
|
||||
M: pack pref-dim packed-pref-dim ;
|
||||
M: pack pref-dim ( pack -- dim )
|
||||
[
|
||||
pref-dims
|
||||
[ { 0 0 0 } [ vmax ] reduce ] keep
|
||||
{ 0 0 0 } [ v+ ] reduce
|
||||
] keep orientation set-axis ;
|
||||
|
||||
M: pack layout* ( pack -- )
|
||||
dup pref-dims packed-layout ;
|
||||
|
||||
: <stack> ( list -- gadget )
|
||||
#! A stack lays out all its children on top of each other.
|
||||
0 1 { 0 0 1 } <pack>
|
||||
swap [ over add-gadget ] each ;
|
||||
0 1 { 0 0 1 } <pack> swap [ over add-gadget ] each ;
|
||||
|
|
|
@ -10,14 +10,14 @@ TUPLE: divider splitter ;
|
|||
|
||||
M: divider pref-dim drop divider-size ;
|
||||
|
||||
TUPLE: splitter vector split ;
|
||||
TUPLE: splitter split ;
|
||||
|
||||
: hand>split ( splitter -- n )
|
||||
hand relative hand hand-click-rel v- divider-size 1/2 v*n v+ ;
|
||||
|
||||
: divider-motion ( splitter -- )
|
||||
dup hand>split
|
||||
over shape-dim { 1 1 1 } vmax v/ over splitter-vector v.
|
||||
over shape-dim { 1 1 1 } vmax v/ over orientation v.
|
||||
0 max 1 min over set-splitter-split relayout ;
|
||||
|
||||
: divider-actions ( thumb -- )
|
||||
|
@ -31,8 +31,7 @@ C: divider ( -- divider )
|
|||
dup divider-actions ;
|
||||
|
||||
C: splitter ( first second vector -- splitter )
|
||||
<empty-gadget> over set-delegate
|
||||
[ set-splitter-vector ] keep
|
||||
[ >r 0 1 rot <pack> r> set-delegate ] keep
|
||||
swapd
|
||||
[ add-gadget ] keep
|
||||
<divider> over add-gadget
|
||||
|
@ -43,14 +42,6 @@ C: splitter ( first second vector -- splitter )
|
|||
|
||||
: <y-splitter> { 1 0 0 } <splitter> ;
|
||||
|
||||
M: splitter orientation splitter-vector ;
|
||||
|
||||
M: splitter filling drop 1 ;
|
||||
|
||||
M: splitter alignment drop 0 ;
|
||||
|
||||
M: splitter pref-dim packed-pref-dim ;
|
||||
|
||||
: splitter-part ( splitter -- vec )
|
||||
dup splitter-split swap shape-dim n*v divider-size 1/2 v*n v- ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue