def main(): from Percolator import Percolator root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text() text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) root.mainloop()
def main(): from Percolator import Percolator root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text(background="white") text.pack(expand=1, fill="both") text.focus_set() p = Percolator(text) d = ColorDelegator() p.insertfilter(d) root.mainloop()
def main(): from Percolator import Percolator root = Tk() root.wm_protocol("WM_DELETE_WINDOW", root.quit) text = Text() text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) keylist = ['<Control-KeyPress-z>', '<Control-KeyPress-Z>'] text.event_add("<<undo>>", *keylist) #root.bind( '<Control-KeyPress-z>',lambda e=None,d=d:d.event_generate("<<undo>>") ) root.mainloop()
def addFiltersFromIDLE(self): """ Adds syntax colors, undo, replace, find, goto, indent, commment functionality from IDLE to the text widget """ textWidget = self.textWidget p = Percolator(textWidget) p.insertfilter(ColorDelegator()) # Python syntax coloring undo = UndoDelegator() p.insertfilter(undo) # Undo/Redo feature # This is used to undo stuff done with replace, indent, comment, etc. textWidget.undo_block_start = undo.undo_block_start textWidget.undo_block_stop = undo.undo_block_stop #----------------- Bind virtual events to the text widget ------------------ textWidget.bind( "<<replace>>", lambda e=None, self=self: ReplaceDialog.replace(self.textWidget)) textWidget.bind( "<<find>>", lambda e=None, self=self: SearchDialog.find(self.textWidget)) textWidget.bind("<<goto-line>>", lambda e=None, self=self: goto_line_event(self)) textWidget.bind("<<add-indent>>", lambda e=None, self=self: indent_region_event(self)) textWidget.bind("<<del-indent>>", lambda e=None, self=self: dedent_region_event(self)) textWidget.bind("<<add-comment>>", lambda e=None, self=self: comment_region_event(self)) textWidget.bind("<<del-comment>>", lambda e=None, self=self: uncomment_region_event(self)) textWidget.bind("<<select-all>>", lambda e=None, self=self: select_all(self)) textWidget.bind("<<deselect-all>>", lambda e=None, self=self: deselect_all(self)) textWidget.bind("<<paste>>", lambda e=None, self=self: paste(self)) textWidget.bind("<<copy>>", lambda e=None, self=self: copy(self)) textWidget.bind("<<cut>>", lambda e=None, self=self: cut(self)) textWidget.bind("<<popup-menu>>", lambda e=None, self=self: popupMenu(self, e)) textWidget.bind("<<open>>", lambda e=None, self=self: Open(self)) textWidget.bind("<<save>>", lambda e=None, self=self: SaveAs(self)) #---------------- Give virtual events a concrete keybinding ---------------- for key, value in KEY_DICT.iteritems(): textWidget.event_add(key, *value)
def _color_delegator(parent): # htest # from tkinter import Toplevel, Text from Percolator import Percolator top = Toplevel(parent) top.title("Test ColorDelegator") top.geometry("200x100+%d+%d" % (parent.winfo_rootx() + 200, parent.winfo_rooty() + 150)) source = "if somename: x = 'abc' # comment\nprint\n" text = Text(top, background="white") text.pack(expand=1, fill="both") text.insert("insert", source) text.focus_set() p = Percolator(text) d = ColorDelegator() p.insertfilter(d)
def __init__(self, parent_frame, editwin, title=None, **kwargs): self.editwin = editwin self.title = title self.tab_initialized = False kwargs.setdefault('width', idleConf.GetOption('main', 'EditorPage', 'width')) kwargs.setdefault('height', idleConf.GetOption('main', 'EditorPage', 'height')) self.text = MultiCallCreator(Text)(parent_frame, **kwargs) self.color = None # initialized in reset_colorizer self.per = Percolator(self.text) self.undo = self.editwin.UndoDelegator() self.per.insertfilter(self.undo) self.text.undo_block_start = self.undo.undo_block_start self.text.undo_block_stop = self.undo.undo_block_stop self.io = IOBinding.IOBinding(self) self.undo.set_saved_change_hook(self.saved_change_hook) self.io.set_filename_change_hook(self.filename_change_hook) self.reset_colorizer() self._setup_bindings()
def _undo_delegator(parent): from Percolator import Percolator root = Tk() root.title("Test UndoDelegator") width, height, x, y = list(map(int, re.split('[x+]', parent.geometry()))) root.geometry("+%d+%d"%(x, y + 150)) text = Text(root) text.config(height=10) text.pack() text.focus_set() p = Percolator(text) d = UndoDelegator() p.insertfilter(d) undo = Button(root, text="Undo", command=lambda:d.undo_event(None)) undo.pack(side='left') redo = Button(root, text="Redo", command=lambda:d.redo_event(None)) redo.pack(side='left') dump = Button(root, text="Dump", command=lambda:d.dump_event(None)) dump.pack(side='left') root.mainloop()
import sys
import time