New look for buttons

db4
Slava Pestov 2009-02-14 20:46:13 -06:00
parent 9ebc487f44
commit dd3a21f4f0
1 changed files with 16 additions and 15 deletions
basis/ui/gadgets/buttons

View File

@ -3,10 +3,10 @@
USING: accessors arrays kernel math models namespaces sequences
strings quotations assocs combinators classes colors colors.constants
classes.tuple opengl opengl.gl math.vectors ui.commands ui.gadgets
ui.gadgets.borders ui.gadgets.labels
ui.gadgets.tracks ui.gadgets.packs ui.gadgets.worlds ui.gestures
ui.pens ui.pens.solid ui.pens.image math.rectangles locals
fry combinators.smart ;
ui.gadgets.borders ui.gadgets.labels ui.gadgets.tracks
ui.gadgets.packs ui.gadgets.worlds ui.gestures ui.pens ui.pens.solid
ui.pens.image ui.pens.tile math.rectangles locals fry
combinators.smart ;
IN: ui.gadgets.buttons
TUPLE: button < border pressed? selected? quot ;
@ -84,24 +84,24 @@ M: button-pen pen-pref-dim
: roll-button-theme ( button -- button )
f COLOR: black <solid> dup f f <button-pen> >>boundary
f f pressed-gradient f f <button-pen> >>interior
f f COLOR: black <solid> f f <button-pen> >>interior
align-left ; inline
: <roll-button> ( label quot -- button )
<button> roll-button-theme ;
: <border-button-pen> ( -- paint )
plain-gradient
rollover-gradient
pressed-gradient
selected-gradient
selected-gradient
<button-pen> ;
: <border-button-pen> ( -- pen )
"button" "button-clicked"
[
"-left" "-middle" "-right"
[ append theme-image ] tri-curry@ tri <tile-pen> dup
] bi@ dup <button-pen> ;
: border-button-theme ( gadget -- gadget )
horizontal >>orientation
<border-button-pen> >>interior
{ 5 5 } >>size
faint-boundary ; inline
dup dup interior>> pen-pref-dim >>min-dim
{ 10 0 } >>size ; inline
: <border-button> ( label quot -- button )
<button> border-button-theme ;
@ -199,9 +199,10 @@ M: radio-control model-changed
: <toolbar> ( target -- toolbar )
<shelf>
1 >>fill
{ 5 5 } >>gap
swap
[ [ "toolbar" ] dip class command-map commands>> ] keep
'[ [ _ ] 2dip <command-button> add-gadget ] assoc-each ;
: add-toolbar ( track -- track )
dup <toolbar> f track-add ;
dup <toolbar> { 3 3 } <border> align-left f track-add ;