factor/library/ui/theme.factor

84 lines
2.1 KiB
Factor
Raw Normal View History

2005-09-28 23:29:00 -04:00
! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
2005-10-25 21:52:26 -04:00
IN: gadgets-buttons
DEFER: <button-paint>
2005-10-27 16:17:50 -04:00
IN: gadgets-labels
DEFER: set-label-color
DEFER: set-label-font
2005-09-28 23:29:00 -04:00
IN: gadgets-theme
2005-10-13 00:23:17 -04:00
USING: arrays gadgets kernel sequences styles ;
2005-09-28 23:29:00 -04:00
2005-10-27 16:17:50 -04:00
: solid-black << solid f @{ 0 0 0 }@ >> ;
: solid-white << solid f @{ 255 255 255 }@ >> ;
: solid-interior solid-white swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
2005-10-27 16:17:50 -04:00
: solid-boundary solid-black swap set-gadget-boundary ;
2005-09-28 23:29:00 -04:00
2005-10-25 21:52:26 -04:00
: plain-gradient
2005-10-24 00:18:46 -04:00
<< gradient f @{
2005-10-13 00:23:17 -04:00
@{ 240 240 240 }@
@{ 192 192 192 }@
@{ 192 192 192 }@
@{ 96 96 96 }@
2005-10-25 21:52:26 -04:00
}@ >> ;
: rollover-gradient
<< gradient f @{
@{ 255 255 255 }@
@{ 216 216 216 }@
@{ 216 216 216 }@
@{ 112 112 112 }@
}@ >> ;
: pressed-gradient
<< gradient f @{
@{ 112 112 112 }@
@{ 216 216 216 }@
@{ 216 216 216 }@
@{ 255 255 255 }@
}@ >> ;
: bevel-button-theme ( gadget -- )
plain-gradient rollover-gradient pressed-gradient
2005-10-27 16:17:50 -04:00
<button-paint> swap set-gadget-interior ;
2005-10-25 21:52:26 -04:00
: thumb-theme ( thumb -- )
2005-10-27 16:17:50 -04:00
plain-gradient swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
: roll-button-theme ( button -- )
2005-10-27 16:17:50 -04:00
f solid-black solid-black <button-paint> over set-gadget-boundary
f f << solid f @{ 236 230 232 }@ >> <button-paint> swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
: caret-theme ( caret -- )
2005-10-27 16:17:50 -04:00
<< solid f @{ 255 0 0 }@ >> swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
: elevator-theme ( elevator -- )
2005-10-27 16:17:50 -04:00
<< gradient f @{
@{ 64 64 64 }@
@{ 96 96 96 }@
@{ 128 128 128 }@
2005-10-27 16:17:50 -04:00
}@ >> swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
2005-10-25 21:52:26 -04:00
: reverse-video-theme ( gadget -- )
2005-10-27 16:17:50 -04:00
solid-black swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
: display-title-theme
2005-10-27 16:17:50 -04:00
<< solid f @{ 216 232 255 }@ >> swap set-gadget-interior ;
2005-09-28 23:29:00 -04:00
: menu-theme ( menu -- )
2005-10-13 00:23:17 -04:00
dup solid-boundary
<< gradient f @{ @{ 216 216 216 }@ @{ 255 255 255 }@ }@ >>
2005-10-27 16:17:50 -04:00
swap set-gadget-interior ;
: label-theme ( label -- )
@{ 0 0 0 }@ over set-label-color
@{ "Monospaced" plain 12 }@ swap set-label-font ;
: editor-theme ( editor -- )
@{ 0 0 0 }@ over set-label-color
@{ "Monospaced" bold 12 }@ swap set-label-font ;