TextViewer.py
changeset 80 c798a68c5560
parent 79 b22f661cbcfb
child 90 2245e8776086
equal deleted inserted replaced
79:b22f661cbcfb 80:c798a68c5560
    90         return None
    90         return None
    91 
    91 
    92 class TextViewer(wx.stc.StyledTextCtrl):
    92 class TextViewer(wx.stc.StyledTextCtrl):
    93     
    93     
    94     def __init__(self, parent, window, controler):
    94     def __init__(self, parent, window, controler):
    95         wx.stc.StyledTextCtrl.__init__(self, parent, ID_TEXTVIEWER, style=0)
    95         wx.stc.StyledTextCtrl.__init__(self, parent, ID_TEXTVIEWER, size=wx.Size(0, 0), style=0)
    96         
    96         
    97         self.CmdKeyAssign(ord('+'), wx.stc.STC_SCMOD_CTRL, wx.stc.STC_CMD_ZOOMIN)
    97         self.CmdKeyAssign(ord('+'), wx.stc.STC_SCMOD_CTRL, wx.stc.STC_CMD_ZOOMIN)
    98         self.CmdKeyAssign(ord('-'), wx.stc.STC_SCMOD_CTRL, wx.stc.STC_CMD_ZOOMOUT)
    98         self.CmdKeyAssign(ord('-'), wx.stc.STC_SCMOD_CTRL, wx.stc.STC_CMD_ZOOMOUT)
    99         
    99         
   100         self.SetViewWhiteSpace(False)
   100         self.SetViewWhiteSpace(False)
   141         self.Controler = controler
   141         self.Controler = controler
   142 
   142 
   143         self.SetModEventMask(wx.stc.STC_MOD_BEFOREINSERT|wx.stc.STC_MOD_BEFOREDELETE)
   143         self.SetModEventMask(wx.stc.STC_MOD_BEFOREINSERT|wx.stc.STC_MOD_BEFOREDELETE)
   144 
   144 
   145         self.Bind(wx.stc.EVT_STC_STYLENEEDED, self.OnStyleNeeded, id=ID_TEXTVIEWER)
   145         self.Bind(wx.stc.EVT_STC_STYLENEEDED, self.OnStyleNeeded, id=ID_TEXTVIEWER)
   146         
       
   147         if window and controler :
   146         if window and controler :
   148             self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
   147             self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
   149             self.Bind(wx.stc.EVT_STC_DO_DROP, self.OnDoDrop, id=ID_TEXTVIEWER)
   148             self.Bind(wx.stc.EVT_STC_DO_DROP, self.OnDoDrop, id=ID_TEXTVIEWER)
   150             self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
   149             self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)
   151             self.Bind(wx.stc.EVT_STC_MODIFIED, self.OnModification, id=ID_TEXTVIEWER)
   150             self.Bind(wx.stc.EVT_STC_MODIFIED, self.OnModification, id=ID_TEXTVIEWER)
   228         old_text = self.GetText()
   227         old_text = self.GetText()
   229         new_text = self.Controler.GetCurrentElementEditingText()
   228         new_text = self.Controler.GetCurrentElementEditingText()
   230         self.SetText(new_text)
   229         self.SetText(new_text)
   231         new_cursor_pos = GetCursorPos(old_text, new_text)
   230         new_cursor_pos = GetCursorPos(old_text, new_text)
   232         if new_cursor_pos != None:
   231         if new_cursor_pos != None:
   233             self.SetSelection(new_cursor_pos, new_cursor_pos)
   232             self.GotoPos(new_cursor_pos)
   234             self.EnsureCaretVisible()
   233         else:
   235         else:
   234             self.GotoPos(old_cursor_pos)
   236             self.SetSelection(old_cursor_pos, old_cursor_pos)
   235         self.ScrollToColumn(0)
   237         self.RefreshJumpList()
   236         self.RefreshJumpList()
   238         self.EmptyUndoBuffer()
   237         self.EmptyUndoBuffer()
   239         self.DisableEvents = False
   238         self.DisableEvents = False
   240         
   239         
   241     def OnStyleNeeded(self, event):
   240     def OnStyleNeeded(self, event):