repeat-button refactoring
parent
88a6175f8f
commit
c59dab2b9b
|
@ -115,3 +115,20 @@ M: gadget gadget-selection? drop f ;
|
||||||
GENERIC: gadget-selection ( gadget -- string/f )
|
GENERIC: gadget-selection ( gadget -- string/f )
|
||||||
|
|
||||||
M: gadget gadget-selection drop f ;
|
M: gadget gadget-selection drop f ;
|
||||||
|
|
||||||
|
! Re-firing gestures while mouse held down, etc. Used by
|
||||||
|
! slider gadgets
|
||||||
|
TUPLE: timer-gadget quot ;
|
||||||
|
|
||||||
|
C: timer-gadget ( gadget -- gadget )
|
||||||
|
[ set-gadget-delegate ] keep ;
|
||||||
|
|
||||||
|
M: timer-gadget tick nip timer-gadget-quot call ;
|
||||||
|
|
||||||
|
: start-timer-gadget ( gadget quot -- )
|
||||||
|
over >r curry r>
|
||||||
|
[ set-timer-gadget-quot ] keep
|
||||||
|
100 add-timer ;
|
||||||
|
|
||||||
|
: stop-timer-gadget ( gadget -- )
|
||||||
|
dup remove-timer f swap set-timer-gadget-quot ;
|
||||||
|
|
|
@ -62,16 +62,16 @@ C: button ( gadget quot -- button )
|
||||||
TUPLE: repeat-button ;
|
TUPLE: repeat-button ;
|
||||||
|
|
||||||
repeat-button H{
|
repeat-button H{
|
||||||
{ T{ button-down } [ repeat-button-down ] }
|
{ T{ button-down } [ [ button-clicked ] start-timer-gadget ] }
|
||||||
{ T{ button-up } [ repeat-button-up ] }
|
{ T{ button-up } [ stop-timer-gadget ] }
|
||||||
} set-gestures
|
} set-gestures
|
||||||
|
|
||||||
C: repeat-button ( gadget quot -- button )
|
C: repeat-button ( gadget quot -- button )
|
||||||
#! Button that calls the quotation every 100ms as long as
|
#! Button that calls the quotation every 100ms as long as
|
||||||
#! the mouse is held down.
|
#! the mouse is held down.
|
||||||
[ >r <bevel-button> r> set-gadget-delegate ] keep ;
|
[
|
||||||
|
>r <bevel-button> <timer-gadget> r> set-gadget-delegate
|
||||||
M: repeat-button tick nip button-clicked ;
|
] keep ;
|
||||||
|
|
||||||
TUPLE: button-paint plain rollover pressed selected ;
|
TUPLE: button-paint plain rollover pressed selected ;
|
||||||
|
|
||||||
|
|
|
@ -88,30 +88,6 @@ M: filter model-changed
|
||||||
dup filter-model model-value over filter-quot call
|
dup filter-model model-value over filter-quot call
|
||||||
swap set-model ;
|
swap set-model ;
|
||||||
|
|
||||||
TUPLE: validator model quot ;
|
|
||||||
|
|
||||||
C: validator ( model quot -- filter )
|
|
||||||
dup delegate>model
|
|
||||||
[ set-validator-quot ] keep
|
|
||||||
[ set-validator-model ] 2keep
|
|
||||||
[ add-dependency ] keep
|
|
||||||
dup model-changed ;
|
|
||||||
|
|
||||||
M: validator model-changed
|
|
||||||
dup validator-model model-value dup
|
|
||||||
pick validator-quot call [
|
|
||||||
swap delegate set-model
|
|
||||||
] [
|
|
||||||
2drop
|
|
||||||
] if ;
|
|
||||||
|
|
||||||
M: validator set-model
|
|
||||||
2dup validator-quot call [
|
|
||||||
validator-model set-model
|
|
||||||
] [
|
|
||||||
2drop
|
|
||||||
] if ;
|
|
||||||
|
|
||||||
TUPLE: compose ;
|
TUPLE: compose ;
|
||||||
|
|
||||||
C: compose ( models -- compose )
|
C: compose ( models -- compose )
|
||||||
|
|
|
@ -74,28 +74,3 @@ f <history> "history" set
|
||||||
[ 9 ] [ "y" get model-value ] unit-test
|
[ 9 ] [ "y" get model-value ] unit-test
|
||||||
[ ] [ "y" get deactivate-model ] unit-test
|
[ ] [ "y" get deactivate-model ] unit-test
|
||||||
[ f ] [ "z" get "x" get model-connections memq? ] unit-test
|
[ f ] [ "z" get "x" get model-connections memq? ] unit-test
|
||||||
|
|
||||||
! Test validators
|
|
||||||
3 <model> "x" set
|
|
||||||
"x" get [ odd? ] <validator> "y" set
|
|
||||||
"y" get activate-model
|
|
||||||
|
|
||||||
[ 3 ] [ "y" get model-value ] unit-test
|
|
||||||
|
|
||||||
4 "x" get set-model
|
|
||||||
|
|
||||||
[ 3 ] [ "y" get model-value ] unit-test
|
|
||||||
|
|
||||||
5 "x" get set-model
|
|
||||||
|
|
||||||
[ 5 ] [ "y" get model-value ] unit-test
|
|
||||||
|
|
||||||
6 "y" get set-model
|
|
||||||
|
|
||||||
[ 5 ] [ "x" get model-value ] unit-test
|
|
||||||
[ 5 ] [ "y" get model-value ] unit-test
|
|
||||||
|
|
||||||
7 "y" get set-model
|
|
||||||
|
|
||||||
[ 7 ] [ "x" get model-value ] unit-test
|
|
||||||
[ 7 ] [ "y" get model-value ] unit-test
|
|
||||||
|
|
Loading…
Reference in New Issue