]> gitweb.factorcode.org Git - factor.git/commitdiff
ui.gadgets.editors: rename min-width and max-width slots of field to min-cols and...
authorSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Feb 2009 10:25:58 +0000 (04:25 -0600)
committerSlava Pestov <slava@slava-pestovs-macbook-pro.local>
Mon, 16 Feb 2009 10:25:58 +0000 (04:25 -0600)
basis/ui/gadgets/borders/borders-tests.factor
basis/ui/gadgets/borders/borders.factor
basis/ui/gadgets/editors/editors.factor
basis/ui/tools/browser/browser.factor

index ea903b8c06d885a05d5bd464434ec0e3ea203774..e9d7a5362928890ed2273abea559ed83ffc872bc 100644 (file)
@@ -1,6 +1,6 @@
 IN: ui.gadgets.borders.tests
-USING: tools.test accessors namespaces kernel
-ui.gadgets ui.gadgets.borders math.rectangles ;
+USING: tools.test accessors namespaces kernel ui.gadgets
+ui.gadgets.borders ui.gadgets.borders.private math.rectangles ;
 
 [ { 110 210 } ] [ <gadget> { 100 200 } >>dim { 5 5 } <border> pref-dim ] unit-test
 
index 4a66c2836a506b4dfeabb3942525731c1f0a6865..ae44163ea5d582d74700760017f6bbe4c32f46b2 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2005, 2009 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: accessors arrays ui.gadgets kernel math
+USING: accessors arrays ui.gadgets kernel math fry
 namespaces vectors sequences math.vectors math.rectangles ;
 IN: ui.gadgets.borders
 
@@ -11,7 +11,7 @@ TUPLE: border < gadget
 { min-dim initial: { 0 0 } } ;
 
 : new-border ( child class -- border )
-    new-gadget swap add-gadget ; inline
+    new swap add-gadget ; inline
 
 : <border> ( child gap -- border )
     swap border new-border
@@ -20,14 +20,18 @@ TUPLE: border < gadget
 : <filled-border> ( child gap -- border )
     <border> { 1 1 } >>fill ;
 
+: border-pref-dim ( border child-dim -- pref-dim )
+    '[ size>> 2 v*n _ v+ ] [ min-dim>> ] bi vmax ;
+
 M: border pref-dim*
-    [ [ size>> 2 v*n ] [ gadget-child pref-dim ] bi v+ ]
-    [ min-dim>> ] bi vmax ;
+    dup gadget-child pref-dim border-pref-dim ;
 
 M: border baseline
     [ size>> second ] [ gadget-child baseline ] bi
     dup [ + ] [ nip ] if ;
 
+<PRIVATE
+
 : border-major-dim ( border -- dim )
     [ dim>> ] [ size>> 2 v*n ] bi v- ;
 
@@ -47,6 +51,8 @@ M: border baseline
 : border-child-rect ( border -- rect )
     dup border-dim [ border-loc ] keep <rect> ;
 
+PRIVATE>
+
 M: border layout*
     [ border-child-rect ] [ gadget-child ] bi set-rect-bounds ;
 
index d7aa6056f88ce6b7a9572d62b41b236c7bce84f8..76036c19fc26704bc4a29d5ae7252f0462675e71 100755 (executable)
@@ -555,9 +555,11 @@ TUPLE: source-editor < multiline-editor ;
     '[ _ _ elt-string ] <filter> ;
 
 ! Fields wrap an editor
-TUPLE: field < wrapper editor min-width max-width ;
+TUPLE: field < border editor min-cols max-cols ;
 
 : field-theme ( gadget -- gadget )
+    { 2 2 } >>size
+    { 1 0 } >>fill
     COLOR: gray <solid> >>boundary ; inline
 
 : <field-border> ( gadget -- border )
@@ -566,16 +568,18 @@ TUPLE: field < wrapper editor min-width max-width ;
         field-theme ;
 
 : new-field ( class -- gadget )
-    [ <editor> dup <field-border> ] dip new-wrapper swap >>editor ; inline
+    [ <editor> ] dip new-border
+        dup gadget-child >>editor
+        field-theme ; inline
 
-: column-width ( editor n -- width )
-    [ editor>> font>> ] [ CHAR: \s <string> ] bi* text-width ;
+! For line-gadget-width
+M: field font>> editor>> font>> ;
 
 M: field pref-dim*
-    [ call-next-method ]
-    [ dup min-width>> dup [ column-width 0 2array vmax ] [ 2drop ] if ]
-    [ dup max-width>> dup [ column-width 1/0. 2array vmin ] [ 2drop ] if ]
-    tri ;
+    dup
+    [ editor>> pref-dim ] keep
+    [ line-gadget-width ] [ drop second ] 2bi 2array
+    border-pref-dim ;
 
 TUPLE: model-field < field field-model ;
 
index 5f134a930c0efca5f8892250e1be0fecb0d5b197..4c7a6773aaa23795a763000ebab9c3159715b86f 100644 (file)
@@ -25,8 +25,8 @@ TUPLE: browser-gadget < tool pane scroller search-field ;
 
 : <search-field> ( browser -- field )
     '[ _ search-browser ] <action-field>
-        10 >>min-width
-        10 >>max-width ;
+        10 >>min-cols
+        10 >>max-cols ;
 
 : <browser-toolbar> ( browser -- toolbar )
     horizontal <track>