factor/library/ui/gadgets/viewports.factor

30 lines
717 B
Factor
Raw Normal View History

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
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 )
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*
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
M: viewport focusable-child*
2006-05-24 03:23:45 -04:00
gadget-child ;
M: viewport pref-dim* viewport-dim ;