def SetReference(self, ref, ref_to_scroll_to=None, settings_changed=False): """Sets reference. This is set up to be an observer of the main frame, so don't call internally. To set verse reference, use notify""" self.reference = GetVerseStr(ref) has_selected_new_verse = False # If the settings have changed we want to do a complete reload anyway # (since it could be something that requires a complete reload, such as changing version). if self.dom_loaded: if settings_changed: self.reference, ref_to_scroll_to = self.GetCurrentReferenceAndPosition( ) else: osisRef = VK(self.reference).getOSISRef() has_selected_new_verse = self.ExecuteScriptWithResult( 'select_new_verse("%s")' % osisRef) has_selected_new_verse = (has_selected_new_verse == "true") if has_selected_new_verse: self.NewReferenceLoaded() elif self.CheckChapterInBook(ref): self.OpenURIForCurrentBook("bpbible://content/page/%s/%s" % (self.book.version, self.reference)) if ref_to_scroll_to: self.scroll_to_osis_ref(ref_to_scroll_to) chapter = GetBookChapter(self.reference) self.header_bar.set_current_chapter(pysw.internal_to_user(chapter), chapter) self.update_title()
def __init__(self, parent, internal, display=None, is_current=False): super(ChapterItem, self).__init__(parent) self.internal_text = internal self.chapter = pysw.internal_to_user(internal) if display is None: self.display = self.chapter else: self.display = display self.is_current = is_current self.Bind(wx.EVT_PAINT, self.on_paint) # we have a buffered drawing, so we don't care about erasing the # background self.Bind(wx.EVT_ERASE_BACKGROUND, lambda evt: None) # callafter as under MSW, enter seems to come before leave in # places self.Bind(wx.EVT_ENTER_WINDOW, lambda evt:wx.CallAfter(self.on_enter, evt.X, evt.Y)) self.Bind(wx.EVT_LEAVE_WINDOW, self.on_leave) self.Bind(wx.EVT_LEFT_DOWN, lambda evt: self.Parent.on_click(self.internal_text) ) # draw our bitmapped version, and set our size based on it self.draw()
def SetReference(self, ref, ref_to_scroll_to=None, settings_changed=False): """Sets reference. This is set up to be an observer of the main frame, so don't call internally. To set verse reference, use notify""" self.reference = GetVerseStr(ref) has_selected_new_verse = False # If the settings have changed we want to do a complete reload anyway # (since it could be something that requires a complete reload, such as changing version). if self.dom_loaded: if settings_changed: self.reference, ref_to_scroll_to = self.GetCurrentReferenceAndPosition() else: osisRef = VK(self.reference).getOSISRef() has_selected_new_verse = self.ExecuteScriptWithResult('select_new_verse("%s")' % osisRef) has_selected_new_verse = (has_selected_new_verse == "true") if has_selected_new_verse: self.NewReferenceLoaded() elif self.CheckChapterInBook(ref): self.OpenURIForCurrentBook("bpbible://content/page/%s/%s" % (self.book.version, self.reference)) if ref_to_scroll_to: self.scroll_to_osis_ref(ref_to_scroll_to) chapter = GetBookChapter(self.reference) self.header_bar.set_current_chapter( pysw.internal_to_user(chapter), chapter ) self.update_title()
def __init__(self, parent, internal, display=None, is_current=False): super(ChapterItem, self).__init__(parent) self.internal_text = internal self.chapter = pysw.internal_to_user(internal) if display is None: self.display = self.chapter else: self.display = display self.is_current = is_current self.Bind(wx.EVT_PAINT, self.on_paint) # we have a buffered drawing, so we don't care about erasing the # background self.Bind(wx.EVT_ERASE_BACKGROUND, lambda evt: None) # callafter as under MSW, enter seems to come before leave in # places self.Bind(wx.EVT_ENTER_WINDOW, lambda evt: wx.CallAfter(self.on_enter, evt.X, evt.Y)) self.Bind(wx.EVT_LEAVE_WINDOW, self.on_leave) self.Bind(wx.EVT_LEFT_DOWN, lambda evt: self.Parent.on_click(self.internal_text)) # draw our bitmapped version, and set our size based on it self.draw()
def update_title(self, shown=None): m = guiconfig.mainfrm p = m.get_pane_for_frame(self) version = self.book.version ref = pysw.internal_to_user(self.reference) text = "%s (%s)" % (ref, version) m.set_pane_title(p.name, text)
def insert_footnotes(match): #print "Inserting footnotes", match href = match.group(1) url = SW.URL(href.encode("utf8")) ftype = url.getParameterValue("type") #x or n value = url.getParameterValue("value") #number footnote in verse if ((not ftype) or (not value)): dprint(WARNING, "Not type or value in showNote", href) return "" module = biblemgr.get_module(url.getParameterValue("module")) passage = url.getParameterValue("passage") back_ref = VK(passage).getOSISRef() user_ref = book_fix(internal_to_user(passage)) if not passage or not module: print "No passage/module?" return "" id = "footnote_data_%s_%s" % (back_ref, value) #print passage, id if ftype in ("n", "x"): data = sword_book.GetFootnoteData(module, passage, value, "body") if footnotes[ftype] and footnotes[ftype][-1][0] == back_ref: footnotes_group = footnotes[ftype][-1] else: footnotes_group = [ back_ref, "<div class='verse_footnotes footnote_%s' id='verse_footnote_%s_%s'>%s for " "<a href='#%s_start'>%s</a>%%s</div>" % (ftype, back_ref, ftype, footnote_types[ftype], back_ref, user_ref) ] footnotes[ftype].append(footnotes_group) footnotes_group.append( "<div class='footnote_data' id='%s'><span class='footnote_marker'>%s</span>: %s</div>" % (id, match.group(3), data)) else: print "Footnote type was", ftype id = "verse_footnote_%s_%s" % (back_ref, ftype) return 'href="#%s"%s' % (id, match.group(2))
def insert_footnotes(match): #print "Inserting footnotes", match href = match.group(1) url = SW.URL(href.encode("utf8")) ftype = url.getParameterValue("type") #x or n value = url.getParameterValue("value") #number footnote in verse if((not ftype) or (not value)): dprint(WARNING, "Not type or value in showNote", href) return "" module = biblemgr.get_module(url.getParameterValue("module")) passage = url.getParameterValue("passage") back_ref = VK(passage).getOSISRef() user_ref = book_fix(internal_to_user(passage)) if not passage or not module: print "No passage/module?" return "" id = "footnote_data_%s_%s" % (back_ref, value) #print passage, id if ftype in ("n", "x"): data = sword_book.GetFootnoteData(module, passage, value, "body") if footnotes[ftype] and footnotes[ftype][-1][0] == back_ref: footnotes_group = footnotes[ftype][-1] else: footnotes_group = [back_ref, "<div class='verse_footnotes footnote_%s' id='verse_footnote_%s_%s'>%s for " "<a href='#%s_start'>%s</a>%%s</div>" % ( ftype, back_ref, ftype, footnote_types[ftype], back_ref, user_ref) ] footnotes[ftype].append(footnotes_group) footnotes_group.append( "<div class='footnote_data' id='%s'><span class='footnote_marker'>%s</span>: %s</div>" % (id, match.group(3), data) ) else: print "Footnote type was", ftype id = "verse_footnote_%s_%s" % (back_ref, ftype) return 'href="#%s"%s' % (id, match.group(2))
def set_current_verse(self, event): self.currentverse = event.ref self.SetText(pysw.internal_to_user(event.ref))
def current_segment_changed(self, new_segment_ref): chapter = GetBookChapter(new_segment_ref) self.header_bar.set_current_chapter(pysw.internal_to_user(chapter), chapter)
def ChangeCurrentReference(self, ref): self.gui_reference.SetValue(pysw.internal_to_user(ref)) self.gui_reference.currentverse = ref
def open_tooltip(self, ref): tooltip = BiblicalPermanentTooltip(guiconfig.mainfrm, ref=pysw.internal_to_user(ref)) tooltip.ShowTooltip(wx.GetMousePosition())
def user_ref(self): return pysw.internal_to_user(self.ref)
def current_segment_changed(self, new_segment_ref): chapter = GetBookChapter(new_segment_ref) self.header_bar.set_current_chapter( pysw.internal_to_user(chapter), chapter )