]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/samples/frogedit/FrogEditor.py
Updated PyCrust contrib from Patrick O'Brian.
[wxWidgets.git] / wxPython / samples / frogedit / FrogEditor.py
diff --git a/wxPython/samples/frogedit/FrogEditor.py b/wxPython/samples/frogedit/FrogEditor.py
new file mode 100644 (file)
index 0000000..d94e83c
--- /dev/null
@@ -0,0 +1,92 @@
+#!/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)
+