Revision: 3468
          http://vexi.svn.sourceforge.net/vexi/?rev=3468&view=rev
Author:   clrg
Date:     2009-04-01 11:08:10 +0000 (Wed, 01 Apr 2009)

Log Message:
-----------
Awareness of reusable mouse/frame objects

Modified Paths:
--------------
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/clickable.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/draggable.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupable.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectlist.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/head.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/slider.t
    trunk/widgets/org.vexi.widgets/src/org/vexi/theme/classic/scrollbar.t

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/clickable.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/clickable.t    
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/clickable.t    
2009-04-01 11:08:10 UTC (rev 3468)
@@ -138,8 +138,11 @@
         if (trapee.enabled) {
             // determine physical state and activate trigger
             if (v) trapee.active = true;
-            else if (trapee.mouse and trapee.mouse.inside) trapee.hover = true;
-            else trapee.normal = true;
+            else {
+                var m = trapee.mouse;
+                if (m and m.inside) trapee.hover = true;
+                else trapee.normal = true;
+            }
             // set repeat state if necessary
             if (trapee.repeats) trapee.repeat = v;
             cascade = v;

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/draggable.t
===================================================================
(Binary files differ)

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupable.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupable.t    
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/popupable.t    
2009-04-01 11:08:10 UTC (rev 3468)
@@ -42,9 +42,13 @@
         v_popbox   ++= static.popboxWrite;
         KeyPressed ++= static.keypressWrite;
         
+        var m, pm;
+        
         /** reusable function for hiding the popbox on Press outside of 
this/popbox */
         thisbox.v_pressWrite = function(v) {
-            if (!mouse.inside and !v_popbox.mouse.inside) {
+            if (m==null) m = mouse;
+            if (pm==null) pm = v_popbox.mouse;
+            if (!m.inside and !pm.inside) {
                 popdown = true;
                 if (blockPress) return;
             }

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectlist.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectlist.t   
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/selectlist.t   
2009-04-01 11:08:10 UTC (rev 3468)
@@ -39,10 +39,10 @@
         thisbox.syncView = function(v) {
             cascade = v;
             if (!v or !popped) return;
-            var s = th_scroll;
-            if ((s.distanceto(v).y+v.height) > s.height)
+            var dy = th_scroll.distanceto(v).y;
+            if (dy+v.height > s.height)
                 s.viewy = v_content.distanceto(v).y+v.height-s.height;
-            else if (0 > s.distanceto(v).y)
+            else if (0 > dy)
                 s.viewy = v_content.distanceto(v).y;
         }
         

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2009-04-01 
11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/text/edit.t 2009-04-01 
11:08:10 UTC (rev 3468)
@@ -725,19 +725,21 @@
             tip = false;
         }
         
+        var frameToThis;
+        
         /** request the findCurPosInBlock thread function */
         var findCurThreadRequest = function(v) {
             var s = surface;
             if (s == null) return;
+            if (frameToThis == null) frameToThis = s.frame.distanceto(thisbox);
             var m = s.frame.mouse;
             // thread already in progress - notify we want it to repeat
             if (tip) {
                 nBlock = mBlock;
                 nWord = mBlock.mWord;
                 nInWord = (mBlock.mWord and mBlock.mWord.mouse and 
mBlock.mWord.mouse.inside);
-                var d = s.frame.distanceto(thisbox);
-                nX = m.x-d.x;
-                nY = m.y-d.y;
+                nX = m.x-frameToThis.x;
+                nY = m.y-frameToThis.y;
                 updateCurPos = true;
             
             // prepare vars for thread and initiate
@@ -745,9 +747,8 @@
                 aBlock = mBlock;
                 aWord = mBlock.mWord;
                 aInWord = (mBlock.mWord and mBlock.mWord.mouse and 
mBlock.mWord.mouse.inside);
-                var d = s.frame.distanceto(thisbox);
-                aX = m.x-d.x;
-                aY = m.y-d.y;
+                aX = m.x-frameToThis.x;
+                aY = m.y-frameToThis.y;
                 tip = true;
                 
                 // start thread

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/head.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/head.t       
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/head.t       
2009-04-01 11:08:10 UTC (rev 3468)
@@ -20,7 +20,8 @@
     
     static.pressEvent = function(v) {
         var t = trapee;
-        if (3 > t.mouse.x or t.mouse.x > t.width-3) return;
+        var m = t.mouse;
+        if (3 > m.x or m.x > t.width-3) return;
         cascade = v;
     }
     

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/slider.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/slider.t     
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/slider.t     
2009-04-01 11:08:10 UTC (rev 3468)
@@ -26,10 +26,12 @@
         thisbox.numsteps = 10;      // the number of steps
         thisbox.traplock = false;   // lock for firing traps
         
+        var surfaceToTrack;
         var syncStep = function() {
+            if (surfaceToTrack==null) surfaceToTrack = 
surface.frame.distanceto(th_track);
             step = vexi.math.round(numsteps *
                 (surface.frame.mouse[pos] -
-                    vexi.math.abs(surface.frame.distanceto(th_track)[pos]) -
+                    vexi.math.abs(surfaceToTrack[pos]) -
                         th_handle[dim]/2) / (th_track[dim] - th_handle[dim]));
         }
         

Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/theme/classic/scrollbar.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/theme/classic/scrollbar.t       
2009-04-01 11:03:24 UTC (rev 3467)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/theme/classic/scrollbar.t       
2009-04-01 11:08:10 UTC (rev 3468)
@@ -46,15 +46,16 @@
         /** set shadow to cover track to one side of the thumb */
         var setShadow = function() {
             var thumbpos = $thumb[pos];
+            var thumbdim = $thumb[dim];
             var trackpos = $track.mouse[pos];
             if (thumbpos > trackpos) {
                 $shadow.display = true;
-                $shadow[dim] = $thumb[pos];
+                $shadow[dim] = $thumbpos;
                 $shadow[pos] = 0;
-            } else if (trackpos > thumbpos + $thumb[dim]) {
+            } else if (trackpos > thumbpos + thumbdim) {
                 $shadow.display = true;
-                $shadow[dim] = $track[dim] - $thumb[dim] - $thumb[pos];
-                $shadow[pos] = $thumb[dim] + $thumb[pos];
+                $shadow[dim] = $track[dim] - thumbdim - thumbpos;
+                $shadow[pos] = thumbdim + thumbpos;
             }
         }
         


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
_______________________________________________
Vexi-svn mailing list
Vexi-svn@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/vexi-svn

Reply via email to