From e8d0cbbd6aebaacccb9088e1b142f9d9ec79eb19 Mon Sep 17 00:00:00 2001
From: Slava Pestov <slava@slava-pestovs-macbook-pro.local>
Date: Fri, 11 Jul 2008 00:46:15 -0500
Subject: [PATCH] UI cleanups

---
 extra/ui/gadgets/borders/borders.factor | 12 ++++++++----
 extra/ui/gadgets/buttons/buttons.factor | 20 ++++++++------------
 extra/ui/gadgets/editors/editors.factor | 18 ++++++++----------
 3 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/extra/ui/gadgets/borders/borders.factor b/extra/ui/gadgets/borders/borders.factor
index ce7ea32008..83bb4f3c3f 100644
--- a/extra/ui/gadgets/borders/borders.factor
+++ b/extra/ui/gadgets/borders/borders.factor
@@ -6,11 +6,15 @@ IN: ui.gadgets.borders
 
 TUPLE: border < gadget size fill ;
 
-: <border> ( child gap -- border )
-    border new-gadget
-        swap dup 2array >>size
+: new-border ( child class -- border )
+    new-gadget
+        { 0 0 } >>size
         { 0 0 } >>fill
-        [ add-gadget ] keep ;
+        [ add-gadget ] keep ; inline
+
+: <border> ( child gap -- border )
+    swap border new-border
+        swap dup 2array >>size ;
 
 M: border pref-dim*
     [ border-size 2 v*n ] keep
diff --git a/extra/ui/gadgets/buttons/buttons.factor b/extra/ui/gadgets/buttons/buttons.factor
index e38676c375..770e0b9f15 100755
--- a/extra/ui/gadgets/buttons/buttons.factor
+++ b/extra/ui/gadgets/buttons/buttons.factor
@@ -4,12 +4,12 @@ USING: accessors arrays kernel math models namespaces sequences
 strings quotations assocs combinators classes colors
 classes.tuple opengl math.vectors
 ui.commands ui.gadgets ui.gadgets.borders
-ui.gadgets.labels ui.gadgets.theme ui.gadgets.wrappers
+ui.gadgets.labels ui.gadgets.theme
 ui.gadgets.tracks ui.gadgets.packs ui.gadgets.worlds ui.gestures
 ui.render ;
 IN: ui.gadgets.buttons
 
-TUPLE: button < wrapper pressed? selected? quot ;
+TUPLE: button < border pressed? selected? quot ;
 
 : buttons-down? ( -- ? )
     hand-buttons get-global empty? not ;
@@ -41,11 +41,9 @@ button H{
 } set-gestures
 
 : new-button ( label quot class -- button )
-    new-gadget
-        swap >>quot
-        [ >r >label r> add-gadget ] keep ; inline
+    [ swap >label ] dip new-border swap >>quot ; inline
 
-: <button> ( gadget quot -- button )
+: <button> ( label quot -- button )
     button new-button ;
 
 TUPLE: button-paint plain rollover pressed selected ;
@@ -84,13 +82,11 @@ M: button-paint draw-boundary
 
 : bevel-button-theme ( gadget -- gadget )
     <bevel-button-paint> >>interior
+    { 5 5 } >>size
     faint-boundary ; inline
 
-: >bevel-label ( label -- gadget )
-    >label 5 <border> ;
-
 : <bevel-button> ( label quot -- button )
-    >r >bevel-label r> <button> bevel-button-theme ;
+    <button> bevel-button-theme ;
 
 TUPLE: repeat-button < button ;
 
@@ -101,7 +97,7 @@ repeat-button H{
 : <repeat-button> ( label quot -- button )
     #! Button that calls the quotation every 100ms as long as
     #! the mouse is held down.
-    >r >bevel-label r> repeat-button new-button bevel-button-theme ;
+    repeat-button new-button bevel-button-theme ;
 
 TUPLE: checkmark-paint color ;
 
@@ -209,7 +205,7 @@ M: radio-control model-changed
     dup radio-buttons-theme ;
 
 : <toggle-button> ( value model label -- gadget )
-    >bevel-label <radio-control> bevel-button-theme ;
+    <radio-control> bevel-button-theme ;
 
 : <toggle-buttons> ( model assoc -- gadget )
     [ [ <toggle-button> ] <radio-controls> ] make-shelf ;
diff --git a/extra/ui/gadgets/editors/editors.factor b/extra/ui/gadgets/editors/editors.factor
index 3d55710e54..8cdc65b388 100755
--- a/extra/ui/gadgets/editors/editors.factor
+++ b/extra/ui/gadgets/editors/editors.factor
@@ -9,7 +9,6 @@ ui.gadgets.theme ui.gadgets.wrappers ui.render ui.gestures ;
 IN: ui.gadgets.editors
 
 TUPLE: editor < gadget
-self
 font color caret-color selection-color
 caret mark
 focused? ;
@@ -30,8 +29,7 @@ focused? ;
     new-gadget
         <document> >>model
         init-editor-locs
-        editor-theme
-        dup dup set-editor-self ; inline
+        editor-theme ; inline
 
 : <editor> ( -- editor )
     editor new-editor ;
@@ -209,19 +207,19 @@ M: editor pref-dim*
     dup editor-font* swap control-value text-dim ;
 
 : contents-changed ( model editor -- )
-    editor-self swap
-    over editor-caret [ over validate-loc ] (change-model)
-    over editor-mark [ over validate-loc ] (change-model)
+    swap
+    over caret>> [ over validate-loc ] (change-model)
+    over mark>> [ over validate-loc ] (change-model)
     drop relayout ;
 
 : caret/mark-changed ( model editor -- )
-    nip editor-self dup relayout-1 scroll>caret ;
+    nip [ relayout-1 ] [ scroll>caret ] bi ;
 
 M: editor model-changed
     {
-        { [ 2dup gadget-model eq? ] [ contents-changed ] }
-        { [ 2dup editor-caret eq? ] [ caret/mark-changed ] }
-        { [ 2dup editor-mark eq? ] [ caret/mark-changed ] }
+        { [ 2dup model>> eq? ] [ contents-changed ] }
+        { [ 2dup caret>> eq? ] [ caret/mark-changed ] }
+        { [ 2dup mark>> eq? ] [ caret/mark-changed ] }
     } cond ;
 
 M: editor gadget-selection?