factor/library/ui/ui.factor

73 lines
1.8 KiB
Factor
Raw Normal View History

2005-05-03 19:10:20 -04:00
! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
IN: help
DEFER: tutorial
2005-05-03 19:10:20 -04:00
IN: gadgets
USING: generic help io kernel listener math namespaces
prettyprint sdl sequences styles threads words ;
SYMBOL: stack-display
: ui.s ( -- )
stack-display get dup pane-clear [
datastack reverse [ unparse. terpri ] each
] with-stream* ;
: init-world
global [
<world> world set
{{
[[ background [ 255 255 255 ] ]]
[[ rollover-bg [ 216 216 255 ] ]]
[[ bevel-1 [ 160 160 160 ] ]]
[[ bevel-2 [ 216 216 216 ] ]]
[[ foreground [ 0 0 0 ] ]]
[[ reverse-video f ]]
[[ font "Sans Serif" ]]
[[ font-size 12 ]]
[[ font-style plain ]]
}} world get set-gadget-paint
{ 1024 768 0 } world get set-gadget-dim
<plain-gadget> add-layer
<pane> dup pane set <scroller>
<pane> dup stack-display set <scroller>
3/4 <y-splitter> add-layer
[
pane get [
[ ui.s ] listener-hook set
clear print-banner
"Tutorial" [ drop [ tutorial ] pane get pane-call ] <button> gadget.
listener
] with-stream
] in-thread
pane get request-focus
] bind ;
SYMBOL: first-time
global [ first-time on ] bind
2005-05-03 19:10:20 -04:00
: ?init-world
first-time get [ init-world first-time off ] when ;
2005-05-03 19:10:20 -04:00
IN: shells
: ui ( -- )
#! Start the Factor graphics subsystem with the given screen
#! dimensions.
2005-07-13 18:08:54 -04:00
ttf-init
?init-world
world get rectangle-dim 2unseq 0 SDL_RESIZABLE [
[
2005-06-27 00:40:51 -04:00
"Factor " version append dup SDL_WM_SetCaption
start-world
run-world
2005-05-03 19:10:20 -04:00
] with-screen
] with-scope ;