Revision: 3365 http://vexi.svn.sourceforge.net/vexi/?rev=3365&view=rev Author: clrg Date: 2009-01-21 01:35:44 +0000 (Wed, 21 Jan 2009)
Log Message: ----------- Tooltip handling tweaks Modified Paths: -------------- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t =================================================================== --- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t 2009-01-20 03:01:42 UTC (rev 3364) +++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipable.t 2009-01-21 01:35:44 UTC (rev 3365) @@ -11,13 +11,23 @@ </ui:box> - static.enterWrite = function(v) { trapee.surface.tooltip.makeRequest(trapee); cascade = v; } - static.leaveWrite = function(v) { trapee.surface.tooltip.dropRequest(trapee); cascade = v; } + static.enterWrite = function(v) { if (trapee.tooltip) trapee.surface.tooltip.makeRequest(trapee); cascade = v; } + static.leaveWrite = function(v) { if (trapee.tooltip) trapee.surface.tooltip.dropRequest(trapee); cascade = v; } + /** re-/un-register tooltip if it has changed */ + static.tooltipUpdate = function(v) { + cascade = v; + if (trapee.v_active_tooltip) { + if (v) trapee.surface.tooltip.makeRequest(trapee); + else trapee.surface.tooltip.dropRequest(trapee); + } + } + /** assign the Enter/Leave functions when a tooltip is set */ static.tooltipWrite = function(v) { trapee.Enter ++= static.enterWrite; trapee.Leave ++= static.leaveWrite; + trapee.tooltip ++= static.tooltipUpdate; trapee.tooltip --= callee; cascade = v; } Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t =================================================================== --- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t 2009-01-20 03:01:42 UTC (rev 3364) +++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/role/tooltipmanager.t 2009-01-21 01:35:44 UTC (rev 3365) @@ -68,6 +68,7 @@ /** clean up on popdown */ thisbox.popdown ++= function(v) { if (!curTipReq) return true; + curTipReq.v_active_tooltip = false; curTipReq.surface --= surfaceWrite; curTipReq.visible --= visibleWrite; surface.event.Press1 --= pressWrite; @@ -76,7 +77,10 @@ /** make v the tooltip requesting display */ model.makeRequest = function(v) { + // clean up previous tooltip + if (curTipReq) curTipReq.v_active_tooltip = false; // register new tooltip request + v.v_active_tooltip = true; curTipReq = v; newTipReq = true; // already showing previous tooltip @@ -103,8 +107,7 @@ popdown = true; curTipReq = null; vexi.thread = popTooltipThread; - } - else curTipReq = null; + } else curTipReq = null; } </ui:box> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ This SF.net email is sponsored by: SourcForge Community SourceForge wants to tell your story. http://p.sf.net/sfu/sf-spreadtheword _______________________________________________ Vexi-svn mailing list Vexi-svn@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/vexi-svn