2006-05-24 03:23:45 -04:00
|
|
|
! Copyright (C) 2005, 2006 Slava Pestov.
|
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2006-05-26 02:29:44 -04:00
|
|
|
IN: gadgets-viewports
|
2006-07-09 19:50:56 -04:00
|
|
|
USING: arrays gadgets gadgets-borders generic kernel math
|
|
|
|
|
namespaces sequences ;
|
2006-05-24 03:23:45 -04:00
|
|
|
|
2006-09-29 18:56:09 -04:00
|
|
|
: viewport-gap { 3 3 } ;
|
|
|
|
|
|
2006-05-24 03:23:45 -04:00
|
|
|
TUPLE: viewport ;
|
|
|
|
|
|
|
|
|
|
: find-viewport [ viewport? ] find-parent ;
|
|
|
|
|
|
2006-09-29 18:56:09 -04:00
|
|
|
: viewport-dim ( viewport -- dim )
|
|
|
|
|
gadget-child pref-dim viewport-gap 2 v*n v+ ;
|
2006-05-24 03:23:45 -04:00
|
|
|
|
|
|
|
|
C: viewport ( content -- viewport )
|
2006-07-09 19:50:56 -04:00
|
|
|
dup delegate>gadget
|
2006-09-29 18:56:09 -04:00
|
|
|
[ add-gadget ] keep
|
2006-06-23 02:25:08 -04:00
|
|
|
t over set-gadget-clipped? ;
|
2006-05-24 03:23:45 -04:00
|
|
|
|
2006-09-29 18:56:09 -04:00
|
|
|
M: viewport layout*
|
2006-10-06 04:15:34 -04:00
|
|
|
dup rect-dim viewport-gap 2 v*n v-
|
|
|
|
|
over gadget-child pref-dim vmax
|
2006-09-29 18:56:09 -04:00
|
|
|
swap gadget-child set-layout-dim ;
|
2006-05-24 03:23:45 -04:00
|
|
|
|
2006-08-15 03:01:24 -04:00
|
|
|
M: viewport focusable-child*
|
2006-05-24 03:23:45 -04:00
|
|
|
gadget-child ;
|
|
|
|
|
|
2006-08-15 03:01:24 -04:00
|
|
|
M: viewport pref-dim* viewport-dim ;
|