Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
	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()
Ejemplo n.º 3
0
	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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
	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)
Ejemplo n.º 7
0
        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))
Ejemplo n.º 8
0
		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))
Ejemplo n.º 9
0
	def set_current_verse(self, event):
		self.currentverse = event.ref
		self.SetText(pysw.internal_to_user(event.ref))
Ejemplo n.º 10
0
 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)
Ejemplo n.º 11
0
 def ChangeCurrentReference(self, ref):
     self.gui_reference.SetValue(pysw.internal_to_user(ref))
     self.gui_reference.currentverse = ref
Ejemplo n.º 12
0
    def open_tooltip(self, ref):
        tooltip = BiblicalPermanentTooltip(guiconfig.mainfrm,
                                           ref=pysw.internal_to_user(ref))

        tooltip.ShowTooltip(wx.GetMousePosition())
Ejemplo n.º 13
0
	def ChangeCurrentReference(self, ref):
		self.gui_reference.SetValue(pysw.internal_to_user(ref))
		self.gui_reference.currentverse = ref
Ejemplo n.º 14
0
	def user_ref(self):
		return pysw.internal_to_user(self.ref)
Ejemplo n.º 15
0
 def user_ref(self):
     return pysw.internal_to_user(self.ref)
Ejemplo n.º 16
0
	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
		)
Ejemplo n.º 17
0
 def set_current_verse(self, event):
     self.currentverse = event.ref
     self.SetText(pysw.internal_to_user(event.ref))
Ejemplo n.º 18
0
	def open_tooltip(self, ref):
		tooltip = BiblicalPermanentTooltip(guiconfig.mainfrm,
			ref=pysw.internal_to_user(ref))

		tooltip.ShowTooltip(wx.GetMousePosition())