gimp r24932 - in trunk: . plug-ins/print
- From: neo svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r24932 - in trunk: . plug-ins/print
- Date: Thu, 21 Feb 2008 11:24:12 +0000 (GMT)
Author: neo
Date: Thu Feb 21 11:24:12 2008
New Revision: 24932
URL: http://svn.gnome.org/viewvc/gimp?rev=24932&view=rev
Log:
2008-02-21 Sven Neumann <sven gimp org>
* plug-ins/print/print-preview.[ch]: code cleanup.
Modified:
trunk/ChangeLog
trunk/plug-ins/print/print-preview.c
trunk/plug-ins/print/print-preview.h
Modified: trunk/plug-ins/print/print-preview.c
==============================================================================
--- trunk/plug-ins/print/print-preview.c (original)
+++ trunk/plug-ins/print/print-preview.c Thu Feb 21 11:24:12 2008
@@ -34,6 +34,38 @@
};
+struct _GimpPrintPreview
+{
+ GtkAspectFrame parent_instance;
+
+ GtkWidget *area;
+ GtkPageSetup *page;
+ GdkPixbuf *pixbuf;
+ gboolean dragging;
+ gboolean inside;
+
+ GimpDrawable *drawable;
+
+ gdouble image_offset_x;
+ gdouble image_offset_y;
+ gdouble image_offset_x_max;
+ gdouble image_offset_y_max;
+ gdouble image_width;
+ gdouble image_height;
+
+ gboolean use_full_page;
+};
+
+struct _GimpPrintPreviewClass
+{
+ GtkAspectFrameClass parent_class;
+
+ void (* offsets_changed) (GimpPrintPreview *print_preview,
+ gint offset_x,
+ gint offset_y);
+};
+
+
static void gimp_print_preview_finalize (GObject *object);
static void gimp_print_preview_size_allocate (GtkWidget *widget,
@@ -141,8 +173,8 @@
preview->image_offset_y = 0.0;
preview->image_offset_x_max = 0.0;
preview->image_offset_y_max = 0.0;
- preview->image_xres = 1.0;
- preview->image_yres = 1.0;
+ preview->image_width = 0.0;
+ preview->image_height = 0.0;
preview->use_full_page = FALSE;
preview->area = gtk_drawing_area_new();
@@ -245,12 +277,18 @@
gdouble xres,
gdouble yres)
{
+ gdouble width;
+ gdouble height;
+
g_return_if_fail (GIMP_IS_PRINT_PREVIEW (preview));
- if (preview->image_xres != xres || preview->image_yres != yres)
+ width = preview->drawable->width * 72.0 / xres;
+ height = preview->drawable->height * 72.0 / yres;
+
+ if (width != preview->image_width || height != preview->image_height)
{
- preview->image_xres = xres;
- preview->image_yres = yres;
+ preview->image_width = width;
+ preview->image_height = height;
print_preview_queue_draw (preview);
}
@@ -365,28 +403,32 @@
gdouble right_margin;
gdouble top_margin;
gdouble bottom_margin;
- gdouble width;
- gdouble height;
gdouble scale;
gimp_print_preview_get_page_margins (preview,
- &left_margin,
- &right_margin,
- &top_margin,
- &bottom_margin);
+ &left_margin, &right_margin,
+ &top_margin, &bottom_margin);
scale = gimp_print_preview_get_scale (preview);
x = x / scale - left_margin;
y = y / scale - top_margin;
- width = preview->drawable->width * 72.0 / preview->image_xres;
- height = preview->drawable->height * 72.0 / preview->image_yres;
+ return (x > preview->image_offset_x &&
+ x < preview->image_offset_x + preview->image_width &&
+ y > preview->image_offset_y &&
+ y < preview->image_offset_y + preview->image_height);
+}
- return (x > preview->image_offset_x &&
- x < preview->image_offset_x + width &&
- y > preview->image_offset_y &&
- y < preview->image_offset_y + height);
+static void
+print_preview_set_inside (GimpPrintPreview *preview,
+ gboolean inside)
+{
+ if (inside != preview->inside)
+ {
+ preview->inside = inside;
+ print_preview_queue_draw (preview);
+ }
}
static gboolean
@@ -444,15 +486,10 @@
}
else
{
- gboolean inside = gimp_print_preview_is_inside (preview,
- event->motion.x,
- event->motion.y);
-
- if (inside != preview->inside)
- {
- preview->inside = inside;
- print_preview_queue_draw (preview);
- }
+ print_preview_set_inside (preview,
+ gimp_print_preview_is_inside (preview,
+ event->motion.x,
+ event->motion.y));
}
}
break;
@@ -463,18 +500,15 @@
start_x = start_y = 0;
preview->dragging = FALSE;
- preview->inside = gimp_print_preview_is_inside (preview,
- event->button.x,
- event->button.y);
+ print_preview_set_inside (preview,
+ gimp_print_preview_is_inside (preview,
+ event->button.x,
+ event->button.y));
print_preview_queue_draw (preview);
break;
case GDK_LEAVE_NOTIFY:
- if (preview->inside)
- {
- preview->inside = FALSE;
- print_preview_queue_draw (preview);
- }
+ print_preview_set_inside (preview, FALSE);
break;
default:
@@ -497,17 +531,11 @@
gdouble top_margin;
gdouble bottom_margin;
gdouble scale;
- gdouble width;
- gdouble height;
- gimp_print_preview_get_page_size (preview,
- &paper_width,
- &paper_height);
+ gimp_print_preview_get_page_size (preview, &paper_width, &paper_height);
gimp_print_preview_get_page_margins (preview,
- &left_margin,
- &right_margin,
- &top_margin,
- &bottom_margin);
+ &left_margin, &right_margin,
+ &top_margin, &bottom_margin);
scale = gimp_print_preview_get_scale (preview);
@@ -527,9 +555,6 @@
scale * (paper_height - top_margin - bottom_margin));
cairo_stroke (cr);
- width = preview->drawable->width;
- height = preview->drawable->height;
-
cairo_translate (cr,
scale * (left_margin + preview->image_offset_x),
scale * (top_margin + preview->image_offset_y));
@@ -538,8 +563,8 @@
{
cairo_rectangle (cr,
0, 0,
- scale * width * 72.0 / preview->image_xres,
- scale * height * 72.0 / preview->image_yres);
+ scale * preview->image_width,
+ scale * preview->image_height);
cairo_stroke (cr);
}
@@ -555,14 +580,15 @@
if (preview->pixbuf != NULL)
{
- gdouble scale_x = width / gdk_pixbuf_get_width (preview->pixbuf);
- gdouble scale_y = height / gdk_pixbuf_get_height (preview->pixbuf);
+ gdouble scale_x;
+ gdouble scale_y;
- cairo_rectangle (cr, 0, 0, width, height);
+ scale_x = preview->image_width / gdk_pixbuf_get_width (preview->pixbuf);
+ scale_y = preview->image_height / gdk_pixbuf_get_height (preview->pixbuf);
- cairo_scale (cr,
- scale_x * scale * 72.0 / preview->image_xres,
- scale_y * scale * 72.0 / preview->image_yres);
+ cairo_rectangle (cr, 0, 0, preview->image_width, preview->image_height);
+
+ cairo_scale (cr, scale_x * scale, scale_y * scale);
gdk_cairo_set_source_pixbuf (cr, preview->pixbuf, 0, 0);
cairo_fill (cr);
@@ -606,8 +632,8 @@
gdouble *paper_width,
gdouble *paper_height)
{
- *paper_width = gtk_page_setup_get_paper_width (preview->page,
- GTK_UNIT_POINTS);
+ *paper_width = gtk_page_setup_get_paper_width (preview->page,
+ GTK_UNIT_POINTS);
*paper_height = gtk_page_setup_get_paper_height (preview->page,
GTK_UNIT_POINTS);
}
@@ -628,12 +654,12 @@
}
else
{
- *left_margin = gtk_page_setup_get_left_margin (preview->page,
- GTK_UNIT_POINTS);
- *right_margin = gtk_page_setup_get_right_margin (preview->page,
- GTK_UNIT_POINTS);
- *top_margin = gtk_page_setup_get_top_margin (preview->page,
- GTK_UNIT_POINTS);
+ *left_margin = gtk_page_setup_get_left_margin (preview->page,
+ GTK_UNIT_POINTS);
+ *right_margin = gtk_page_setup_get_right_margin (preview->page,
+ GTK_UNIT_POINTS);
+ *top_margin = gtk_page_setup_get_top_margin (preview->page,
+ GTK_UNIT_POINTS);
*bottom_margin = gtk_page_setup_get_bottom_margin (preview->page,
GTK_UNIT_POINTS);
}
Modified: trunk/plug-ins/print/print-preview.h
==============================================================================
--- trunk/plug-ins/print/print-preview.h (original)
+++ trunk/plug-ins/print/print-preview.h Thu Feb 21 11:24:12 2008
@@ -32,37 +32,6 @@
typedef struct _GimpPrintPreview GimpPrintPreview;
typedef struct _GimpPrintPreviewClass GimpPrintPreviewClass;
-struct _GimpPrintPreview
-{
- GtkAspectFrame parent_instance;
-
- GtkWidget *area;
- GtkPageSetup *page;
- GdkPixbuf *pixbuf;
- gboolean dragging;
- gboolean inside;
-
- GimpDrawable *drawable;
-
- gdouble image_offset_x;
- gdouble image_offset_y;
- gdouble image_offset_x_max;
- gdouble image_offset_y_max;
- gdouble image_xres;
- gdouble image_yres;
-
- gboolean use_full_page;
-};
-
-struct _GimpPrintPreviewClass
-{
- GtkAspectFrameClass parent_class;
-
- void (* offsets_changed) (GimpPrintPreview *print_preview,
- gint offset_x,
- gint offset_y);
-};
-
GType gimp_print_preview_get_type (void) G_GNUC_CONST;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]