[gtk+] Bring GtkPrintContext hard margin aware
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gtk+] Bring GtkPrintContext hard margin aware
- Date: Sat, 5 Dec 2009 13:13:31 +0000 (UTC)
commit be686e2badb5cdfdaed7df2cac9ff3b3fb793056
Author: ecyrbe <ecyrbe gmail com>
Date: Sat Dec 5 13:23:44 2009 +0100
Bring GtkPrintContext hard margin aware
See bug #468989.
gtk/gtk.symbols | 1 +
gtk/gtkprintcontext.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++
gtk/gtkprintcontext.h | 5 ++++
3 files changed, 70 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index 40f3261..1b61ca7 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -2918,6 +2918,7 @@ gtk_print_context_get_width
gtk_print_context_get_height
gtk_print_context_get_dpi_x
gtk_print_context_get_dpi_y
+gtk_print_context_get_hard_margins
gtk_print_context_get_pango_fontmap
gtk_print_context_create_pango_context
gtk_print_context_create_pango_layout
diff --git a/gtk/gtkprintcontext.c b/gtk/gtkprintcontext.c
index 80eac79..cdf04d7 100644
--- a/gtk/gtkprintcontext.c
+++ b/gtk/gtkprintcontext.c
@@ -44,6 +44,13 @@ struct _GtkPrintContext
gdouble pixels_per_unit_x;
gdouble pixels_per_unit_y;
+
+ gboolean has_hard_margins;
+ gdouble hard_margin_top;
+ gdouble hard_margin_bottom;
+ gdouble hard_margin_left;
+ gdouble hard_margin_right;
+
};
struct _GtkPrintContextClass
@@ -90,6 +97,7 @@ _gtk_print_context_new (GtkPrintOperation *op)
context->op = op;
context->cr = NULL;
+ context->has_hard_margins = FALSE;
return context;
}
@@ -374,6 +382,62 @@ gtk_print_context_get_dpi_y (GtkPrintContext *context)
}
/**
+ * gtk_print_context_get_hard_margins:
+ * @context: a #GtkPrintContext
+ * @top: top hardware printer margin
+ * @bottom: bottom hardware printer margin
+ * @left: left hardware printer margin
+ * @right: right hardware printer margin
+ *
+ * Obtains the hardware printer margins of the #GtkPrintContext, in units.
+ *
+ * Return value: %TRUE if the hard margins were retrieved
+ *
+ * Since: 2.20
+ */
+gboolean
+gtk_print_context_get_hard_margins (GtkPrintContext *context,
+ gdouble *top,
+ gdouble *bottom,
+ gdouble *left,
+ gdouble *right)
+{
+ if (context->has_hard_margins)
+ {
+ *top = context->hard_margin_top / context->pixels_per_unit_y;
+ *bottom = context->hard_margin_bottom / context->pixels_per_unit_y;
+ *left = context->hard_margin_left / context->pixels_per_unit_x;
+ *right = context->hard_margin_right / context->pixels_per_unit_x;
+ }
+
+ return context->has_hard_margins;
+}
+
+/**
+ * gtk_print_context_set_hard_margins:
+ * @context: a #GtkPrintContext
+ * @top: top hardware printer margin
+ * @bottom: bottom hardware printer margin
+ * @left: left hardware printer margin
+ * @right: right hardware printer margin
+ *
+ * set the hard margins in pixel coordinates
+ */
+void
+_gtk_print_context_set_hard_margins (GtkPrintContext *context,
+ gdouble top,
+ gdouble bottom,
+ gdouble left,
+ gdouble right)
+{
+ context->hard_margin_top = top;
+ context->hard_margin_bottom = bottom;
+ context->hard_margin_left = left;
+ context->hard_margin_right = right;
+ context->has_hard_margins = TRUE;
+}
+
+/**
* gtk_print_context_get_pango_fontmap:
* @context: a #GtkPrintContext
*
diff --git a/gtk/gtkprintcontext.h b/gtk/gtkprintcontext.h
index 9bd1334..30572d6 100644
--- a/gtk/gtkprintcontext.h
+++ b/gtk/gtkprintcontext.h
@@ -49,6 +49,11 @@ gdouble gtk_print_context_get_width (GtkPrintContext *context);
gdouble gtk_print_context_get_height (GtkPrintContext *context);
gdouble gtk_print_context_get_dpi_x (GtkPrintContext *context);
gdouble gtk_print_context_get_dpi_y (GtkPrintContext *context);
+gboolean gtk_print_context_get_hard_margins (GtkPrintContext *context,
+ gdouble *top,
+ gdouble *bottom,
+ gdouble *left,
+ gdouble *right);
/* Fonts */
PangoFontMap *gtk_print_context_get_pango_fontmap (GtkPrintContext *context);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]