def __init__(self, area, setup={ 'background': 'yellow', 'foreground': 'black' }): self.area = area area.tag_configure('(ISEARCH_MATCH)', **setup) area.install('word-search', ('NORMAL', '<Control-z>', lambda event: Get( events={ '<Return>': self.start, '<Alt-p>': lambda wid: self.go_down(), '<Alt-o>': lambda wid: self.go_up(), '<Destroy>': lambda wid: self.area.tag_remove( '(ISEARCH_MATCH)', '1.0', 'end'), '<Escape> ': lambda wid: True }))) self.seq = [] self.index = -1
def __init__(self, area): self.area = area area.install('fsniffer', ('NORMAL', '<Alt-t>', lambda e: self.options.display()), ('NORMAL', '<Alt-y>', lambda event: Get(events={'<Return>' : self.find, '<Control-w>':self.set_wide, '<<Idle>>': self.update_pattern, '<Escape>': lambda wid: True})))
def __init__(self, area): self.area = area self.path = '' area.install('fsniff', (-1, '<Alt-minus>', lambda event: Get( events={ '<<Idle>>': self.find, '<<Data>>': self.update_process, '<Return>': self.view_on_current, '<Escape>': lambda wid: True })), (-1, '<Alt-equal>', lambda event: Get( events={ '<<Idle>>': self.find, '<<Data>>': self.update_process, '<Return>': self.view_on_new_tab, '<Escape>': lambda wid: True })))
def __init__(self, area): self.area = area self.output = '' area.install('fsearch', ('NORMAL', '<Key-W>', self.display), ('NORMAL', '<Control-w>', lambda event: Get(events={ '<Return>' : self.find, '<<Idle>>': self.update_pattern, '<Escape>': lambda wid: True})))
def search_back(self): get = Get( events={ '<<Data>>': lambda wid: root.note.switch_back(wid.get()), '<Alt-p>': lambda wid: root.note.switch_next(wid.get(), True), '<Alt-o>': lambda wid: root.note.switch_back(wid.get(), True), '<Escape>': self.stop, '<Return>': self.stop }) return 'break'
def on_back_mode(self, event): get = Get( events={ '<<Data>>': self.switch_back, '<Alt-p>': self.switch_next, '<Alt-o>': self.switch_back, '<Escape>': self.stop, '<Return>': self.stop }) return 'break'
def start_search(self): get = Get( events={ '<<Data>>': self.update_search, '<Alt-p>': lambda wid: self.next_tab(), '<Control-j>': lambda wid: self.next_tab(), '<Alt-o>': lambda wid: self.prev_tab(), '<Control-k>': lambda wid: self.prev_tab(), '<Escape>': lambda wid: self.stop_search(), '<Return>': lambda wid: self.stop_search() }) return 'break'
def start_backwards(self, event): self.index = self.area.index('insert') self.backwards = True self.stopindex = '1.0' Get(events = { '<Alt-p>':self.search_down, '<Alt-o>': self.search_up, '<<Data>>': self.update, '<BackSpace>': self.update, '<Destroy>': lambda wid: self.area.tag_remove( '(SEARCH_MATCH)', '1.0', 'end'), '<Escape>': lambda wid: True})
def create_private_channel(self, nick): """ Create private messages channels. """ # In case there is no areavi for the user then creates # a private channel. area = self.create_area(nick) area.hook('vyirc', 'IRC', '<Key-i>', lambda event: Get( events={'<Escape>': lambda wid: True, '<Return>': lambda wid: self.drop_msg(area, wid, nick)})) return area
def __init__(self, irc, area, chan): self.irc = irc self.area = area self.chan = chan self.peers = set() events = ( ('PRIVMSG->%s' % chan, self.e_privmsg), ('332->%s' % chan, self.e_332), ('PART->%s' % chan, self.e_part), ('JOIN->%s' % chan, self.e_join), # ('*NICK', self.e_nick), ('NICK', self.e_nick), ('QUIT', self.e_quit), ('353->%s' % chan, self.e_353), ('KICK->%s' % chan, self.e_kick), ('MODE->%s' % chan, self.e_mode), (CLOSE, self.e_close)) def unset(con, *args): for event, handle in events: irc.con.del_map(event, handle) for key, value in events: irc.con.add_map(key, value) irc.con.once('*PART->%s' % chan, unset) irc.con.add_map('*KICK->%s' % chan, unset) area.bind('<Destroy>', lambda event: unset(irc.con), add=True) # When area is destroyed, it sends a PART. area.bind('<Destroy>', lambda event: send_cmd(irc.con, 'PART %s' % chan), add=True) # Hook to send msgs. area.hook( 'vyirc', 'IRC', '<Key-i>', lambda event: Get( events={ '<Escape>': lambda wid: True, '<Tab>': self.c_nick, '<Return>': lambda wid: self.irc.drop_msg(area, wid, chan) })) # It unbinds the above callback. # In case the part command was sent by text # by the user. After part it should destroy the # area. irc.con.once('*PART->%s' % chan, lambda con, *args: area.unbind('<Destroy>'))
def __init__(self, area): self.area = area area.install('sniper', ('NORMAL', '<Key-b>', lambda event: self.options.display()), ('NORMAL', '<Key-B>', lambda event: Get(events = { '<Return>':self.find, '<Control-i>':self.set_ignore_regex, '<Control-x>':self.set_type_lax, '<Control-r>':self.set_type_regex, '<Control-l>':self.set_type_literal, '<Control-g>':self.set_file_regex, '<Control-s>':self.set_nocase, '<Control-w>':self.set_wide, '<Control-m>':self.set_multiline, '<Escape>': lambda wid: True})))
def start(self): self.index = ('insert', 'insert') root.status.set_msg('Set replacement: %s' % self.data) get = Get(events={ '<Alt-bracketright>': self.set_data, '<Alt-o>': self.up, '<Escape>': self.cancel, '<Alt-p>': self.down, '<Return>': self.cancel, '<Alt-slash>': self.pick_selection_matches, '<Alt-period>': self.replace_on_cur, '<Alt-semicolon>': self.replace_on_selection, '<Alt-comma>': self.replace_all_matches, '<Control-n>': self.toggle_nocase_option, '<Control-e>': self.toggle_exact_option, '<Control-i>': self.toggle_elide_option, '<Control-l>': self.toggle_nolinestop_option}, default_data=self.regex)
def start(self): get = Get(events={ '<Alt-q>': self.set_data, '<Alt-o>': self.up, '<Escape>': self.cancel, '<Alt-p>': self.down, '<Return>': self.cancel, '<Alt-n>': self.pick_selection_matches, '<Alt-period>': self.replace_on_cursor, '<Alt-semicolon>': self.replace_on_selection, '<Alt-comma>': self.replace_all_matches, '<Control-n>': self.toggle_nocase_option, '<Control-e>': self.toggle_exact_option, '<Control-i>': self.toggle_elide_option, '<Control-l>': self.toggle_nolinestop_option }, default_data=Find.regex)