]> gitweb.factorcode.org Git - factor.git/commitdiff
fixed stack comments of read1, minor UI updates
authorSlava Pestov <slava@factorcode.org>
Wed, 20 Jul 2005 02:29:57 +0000 (02:29 +0000)
committerSlava Pestov <slava@factorcode.org>
Wed, 20 Jul 2005 02:29:57 +0000 (02:29 +0000)
library/io/c-streams.factor
library/io/stdio.factor
library/ui/panes.factor
library/ui/scrolling.factor
library/unix/io.factor

index e93180899b98f053b827de14e98658f6000f6b11..c38764ae83e56b8e8844fa9bde616ccbc2801213 100644 (file)
@@ -18,7 +18,7 @@ M: c-stream stream-write1 ( char stream -- )
 M: c-stream stream-write-attr ( str style stream -- )
     nip c-stream-out fwrite ;
 
-M: c-stream stream-read1 ( stream -- str )
+M: c-stream stream-read1 ( stream -- char/f )
     c-stream-in dup [ fgetc ] when ;
 
 M: c-stream stream-flush ( stream -- )
index 0493175421de3a50555f3edd91073d2d35ea41f5..f8959b731cf01e4ebd9312953e27f185dd1feda8 100644 (file)
@@ -5,7 +5,7 @@ USING: errors generic kernel lists namespaces strings styles ;
 
 : flush      ( -- )              stdio get stream-flush ;
 : read-line  ( -- string )       stdio get stream-readln ;
-: read1      ( -- char )         stdio get stream-read1 ;
+: read1      ( -- char/f )       stdio get stream-read1 ;
 : read       ( count -- string ) stdio get stream-read ;
 : write      ( string -- )       stdio get stream-write ;
 : write1     ( char -- )         stdio get stream-write1 ;
index 1e5edbc35c75078a95b605cd7ab48c49ba7d11a6..c9d30dcdc2cf8fdceab3cb4635962f01c41e92cb 100644 (file)
@@ -66,8 +66,17 @@ M: pane focusable-child* ( pane -- editor )
 : pane-clear ( pane -- )
     dup pane-output clear-incremental pane-current clear-gadget ;
 
+: pane-ignore? ( style text pane -- ? )
+    #! If we already have stuff in the current pack, and there
+    #! is no style information or text to write, ignore it.
+    #! Otherwise, we either have a fancy style (like an icon
+    #! or gadget being output), or we want the current pack to
+    #! have a minimal height so we put the empty label there.
+    pane-current gadget-children empty? not
+    rot not and swap empty? and ;
+
 : pane-write-1 ( style text pane -- )
-    pick empty? pick empty? and [
+    3dup pane-ignore? [
         3drop
     ] [
         >r <presentation> r> pane-current add-gadget
index adc27c25b7246826b6bf191d5aaa59395400a62e..09f4ae73bb03bc07f6cb60bc3a9f2cbad24dacd8 100644 (file)
@@ -27,7 +27,7 @@ M: viewport pref-dim gadget-child pref-dim ;
 : viewport-origin* ( viewport -- point )
     dup viewport-bottom? [
         f over set-viewport-bottom?
-        dup viewport-dim { 0 -1 0 } v* over fix-scroll
+        dup viewport-dim { 0 -1 0 } v*
         [ swap set-viewport-origin ] keep
     ] [
         viewport-origin
@@ -35,7 +35,8 @@ M: viewport pref-dim gadget-child pref-dim ;
 
 M: viewport layout* ( viewport -- )
     dup gadget-child dup prefer
-    >r viewport-origin* r> set-rectangle-loc ;
+    >r dup viewport-origin* swap fix-scroll r>
+    set-rectangle-loc ;
 
 M: viewport focusable-child* ( viewport -- gadget )
     gadget-child ;
@@ -101,7 +102,9 @@ C: slider ( viewport vector -- slider )
 : <y-slider> ( viewport -- slider ) { 0 1 0 } <slider> ;
 
 : thumb-loc ( slider -- loc )
-    dup slider-viewport viewport-origin* vneg swap >thumb ;
+    dup slider-viewport
+    dup viewport-origin* swap fix-scroll
+    vneg swap >thumb ;
 
 : slider-dim { 16 16 16 } ;
 
index ec86637e99cbea84053cc56949f9c52c53fa9704..71fb3b78db97a3c97295d2a95373ecf05ce1c4e5 100644 (file)
@@ -228,7 +228,7 @@ M: read-task task-container drop read-tasks get ;
 M: port stream-read ( count stream -- string )
     [ wait-to-read ] keep read-fin ;
 
-M: port stream-read1 ( stream -- string )
+M: port stream-read1 ( stream -- char/f )
     1 over wait-to-read port-sbuf first ;
 
 ! Writers