--- /dev/null
+#!/usr/local/bin/python
+
+# 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)
+ action['x'] = self.Exit
+
+ #----------- 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)
+