def __init__(self, *args, **kwargs): Text.__init__(self, *args, **kwargs) self.redirector = WidgetRedirector(self) self.insert = self.redirector.register("insert", lambda *args, **kw: "break") self.delete = self.redirector.register("delete", lambda *args, **kw: "break")
def __init__(self, text): # XXX would be nice to inherit from Delegator self.text = text self.redir = WidgetRedirector(text) self.top = self.bottom = Delegator(text) self.bottom.insert = self.redir.register("insert", self.insert) self.bottom.delete = self.redir.register("delete", self.delete) self.filters = []
def __init__(self): self.jsonCon = JsonController(self) self.text = tk.Text(self.root) self.text.grid() self.text.pack(side="left") self.redirector = WidgetRedirector(self.text) self.original_mark = self.redirector.register("mark", self.on_mark) self.original_insert = self.redirector.register( "insert", self.on_insert) self.original_delete = self.redirector.register( "delete", self.on_delete) self.delta_index = Cursor("1.0") self.listen_thread = Thread(target=self.jsonCon.listen) self.listen_thread.start() self.root.protocol('WM_DELETE_WINDOW', self.shutdown) # root is your root window self.ignore_actions = False self.root.title("Collaborative Notepad CS457") screenWidth = self.root.winfo_screenwidth() screenHeight = self.root.winfo_screenheight() left = (screenWidth / 2) - (self.__thisWidth / 2) top = (screenHeight / 2) - (self.__thisHeight / 2) self.root.geometry('%dx%d+%d+%d' % (self.__thisWidth, self.__thisHeight, left, top)) self.root.grid_rowconfigure(0, weight=1) self.root.grid_columnconfigure(0, weight=1) #self.text.grid(sticky=N + E + S + W) self.__thisFileMenu.add_command(label="New", command=self.__newFile) self.__thisFileMenu.add_command(label="Open", command=self.__openFile) self.__thisFileMenu.add_command(label="Save", command=self.__saveFile) self.__thisFileMenu.add_separator() self.__thisMenuBar.add_cascade(label="File", menu=self.__thisFileMenu) #self.__thisEditMenu.add_command(label="Cut",command=self.__cut) #self.__thisEditMenu.add_command(label="Copy",command=self.__copy) #self.__thisEditMenu.add_command(label="Paste",command=self.__paste) #self.__thisMenuBar.add_cascade(label="Edit",menu=self.__thisEditMenu) self.__thisHelpMenu.add_command(label="About Notepad", command=self.__showAbout) self.__thisMenuBar.add_cascade(label="Help", menu=self.__thisHelpMenu) self.root.config(menu=self.__thisMenuBar) # self.__thisScrollBar.pack(side=RIGHT, fill=Y) # self.__thisScrollBar.config(command=self.text.yview) # self.text.config(yscrollcommand=self.__thisScrollBar.set) get_text_dict = {OP: GET_ALL_TEXT} self.jsonCon.send_dict(get_text_dict) self.root.mainloop()
from WidgetRedirector import WidgetRedirector