2001-11-30 21:25:39 -05:00
|
|
|
|
|
|
|
# simple text editor
|
|
|
|
#
|
|
|
|
# Copyright 2001 Adam Feuer and Steve Howell
|
|
|
|
#
|
|
|
|
# License: Python
|
|
|
|
|
|
|
|
import re
|
|
|
|
from wxPython.wx import *
|
|
|
|
from wxPython.lib.editor import wxEditor
|
|
|
|
|
|
|
|
#---------------------------------------------------------------------
|
|
|
|
|
|
|
|
class FrogEditor(wxEditor):
|
|
|
|
def __init__(self, parent, id,
|
|
|
|
pos=wxDefaultPosition, size=wxDefaultSize, style=0, statusBar=None):
|
|
|
|
self.StatusBar = statusBar
|
|
|
|
wxEditor.__init__(self, parent, id, pos, size, style)
|
|
|
|
self.parent = parent
|
|
|
|
|
|
|
|
##------------------------------------
|
|
|
|
|
|
|
|
def TouchBuffer(self):
|
|
|
|
wxEditor.TouchBuffer(self)
|
|
|
|
self.StatusBar.setDirty(1)
|
|
|
|
|
|
|
|
def UnTouchBuffer(self):
|
|
|
|
wxEditor.UnTouchBuffer(self)
|
|
|
|
self.StatusBar.setDirty(0)
|
|
|
|
|
|
|
|
|
|
|
|
#--------- utility function -------------
|
|
|
|
|
|
|
|
# override our base class method
|
|
|
|
def DrawCursor(self, dc = None):
|
|
|
|
wxEditor.DrawCursor(self,dc)
|
|
|
|
self.StatusBar.setRowCol(self.cy,self.cx)
|
|
|
|
|
|
|
|
def lastLine(self):
|
|
|
|
lastline = self.sy + self.sh - 1
|
|
|
|
return min(lastline, self.LinesInFile() - 1)
|
|
|
|
|
|
|
|
def rawLines(self):
|
|
|
|
return [l.text for l in self.text]
|
|
|
|
|
|
|
|
def save(self):
|
|
|
|
if self.page:
|
|
|
|
self.ds.store(self.page,self.rawLines())
|
|
|
|
|
|
|
|
def SetRawText(self, rawtext=""):
|
|
|
|
self.rawText= rawtext
|
|
|
|
self.SetText(self.RenderText())
|
|
|
|
|
|
|
|
def RenderText(self):
|
|
|
|
return(self.rawText)
|
|
|
|
|
|
|
|
#---------- logging -------------
|
|
|
|
|
|
|
|
def SetStatus(self, log):
|
|
|
|
self.log = log
|
|
|
|
self.status = []
|
|
|
|
|
|
|
|
def PrintSeparator(self, event):
|
|
|
|
self.Print("..........................")
|
|
|
|
|
|
|
|
def Print(self, data):
|
|
|
|
self.status.append(data)
|
|
|
|
if data[-1:] == '\n':
|
|
|
|
data = data[:-1]
|
|
|
|
wxLogMessage(data)
|
|
|
|
|
|
|
|
#--------- wxEditor keyboard overrides
|
|
|
|
|
|
|
|
def SetControlFuncs(self, action):
|
|
|
|
wxEditor.SetControlFuncs(self, action)
|
|
|
|
action['-'] = self.PrintSeparator
|
|
|
|
|
|
|
|
def SetAltFuncs(self, action):
|
|
|
|
wxEditor.SetAltFuncs(self, action)
|
2002-08-12 13:56:45 -04:00
|
|
|
action['x'] = self.Exit
|
2001-11-30 21:25:39 -05:00
|
|
|
|
|
|
|
#----------- commands -----------
|
|
|
|
|
|
|
|
def OnCloseWindow(self, event):
|
|
|
|
# xxx - We don't fully understand how exit logic works.
|
|
|
|
# This event is actually called by our parent frame.
|
|
|
|
pass
|
|
|
|
|
|
|
|
def Exit(self,event):
|
|
|
|
self.parent.Close(None)
|
|
|
|
|