def __init__(self, *args, **kwargs): tk.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): 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, 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, *args, **kwargs): """Init the class and set the insert and delete event bindings.""" super().__init__(*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, *args, **kwargs): kwargs['relief'] = tk.FLAT kwargs['insertwidth'] = 0 kwargs['highlightthickness'] = 0 tk.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, parent): tk.Text.__init__(self, parent) self.redirector = WidgetRedirector(self) self.insert = self.redirector.register("insert", self.myinsert) self.delete = self.redirector.register("delete", self.mydelete) self.parent = parent self.config(undo=False) self.load_cache() self.recv() self.save_cache()
def __init__(self, master, **opt): opt['exportselection'] = 0 # Don't let it write to clipboard opt['takefocus'] = 0 # Ignore when tabbing super().__init__(master, **opt) self.redirector = redir = WidgetRedirector(self) # These two TK commands are used for all text operations, # so cancelling them stops anything from happening. self.insert = redir.register('insert', event_cancel) self.delete = redir.register('delete', event_cancel)
def __init__(self, *args, **kwargs): tk.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") self.tag_config("bgGREEN", background="green", foreground="black") self.tag_config("bgRED", background="red", foreground="black") self.tag_config("fgGREEN", background="black", foreground="green") self.tag_config("fgRED", background="black", foreground="red")
def __init__(self, *args, **kwargs): """ Trashes every attempt to modify the text area coming from user input. """ 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, on_insert_change, *args, **kwargs): tk.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") self.callback = on_insert_change private_callback = self.register(self._callback) self.tk.eval(''' proc widget_proxy {actual_widget callback args} { # this prevents recursion if the widget is called # during the callback set flag ::dont_recurse(actual_widget) # call the real tk widget with the real args set result [uplevel [linsert $args 0 $actual_widget]] # call the callback and ignore errors, but only # do so on inserts, deletes, and changes in the # mark. Otherwise we'll call the callback way too # often. if {! [info exists $flag]} { if {([lindex $args 0] in {insert replace delete}) || ([lrange $args 0 2] == {mark set insert})} { # the flag makes sure that whatever happens in the # callback doesn't cause the callbacks to be called again. set $flag 1 catch {$callback $result {*}$args } callback_result unset -nocomplain $flag } } # return the result from the real widget command return $result } ''') self.tk.eval(''' rename {widget} _{widget} interp alias {{}} ::{widget} {{}} widget_proxy _{widget} {callback} '''.format(widget=str(self), callback=private_callback))
def __init__(self, **kw): read_only = False try: state = kw["state"] except: pass else: if state == READONLY: read_only = True kw["state"] = NORMAL Text.__init__(self, **kw) self.redirector = WidgetRedirector(self) if read_only: self.__read_only = True """ Note that software editing is still possible by calling those "insert" and "delete". """ self.insert = self.redirector.register("insert", _break) self.delete = self.redirector.register("delete", _break)
def setUp(self): self.redir = WidgetRedirector(self.text) self.func = Func() self.orig_insert = self.redir.register('insert', self.func) self.text.insert('insert', 'asdf') # leaves self.text empty
def test_close(self): redir = WidgetRedirector(self.text) redir.register('insert', Func) redir.close() self.assertEqual(redir._operations, {}) self.assertFalse(hasattr(self.text, 'widget'))
def test_init(self): redir = WidgetRedirector(self.text) self.assertEqual(redir.widget, self.text) self.assertEqual(redir.tk, self.text.tk) self.assertRaises(TclError, WidgetRedirector, self.text) redir.close() # restore self.tk, self.text
def __init__(self, master): self.master = master self.top = False self.users = {} self.read_config() self.pause = Event() self.pause.set() master.protocol('WM_DELETE_WINDOW', self.on_close) master.title('InstaFollower') tabs = ttk.Notebook(master) tab1 = ttk.Frame(tabs) tab2 = ttk.Frame(tabs) tab3 = ttk.Frame(tabs) # -----Tab 1----- def create_input_frame(master): log_input_frame = Frame(master) log_input_frame.pack() log_input_frame_left = Frame(log_input_frame) log_input_frame_left.pack(side=LEFT) log_input_frame_right = Frame(log_input_frame) log_input_frame_right.pack(side=LEFT) log_buttons_frame = Frame(log_input_frame) log_buttons_frame.pack(padx=10) Label(log_input_frame_left, text="Login:"******"User:"******"insert", lambda *args, **kw: "break") self.log.delete = self.log.redirector.register( "delete", lambda *args, **kw: "break") self.log.pack(side=LEFT) scroll = Scrollbar(frame_logging, command=self.log.yview) scroll.pack(side=RIGHT, fill=Y) self.log.config(yscrollcommand=scroll.set) # -----Queue window----- self.queue_window = App.QueueWidget(master, self.write_log) queue_but['command'] = self.queue_window.deiconify self.queue_window.withdraw() if not os.path.exists('db/'): os.mkdir('db') self.conn = sqlite3.connect(self.db_path) cur = self.conn.cursor() cur.execute('CREATE TABLE IF NOT EXISTS users (' 'id INTEGER NOT NULL,' 'username TEXT NOT NULL,' 'full_name TEXT,' 'biography TEXT,' 'is_verified INTEGER,' 'is_private INTEGER,' 'connected_fb_page TEXT,' 'external_url TEXT,' 'follows INTEGER,' 'followed_by INTEGER,' 'media INTEGER,' 'last_checked INTEGER,' 'PRIMARY KEY(id));') cur.execute('CREATE TABLE IF NOT EXISTS followers (' 'uid INTEGER NOT NULL,' 'follows INTEGER NOT NULL,' 'PRIMARY KEY(uid, follows));') cur.execute('CREATE TABLE IF NOT EXISTS tags (' 'uid INTEGER NOT NULL,' 'tag TEXT,' 'PRIMARY KEY(uid, tag));') self.conn.commit() self.log_update()
def __init__(self, *args, **kwargs): Text.__init__(self, *args, **kwargs) self.redirector = WidgetRedirector(self) self.insert = self.redirector.register("insert", tk_break) self.delete = self.redirector.register("delete", tk_break)