2007-09-09 Zsolt Foldvari <zfoldvar@users.sourceforge.net>

* src/docgen/GtkPrint.py: Use font color from paragraph style.



svn: r8953
This commit is contained in:
Zsolt Foldvari 2007-09-09 18:05:54 +00:00
parent 63070932a4
commit 461e3c73ea
2 changed files with 33 additions and 27 deletions

View File

@ -1,3 +1,6 @@
2007-09-09 Zsolt Foldvari <zfoldvar@users.sourceforge.net>
* src/docgen/GtkPrint.py: Use font color from paragraph style.
2007-09-08 Don Allingham <don@gramps-project.org> 2007-09-08 Don Allingham <don@gramps-project.org>
* src/ViewManager.py: code cleanup * src/ViewManager.py: code cleanup
* src/FontScale.py: code cleanup * src/FontScale.py: code cleanup

View File

@ -129,30 +129,30 @@ class PrintPreview:
glade_file = os.path.join(os.path.dirname(__file__), glade_file = os.path.join(os.path.dirname(__file__),
'gtkprintpreview.glade') 'gtkprintpreview.glade')
window_xml = gtk.glade.XML(glade_file, 'window', 'gramps') glade_xml = gtk.glade.XML(glade_file, 'window', 'gramps')
self._window = window_xml.get_widget('window') self._window = glade_xml.get_widget('window')
#self._window.set_transient_for(parent) #self._window.set_transient_for(parent)
# remember active widgets for future use # remember active widgets for future use
self._swin = window_xml.get_widget('swin') self._swin = glade_xml.get_widget('swin')
self._drawing_area = window_xml.get_widget('drawingarea') self._drawing_area = glade_xml.get_widget('drawingarea')
self._first_button = window_xml.get_widget('first') self._first_button = glade_xml.get_widget('first')
self._prev_button = window_xml.get_widget('prev') self._prev_button = glade_xml.get_widget('prev')
self._next_button = window_xml.get_widget('next') self._next_button = glade_xml.get_widget('next')
self._last_button = window_xml.get_widget('last') self._last_button = glade_xml.get_widget('last')
self._pages_entry = window_xml.get_widget('entry') self._pages_entry = glade_xml.get_widget('entry')
self._pages_label = window_xml.get_widget('label') self._pages_label = glade_xml.get_widget('label')
self._zoom_fit_width_button = window_xml.get_widget('zoom_fit_width') self._zoom_fit_width_button = glade_xml.get_widget('zoom_fit_width')
self._zoom_fit_width_button.set_stock_id('gramps-zoom-fit-width') self._zoom_fit_width_button.set_stock_id('gramps-zoom-fit-width')
self._zoom_best_fit_button = window_xml.get_widget('zoom_best_fit') self._zoom_best_fit_button = glade_xml.get_widget('zoom_best_fit')
self._zoom_best_fit_button.set_stock_id('gramps-zoom-best-fit') self._zoom_best_fit_button.set_stock_id('gramps-zoom-best-fit')
self._zoom_in_button = window_xml.get_widget('zoom_in') self._zoom_in_button = glade_xml.get_widget('zoom_in')
self._zoom_in_button.set_stock_id('gramps-zoom-in') self._zoom_in_button.set_stock_id('gramps-zoom-in')
self._zoom_out_button = window_xml.get_widget('zoom_out') self._zoom_out_button = glade_xml.get_widget('zoom_out')
self._zoom_out_button.set_stock_id('gramps-zoom-out') self._zoom_out_button.set_stock_id('gramps-zoom-out')
# connect the signals # connect the signals
window_xml.signal_autoconnect({ glade_xml.signal_autoconnect({
'on_drawingarea_expose_event': self.on_drawingarea_expose_event, 'on_drawingarea_expose_event': self.on_drawingarea_expose_event,
'on_swin_size_allocate': self.on_swin_size_allocate, 'on_swin_size_allocate': self.on_swin_size_allocate,
'on_quit_clicked': self.on_quit_clicked, 'on_quit_clicked': self.on_quit_clicked,
@ -957,8 +957,7 @@ class GtkDocParagraph(GtkDocBaseElement):
if f_indent < 0: if f_indent < 0:
x += f_indent x += f_indent
cr.move_to(x, t_margin + v_padding) cr.move_to(x, t_margin + v_padding)
# TODO color from the style cr.set_source_rgb(*ReportUtils.rgb_color(font_style.get_color()))
cr.set_source_rgb(0, 0, 0)
cr.show_layout(layout) cr.show_layout(layout)
# calculate the full paragraph height # calculate the full paragraph height
@ -1273,21 +1272,23 @@ class GtkDocFrame(GtkDocBaseElement):
def draw(self, cr, layout, width, dpi_x, dpi_y): def draw(self, cr, layout, width, dpi_x, dpi_y):
frame_width = self._style.width * dpi_x / 2.54 frame_width = self._style.width * dpi_x / 2.54
frame_height = self._style.height * dpi_y / 2.54 frame_height = self._style.height * dpi_y / 2.54
l_margin = self._style.spacing[0] * dpi_y / 2.54
r_margin = self._style.spacing[1] * dpi_y / 2.54
t_margin = self._style.spacing[2] * dpi_y / 2.54 t_margin = self._style.spacing[2] * dpi_y / 2.54
b_margin = self._style.spacing[3] * dpi_y / 2.54 b_margin = self._style.spacing[3] * dpi_y / 2.54
if self._style.align == 'left': if self._style.align == 'left':
l_margin = 0 x_offset = l_margin
elif self._style.align == 'right': elif self._style.align == 'right':
l_margin = width - frame_width x_offset = width - r_margin - frame_width
elif self._style.align == 'center': elif self._style.align == 'center':
l_margin = (width - frame_width) / 2.0 x_offset = (width - frame_width) / 2.0
else: else:
raise ValueError raise ValueError
# draw each element in the frame # draw each element in the frame
cr.save() cr.save()
cr.translate(l_margin, t_margin) cr.translate(x_offset, t_margin)
cr.rectangle(0, 0, frame_width, frame_height) cr.rectangle(0, 0, frame_width, frame_height)
cr.clip() cr.clip()
@ -1299,7 +1300,7 @@ class GtkDocFrame(GtkDocBaseElement):
if DEBUG: if DEBUG:
cr.set_line_width(0.1) cr.set_line_width(0.1)
cr.set_source_rgb(1.0, 0, 0) cr.set_source_rgb(1.0, 0, 0)
cr.rectangle(l_margin, t_margin, frame_width, frame_height) cr.rectangle(x_offset, t_margin, frame_width, frame_height)
cr.stroke() cr.stroke()
return frame_height + t_margin + b_margin return frame_height + t_margin + b_margin
@ -1478,8 +1479,7 @@ class GtkDocText(GtkDocBaseElement):
cr.translate(text_x, text_y) cr.translate(text_x, text_y)
cr.rotate(radians(self._angle)) cr.rotate(radians(self._angle))
cr.move_to(align_x, align_y) cr.move_to(align_x, align_y)
# TODO color from the style cr.set_source_rgb(*ReportUtils.rgb_color(font_style.get_color()))
cr.set_source_rgb(0, 0, 0)
cr.show_layout(layout) cr.show_layout(layout)
cr.restore() cr.restore()
@ -1514,7 +1514,7 @@ class CairoDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
self.run() self.run()
def run(self): def run(self):
"""End the meta document. """Create the physical output from the meta document.
It must be implemented in the subclasses. The idea is that with It must be implemented in the subclasses. The idea is that with
different subclass different output could be generated: different subclass different output could be generated:
@ -1614,6 +1614,10 @@ class CairoDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
# DrawDoc implementation # DrawDoc implementation
def start_page(self): def start_page(self):
# if this is not the first page we need to "close" the previous one
if self._doc.get_children():
self._doc.add_child(GtkDocPagebreak())
new_frame_style = FrameStyle(width=self.get_usable_width(), new_frame_style = FrameStyle(width=self.get_usable_width(),
height=self.get_usable_height()) height=self.get_usable_height())
new_frame = GtkDocFrame(new_frame_style) new_frame = GtkDocFrame(new_frame_style)
@ -1623,7 +1627,6 @@ class CairoDoc(BaseDoc.BaseDoc, BaseDoc.TextDoc, BaseDoc.DrawDoc):
def end_page(self): def end_page(self):
self._active_element = self._active_element.get_parent() self._active_element = self._active_element.get_parent()
self._active_element.add_child(GtkDocPagebreak())
def draw_line(self, style_name, x1, y1, x2, y2): def draw_line(self, style_name, x1, y1, x2, y2):
style_sheet = self.get_style_sheet() style_sheet = self.get_style_sheet()