Divide BaseDoc into BaseDoc, TextDoc and DrawDoc. TextDoc and DrawDoc are abstract interfaces that must be implemented by the corresponding document generators.
svn: r8431
This commit is contained in:
@@ -51,7 +51,7 @@ mime_type = ""
|
||||
# Class Definitions
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class AbiWordDoc(BaseDoc.BaseDoc):
|
||||
class AbiWordDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
"""AbiWord document generator. Inherits from the BaseDoc generic
|
||||
document interface class."""
|
||||
|
||||
|
@@ -121,7 +121,7 @@ def reformat_para(para='',left=0,right=72,just=LEFT,right_pad=0,first=0):
|
||||
# Ascii
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class AsciiDoc(BaseDoc.BaseDoc):
|
||||
class AsciiDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -169,28 +169,17 @@ class AsciiDoc(BaseDoc.BaseDoc):
|
||||
def end_page(self):
|
||||
self.f.write('\012')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
# Force a line break
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def line_break(self):
|
||||
if self.in_cell:
|
||||
self.cellpars[self.cellnum] = self.cellpars[self.cellnum] + '\n'
|
||||
else:
|
||||
self.f.write('\n')
|
||||
def start_bold(self):
|
||||
pass
|
||||
|
||||
def end_bold(self):
|
||||
pass
|
||||
|
||||
def start_superscript(self):
|
||||
if self.in_cell:
|
||||
self.cellpars[self.cellnum] = self.cellpars[self.cellnum] + '['
|
||||
else:
|
||||
self.f.write('[')
|
||||
self.text = self.text + '['
|
||||
|
||||
def end_superscript(self):
|
||||
if self.in_cell:
|
||||
self.cellpars[self.cellnum] = self.cellpars[self.cellnum] + ']'
|
||||
else:
|
||||
self.f.write(']')
|
||||
self.text = self.text + ']'
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -347,7 +336,7 @@ class AsciiDoc(BaseDoc.BaseDoc):
|
||||
if self.cell_lines[self.cellnum] > self.maxlines:
|
||||
self.maxlines = self.cell_lines[self.cellnum]
|
||||
|
||||
def add_photo(self,name,pos,x,y):
|
||||
def add_media_object(self, name, align, w_cm, h_cm):
|
||||
this_text = '(photo)'
|
||||
if self.in_cell:
|
||||
self.cellpars[self.cellnum] = self.cellpars[self.cellnum] + this_text
|
||||
|
@@ -348,7 +348,7 @@ class CairoJob(object):
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class GtkDoc(BaseDoc.BaseDoc):
|
||||
class GtkDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def open(self,filename):
|
||||
self._job = CairoJob()
|
||||
|
@@ -95,7 +95,7 @@ _bottom = [
|
||||
# HtmlDoc
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class HtmlDoc(BaseDoc.BaseDoc):
|
||||
class HtmlDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
|
||||
def __init__(self,styles,type,template):
|
||||
BaseDoc.BaseDoc.__init__(self,styles,None,template)
|
||||
|
@@ -57,7 +57,7 @@ def points(val):
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class KwordDoc(BaseDoc.BaseDoc):
|
||||
class KwordDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
|
||||
def open(self,filename):
|
||||
self.media_list = []
|
||||
|
@@ -492,7 +492,7 @@ class GnomePrintPhoto:
|
||||
# LPRDoc class
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class LPRDoc(BaseDoc.BaseDoc):
|
||||
class LPRDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc,BaseDoc.DrawDoc):
|
||||
"""Gnome-print document interface class. Derived from BaseDoc."""
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
@@ -579,17 +579,6 @@ class LPRDoc(BaseDoc.BaseDoc):
|
||||
"Override generic Fontscale-based width."
|
||||
return get_text_width(text,fontstyle)
|
||||
|
||||
def line_break(self):
|
||||
"Forces a line break within a paragraph."
|
||||
# Add previously held text to the paragraph,
|
||||
# then add line break directive,
|
||||
# then start accumulating further text
|
||||
append_to_paragraph(self.paragraph,self.paragraph_directive,
|
||||
self.paragraph_text)
|
||||
self.paragraph.add_piece(_LINE_BREAK,"")
|
||||
self.paragraph_text = ""
|
||||
self.brand_new_page = 0
|
||||
|
||||
def start_paragraph(self,style_name,leader=None):
|
||||
"""Paragraphs handling - A Gramps paragraph is any
|
||||
single body of text, from a single word, to several sentences.
|
||||
|
@@ -128,7 +128,7 @@ class TexFont:
|
||||
# LaTeXDon
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class LaTeXDoc(BaseDoc.BaseDoc):
|
||||
class LaTeXDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
"""LaTeX document interface class. Derived from BaseDoc"""
|
||||
|
||||
def open(self,filename):
|
||||
|
@@ -74,7 +74,7 @@ _esc_map = {
|
||||
# ODFDoc
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class ODFDoc(BaseDoc.BaseDoc):
|
||||
class ODFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def __init__(self,styles,type,template):
|
||||
BaseDoc.BaseDoc.__init__(self,styles,type,template)
|
||||
@@ -945,13 +945,13 @@ class ODFDoc(BaseDoc.BaseDoc):
|
||||
self.meta.write('<dc:description>')
|
||||
self.meta.write('</dc:description>\n')
|
||||
self.meta.write('<meta:initial-creator>')
|
||||
self.meta.write(self.name)
|
||||
self.meta.write(self.get_creator())
|
||||
self.meta.write('</meta:initial-creator>\n')
|
||||
self.meta.write('<meta:creation-date>')
|
||||
self.meta.write(self.time)
|
||||
self.meta.write('</meta:creation-date>\n')
|
||||
self.meta.write('<dc:creator>')
|
||||
self.meta.write(self.name)
|
||||
self.meta.write(self.get_creator())
|
||||
self.meta.write('</dc:creator>\n')
|
||||
self.meta.write('<dc:date>')
|
||||
self.meta.write(self.time)
|
||||
|
@@ -69,7 +69,7 @@ _esc_map = {
|
||||
# OpenOfficeDoc
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class OpenOfficeDoc(BaseDoc.BaseDoc):
|
||||
class OpenOfficeDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def __init__(self,styles,type,template):
|
||||
BaseDoc.BaseDoc.__init__(self,styles,type,template)
|
||||
@@ -800,13 +800,13 @@ class OpenOfficeDoc(BaseDoc.BaseDoc):
|
||||
self.meta.write(const.program_name + ' ' + const.version)
|
||||
self.meta.write('</meta:generator>\n')
|
||||
self.meta.write('<meta:initial-creator>')
|
||||
self.meta.write(self.name)
|
||||
self.meta.write(self.get_creator())
|
||||
self.meta.write('</meta:initial-creator>\n')
|
||||
self.meta.write('<meta:creation-date>')
|
||||
self.meta.write(self.time)
|
||||
self.meta.write('</meta:creation-date>\n')
|
||||
self.meta.write('<dc:creator>')
|
||||
self.meta.write(self.name)
|
||||
self.meta.write(self.get_creator())
|
||||
self.meta.write('</dc:creator>\n')
|
||||
self.meta.write('<dc:date>')
|
||||
self.meta.write(self.time)
|
||||
|
@@ -69,7 +69,7 @@ if print_label == None:
|
||||
# PSDrawDoc
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PSDrawDoc(BaseDoc.BaseDoc):
|
||||
class PSDrawDoc(BaseDoc.BaseDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def __init__(self,styles,type,template):
|
||||
BaseDoc.BaseDoc.__init__(self,styles,type,template)
|
||||
|
@@ -119,7 +119,7 @@ class GrampsDocTemplate(BaseDocTemplate):
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class PdfDoc(BaseDoc.BaseDoc):
|
||||
class PdfDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def open(self,filename):
|
||||
if filename[-4:] != ".pdf":
|
||||
|
@@ -60,7 +60,7 @@ def twips(cm):
|
||||
# use style sheets. Instead it writes raw formatting.
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class RTFDoc(BaseDoc.BaseDoc):
|
||||
class RTFDoc(BaseDoc.BaseDoc,BaseDoc.TextDoc):
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -336,7 +336,7 @@ class RTFDoc(BaseDoc.BaseDoc):
|
||||
self.f.write('\\clbrdrl\\brdrs\\brdrw10\n')
|
||||
if s.get_right_border():
|
||||
self.f.write('\\clbrdrr\\brdrs\\brdrw10\n')
|
||||
table_width = float(self.get_usable_width())
|
||||
table_width = float(self.paper.get_usable_width())
|
||||
for cell in range(self.cell,self.cell+span):
|
||||
self.cell_percent = self.cell_percent + float(self.tbl_style.get_column_width(cell))
|
||||
cell_width = twips((table_width * self.cell_percent)/100.0)
|
||||
|
@@ -42,7 +42,7 @@ import Errors
|
||||
# SvgDrawDoc
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class SvgDrawDoc(BaseDoc.BaseDoc):
|
||||
class SvgDrawDoc(BaseDoc.BaseDoc,BaseDoc.DrawDoc):
|
||||
|
||||
def __init__(self,styles,type,template):
|
||||
BaseDoc.BaseDoc.__init__(self,styles,type,template)
|
||||
|
Reference in New Issue
Block a user