]> gitweb.factorcode.org Git - factor.git/commitdiff
removed x/y variable usage from all places except frame layout
authorSlava Pestov <slava@factorcode.org>
Tue, 19 Jul 2005 21:40:32 +0000 (21:40 +0000)
committerSlava Pestov <slava@factorcode.org>
Tue, 19 Jul 2005 21:40:32 +0000 (21:40 +0000)
TODO.FACTOR.txt
library/ui/frames.factor
library/ui/gadgets.factor
library/ui/load.factor
library/ui/paint.factor
library/ui/shapes.factor [deleted file]
library/ui/text.factor
library/ui/ui.factor

index 2af71916f1164fbe9c0704cde68c3bb52574a723..3609d70aececb5588fe2d80095fb109158405345 100644 (file)
@@ -12,6 +12,7 @@
 - fix listener prompt display after presentation commands invoked\r
 - tutorial: clickable code snippets\r
 - theme abstraction in ui\r
+- stray gesture son stack\r
 \r
 + misc\r
 \r
index b17ea029d0f2d9240fff75d9b7023352ee8e311e..194187b1b234f2c2341f3f0d62969eb55146417d 100644 (file)
@@ -4,6 +4,9 @@ IN: gadgets
 USING: gadgets generic kernel lists math namespaces sdl
 sequences vectors words ;
 
+SYMBOL: x
+SYMBOL: y
+
 ! A frame arranges left/right/top/bottom gadgets around a
 ! center gadget, which gets any leftover space.
 TUPLE: frame left right top bottom center ;
@@ -69,11 +72,11 @@ SYMBOL: frame-bottom-run
 : var-frame-top \ frame-top var-frame-y ;
 : var-frame-right
     dup \ frame-right var-frame-x
-    swap shape-w \ frame-right [ - ] change
+    swap rectangle-dim first \ frame-right [ - ] change
     \ frame-right get \ frame-left get - frame-right-run set ;
 : var-frame-bottom
     dup \ frame-bottom var-frame-y
-    swap shape-h \ frame-bottom [ - ] change
+    swap rectangle-dim second \ frame-bottom [ - ] change
     \ frame-bottom get \ frame-top get - frame-bottom-run set ;
 
 : setup-frame ( frame -- )
index f49cb68b2285c9e24417e67df6a9423a71e6f9e6..2e7eb2974f8062aafdfd6e1602dc76dc7c2c0795 100644 (file)
@@ -4,9 +4,34 @@ IN: gadgets
 USING: generic hashtables kernel lists math matrices namespaces
 sequences styles vectors ;
 
-! A gadget is a shape, a paint, a mapping of gestures to
-! actions, and a reference to the gadget's parent. A gadget
-! delegates to its shape.
+SYMBOL: origin
+
+global [ { 0 0 0 } origin set ] bind
+
+TUPLE: rectangle loc dim ;
+
+GENERIC: inside? ( loc shape -- ? )
+
+: shape-bounds ( shape -- loc dim )
+    dup rectangle-loc swap rectangle-dim ;
+
+: shape-extent ( shape -- loc dim )
+    dup rectangle-loc dup rot rectangle-dim v+ ;
+
+: screen-bounds ( shape -- rect )
+    shape-bounds >r origin get v+ r> <rectangle> ;
+
+M: rectangle inside? ( loc rect -- ? )
+    screen-bounds shape-bounds { 1 1 1 } v- { 0 0 0 } vmax
+    >r v- { 0 0 0 } r> vbetween? conj ;
+
+: intersect ( shape shape -- rect )
+    >r shape-extent r> shape-extent
+    swapd vmin >r vmax dup r> swap v- { 0 0 0 } vmax
+    <rectangle> ;
+
+! A gadget is a rectangle, a paint, a mapping of gestures to
+! actions, and a reference to the gadget's parent.
 TUPLE: gadget
     paint gestures visible? relayout? root?
     parent children ;
index f693bb6e10689a37db7ba83bc5e92791428ef2fd..acfe6b10864008a84d5009b8a1fdb833cbcd0050 100644 (file)
@@ -1,6 +1,5 @@
 USING: kernel parser sequences io ;
 [
-    "/library/ui/shapes.factor"
     "/library/ui/gadgets.factor"
     "/library/ui/hierarchy.factor"
     "/library/ui/paint.factor"
index 3a0f7a11ef870fa0a2695f7057c8902eed8b0f41..949ad3261871e961b5f34f0bba12e9930638dd9f 100644 (file)
@@ -29,10 +29,9 @@ GENERIC: draw-gadget* ( gadget -- )
 : draw-gadget ( gadget -- )
     dup gadget-visible? [
         dup [
-            dup [
-                dup draw-gadget*
-                gadget-children [ draw-gadget ] each
-            ] with-trans
+            dup rectangle-loc origin [ v+ ] change
+            dup draw-gadget*
+            gadget-children [ draw-gadget ] each
         ] with-clip
     ] [ drop ] ifte ;
 
@@ -74,7 +73,7 @@ M: f draw-boundary 2drop ;
 TUPLE: solid ;
 
 : rect>screen ( shape -- x1 y1 x2 y2 )
-    >r origin dup r> rectangle-dim v+ >r 2unseq r> 2unseq ;
+    >r origin get dup r> rectangle-dim v+ >r 2unseq r> 2unseq ;
 
 ! Solid pen
 M: solid draw-interior
@@ -93,7 +92,8 @@ TUPLE: gradient vector from to ;
 
 : (gradient-x) ( gradient dim y -- x1 x2 y color )
     dup pick second / >r rot r> gradient-color >r
-    >r >r x get r> first x get + r> y get + r> ;
+    >r >r origin get first r> origin get v+ first
+    r> origin get second + r> ;
 
 : gradient-x ( gradient dim y -- )
     >r >r >r surface get r> r> r> (gradient-x) rgb hlineColor ;
@@ -103,7 +103,8 @@ TUPLE: gradient vector from to ;
 
 : (gradient-y) ( gradient dim x -- x y1 y2 color )
     dup pick first / >r rot r> gradient-color
-    >r x get + y get rot second y get + r> ;
+    >r origin get first + origin get second rot
+    origin get v+ second r> ;
 
 : gradient-y ( gradient dim x -- )
     >r >r >r surface get r> r> r> (gradient-y) rgb vlineColor ;
@@ -144,7 +145,7 @@ M: bevel draw-boundary ( gadget boundary -- )
     #! Ugly code.
     bevel-width [
         [
-            >r origin over rectangle-dim over v+ r>
+            >r origin get over rectangle-dim over v+ r>
             { 1 1 0 } n*v tuck v- { 1 1 0 } v- >r v+ r>
             rot draw-bevel
         ] 2keep
diff --git a/library/ui/shapes.factor b/library/ui/shapes.factor
deleted file mode 100644 (file)
index 78277db..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-! Copyright (C) 2005 Slava Pestov.
-! See http://factor.sf.net/license.txt for BSD license.
-IN: gadgets
-USING: generic kernel lists math matrices namespaces sdl
-sequences vectors ;
-
-SYMBOL: x
-SYMBOL: y
-
-: origin ( -- loc ) x get y get 0 3vector ;
-
-TUPLE: rectangle loc dim ;
-
-GENERIC: inside? ( loc shape -- ? )
-
-: shape-x rectangle-loc first ;
-: shape-y rectangle-loc second ;
-: shape-w rectangle-dim first ;
-: shape-h rectangle-dim second ;
-
-: with-trans ( shape quot -- )
-    #! All drawing done inside the quotation is translated
-    #! relative to the shape's origin.
-    [
-        >r dup
-        shape-x x [ + ] change
-        shape-y y [ + ] change
-        r> call
-    ] with-scope ; inline
-
-: shape-bounds ( shape -- loc dim )
-    dup rectangle-loc swap rectangle-dim ;
-
-: shape-extent ( shape -- loc dim )
-    dup rectangle-loc dup rot rectangle-dim v+ ;
-
-: screen-bounds ( shape -- rect )
-    shape-bounds >r origin v+ r> <rectangle> ;
-
-M: rectangle inside? ( loc rect -- ? )
-    screen-bounds shape-bounds { 1 1 1 } v- { 0 0 0 } vmax
-    >r v- { 0 0 0 } r> vbetween? conj ;
-
-: intersect ( shape shape -- rect )
-    >r shape-extent r> shape-extent
-    swapd vmin >r vmax dup r> swap v- { 0 0 0 } vmax
-    <rectangle> ;
index 4a8cadb4d52fbaefa3f42c638f175f620c1a2e81..47118218fdc4df3b9dacf17bbcc81b84a14062cc 100644 (file)
@@ -34,6 +34,6 @@ strings styles io ;
         >r [ gadget-font ] keep r> swap
         fg 3unlist make-color
         TTF_RenderUNICODE_Blended
-        [ >r origin 2unseq r> draw-surface ] keep
+        [ >r origin get 2unseq r> draw-surface ] keep
         SDL_FreeSurface
     ] ifte ;
index 316162a22e64ba31fedd61f4f8806afdd5553d09..d713a4fa20767ffa810dd5f656f77fe1be931749 100644 (file)
@@ -11,7 +11,7 @@ IN: shells
     ttf-init
     ?init-world
     world get rectangle-dim 2unseq 0 SDL_RESIZABLE [
-        0 x set 0 y set [
+        [
             "Factor " version append dup SDL_WM_SetCaption
             start-world
             run-world