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() |