X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec873c943d71f0d5f13e3398557071448cda6c23..a4027e74873007e3430af3bd77019bcab76f6c04:/wxPython/samples/ide/activegrid/tool/MessageService.py diff --git a/wxPython/samples/ide/activegrid/tool/MessageService.py b/wxPython/samples/ide/activegrid/tool/MessageService.py deleted file mode 100644 index 4765a40ead..0000000000 --- a/wxPython/samples/ide/activegrid/tool/MessageService.py +++ /dev/null @@ -1,171 +0,0 @@ -#---------------------------------------------------------------------------- -# Name: MessageService.py -# Purpose: Message View Service for pydocview -# -# Author: Morgan Hua -# -# Created: 9/2/04 -# CVS-ID: $Id$ -# Copyright: (c) 2004-2005 ActiveGrid, Inc. -# License: wxWindows License -#---------------------------------------------------------------------------- - -import wx -import Service -import STCTextEditor - -#---------------------------------------------------------------------------- -# Utility -#---------------------------------------------------------------------------- - -def ClearMessages(): - messageService = wx.GetApp().GetService(MessageService) - view = messageService.GetView() - if view: - view.ClearLines() - - -def ShowMessages(messages, clear=False): - if ((messages != None) and (len(messages) > 0)): - messageService = wx.GetApp().GetService(MessageService) - messageService.ShowWindow(True) - view = messageService.GetView() - if view: - if (clear): - view.ClearLines() - for message in messages: - view.AddLines(message) - view.AddLines("\n") - - -#---------------------------------------------------------------------------- -# Classes -#---------------------------------------------------------------------------- - - -class MessageView(Service.ServiceView): - """ Reusable Message View for any document. - When an item is selected, the document view is called back (with DoSelectCallback) to highlight and display the corresponding item in the document view. - """ - - #---------------------------------------------------------------------------- - # Overridden methods - #---------------------------------------------------------------------------- - - def _CreateControl(self, parent, id): - txtCtrl = STCTextEditor.TextCtrl(parent, id) - txtCtrl.SetMarginWidth(1, 0) # hide line numbers - txtCtrl.SetReadOnly(True) - - if wx.Platform == '__WXMSW__': - font = "Courier New" - else: - font = "Courier" - txtCtrl.SetFont(wx.Font(10, wx.DEFAULT, wx.NORMAL, wx.NORMAL, faceName = font)) - txtCtrl.SetFontColor(wx.BLACK) - txtCtrl.StyleClearAll() - txtCtrl.UpdateStyles() - wx.EVT_SET_FOCUS(txtCtrl, self.OnFocus) - - return txtCtrl - - def GetDocument(self): - return None - - def OnFocus(self, event): - wx.GetApp().GetDocumentManager().ActivateView(self) - event.Skip() - - def ProcessEvent(self, event): - stcControl = self.GetControl() - if not isinstance(stcControl, wx.stc.StyledTextCtrl): - return wx.lib.docview.View.ProcessEvent(self, event) - id = event.GetId() - if id == wx.ID_COPY: - stcControl.Copy() - return True - elif id == wx.ID_CLEAR: - stcControl.Clear() - return True - elif id == wx.ID_SELECTALL: - stcControl.SetSelection(0, -1) - return True - - - def ProcessUpdateUIEvent(self, event): - stcControl = self.GetControl() - if not isinstance(stcControl, wx.stc.StyledTextCtrl): - return wx.lib.docview.View.ProcessUpdateUIEvent(self, event) - id = event.GetId() - if id == wx.ID_CUT or id == wx.ID_PASTE: - # I don't think cut or paste makes sense from a message/log window. - event.Enable(False) - return True - elif id == wx.ID_COPY: - hasSelection = (stcControl.GetSelectionStart() != stcControl.GetSelectionEnd()) - event.Enable(hasSelection) - return True - elif id == wx.ID_CLEAR: - event.Enable(True) # wxBug: should be stcControl.CanCut()) but disabling clear item means del key doesn't work in control as expected - return True - elif id == wx.ID_SELECTALL: - event.Enable(stcControl.GetTextLength() > 0) - return True - - - #---------------------------------------------------------------------------- - # Service specific methods - #---------------------------------------------------------------------------- - - def ClearLines(self): - self.GetControl().SetReadOnly(False) - self.GetControl().ClearAll() - self.GetControl().SetReadOnly(True) - - - def AddLines(self, text): - self.GetControl().SetCurrentPos(self.GetControl().GetTextLength()) - self.GetControl().SetReadOnly(False) - self.GetControl().AddText(text) - self.GetControl().SetReadOnly(True) - - - def GetText(self): - return self.GetControl().GetText() - - - def GetCurrentPos(self): - return self.GetControl().GetCurrentPos() - - - def GetCurrLine(self): - return self.GetControl().GetCurLine() - - - #---------------------------------------------------------------------------- - # Callback Methods - #---------------------------------------------------------------------------- - - def SetCallback(self, callback): - """ Sets in the event table for a doubleclick to invoke the given callback. - Additional calls to this method overwrites the previous entry and only the last set callback will be invoked. - """ - wx.stc.EVT_STC_DOUBLECLICK(self.GetControl(), self.GetControl().GetId(), callback) - - - -class MessageService(Service.Service): - - - #---------------------------------------------------------------------------- - # Constants - #---------------------------------------------------------------------------- - SHOW_WINDOW = wx.NewId() # keep this line for each subclass, need unique ID for each Service - - - #---------------------------------------------------------------------------- - # Overridden methods - #---------------------------------------------------------------------------- - - def _CreateView(self): - return MessageView(self)