- gaps in pack layout\r
- fix listener prompt display after presentation commands invoked\r
- tutorial: clickable code snippets\r
-- parser::skip clean up\r
+- theme abstraction in ui\r
\r
+ misc\r
\r
SYMBOL: file
: skip ( i seq quot -- n | quot: elt -- ? )
- #! Find the next element starting at i that satisfies the
- #! quotation.
- >r 2dup length < [
- 2dup nth r> dup >r call [
- r> 2drop
- ] [
- >r 1 + r> r> skip
- ] ifte
- ] [
- r> drop nip length
- ] ifte ; inline
-
-: (skip-blank) ( n line -- n )
- [ blank? not ] skip ;
+ over >r find* drop dup -1 =
+ [ drop r> length ] [ r> drop ] ifte ; inline
: skip-blank ( -- )
- "col" [ "line" get (skip-blank) ] change ;
+ "col" [ "line" get [ blank? not ] skip ] change ;
: skip-word ( n line -- n )
2dup nth CHAR: " = [ drop 1 + ] [ [ blank? ] skip ] ifte ;
: (scan) ( n line -- start end )
- [ (skip-blank) dup ] keep
- 2dup length < [ skip-word ] [ drop ] ifte ;
+ dupd 2dup length < [ skip-word ] [ drop ] ifte ;
: scan ( -- token )
- "col" get "line" get dup >r (scan) dup "col" set
- 2dup = [ r> 3drop f ] [ r> subseq ] ifte ;
+ skip-blank
+ "col" [ "line" get (scan) dup ] change
+ 2dup = [ 2drop f ] [ "line" get subseq ] ifte ;
: save-location ( word -- )
#! Remember where this word was defined.
SYMBOL: clip
: >sdl-rect ( rectangle -- sdlrect )
- [ shape-x ] keep [ shape-y ] keep [ shape-w ] keep shape-h
- make-rect ;
+ [ rectangle-loc 2unseq ] keep rectangle-dim 2unseq make-rect ;
: set-clip ( rect -- ? )
#! The top/left corner of the clip rectangle is the location
TUPLE: solid ;
: rect>screen ( shape -- x1 y1 x2 y2 )
- >r x get y get r> dup shape-w swap shape-h
- >r pick + r> pick + ;
+ >r origin dup r> rectangle-dim v+ >r 2unseq r> 2unseq ;
! Solid pen
M: solid draw-interior
>r [ gadget-font ] keep r> swap
fg 3unlist make-color
TTF_RenderUNICODE_Blended
- [ >r x get y get r> draw-surface ] keep
+ [ >r origin 2unseq r> draw-surface ] keep
SDL_FreeSurface
] ifte ;