2006-08-26 03:46:37 -04:00
|
|
|
! Copyright (C) 2006 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
|
|
|
IN: gadgets-workspace
|
2006-08-26 14:30:58 -04:00
|
|
|
USING: arrays gadgets gadgets-listener gadgets-buttons
|
|
|
|
gadgets-walker gadgets-help gadgets-walker sequences
|
2006-08-26 15:23:44 -04:00
|
|
|
gadgets-browser gadgets-books gadgets-frames kernel models
|
|
|
|
namespaces ;
|
2006-08-26 03:46:37 -04:00
|
|
|
|
|
|
|
TUPLE: workspace model ;
|
|
|
|
|
|
|
|
: workspace-tabs
|
|
|
|
{
|
2006-08-26 14:30:58 -04:00
|
|
|
{ "Listener" listener-gadget [ <listener-gadget> ] }
|
|
|
|
{ "Walker" walker-gadget [ <walker-gadget> ] }
|
|
|
|
{ "Dictionary" browser [ <browser> ] }
|
|
|
|
{ "Documentation" help-gadget [ <help-gadget> ] }
|
2006-08-26 03:46:37 -04:00
|
|
|
} ;
|
|
|
|
|
|
|
|
: <workspace-book> ( workspace -- book )
|
|
|
|
workspace-model
|
2006-08-26 14:30:58 -04:00
|
|
|
workspace-tabs [ third ] map <book-control> ;
|
2006-08-26 03:46:37 -04:00
|
|
|
|
|
|
|
: <workspace-tabs> ( workspace -- tabs )
|
|
|
|
workspace-model
|
|
|
|
workspace-tabs dup length [ swap first 2array ] 2map
|
|
|
|
<radio-box> ;
|
|
|
|
|
|
|
|
C: workspace
|
|
|
|
0 <model> over set-workspace-model {
|
|
|
|
{ [ gadget get <workspace-tabs> ] f f @top }
|
|
|
|
{ [ gadget get <workspace-book> ] f f @center }
|
2006-08-26 14:30:58 -04:00
|
|
|
} make-frame* ;
|