]> gitweb.factorcode.org Git - factor.git/commitdiff
splitter layout fix
authorSlava Pestov <slava@factorcode.org>
Thu, 14 Jul 2005 01:28:23 +0000 (01:28 +0000)
committerSlava Pestov <slava@factorcode.org>
Thu, 14 Jul 2005 01:28:23 +0000 (01:28 +0000)
library/collections/hashtables.factor
library/ui/init-world.factor
library/ui/splitters.factor

index cb29ba95f9abb3b56b061b38ba1ac3e62332b21c..4d7c592db106c45e3a71b9825da1abd86226544d 100644 (file)
@@ -165,3 +165,9 @@ M: hashtable hashcode ( hash -- n )
     ] [
         pick rot >r >r call dup r> r> set-hash
     ] ifte* ; inline
+
+: ?hash ( key hash/f -- value/f )
+    dup [ hash ] [ 2drop f ] ifte ;
+
+: ?set-hash ( value key hash/f -- hash )
+    [ 1 <hashtable> ] unless* [ set-hash ] keep ;
index f25abbf7972d7337eab3eec5099001bfce41d1e8..61bf0d0a1df47a30a1d3334e239ff4eb84a612b2 100644 (file)
@@ -3,6 +3,11 @@
 IN: gadgets
 USING: generic io kernel listener math namespaces styles threads ;
 
+SYMBOL: stack-display
+
+: <stack-display>
+     ;
+
 : init-world
     global [
         <world> world set
@@ -21,15 +26,13 @@ USING: generic io kernel listener math namespaces styles threads ;
         
         <plain-gadget> add-layer
     
-        <pane> dup
-        
-        <scroller> "Stack display goes here" <label> 3/4 <y-splitter> add-layer
-        
-        [ [ clear  print-banner listener ] with-stream ] in-thread
+        <pane> dup pane set <scroller>
+        <pane> dup stack-display set <scroller>
+        3/4 <y-splitter> add-layer
         
-        dup request-focus
+        [ pane get [ clear print-banner listener ] with-stream ] in-thread
         
-        pane set
+        pane get request-focus
     ] bind ;
 
 SYMBOL: first-time
index cf61f4f93cff04551a28105520d88d2abc4bef73..4dfb74369f8409e05ed58ba79d56feb453fdb168 100644 (file)
@@ -45,13 +45,14 @@ C: splitter ( first second split vector -- splitter )
     { 1 0 0 } <splitter> ;
 
 : splitter-part ( splitter -- vec )
-    dup splitter-split swap shape-dim n*v divider-size 1/2 v*n v- ;
+    dup splitter-split swap shape-dim
+    n*v divider-size 1/2 v*n v- ;
 
 : splitter-layout ( splitter -- [ a b c ] )
     [
         dup splitter-part ,
         divider-size ,
-        dup shape-dim swap splitter-part v- ,
+        dup shape-dim divider-size v- swap splitter-part v- ,
     ] make-list ;
 
 M: splitter layout* ( splitter -- )