elif host.startswith("parent"): frame.go_to_parent(int(host[6:])) else: key = TK(frame.book.mod.getKey(), frame.book.mod) path = to_unicode(url.getPath(), frame.reference.module) ref = u"/%s" % host if path: ref += "/%s" % path key.text = ref frame.go_to_key(key) protocol_handler.register_handler("genbook", on_genbook_click) protocol_handler.register_hover("genbook", noop) class GenBookFrame(BookFrame): id = N_("Other Books") use_quickselector = False def __init__(self, parent, book): self.genbookpanel = wx.Panel(parent) self.do_not_reload_page = False super(GenBookFrame, self).__init__(self.genbookpanel) self.SetBook(book) sizer = wx.BoxSizer(wx.VERTICAL) self.add_navigation_controls(sizer)
def on_usercomment_opened(frame, href, url): passage_entry = find_passage_entry(url) # hide all tooltips - particularly the user comments one guiconfig.mainfrm.hide_tooltips() # now we do a calllater rather than callafter - launching modal dialogs # from here needs a bit of care, otherwise we can end up in a nasty state wx.CallLater(150, edit_comment, frame, passage_entry) def on_usercomment_hover(frame, href, url, element, x, y): passage_entry = find_passage_entry(url) tooltip_config = UserCommentTooltipConfig(passage_entry) frame.show_tooltip(tooltip_config) protocol_handler.register_handler("usercomment", on_usercomment_opened) protocol_handler.register_hover("usercomment", on_usercomment_hover) def find_passage_entry(url): comment_id = int(url.getHostName()) return lookup_passage_entry(comment_id) class UserCommentTooltipConfig(TooltipConfig): def __init__(self, passage_entry): super(UserCommentTooltipConfig, self).__init__(book=biblemgr.bible) self.passage_entry = passage_entry def add_to_toolbar(self, toolbar, permanent): toolbar.gui_edit = toolbar.AddLabelTool( wx.ID_ANY, _("Edit"),
if comment: comment = u"<p>%s<p>" % comment else: passage_text = "" current_anchor = u"" if passage_entry is self.selected_passage_entry: comment = u'<span style="color: #008000">%s</span>' % comment passage_text = u'<span style="color: #008000">%s</span>' % passage_text current_anchor = u'<a name="current" />' return ( u'<div class="topic_passage">%(current_anchor)s<b><a href=\"bible:%(reference)s\">%(localised_reference)s</a></b> ' u'%(passage_text)s%(comment)s</div>' % locals()) protocol_handler.register_handler("passagetag", on_passage_tag_clicked) protocol_handler.register_hover("passagetag", on_passage_tag_hover) class PassageTagLook(wx.PyWindow): def __init__(self, parent, tag_text, look=0, colour=0, *args, **kwargs): self.tag_text = tag_text super(PassageTagLook, self).__init__(parent, *args, **kwargs) self.set_scheme(look, colour) self.Bind(wx.EVT_PAINT, self.on_paint) self.SetCursor(wx.StockCursor(wx.CURSOR_HAND)) def set_scheme(self, look, colour): self.look, self.colour = look, colour self.look_scheme, self.white_text, self.border = looks[look] self.colour_id, white_text, default_look = colours[colour]
userOutput=True) ) html += u"<ul>" for vk, text in chapter_headings.get_chapter_headings(self.ref): html += u'<li><a href="nbible:%s">%s</a>' % (vk, text) html += u"</ul>" return html def get_title(self): return self.ref protocol_handler.register_hover("headings", on_headings_hover) protocol_handler.register_handler("headings", DisplayFrame.on_link_clicked_bible) def get_line_colour(): return wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DSHADOW) class ChapterItem(wx.Panel): """ A chapter item in the header bar. Handles mouse over and drawing itself """ # how much border around the text do we want? border = 3
vk.Chapter()) ), userOutput=True)) html += u"<ul>" for vk, text in chapter_headings.get_chapter_headings(self.ref): html += u'<li><a href="nbible:%s">%s</a>' % (vk, text) html += u"</ul>" return html def get_title(self): return self.ref protocol_handler.register_hover("headings", on_headings_hover) protocol_handler.register_handler("headings", DisplayFrame.on_link_clicked_bible) def get_line_colour(): return wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DSHADOW) class ChapterItem(wx.Panel): """ A chapter item in the header bar. Handles mouse over and drawing itself """ # how much border around the text do we want? border = 3 def __init__(self, parent, internal, display=None, is_current=False):
passage_text = u'<div class="topic_passage_text">%s</div>' % ( biblemgr.bible.GetReference(reference, exclude_topic_tag=self.topic)) if comment: comment = u"<p>%s<p>" % comment else: passage_text = "" current_anchor = u"" if passage_entry is self.selected_passage_entry: comment = u'<span style="color: #008000">%s</span>' % comment passage_text = u'<span style="color: #008000">%s</span>' % passage_text current_anchor = u'<a name="current" />' return (u'<div class="topic_passage">%(current_anchor)s<b><a href=\"bible:%(reference)s\">%(localised_reference)s</a></b> ' u'%(passage_text)s%(comment)s</div>' % locals()) protocol_handler.register_handler("passagetag", on_passage_tag_clicked) protocol_handler.register_hover("passagetag", on_passage_tag_hover) class PassageTagLook(wx.PyWindow): def __init__(self, parent, tag_text, look=0, colour=0, *args, **kwargs): self.tag_text = tag_text super(PassageTagLook, self).__init__(parent, *args, **kwargs) self.set_scheme(look, colour) self.Bind(wx.EVT_PAINT, self.on_paint) self.SetCursor(wx.StockCursor(wx.CURSOR_HAND)) def set_scheme(self, look, colour): self.look, self.colour = look, colour self.look_scheme, self.white_text, self.border = looks[look] self.colour_id, white_text, default_look = colours[colour] self.white_text = self.white_text and white_text
verse_comparison_settings.add_item("comparison_modules", biblemgr.bible.GetModuleList, is_initial_lazy=True, item_type="pickle") verse_comparison_settings.add_item("parallel", False, item_type=bool) verse_comparison_settings.add_item("reference", "", item_type=str) def on_bible_version(frame, href, url): module_name = SW.URL.decode(url.getPath()).c_str() biblemgr.bible.SetModule(module_name) protocol_handler.register_handler(BIBLE_VERSION_PROTOCOL, on_bible_version) protocol_handler.register_hover(BIBLE_VERSION_PROTOCOL, noop) class VerseCompareFrame(LinkedFrame): id = N_("Version Comparison") has_menu = False shows_info = False def __init__(self, parent, book): self.mod = None super(VerseCompareFrame, self).__init__(parent) self.SetBook(book) def SetReference(self, ref, reload=False, settings_changed=False): if not ref:
else: key = TK(frame.book.mod.getKey(), frame.book.mod) path = to_unicode( url.getPath(), frame.reference.module ) ref = u"/%s" % host if path: ref += "/%s" % path key.text = ref frame.go_to_key(key) protocol_handler.register_handler("genbook", on_genbook_click) protocol_handler.register_hover("genbook", noop) class GenBookFrame(BookFrame): id=N_("Other Books") use_quickselector = False def __init__(self, parent, book): self.genbookpanel = wx.Panel(parent) self.do_not_reload_page = False super(GenBookFrame, self).__init__(self.genbookpanel) self.SetBook(book) sizer = wx.BoxSizer(wx.VERTICAL) self.add_navigation_controls(sizer) sizer.Add(self, 3, flag = wx.GROW) self.genbookpanel.SetSizer(sizer)
"parallel", False, item_type=bool ) verse_comparison_settings.add_item( "reference", "", item_type=str ) def on_bible_version(frame, href, url): module_name = SW.URL.decode(url.getPath()).c_str() biblemgr.bible.SetModule(module_name) protocol_handler.register_handler(BIBLE_VERSION_PROTOCOL, on_bible_version) protocol_handler.register_hover(BIBLE_VERSION_PROTOCOL, noop) class VerseCompareFrame(LinkedFrame): id = N_("Version Comparison") has_menu = False shows_info = False def __init__(self, parent, book): self.mod = None super(VerseCompareFrame, self).__init__(parent) self.SetBook(book) def SetReference(self, ref, reload=False, settings_changed=False): if not ref: