+/* this file is part of evince, a gnome document viewer
+ *
+ * Copyright (C) 2005 Jonathan Blandford <jrb@gnome.org>
+ *
+ * Evince is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Evince is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <config.h>
#include "ev-render-context.h"
static void ev_render_context_init (EvRenderContext *rc);
rc = (EvRenderContext *) object;
- if (rc->destroy) {
- (*rc->destroy) (rc->data);
- rc->destroy = NULL;
+ if (rc->page) {
+ g_object_unref (rc->page);
+ rc->page = NULL;
}
(* G_OBJECT_CLASS (ev_render_context_parent_class)->dispose) (object);
oclass->dispose = ev_render_context_dispose;
}
-
EvRenderContext *
-ev_render_context_new (int rotation,
- gint page,
- gdouble scale)
+ev_render_context_new (EvPage *page,
+ gint rotation,
+ gdouble scale)
{
EvRenderContext *rc;
rc = (EvRenderContext *) g_object_new (EV_TYPE_RENDER_CONTEXT, NULL);
+ rc->page = page ? g_object_ref (page) : NULL;
rc->rotation = rotation;
- rc->page = page;
rc->scale = scale;
return rc;
void
ev_render_context_set_page (EvRenderContext *rc,
- gint page)
+ EvPage *page)
{
g_return_if_fail (rc != NULL);
+ g_return_if_fail (EV_IS_PAGE (page));
- rc->page = page;
+ if (rc->page)
+ g_object_unref (rc->page);
+ rc->page = g_object_ref (page);
}
void