controls/LogViewer.py
changeset 984 2d03056993f6
parent 983 7dd481eef3b5
child 986 b663f099da8a
equal deleted inserted replaced
983:7dd481eef3b5 984:2d03056993f6
   293         self.MessagePanel = wx.Panel(self)
   293         self.MessagePanel = wx.Panel(self)
   294         if wx.Platform == '__WXMSW__':
   294         if wx.Platform == '__WXMSW__':
   295             self.Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier New')
   295             self.Font = wx.Font(10, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier New')
   296         else:
   296         else:
   297             self.Font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier')
   297             self.Font = wx.Font(12, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier')
   298         self.MessagePanel.Bind(wx.EVT_LEFT_DOWN, self.OnMessagePanelLeftDown)
   298         self.MessagePanel.Bind(wx.EVT_LEFT_UP, self.OnMessagePanelLeftUp)
   299         self.MessagePanel.Bind(wx.EVT_MOUSEWHEEL, self.OnMessagePanelMouseWheel)
   299         self.MessagePanel.Bind(wx.EVT_MOUSEWHEEL, self.OnMessagePanelMouseWheel)
   300         self.MessagePanel.Bind(wx.EVT_PAINT, self.OnMessagePanelPaint)
   300         self.MessagePanel.Bind(wx.EVT_PAINT, self.OnMessagePanelPaint)
   301         self.MessagePanel.Bind(wx.EVT_SIZE, self.OnMessagePanelResize)
   301         self.MessagePanel.Bind(wx.EVT_SIZE, self.OnMessagePanelResize)
   302         message_panel_sizer.AddWindow(self.MessagePanel, flag=wx.GROW)
   302         message_panel_sizer.AddWindow(self.MessagePanel, flag=wx.GROW)
   303         
   303         
   528             message, msgidx = self.GetMessageByTimestamp(current_message.Timestamp + seconds)
   528             message, msgidx = self.GetMessageByTimestamp(current_message.Timestamp + seconds)
   529             if message is None or self.IsMessagePanelBottom(msgidx):
   529             if message is None or self.IsMessagePanelBottom(msgidx):
   530                 self.ScrollToFirst()
   530                 self.ScrollToFirst()
   531             else:
   531             else:
   532                 self.CurrentMessage = msgidx
   532                 self.CurrentMessage = msgidx
   533                 self.Refresh()
   533                 self.RefreshView()
   534             
   534             
   535     def ResetMessagePanel(self):
   535     def ResetMessagePanel(self):
   536         if len(self.LogMessages) > 0:
   536         if len(self.LogMessages) > 0:
   537             self.CurrentMessage = len(self.LogMessages) - 1
   537             self.CurrentMessage = len(self.LogMessages) - 1
   538             message = self.LogMessages[self.CurrentMessage]
   538             message = self.LogMessages[self.CurrentMessage]
   564     def GenerateOnDurationButton(self, duration):
   564     def GenerateOnDurationButton(self, duration):
   565         def OnDurationButton():
   565         def OnDurationButton():
   566             self.ScrollMessagePanelByTimestamp(duration)
   566             self.ScrollMessagePanelByTimestamp(duration)
   567         return OnDurationButton
   567         return OnDurationButton
   568     
   568     
   569     def OnMessagePanelLeftDown(self, event):
   569     def OnMessagePanelLeftUp(self, event):
   570         if self.CurrentMessage is not None:
   570         if self.CurrentMessage is not None:
   571             posx, posy = event.GetPosition()
   571             posx, posy = event.GetPosition()
   572             for button in self.LeftButtons + self.RightButtons:
   572             for button in self.LeftButtons + self.RightButtons:
   573                 if button.HitTest(posx, posy):
   573                 if button.HitTest(posx, posy):
   574                     button.ProcessCallback()
   574                     button.ProcessCallback()
       
   575                     break
   575         event.Skip()
   576         event.Skip()
   576     
   577     
   577     def OnMessagePanelMouseWheel(self, event):
   578     def OnMessagePanelMouseWheel(self, event):
   578         self.ScrollMessagePanel(event.GetWheelRotation() / event.GetWheelDelta())
   579         self.ScrollMessagePanel(event.GetWheelRotation() / event.GetWheelDelta())
   579         event.Skip()
   580         event.Skip()
   581     def OnMessagePanelPaint(self, event):
   582     def OnMessagePanelPaint(self, event):
   582         self.RefreshView()
   583         self.RefreshView()
   583         event.Skip()
   584         event.Skip()
   584     
   585     
   585     def OnMessagePanelResize(self, event):
   586     def OnMessagePanelResize(self, event):
   586         if self.CurrentMessage is not None:
   587         width, height = self.MessagePanel.GetClientSize()
   587             width, height = self.MessagePanel.GetClientSize()
   588         offset = 2
   588             offset = 2
   589         for button in self.LeftButtons:
   589             for button in self.LeftButtons:
   590             button.SetPosition(offset, 2)
   590                 button.SetPosition(offset, 2)
   591             w, h = button.GetSize()
   591                 w, h = button.GetSize()
   592             offset += w + 2
   592                 offset += w + 2
   593         offset = width - 2
   593             offset = width - 2
   594         for button in self.RightButtons:
   594             for button in self.RightButtons:
   595             w, h = button.GetSize()
   595                 w, h = button.GetSize()
   596             button.SetPosition(offset - w, 2)
   596                 button.SetPosition(offset - w, 2)
   597             offset -= w + 2
   597                 offset -= w + 2
       
   598         if self.IsMessagePanelBottom():
   598         if self.IsMessagePanelBottom():
   599             self.ScrollToFirst()
   599             self.ScrollToFirst()
   600         else:
   600         else:
   601             self.RefreshView()
   601             self.RefreshView()
   602         event.Skip()
   602         event.Skip()