[glide] Add support for printing images
- From: Robert Carr <racarr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glide] Add support for printing images
- Date: Tue, 27 Apr 2010 00:05:42 +0000 (UTC)
commit ec22c918f3ad8252ed679a22f18341a5fd21d462
Author: Robert Carr <racarr Valentine localdomain>
Date: Mon Apr 26 19:29:42 2010 -0400
Add support for printing images
src/glide-image.c | 22 ++++++++++++++++++++++
src/glide-slide.c | 11 +++++++++++
2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/src/glide-image.c b/src/glide-image.c
index c5fcefc..411c4f6 100644
--- a/src/glide-image.c
+++ b/src/glide-image.c
@@ -266,6 +266,27 @@ glide_image_deserialize (GlideActor *actor, JsonObject *actor_obj)
}
static void
+glide_image_print (GlideActor *actor,
+ cairo_t *cr)
+{
+ GlideImage *image = GLIDE_IMAGE (actor);
+ GdkPixbuf *p;
+ gfloat width, height, x, y;
+
+ clutter_actor_get_size (CLUTTER_ACTOR (image), &width, &height);
+ clutter_actor_get_position (CLUTTER_ACTOR (image), &x, &y);
+
+ // TODO: Error
+ p = gdk_pixbuf_new_from_file_at_size (image->priv->filename, width, height, NULL);
+ gdk_cairo_set_source_pixbuf (cr, p, x, y);
+
+ cairo_rectangle (cr, x, y, width, height);
+ cairo_fill (cr);
+
+ g_object_unref (G_OBJECT (p));
+}
+
+static void
glide_image_class_init (GlideImageClass *klass)
{
GlideActorClass *glide_actor_class = GLIDE_ACTOR_CLASS (klass);
@@ -283,6 +304,7 @@ glide_image_class_init (GlideImageClass *klass)
glide_actor_class->serialize = glide_image_serialize;
glide_actor_class->deserialize = glide_image_deserialize;
+ glide_actor_class->print = glide_image_print;
object_class->finalize = glide_image_finalize;
diff --git a/src/glide-slide.c b/src/glide-slide.c
index 392d6c9..73b47ca 100644
--- a/src/glide-slide.c
+++ b/src/glide-slide.c
@@ -496,6 +496,9 @@ glide_slide_print_background_image (GlideSlide *s,
GdkPixbuf *p;
gfloat width, height;
+ if (!s->priv->background)
+ return;
+
clutter_actor_get_size (CLUTTER_ACTOR (s), &width, &height);
// TODO: Error
@@ -528,8 +531,16 @@ glide_slide_print (GlideActor *a,
cairo_t *cr)
{
GlideSlide *s = GLIDE_SLIDE (a);
+ GList *t;
glide_slide_print_background (s, cr);
+
+ for (t = clutter_container_get_children (CLUTTER_CONTAINER (s->priv->contents_group));
+ t; t = t->next)
+ {
+ GlideActor *actor = (GlideActor *)t->data;
+ glide_actor_print (actor, cr);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]