factor/library/ui/gadgets/books.factor

30 lines
753 B
Factor
Raw Normal View History

! Copyright (C) 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
IN: gadgets-books
USING: gadgets gadgets-controls gadgets-panes gadgets-scrolling
2006-08-26 17:13:24 -04:00
kernel sequences models ;
2006-08-27 19:02:16 -04:00
TUPLE: book pages ;
2006-08-31 21:58:15 -04:00
: get-page ( n book -- page ) book-pages nth ;
2006-08-26 17:13:24 -04:00
M: book model-changed ( book -- )
[ control-model model-value ] keep
2006-08-27 19:02:16 -04:00
[ gadget-child unparent ] keep
[ get-page ] keep
2006-08-28 01:05:31 -04:00
[ control-self add-gadget ] keep
2006-08-27 19:02:16 -04:00
request-focus ;
C: book ( pages -- book )
2006-08-26 17:13:24 -04:00
dup 0 <model> delegate>control
dup dup set-control-self
[ set-book-pages ] keep
2006-08-26 17:13:24 -04:00
dup model-changed ;
2006-08-27 19:02:16 -04:00
M: book pref-dim* gadget-child pref-dim ;
M: book layout*
2006-08-27 19:02:16 -04:00
dup rect-dim swap gadget-child set-layout-dim ;
2006-08-26 17:13:24 -04:00
M: book focusable-child* gadget-child ;