diff options
| author | Guido van Rossum <guido@python.org> | 2003-06-14 00:08:37 (GMT) | 
|---|---|---|
| committer | Guido van Rossum <guido@python.org> | 2003-06-14 00:08:37 (GMT) | 
| commit | ecb544e95bc02a59d0acc1e28f3ef5624d399210 (patch) | |
| tree | 589449882db7543c5562347b1120a8d0e57b219f /Tools/idle/OutputWindow.py | |
| parent | 91012fe9b58b9dff2298aad453804023d557447b (diff) | |
| download | cpython-ecb544e95bc02a59d0acc1e28f3ef5624d399210.zip cpython-ecb544e95bc02a59d0acc1e28f3ef5624d399210.tar.gz cpython-ecb544e95bc02a59d0acc1e28f3ef5624d399210.tar.bz2  | |
Get rid of old IDLE.  Lib/idlelib rules!
Diffstat (limited to 'Tools/idle/OutputWindow.py')
| -rw-r--r-- | Tools/idle/OutputWindow.py | 157 | 
1 files changed, 0 insertions, 157 deletions
diff --git a/Tools/idle/OutputWindow.py b/Tools/idle/OutputWindow.py deleted file mode 100644 index 0e7fba2..0000000 --- a/Tools/idle/OutputWindow.py +++ /dev/null @@ -1,157 +0,0 @@ -from Tkinter import * -from EditorWindow import EditorWindow -import re -import tkMessageBox -import IOBinding - -class OutputWindow(EditorWindow): - -    """An editor window that can serve as an output file. - -    Also the future base class for the Python shell window. -    This class has no input facilities. -    """ - -    def __init__(self, *args): -        apply(EditorWindow.__init__, (self,) + args) -        self.text.bind("<<goto-file-line>>", self.goto_file_line) - -    # Customize EditorWindow - -    def ispythonsource(self, filename): -        # No colorization needed -        return 0 - -    def short_title(self): -        return "Output" - -    def maybesave(self): -        # Override base class method -- don't ask any questions -        if self.get_saved(): -            return "yes" -        else: -            return "no" - -    # Act as output file - -    def write(self, s, tags=(), mark="insert"): -        # Tk assumes that byte strings are Latin-1; -        # we assume that they are in the locale's encoding -        if isinstance(s, str): -            try: -                s = unicode(s, IOBinding.encoding) -            except UnicodeError: -                # some other encoding; let Tcl deal with it -                pass -        self.text.insert(mark, s, tags) -        self.text.see(mark) -        self.text.update() - -    def writelines(self, l): -        map(self.write, l) - -    def flush(self): -        pass - -    # Our own right-button menu - -    rmenu_specs = [ -        ("Go to file/line", "<<goto-file-line>>"), -    ] - -    file_line_pats = [ -        r'file "([^"]*)", line (\d+)', -        r'([^\s]+)\((\d+)\)', -        r'([^\s]+):\s*(\d+):', -    ] - -    file_line_progs = None - -    def goto_file_line(self, event=None): -        if self.file_line_progs is None: -            l = [] -            for pat in self.file_line_pats: -                l.append(re.compile(pat, re.IGNORECASE)) -            self.file_line_progs = l -        # x, y = self.event.x, self.event.y -        # self.text.mark_set("insert", "@%d,%d" % (x, y)) -        line = self.text.get("insert linestart", "insert lineend") -        result = self._file_line_helper(line) -        if not result: -            # Try the previous line.  This is handy e.g. in tracebacks, -            # where you tend to right-click on the displayed source line -            line = self.text.get("insert -1line linestart", -                                 "insert -1line lineend") -            result = self._file_line_helper(line) -            if not result: -                tkMessageBox.showerror( -                    "No special line", -                    "The line you point at doesn't look like " -                    "a valid file name followed by a line number.", -                    master=self.text) -                return -        filename, lineno = result -        edit = self.flist.open(filename) -        edit.gotoline(lineno) - -    def _file_line_helper(self, line): -        for prog in self.file_line_progs: -            m = prog.search(line) -            if m: -                break -        else: -            return None -        filename, lineno = m.group(1, 2) -        try: -            f = open(filename, "r") -            f.close() -        except IOError: -            return None -        try: -            return filename, int(lineno) -        except TypeError: -            return None - -# These classes are currently not used but might come in handy - -class OnDemandOutputWindow: - -    tagdefs = { -        # XXX Should use IdlePrefs.ColorPrefs -        "stdout":  {"foreground": "blue"}, -        "stderr":  {"foreground": "#007700"}, -    } - -    def __init__(self, flist): -        self.flist = flist -        self.owin = None - -    def write(self, s, tags, mark): -        if not self.owin: -            self.setup() -        self.owin.write(s, tags, mark) - -    def setup(self): -        self.owin = owin = OutputWindow(self.flist) -        text = owin.text -        for tag, cnf in self.tagdefs.items(): -            if cnf: -                apply(text.tag_configure, (tag,), cnf) -        text.tag_raise('sel') -        self.write = self.owin.write - -class PseudoFile: - -    def __init__(self, owin, tags, mark="end"): -        self.owin = owin -        self.tags = tags -        self.mark = mark - -    def write(self, s): -        self.owin.write(s, self.tags, self.mark) - -    def writelines(self, l): -        map(self.write, l) - -    def flush(self): -        pass  | 
