From 70f6d99753f7dc8e70e9b500e0a6e321626814d5 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 22 Apr 1999 22:28:42 +0000 Subject: [PATCH] Moved classes OnDemandOutputWindow and PseudoFile here, from ScriptBinding.py where they are no longer needed. --- Tools/idle/OutputWindow.py | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Tools/idle/OutputWindow.py b/Tools/idle/OutputWindow.py index 456c45bd936..f03aaee15ff 100644 --- a/Tools/idle/OutputWindow.py +++ b/Tools/idle/OutputWindow.py @@ -91,3 +91,47 @@ class OutputWindow(EditorWindow): self.text.bell() return edit.gotoline(lineno) + +# 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