def follow_if_link(self, text_view, iter): ''' Looks at all tags covering the position of iter in the text view, and if one of them is a link, follow it by showing the page identified by the data attached to it. ''' tags = iter.get_tags() for tag in tags: page = tag.get_data("link") if page != None: #print "Calling link ", page # Paint a new cursor #self.waiting = True wx, wy, mod = text_view.window.get_pointer() bx, by = text_view.window_to_buffer_coords( gtk.TEXT_WINDOW_WIDGET, wx, wy) self.set_cursor_if_appropriate(text_view, bx, by) text_view.window.get_pointer() if self.callback: if page.startswith("http:") or page.startswith("mailto:"): pubutil.message( "Cannot load external page: \n\n(" + page + ")", "ePub Message") break ret = self.callback(page) if not ret: pubutil.message("Cannot load page: '" + page + "'") break
def find(self, arg): ret = pubutil.find(self) if not ret: return self.oldfind = ret[0] if self.olditer: iter3 = self.olditer else: iter3 = self.buffer_1.get_iter_at_mark(self.buffer_1.get_insert()) if not iter3: iter3 = self.buffer_1.get_start_iter() eiter = iter3.forward_search(ret[0], 0) if not eiter: self.prog.set_text(ret[0] + " Not Found") pubutil.message("Text " + "'" + ret[0] + "'" + " Not Found", "Search") self.olditer = None return self.view.scroll_to_iter(eiter[0], 0.3) #, True, 0, 0) self.view.place_cursor_onscreen() self.buffer_1.select_range(eiter[0], eiter[1]) self.olditer = eiter[1]