ui.gadgets.buttons: memoize the roll button themes pens
It reduces memory usage by about 10% for the #1488 test on my machine and doesnt seem to have any bad side-effects.db4
parent
9af7be2ef9
commit
4812cec634
|
@ -1,4 +1,4 @@
|
||||||
USING: accessors models namespaces tools.test ui.gadgets
|
USING: accessors kernel models namespaces tools.test ui.gadgets
|
||||||
ui.gadgets.buttons ;
|
ui.gadgets.buttons ;
|
||||||
IN: ui.gadgets.buttons.tests
|
IN: ui.gadgets.buttons.tests
|
||||||
|
|
||||||
|
@ -18,3 +18,8 @@ IN: ui.gadgets.buttons.tests
|
||||||
{ 2 } [
|
{ 2 } [
|
||||||
"religion" get gadget-child control-value
|
"religion" get gadget-child control-value
|
||||||
] unit-test
|
] unit-test
|
||||||
|
|
||||||
|
{ t t } [
|
||||||
|
"but1" [ ] <roll-button> "but2" [ ] <roll-button>
|
||||||
|
[ [ boundary>> ] bi@ eq? ] [ [ interior>> ] bi@ eq? ] 2bi
|
||||||
|
] unit-test
|
||||||
|
|
|
@ -1,11 +1,10 @@
|
||||||
! Copyright (C) 2005, 2009 Slava Pestov.
|
! Copyright (C) 2005, 2009 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs classes colors colors.constants combinators
|
USING: accessors assocs colors combinators combinators.short-circuit
|
||||||
combinators.short-circuit combinators.smart fry kernel locals
|
combinators.smart fry kernel locals math.vectors memoize models
|
||||||
math.vectors models namespaces sequences ui.commands ui.gadgets
|
namespaces sequences ui.commands ui.gadgets ui.gadgets.borders
|
||||||
ui.gadgets.borders ui.gadgets.labels ui.gadgets.packs
|
ui.gadgets.labels ui.gadgets.packs ui.gadgets.theme ui.gadgets.worlds
|
||||||
ui.gadgets.theme ui.gadgets.tracks ui.gadgets.worlds ui.gestures
|
ui.gestures ui.pens ui.pens.image ui.pens.solid ui.pens.tile ;
|
||||||
ui.pens ui.pens.image ui.pens.solid ui.pens.tile ;
|
|
||||||
FROM: models => change-model ;
|
FROM: models => change-model ;
|
||||||
IN: ui.gadgets.buttons
|
IN: ui.gadgets.buttons
|
||||||
|
|
||||||
|
@ -60,8 +59,8 @@ button H{
|
||||||
button new-button ;
|
button new-button ;
|
||||||
|
|
||||||
TUPLE: button-pen
|
TUPLE: button-pen
|
||||||
plain rollover
|
plain rollover
|
||||||
pressed selected pressed-selected ;
|
pressed selected pressed-selected ;
|
||||||
|
|
||||||
C: <button-pen> button-pen
|
C: <button-pen> button-pen
|
||||||
|
|
||||||
|
@ -103,9 +102,15 @@ M: button-pen pen-foreground
|
||||||
: align-left ( button -- button )
|
: align-left ( button -- button )
|
||||||
{ 0 1/2 } >>align ; inline
|
{ 0 1/2 } >>align ; inline
|
||||||
|
|
||||||
|
MEMO: button-pen-boundary ( -- button-pen )
|
||||||
|
f roll-button-rollover-border <solid> dup f f <button-pen> ;
|
||||||
|
|
||||||
|
MEMO: button-pen-interior ( -- button-pen )
|
||||||
|
f f roll-button-selected-background <solid> f f <button-pen> ;
|
||||||
|
|
||||||
: roll-button-theme ( button -- button )
|
: roll-button-theme ( button -- button )
|
||||||
f roll-button-rollover-border <solid> dup f f <button-pen> >>boundary
|
button-pen-boundary >>boundary
|
||||||
f f roll-button-selected-background <solid> f f <button-pen> >>interior
|
button-pen-interior >>interior
|
||||||
align-left ; inline
|
align-left ; inline
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
Loading…
Reference in New Issue