76:\r
---\r
\r
-- set-length should not shorten the underlying sequence\r
- i/o: don't keep creating new sbufs\r
- [ EAX 0 ] --> [ EAX ]\r
- rollovers broken with menus\r
- fix listener prompt display after presentation commands invoked\r
- tutorial: clickable code snippets\r
- theme abstraction in ui\r
-- stray gestures on stack\r
\r
+ misc\r
\r
[ 1 length set-capacity ]
[ 2 underlying set-underlying ] ;
-M: sbuf set-length ( n sbuf -- )
- growable-check 2dup expand set-capacity ;
+M: sbuf set-length ( n sbuf -- ) grow-length ;
-M: sbuf nth ( n sbuf -- ch )
- bounds-check underlying char-slot ;
+M: sbuf nth ( n sbuf -- ch ) bounds-check underlying char-slot ;
M: sbuf set-nth ( ch n sbuf -- )
growable-check 2dup ensure underlying
] [
2drop
] ifte ;
+
+: grow-length ( len seq -- )
+ growable-check 2dup length > [ 2dup expand ] when
+ set-capacity ;
[ 1 length set-capacity ]
[ 2 underlying set-underlying ] ;
-M: vector set-length ( len vec -- )
- growable-check 2dup expand set-capacity ;
+M: vector set-length ( len vec -- ) grow-length ;
-M: vector nth ( n vec -- obj )
- bounds-check underlying array-nth ;
+M: vector nth ( n vec -- obj ) bounds-check underlying array-nth ;
M: vector set-nth ( obj n vec -- )
growable-check 2dup ensure underlying set-array-nth ;
+++ /dev/null
-! Copyright (C) 2005 Slava Pestov.
-! See http://factor.sf.net/license.txt for BSD license.
-IN: help
-DEFER: tutorial
-
-IN: gadgets
-USING: generic help io kernel listener math namespaces
-prettyprint 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
-
-: ?init-world
- first-time get [ init-world first-time off ] when ;
"/library/ui/panes.factor"
"/library/ui/presentations.factor"
"/library/ui/books.factor"
- "/library/ui/init-world.factor"
"/library/ui/ui.factor"
] [
dup print run-resource
! Copyright (C) 2005 Slava Pestov.
! See http://factor.sf.net/license.txt for BSD license.
+IN: help
+DEFER: tutorial
+
IN: gadgets
-USING: kernel namespaces sdl sequences ;
+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
+: ?init-world
+ first-time get [ init-world first-time off ] when ;
IN: shells
: ui ( -- )