git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16468 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			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)
 | 
						|
 |