graphics/ToolTipProducer.py
changeset 1730 64d8f52bc8c8
parent 1571 486f94a8032c
child 1736 7e61baa047f0
equal deleted inserted replaced
1726:d51af006fa6b 1730:64d8f52bc8c8
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    23 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
    24 
    24 
    25 import wx
    25 import wx
    26 
    26 
    27 from controls.CustomToolTip import CustomToolTip, TOOLTIP_WAIT_PERIOD
    27 from controls.CustomToolTip import CustomToolTip, TOOLTIP_WAIT_PERIOD
    28     
    28 
    29 #-------------------------------------------------------------------------------
    29 #-------------------------------------------------------------------------------
    30 #                           Tool Tip Producer class
    30 #                           Tool Tip Producer class
    31 #-------------------------------------------------------------------------------
    31 #-------------------------------------------------------------------------------
    32 
    32 
    33 """
    33 """
    34 Class that implements an element that generate Tool Tip
    34 Class that implements an element that generate Tool Tip
    35 """
    35 """
    36 
    36 
    37 class ToolTipProducer:
    37 class ToolTipProducer:
    38     
    38 
    39     def __init__(self, parent):
    39     def __init__(self, parent):
    40         """
    40         """
    41         Constructor
    41         Constructor
    42         @param parent: Parent Viewer
    42         @param parent: Parent Viewer
    43         """
    43         """
    44         self.Parent = parent
    44         self.Parent = parent
    45         
    45 
    46         self.ToolTip = None
    46         self.ToolTip = None
    47         self.ToolTipPos = None
    47         self.ToolTipPos = None
    48         
    48 
    49         # Timer for firing Tool tip display
    49         # Timer for firing Tool tip display
    50         self.ToolTipTimer = wx.Timer(self.Parent, -1)
    50         self.ToolTipTimer = wx.Timer(self.Parent, -1)
    51         self.Parent.Bind(wx.EVT_TIMER, 
    51         self.Parent.Bind(wx.EVT_TIMER,
    52             self.OnToolTipTimer, 
    52             self.OnToolTipTimer,
    53             self.ToolTipTimer)
    53             self.ToolTipTimer)
    54     
    54 
    55     def __del__(self):
    55     def __del__(self):
    56         """
    56         """
    57         Destructor
    57         Destructor
    58         """
    58         """
    59         self.DestroyToolTip()
    59         self.DestroyToolTip()
    60     
    60 
    61     def OnToolTipTimer(self, event):
    61     def OnToolTipTimer(self, event):
    62         """
    62         """
    63         Callback for Tool Tip firing timer Event
    63         Callback for Tool Tip firing timer Event
    64         @param event: Tool tip text
    64         @param event: Tool tip text
    65         """
    65         """
    66         # Get Tool Tip text
    66         # Get Tool Tip text
    67         value = self.GetToolTipValue()
    67         value = self.GetToolTipValue()
    68         
    68 
    69         if value is not None and self.ToolTipPos is not None:
    69         if value is not None and self.ToolTipPos is not None:
    70             # Create Tool Tip
    70             # Create Tool Tip
    71             self.ToolTip = CustomToolTip(self.Parent, value)
    71             self.ToolTip = CustomToolTip(self.Parent, value)
    72             self.ToolTip.SetToolTipPosition(self.ToolTipPos)
    72             self.ToolTip.SetToolTipPosition(self.ToolTipPos)
    73             self.ToolTip.Show()
    73             self.ToolTip.Show()
    74     
    74 
    75     def GetToolTipValue(self):
    75     def GetToolTipValue(self):
    76         """
    76         """
    77         Return tool tip text
    77         Return tool tip text
    78         Have to be overridden by inherited classes 
    78         Have to be overridden by inherited classes
    79         @return: Tool tip text (None if not overridden) 
    79         @return: Tool tip text (None if not overridden)
    80         """
    80         """
    81         return None
    81         return None
    82     
    82 
    83     def DisplayToolTip(self, pos):
    83     def DisplayToolTip(self, pos):
    84         """
    84         """
    85         Display Tool tip
    85         Display Tool tip
    86         @param pos: Tool tip position
    86         @param pos: Tool tip position
    87         """
    87         """
    88         # Destroy current displayed Tool tip
    88         # Destroy current displayed Tool tip
    89         self.DestroyToolTip()
    89         self.DestroyToolTip()
    90         
    90 
    91         # Save Tool Tip position
    91         # Save Tool Tip position
    92         self.ToolTipPos = pos
    92         self.ToolTipPos = pos
    93         # Start Tool tip firing timer
    93         # Start Tool tip firing timer
    94         self.ToolTipTimer.Start(
    94         self.ToolTipTimer.Start(
    95             int(TOOLTIP_WAIT_PERIOD * 1000), 
    95             int(TOOLTIP_WAIT_PERIOD * 1000),
    96             oneShot=True)
    96             oneShot=True)
    97     
    97 
    98     def SetToolTipText(self, text):
    98     def SetToolTipText(self, text):
    99         """
    99         """
   100         Set current Tool tip text
   100         Set current Tool tip text
   101         @param text: Tool tip Text
   101         @param text: Tool tip Text
   102         """
   102         """
   103         if self.ToolTip is not None:
   103         if self.ToolTip is not None:
   104             self.ToolTip.SetTip(text)
   104             self.ToolTip.SetTip(text)
   105     
   105 
   106     def DestroyToolTip(self):
   106     def DestroyToolTip(self):
   107         """
   107         """
   108         Destroy current displayed Tool Tip
   108         Destroy current displayed Tool Tip
   109         """
   109         """
   110         # Stop Tool tip firing timer
   110         # Stop Tool tip firing timer
   111         self.ToolTipTimer.Stop()
   111         self.ToolTipTimer.Stop()
   112         self.ToolTipPos = None
   112         self.ToolTipPos = None
   113         
   113 
   114         # Destroy Tool Tip
   114         # Destroy Tool Tip
   115         if self.ToolTip is not None:
   115         if self.ToolTip is not None:
   116             self.ToolTip.Destroy()
   116             self.ToolTip.Destroy()
   117             self.ToolTip = None
   117             self.ToolTip = None