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