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