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
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn