Merged modifications from the 2.6 branch

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36607 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2005-12-30 23:02:03 +00:00
parent a780a8dc19
commit 02b800ce7c
104 changed files with 14102 additions and 46560 deletions

View File

@@ -14,6 +14,35 @@ 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.
@@ -36,52 +65,52 @@ class MessageView(Service.ServiceView):
txtCtrl.SetFontColor(wx.BLACK)
txtCtrl.StyleClearAll()
txtCtrl.UpdateStyles()
wx.EVT_SET_FOCUS(txtCtrl, self.OnFocus)
return txtCtrl
def GetDocument(self):
return None
## def ProcessEvent(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:
## stcControl.Cut()
## return True
## elif id == wx.ID_COPY:
## stcControl.Copy()
## return True
## elif id == wx.ID_PASTE:
## stcControl.Paste()
## 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:
## event.Enable(stcControl.CanCut())
## return True
## elif id == wx.ID_COPY:
## event.Enable(stcControl.CanCopy())
## return True
## elif id == wx.ID_PASTE:
## event.Enable(stcControl.CanPaste())
## 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
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
#----------------------------------------------------------------------------
@@ -139,5 +168,3 @@ class MessageService(Service.Service):
def _CreateView(self):
return MessageView(self)