! Copyright (C) 2005, 2006 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. IN: gadgets-presentations USING: arrays gadgets gadgets-borders gadgets-buttons gadgets-labels gadgets-layouts gadgets-outliner gadgets-panes generic hashtables inspector io kernel prettyprint sequences strings styles words ; ! Clickable objects TUPLE: object-button object ; G: show-object ( object gadget -- ) 1 standard-combination ; C: object-button ( gadget object -- button ) [ set-object-button-object ] keep [ >r [ [ object-button-object ] keep show-object ] r> set-gadget-delegate ] keep ; M: object-button gadget-help ( button -- string ) object-button-object dup word? [ synopsis ] [ summary ] if ; ! Character styles : apply-style ( style gadget key quot -- style gadget ) >r pick hash r> when* ; inline : apply-foreground-style ( style gadget -- style gadget ) foreground [ over set-label-color ] apply-style ; : apply-background-style ( style gadget -- style gadget ) background [ over set-gadget-interior ] apply-style ; : specified-font ( style -- font ) [ font swap hash [ "monospace" ] unless* ] keep [ font-style swap hash [ plain ] unless* ] keep font-size swap hash [ 12 ] unless* 3array ; : apply-font-style ( style gadget -- style gadget ) over specified-font over set-label-font ; : apply-browser-style ( style gadget -- style gadget ) presented [ ] apply-style ; : ( style text -- gadget )