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")
예제 #2
0
 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 = []
예제 #3
0
 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 = []
예제 #4
0
파일: gui.py 프로젝트: joernalraun/ubittool
 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")
예제 #5
0
 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")
예제 #6
0
 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)
예제 #8
0
    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")
예제 #9
0
 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")
예제 #10
0
    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))
예제 #11
0
파일: gui_text.py 프로젝트: dimas3452/qdt
    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)
예제 #12
0
 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
예제 #13
0
 def test_close(self):
     redir = WidgetRedirector(self.text)
     redir.register('insert', Func)
     redir.close()
     self.assertEqual(redir._operations, {})
     self.assertFalse(hasattr(self.text, 'widget'))
예제 #14
0
 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
예제 #15
0
    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()
예제 #16
0
    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)