--- a/graphics/GraphicCommons.py Thu Jan 12 17:04:22 2012 +0100
+++ b/graphics/GraphicCommons.py Tue Jan 17 16:44:00 2012 +0100
@@ -101,6 +101,9 @@
# Define highlight refresh inhibition period in second
REFRESH_HIGHLIGHT_PERIOD = 0.1
+# Define tooltip wait for displaying period in second
+TOOLTIP_WAIT_PERIOD = 0.5
+
HANDLE_CURSORS = {
(1, 1) : 2,
(3, 3) : 2,
@@ -602,6 +605,13 @@
self.Size = wx.Size(0, 0)
self.BoundingBox = wx.Rect(0, 0, 0, 0)
self.Visible = False
+ self.ToolTip = None
+ self.ToolTipPos = None
+ self.ToolTipTimer = wx.Timer(self.Parent, -1)
+ self.Parent.Bind(wx.EVT_TIMER, self.OnToolTipTimer, self.ToolTipTimer)
+
+ def __del__(self):
+ self
def GetDefinition(self):
return [self.Id], []
@@ -967,6 +977,36 @@
return movex, movey
return 0, 0
+ def OnToolTipTimer(self, event):
+ value = self.GetToolTipValue()
+ if value is not None and self.ToolTipPos is not None:
+ self.ToolTip = ToolTip(self.Parent, value)
+ self.ToolTip.MoveToolTip(self.ToolTipPos)
+ self.ToolTip.Show()
+
+ def GetToolTipValue(self):
+ return None
+
+ def CreateToolTip(self, pos):
+ value = self.GetToolTipValue()
+ if value is not None:
+ self.ToolTipPos = pos
+ self.ToolTipTimer.Start(int(TOOLTIP_WAIT_PERIOD * 1000), oneShot=True)
+
+ def MoveToolTip(self, pos):
+ if self.ToolTip is not None:
+ self.ToolTip.MoveToolTip(pos)
+ elif self.ToolTipPos is not None:
+ self.ToolTipPos = pos
+ self.ToolTipTimer.Start(int(TOOLTIP_WAIT_PERIOD * 1000), oneShot=True)
+
+ def ClearToolTip(self):
+ self.ToolTipTimer.Stop()
+ self.ToolTipPos = None
+ if self.ToolTip is not None:
+ self.ToolTip.Destroy()
+ self.ToolTip = None
+
# Override this method for defining the method to call for adding an highlight to this element
def AddHighlight(self, infos, start, end, highlight_type):
pass
@@ -1792,7 +1832,6 @@
self.OverStart = False
self.OverEnd = False
self.ComputingType = False
- self.ToolTip = None
self.Font = parent.GetMiniFont()
def GetDefinition(self):
@@ -1806,24 +1845,13 @@
self.StartConnected = None
self.EndConnected = None
- def CreateToolTip(self, pos):
+ def GetToolTipValue(self):
if self.Value is not None and self.Value != "undefined" and not isinstance(self.Value, BooleanType):
if isinstance(self.Value, StringType) and self.Value.find("#") == -1:
- computed_value = "\"%s\""%self.Value
+ return "\"%s\""%self.Value
else:
- computed_value = str(self.Value)
- self.ToolTip = ToolTip(self.Parent, computed_value)
- self.ToolTip.MoveToolTip(pos)
- self.ToolTip.Show()
-
- def MoveToolTip(self, pos):
- if self.ToolTip is not None:
- self.ToolTip.MoveToolTip(pos)
-
- def ClearToolTip(self):
- if self.ToolTip is not None:
- self.ToolTip.Destroy()
- self.ToolTip = None
+ return str(self.Value)
+ return None
# Returns the RedrawRect
def GetRedrawRect(self, movex = 0, movey = 0):