factor/library/ui/borders.factor

38 lines
1023 B
Factor
Raw Normal View History

2005-03-10 17:57:22 -05:00
! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: gadgets-borders
USING: errors gadgets gadgets-layouts generic hashtables kernel
math namespaces vectors ;
2005-03-10 17:57:22 -05:00
TUPLE: border size ;
2005-09-27 00:24:42 -04:00
C: border ( delegate size -- border )
2005-03-10 17:57:22 -05:00
[ set-border-size ] keep
2005-09-27 00:24:42 -04:00
[ set-delegate ] keep ;
: make-border ( child delegate size -- boder )
<border> [ add-gadget ] keep ;
2005-03-10 17:57:22 -05:00
2005-07-18 18:14:13 -04:00
: empty-border ( child -- border )
2005-09-27 00:24:42 -04:00
<gadget> @{ 5 5 0 }@ make-border ;
2005-07-18 18:14:13 -04:00
2005-03-10 17:57:22 -05:00
: line-border ( child -- border )
2005-09-27 00:24:42 -04:00
<etched-gadget> @{ 5 5 0 }@ make-border ;
2005-03-10 17:57:22 -05:00
2005-07-18 18:14:13 -04:00
: bevel-border ( child -- border )
2005-09-27 00:24:42 -04:00
<bevel-gadget> @{ 5 5 0 }@ make-border ;
2005-07-18 18:14:13 -04:00
: layout-border-loc ( border -- )
dup border-size swap gadget-child set-rect-loc ;
2005-03-10 17:57:22 -05:00
: layout-border-dim ( border -- )
dup rect-dim over border-size 2 v*n v-
swap gadget-child set-gadget-dim ;
2005-03-10 17:57:22 -05:00
2005-06-28 23:50:23 -04:00
M: border pref-dim ( border -- dim )
[ border-size 2 v*n ] keep
2005-06-29 19:40:44 -04:00
gadget-child pref-dim v+ ;
2005-03-10 17:57:22 -05:00
M: border layout* ( border -- )
dup layout-border-loc layout-border-dim ;