factor/library/ui/gadgets/books.factor

32 lines
764 B
Factor
Raw Normal View History

! Copyright (C) 2006 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
IN: gadgets-books
2006-10-03 18:17:21 -04:00
USING: gadgets gadgets-panes gadgets-scrolling
2006-08-26 17:13:24 -04:00
kernel sequences models ;
2006-09-16 16:31:40 -04:00
TUPLE: book ;
2006-09-16 16:31:40 -04:00
: hide-all ( book -- ) gadget-children [ hide-gadget ] each ;
: current-page ( book -- gadget )
2006-10-03 18:17:21 -04:00
[ control-value ] keep nth-gadget ;
2006-08-26 17:13:24 -04:00
M: book model-changed ( book -- )
2006-09-16 16:31:40 -04:00
dup hide-all
dup current-page show-gadget
dup relayout
2006-08-27 19:02:16 -04:00
request-focus ;
C: book ( pages -- book )
2006-10-03 18:17:21 -04:00
dup 0 <model> <gadget> delegate>control
2006-09-16 16:31:40 -04:00
[ add-gadgets ] keep
2006-08-26 17:13:24 -04:00
dup model-changed ;
2006-09-16 16:31:40 -04:00
M: book pref-dim* gadget-children pref-dims max-dim ;
M: book layout*
2006-09-16 16:31:40 -04:00
dup rect-dim swap gadget-children
[ set-layout-dim ] each-with ;
2006-08-26 17:13:24 -04:00
2006-09-16 16:31:40 -04:00
M: book focusable-child* current-page ;