2005-03-10 17:57:22 -05:00
|
|
|
! Copyright (C) 2005 Slava Pestov.
|
|
|
|
! See http://factor.sf.net/license.txt for BSD license.
|
2005-08-31 21:06:13 -04:00
|
|
|
IN: gadgets-borders
|
2006-05-31 18:45:11 -04:00
|
|
|
USING: arrays errors gadgets gadgets-theme generic hashtables
|
2006-09-15 21:29:58 -04:00
|
|
|
kernel math namespaces vectors sequences ;
|
2005-03-10 17:57:22 -05:00
|
|
|
|
|
|
|
TUPLE: border size ;
|
|
|
|
|
2005-12-17 20:03:41 -05:00
|
|
|
C: border ( child gap -- border )
|
2005-10-09 21:27:14 -04:00
|
|
|
dup delegate>gadget
|
2006-06-23 00:06:53 -04:00
|
|
|
[ >r dup 2array r> set-border-size ] keep
|
2005-10-09 21:27:14 -04:00
|
|
|
[ add-gadget ] keep ;
|
2005-07-18 18:14:13 -04:00
|
|
|
|
2006-05-26 02:29:44 -04:00
|
|
|
: <default-border> ( child -- border ) 5 <border> ;
|
2005-12-17 20:03:41 -05:00
|
|
|
|
2005-06-29 20:04:13 -04:00
|
|
|
: layout-border-loc ( border -- )
|
2006-09-12 16:20:21 -04:00
|
|
|
dup rect-dim swap gadget-child
|
2006-09-15 21:29:58 -04:00
|
|
|
[ pref-dim v- 2 v/n [ >fixnum ] map ] keep set-rect-loc ;
|
2005-03-10 17:57:22 -05:00
|
|
|
|
2006-08-15 03:01:24 -04:00
|
|
|
M: border pref-dim*
|
2005-06-29 20:04:13 -04:00
|
|
|
[ 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
|
|
|
|
2006-08-15 03:01:24 -04:00
|
|
|
M: border layout*
|
2006-09-12 16:20:21 -04:00
|
|
|
dup layout-border-loc gadget-child prefer ;
|
2006-06-27 03:26:52 -04:00
|
|
|
|
|
|
|
: <spacing> ( -- gadget )
|
2006-06-29 00:00:21 -04:00
|
|
|
<gadget> { 10 10 } over set-layout-dim ;
|