File: FrogEditor.py

package info (click to toggle)
wxwidgets2.8 2.8.12.1-12
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 242,920 kB
  • sloc: cpp: 1,840,772; xml: 385,749; python: 334,729; makefile: 51,774; ansic: 30,987; sh: 7,716; sql: 258; lex: 194; perl: 139; yacc: 128; pascal: 95; php: 45; lisp: 38; tcl: 38; java: 22; haskell: 20; cs: 18; erlang: 17; ruby: 16; asm: 15; ada: 9; ml: 9; csh: 9
file content (92 lines) | stat: -rw-r--r-- 2,293 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92

# simple text editor
#
# Copyright 2001 Adam Feuer and Steve Howell
#
# License: Python

import re
import wx

from wx.lib.editor import Editor

#---------------------------------------------------------------------

class FrogEditor(Editor):
    def __init__(self, parent, id,
                 pos=wx.DefaultPosition, size=wx.DefaultSize, style=0, statusBar=None):
        self.StatusBar = statusBar
        Editor.__init__(self, parent, id, pos, size, style)
        self.parent = parent

    ##------------------------------------

    def TouchBuffer(self):
        Editor.TouchBuffer(self)
        self.StatusBar.setDirty(1)

    def UnTouchBuffer(self):
        Editor.UnTouchBuffer(self)
        self.StatusBar.setDirty(0)


    #--------- utility function -------------

    # override our base class method
    def DrawCursor(self, dc = None):
        Editor.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]
        wx.LogMessage(data)

    #--------- wxEditor keyboard overrides

    def SetControlFuncs(self, action):
        Editor.SetControlFuncs(self, action)
        action['-'] = self.PrintSeparator

    def SetAltFuncs(self, action):
        Editor.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)