factor/library/ui/viewports.factor

29 lines
714 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.
IN: gadgets-scrolling
USING: arrays gadgets gadgets-layouts generic kernel math
namespaces sequences ;
! A viewport can be scrolled.
TUPLE: viewport ;
: find-viewport [ viewport? ] find-parent ;
: viewport-dim gadget-child pref-dim ;
C: viewport ( content -- viewport )
dup delegate>gadget
t over set-gadget-root?
[ add-gadget ] keep ;
M: viewport pref-dim* gadget-child pref-dim ;
M: viewport layout* ( viewport -- )
gadget-child dup prefer layout ;
M: viewport focusable-child* ( viewport -- gadget )
gadget-child ;
M: viewport pref-dim* ( viewport -- dim )
gadget-child pref-dim ;