/* book-view.c generated by valac 0.20.1, the Vala compiler
 * generated from book-view.vala, do not modify */

/*
 * Copyright (C) 2009-2011 Canonical Ltd.
 * Author: Robert Ancell <robert.ancell@canonical.com>
 *
 * This program 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 3 of the License, or (at your option) any later
 * version. See http://www.gnu.org/copyleft/gpl.html the full text of the
 * license.
 */
/* FIXME: When scrolling, copy existing render sideways?*/
/* FIXME: Only render pages that change and only the part that changed*/

#include <glib.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <float.h>
#include <math.h>


#define TYPE_BOOK_VIEW (book_view_get_type ())
#define BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK_VIEW, BookView))
#define BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK_VIEW, BookViewClass))
#define IS_BOOK_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK_VIEW))
#define IS_BOOK_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK_VIEW))
#define BOOK_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK_VIEW, BookViewClass))

typedef struct _BookView BookView;
typedef struct _BookViewClass BookViewClass;
typedef struct _BookViewPrivate BookViewPrivate;

#define TYPE_BOOK (book_get_type ())
#define BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_BOOK, Book))
#define BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_BOOK, BookClass))
#define IS_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_BOOK))
#define IS_BOOK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_BOOK))
#define BOOK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_BOOK, BookClass))

typedef struct _Book Book;
typedef struct _BookClass BookClass;

#define TYPE_PAGE (page_get_type ())
#define PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE, Page))
#define PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE, PageClass))
#define IS_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE))
#define IS_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE))
#define PAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE, PageClass))

typedef struct _Page Page;
typedef struct _PageClass PageClass;

#define TYPE_PAGE_VIEW (page_view_get_type ())
#define PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_PAGE_VIEW, PageView))
#define PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_PAGE_VIEW, PageViewClass))
#define IS_PAGE_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_PAGE_VIEW))
#define IS_PAGE_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_PAGE_VIEW))
#define PAGE_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_PAGE_VIEW, PageViewClass))

typedef struct _PageView PageView;
typedef struct _PageViewClass PageViewClass;
#define _book_unref0(var) ((var == NULL) ? NULL : (var = (book_unref (var), NULL)))
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _page_view_unref0(var) ((var == NULL) ? NULL : (var = (page_view_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _page_unref0(var) ((var == NULL) ? NULL : (var = (page_unref (var), NULL)))

struct _BookView {
	GtkVBox parent_instance;
	BookViewPrivate * priv;
};

struct _BookViewClass {
	GtkVBoxClass parent_class;
};

struct _BookViewPrivate {
	Book* book;
	GHashTable* page_data;
	gboolean need_layout;
	gboolean laying_out;
	gboolean show_selected_page;
	PageView* selected_page;
	GtkWidget* drawing_area;
	GtkScrollbar* scroll;
	GtkAdjustment* adjustment;
	GdkCursorType cursor;
};


static gpointer book_view_parent_class = NULL;

GType book_view_get_type (void) G_GNUC_CONST;
gpointer book_ref (gpointer instance);
void book_unref (gpointer instance);
GParamSpec* param_spec_book (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_book (GValue* value, gpointer v_object);
void value_take_book (GValue* value, gpointer v_object);
gpointer value_get_book (const GValue* value);
GType book_get_type (void) G_GNUC_CONST;
gpointer page_ref (gpointer instance);
void page_unref (gpointer instance);
GParamSpec* param_spec_page (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_page (GValue* value, gpointer v_object);
void value_take_page (GValue* value, gpointer v_object);
gpointer value_get_page (const GValue* value);
GType page_get_type (void) G_GNUC_CONST;
gpointer page_view_ref (gpointer instance);
void page_view_unref (gpointer instance);
GParamSpec* param_spec_page_view (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_page_view (GValue* value, gpointer v_object);
void value_take_page_view (GValue* value, gpointer v_object);
gpointer value_get_page_view (const GValue* value);
GType page_view_get_type (void) G_GNUC_CONST;
#define BOOK_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_BOOK_VIEW, BookViewPrivate))
enum  {
	BOOK_VIEW_DUMMY_PROPERTY
};
static void book_view_add_cb (BookView* self, Book* book, Page* page);
static void _book_view_add_cb_book_page_added (Book* _sender, Page* page, gpointer self);
static void book_view_remove_cb (BookView* self, Book* book, Page* page);
static void _book_view_remove_cb_book_page_removed (Book* _sender, Page* page, gpointer self);
static void book_view_reorder_cb (BookView* self, Book* book);
static void _book_view_reorder_cb_book_reordered (Book* _sender, gpointer self);
static void book_view_clear_cb (BookView* self, Book* book);
static void _book_view_clear_cb_book_cleared (Book* _sender, gpointer self);
static gboolean book_view_configure_cb (BookView* self, GtkWidget* widget, GdkEventConfigure* event);
static gboolean _book_view_configure_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self);
static gboolean book_view_draw_cb (BookView* self, GtkWidget* widget, cairo_t* context);
static gboolean _book_view_draw_cb_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self);
static gboolean book_view_motion_cb (BookView* self, GtkWidget* widget, GdkEventMotion* event);
static gboolean _book_view_motion_cb_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self);
static gboolean book_view_key_cb (BookView* self, GtkWidget* widget, GdkEventKey* event);
static gboolean _book_view_key_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self);
static gboolean book_view_button_cb (BookView* self, GtkWidget* widget, GdkEventButton* event);
static gboolean _book_view_button_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean _book_view_button_cb_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self);
static gboolean book_view_focus_cb (BookView* self, GtkWidget* widget, GdkEventFocus* event);
static gboolean _book_view_focus_cb_gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
static gboolean _book_view_focus_cb_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self);
static void book_view_scroll_cb (BookView* self, GtkAdjustment* adjustment);
static void _book_view_scroll_cb_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self);
BookView* book_view_new (Book* book);
BookView* book_view_construct (GType object_type, Book* book);
guint book_get_n_pages (Book* self);
Page* book_get_page (Book* self, gint page_number);
void book_view_select_page (BookView* self, Page* page);
static void _page_unref0_ (gpointer var);
static void _page_view_unref0_ (gpointer var);
static PageView* book_view_get_nth_page (BookView* self, gint n);
static PageView* book_view_get_next_page (BookView* self, PageView* page);
Page* page_view_get_page (PageView* self);
static PageView* book_view_get_prev_page (BookView* self, PageView* page);
static void book_view_page_view_changed_cb (BookView* self, PageView* page);
void book_view_redraw (BookView* self);
static void book_view_page_view_size_changed_cb (BookView* self, PageView* page);
PageView* page_view_new (Page* page);
PageView* page_view_construct (GType object_type, Page* page);
static void _book_view_page_view_changed_cb_page_view_changed (PageView* _sender, gpointer self);
static void _book_view_page_view_size_changed_cb_page_view_size_changed (PageView* _sender, gpointer self);
static void book_view_set_selected_page (BookView* self, PageView* page);
void page_view_set_selected (PageView* self, gboolean selected);
static void book_view_set_x_offset (BookView* self, gint offset);
static gint book_view_get_x_offset (BookView* self);
static void book_view_show_page_view (BookView* self, PageView* page);
gint page_view_get_x_offset (PageView* self);
gint page_view_get_width (PageView* self);
static void book_view_select_page_view (BookView* self, PageView* page);
Page* book_view_get_selected (BookView* self);
Book* book_view_get_book (BookView* self);
static void book_view_layout_into (BookView* self, gint width, gint height, gint* book_width, gint* book_height);
gint page_get_dpi (Page* self);
gint page_get_width (Page* self);
gint page_get_height (Page* self);
void page_view_set_width (PageView* self, gint width);
void page_view_set_height (PageView* self, gint height);
gint page_view_get_height (PageView* self);
void page_view_set_x_offset (PageView* self, gint offset);
void page_view_set_y_offset (PageView* self, gint offset);
static void book_view_layout (BookView* self);
void page_view_render (PageView* self, cairo_t* context);
gboolean page_view_get_selected (PageView* self);
gint page_view_get_y_offset (PageView* self);
static PageView* book_view_get_page_at (BookView* self, gint x, gint y, gint* x_, gint* y_);
void page_view_button_press (PageView* self, gint x, gint y);
void page_view_button_release (PageView* self, gint x, gint y);
static void book_view_set_cursor (BookView* self, GdkCursorType cursor);
void page_view_motion (PageView* self, gint x, gint y);
GdkCursorType page_view_get_cursor (PageView* self);
void book_view_select_next_page (BookView* self);
void book_view_select_prev_page (BookView* self);
static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
static void book_view_finalize (GObject* obj);


static void _book_view_add_cb_book_page_added (Book* _sender, Page* page, gpointer self) {
#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_add_cb (self, _sender, page);
#line 204 "book-view.c"
}


static void _book_view_remove_cb_book_page_removed (Book* _sender, Page* page, gpointer self) {
#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_remove_cb (self, _sender, page);
#line 211 "book-view.c"
}


static void _book_view_reorder_cb_book_reordered (Book* _sender, gpointer self) {
#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_reorder_cb (self, _sender);
#line 218 "book-view.c"
}


static void _book_view_clear_cb_book_cleared (Book* _sender, gpointer self) {
#line 93 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_clear_cb (self, _sender);
#line 225 "book-view.c"
}


static gboolean _book_view_configure_cb_gtk_widget_configure_event (GtkWidget* _sender, GdkEventConfigure* event, gpointer self) {
	gboolean result;
	result = book_view_configure_cb (self, _sender, event);
#line 94 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 234 "book-view.c"
}


static gboolean _book_view_draw_cb_gtk_widget_draw (GtkWidget* _sender, cairo_t* cr, gpointer self) {
	gboolean result;
	result = book_view_draw_cb (self, _sender, cr);
#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 243 "book-view.c"
}


static gboolean _book_view_motion_cb_gtk_widget_motion_notify_event (GtkWidget* _sender, GdkEventMotion* event, gpointer self) {
	gboolean result;
	result = book_view_motion_cb (self, _sender, event);
#line 96 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 252 "book-view.c"
}


static gboolean _book_view_key_cb_gtk_widget_key_press_event (GtkWidget* _sender, GdkEventKey* event, gpointer self) {
	gboolean result;
	result = book_view_key_cb (self, _sender, event);
#line 97 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 261 "book-view.c"
}


static gboolean _book_view_button_cb_gtk_widget_button_press_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = book_view_button_cb (self, _sender, event);
#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 270 "book-view.c"
}


static gboolean _book_view_button_cb_gtk_widget_button_release_event (GtkWidget* _sender, GdkEventButton* event, gpointer self) {
	gboolean result;
	result = book_view_button_cb (self, _sender, event);
#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 279 "book-view.c"
}


static gboolean _book_view_focus_cb_gtk_widget_focus_in_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
	gboolean result;
	result = book_view_focus_cb (self, _sender, event);
#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 288 "book-view.c"
}


static gboolean _book_view_focus_cb_gtk_widget_focus_out_event (GtkWidget* _sender, GdkEventFocus* event, gpointer self) {
	gboolean result;
	result = book_view_focus_cb (self, _sender, event);
#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 297 "book-view.c"
}


static void _book_view_scroll_cb_gtk_adjustment_value_changed (GtkAdjustment* _sender, gpointer self) {
#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_scroll_cb (self, _sender);
#line 304 "book-view.c"
}


static gpointer _book_ref0 (gpointer self) {
#line 44 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return self ? book_ref (self) : NULL;
#line 311 "book-view.c"
}


static void _page_unref0_ (gpointer var) {
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	(var == NULL) ? NULL : (var = (page_unref (var), NULL));
#line 318 "book-view.c"
}


static void _page_view_unref0_ (gpointer var) {
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	(var == NULL) ? NULL : (var = (page_view_unref (var), NULL));
#line 325 "book-view.c"
}


static gpointer _g_object_ref0 (gpointer self) {
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return self ? g_object_ref (self) : NULL;
#line 332 "book-view.c"
}


BookView* book_view_construct (GType object_type, Book* book) {
	BookView * self = NULL;
	Book* _tmp0_;
	Book* _tmp1_;
	Book* _tmp13_;
	Page* _tmp14_ = NULL;
	Page* _tmp15_;
	Book* _tmp16_;
	Book* _tmp17_;
	Book* _tmp18_;
	Book* _tmp19_;
	GHashFunc _tmp20_;
	GEqualFunc _tmp21_;
	GHashTable* _tmp22_;
	GtkDrawingArea* _tmp23_;
	GtkWidget* _tmp24_;
	GtkWidget* _tmp25_;
	GtkWidget* _tmp26_;
	GtkWidget* _tmp27_;
	GtkScrollbar* _tmp28_;
	GtkScrollbar* _tmp29_;
	GtkAdjustment* _tmp30_ = NULL;
	GtkAdjustment* _tmp31_;
	GtkScrollbar* _tmp32_;
	GtkWidget* _tmp33_;
	GtkWidget* _tmp34_;
	GtkWidget* _tmp35_;
	GtkWidget* _tmp36_;
	GtkWidget* _tmp37_;
	GtkWidget* _tmp38_;
	GtkWidget* _tmp39_;
	GtkWidget* _tmp40_;
	GtkAdjustment* _tmp41_;
	GtkWidget* _tmp42_;
#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (book != NULL, NULL);
#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self = (BookView*) g_object_new (object_type, NULL);
#line 44 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = book;
#line 44 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _book_ref0 (_tmp0_);
#line 44 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_book_unref0 (self->priv->book);
#line 44 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->book = _tmp1_;
#line 382 "book-view.c"
	{
		gint i;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 387 "book-view.c"
		{
			gboolean _tmp2_;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp2_ = TRUE;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 394 "book-view.c"
				gboolean _tmp3_;
				gint _tmp5_;
				Book* _tmp6_;
				guint _tmp7_ = 0U;
				Book* _tmp8_;
				gint _tmp9_;
				Page* _tmp10_ = NULL;
				Page* page;
				Book* _tmp11_;
				Page* _tmp12_;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp3_ = _tmp2_;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp3_) {
#line 409 "book-view.c"
					gint _tmp4_;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp4_ = i;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp4_ + 1;
#line 415 "book-view.c"
				}
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp2_ = FALSE;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp5_ = i;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp6_ = book;
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = book_get_n_pages (_tmp6_);
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp5_) < _tmp7_)) {
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 429 "book-view.c"
				}
#line 49 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = book;
#line 49 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp9_ = i;
#line 49 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = book_get_page (_tmp8_, _tmp9_);
#line 49 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp10_;
#line 50 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = book;
#line 50 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp12_ = page;
#line 50 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				book_view_add_cb (self, _tmp11_, _tmp12_);
#line 47 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (page);
#line 447 "book-view.c"
			}
		}
	}
#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp13_ = book;
#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = book_get_page (_tmp13_, 0);
#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp15_ = _tmp14_;
#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_select_page (self, _tmp15_);
#line 53 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_unref0 (_tmp15_);
#line 56 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp16_ = book;
#line 56 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp16_, "page-added", (GCallback) _book_view_add_cb_book_page_added, self, 0);
#line 57 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp17_ = book;
#line 57 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp17_, "page-removed", (GCallback) _book_view_remove_cb_book_page_removed, self, 0);
#line 58 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp18_ = book;
#line 58 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp18_, "reordered", (GCallback) _book_view_reorder_cb_book_reordered, self, 0);
#line 59 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp19_ = book;
#line 59 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp19_, "cleared", (GCallback) _book_view_clear_cb_book_cleared, self, 0);
#line 61 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp20_ = g_direct_hash;
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp21_ = g_direct_equal;
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp22_ = g_hash_table_new_full (_tmp20_, _tmp21_, _page_unref0_, _page_view_unref0_);
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_hash_table_unref0 (self->priv->page_data);
#line 62 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->page_data = _tmp22_;
#line 63 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->cursor = GDK_ARROW;
#line 65 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp23_ = (GtkDrawingArea*) gtk_drawing_area_new ();
#line 65 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_object_ref_sink (_tmp23_);
#line 65 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->drawing_area);
#line 65 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->drawing_area = (GtkWidget*) _tmp23_;
#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp24_ = self->priv->drawing_area;
#line 66 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_set_size_request (_tmp24_, 200, 100);
#line 67 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp25_ = self->priv->drawing_area;
#line 67 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_set_can_focus (_tmp25_, TRUE);
#line 68 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp26_ = self->priv->drawing_area;
#line 68 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_set_events (_tmp26_, (gint) (((((GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK) | GDK_BUTTON_RELEASE_MASK) | GDK_FOCUS_CHANGE_MASK) | GDK_STRUCTURE_MASK) | GDK_SCROLL_MASK));
#line 69 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp27_ = self->priv->drawing_area;
#line 69 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_box_pack_start ((GtkBox*) self, _tmp27_, TRUE, TRUE, (guint) 0);
#line 71 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp28_ = (GtkScrollbar*) gtk_scrollbar_new (GTK_ORIENTATION_HORIZONTAL, NULL);
#line 71 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_object_ref_sink (_tmp28_);
#line 71 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->scroll);
#line 71 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->scroll = _tmp28_;
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp29_ = self->priv->scroll;
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp30_ = gtk_range_get_adjustment ((GtkRange*) _tmp29_);
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp31_ = _g_object_ref0 (_tmp30_);
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->adjustment);
#line 72 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->adjustment = _tmp31_;
#line 73 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp32_ = self->priv->scroll;
#line 73 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_box_pack_start ((GtkBox*) self, (GtkWidget*) _tmp32_, FALSE, TRUE, (guint) 0);
#line 75 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp33_ = self->priv->drawing_area;
#line 75 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp33_, "configure-event", (GCallback) _book_view_configure_cb_gtk_widget_configure_event, self, 0);
#line 76 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp34_ = self->priv->drawing_area;
#line 76 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp34_, "draw", (GCallback) _book_view_draw_cb_gtk_widget_draw, self, 0);
#line 77 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp35_ = self->priv->drawing_area;
#line 77 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp35_, "motion-notify-event", (GCallback) _book_view_motion_cb_gtk_widget_motion_notify_event, self, 0);
#line 78 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp36_ = self->priv->drawing_area;
#line 78 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp36_, "key-press-event", (GCallback) _book_view_key_cb_gtk_widget_key_press_event, self, 0);
#line 79 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp37_ = self->priv->drawing_area;
#line 79 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp37_, "button-press-event", (GCallback) _book_view_button_cb_gtk_widget_button_press_event, self, 0);
#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp38_ = self->priv->drawing_area;
#line 80 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp38_, "button-release-event", (GCallback) _book_view_button_cb_gtk_widget_button_release_event, self, 0);
#line 81 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp39_ = self->priv->drawing_area;
#line 81 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp39_, "focus-in-event", (GCallback) _book_view_focus_cb_gtk_widget_focus_in_event, self, G_CONNECT_AFTER);
#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp40_ = self->priv->drawing_area;
#line 82 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp40_, "focus-out-event", (GCallback) _book_view_focus_cb_gtk_widget_focus_out_event, self, G_CONNECT_AFTER);
#line 83 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp41_ = self->priv->adjustment;
#line 83 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (_tmp41_, "value-changed", (GCallback) _book_view_scroll_cb_gtk_adjustment_value_changed, self, 0);
#line 85 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp42_ = self->priv->drawing_area;
#line 85 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_show (_tmp42_);
#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return self;
#line 579 "book-view.c"
}


BookView* book_view_new (Book* book) {
#line 42 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return book_view_construct (TYPE_BOOK_VIEW, book);
#line 586 "book-view.c"
}


static gpointer _page_view_ref0 (gpointer self) {
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return self ? page_view_ref (self) : NULL;
#line 593 "book-view.c"
}


static PageView* book_view_get_nth_page (BookView* self, gint n) {
	PageView* result = NULL;
	Book* _tmp0_;
	gint _tmp1_;
	Page* _tmp2_ = NULL;
	Page* page;
	GHashTable* _tmp3_;
	gconstpointer _tmp4_ = NULL;
	PageView* _tmp5_;
#line 105 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 107 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->book;
#line 107 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = n;
#line 107 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = book_get_page (_tmp0_, _tmp1_);
#line 107 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	page = _tmp2_;
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = self->priv->page_data;
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = g_hash_table_lookup (_tmp3_, page);
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = _page_view_ref0 ((PageView*) _tmp4_);
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = _tmp5_;
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_unref0 (page);
#line 108 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 628 "book-view.c"
}


static PageView* book_view_get_next_page (BookView* self, PageView* page) {
	PageView* result = NULL;
	PageView* _tmp20_;
	PageView* _tmp21_;
#line 111 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 111 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (page != NULL, NULL);
#line 640 "book-view.c"
	{
		gint i;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 645 "book-view.c"
		{
			gboolean _tmp0_;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp0_ = TRUE;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 652 "book-view.c"
				gboolean _tmp1_;
				Book* _tmp3_;
				gint _tmp4_;
				Page* _tmp5_ = NULL;
				Page* p;
				Page* _tmp6_;
				Page* _tmp7_;
				PageView* _tmp8_;
				Page* _tmp9_ = NULL;
				Page* _tmp10_;
				gboolean _tmp11_;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp1_ = _tmp0_;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp1_) {
#line 668 "book-view.c"
					gint _tmp2_;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp2_ = i;
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp2_ + 1;
#line 674 "book-view.c"
				}
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp0_ = FALSE;
#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp3_ = self->priv->book;
#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp4_ = i;
#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp5_ = book_get_page (_tmp3_, _tmp4_);
#line 115 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				p = _tmp5_;
#line 116 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp6_ = p;
#line 116 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp6_ == NULL) {
#line 117 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_unref0 (p);
#line 117 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 694 "book-view.c"
				}
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = p;
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = page;
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp9_ = page_view_get_page (_tmp8_);
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = _tmp9_;
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = _tmp7_ == _tmp10_;
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (_tmp10_);
#line 118 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp11_) {
#line 710 "book-view.c"
					Book* _tmp12_;
					gint _tmp13_;
					Page* _tmp14_ = NULL;
					Page* _tmp15_;
#line 120 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp12_ = self->priv->book;
#line 120 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp13_ = i;
#line 120 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp14_ = book_get_page (_tmp12_, _tmp13_ + 1);
#line 120 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_unref0 (p);
#line 120 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					p = _tmp14_;
#line 121 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp15_ = p;
#line 121 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					if (_tmp15_ != NULL) {
#line 729 "book-view.c"
						GHashTable* _tmp16_;
						Page* _tmp17_;
						gconstpointer _tmp18_ = NULL;
						PageView* _tmp19_;
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						_tmp16_ = self->priv->page_data;
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						_tmp17_ = p;
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						_tmp18_ = g_hash_table_lookup (_tmp16_, _tmp17_);
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						_tmp19_ = _page_view_ref0 ((PageView*) _tmp18_);
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						result = _tmp19_;
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						_page_unref0 (p);
#line 122 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						return result;
#line 748 "book-view.c"
					}
				}
#line 113 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (p);
#line 753 "book-view.c"
			}
		}
	}
#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp20_ = page;
#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp21_ = _page_view_ref0 (_tmp20_);
#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = _tmp21_;
#line 126 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 765 "book-view.c"
}


static PageView* book_view_get_prev_page (BookView* self, PageView* page) {
	PageView* result = NULL;
	PageView* _tmp0_;
	PageView* _tmp1_;
	PageView* prev_page;
	PageView* _tmp18_;
	PageView* _tmp19_;
#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 129 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (page != NULL, NULL);
#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = page;
#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _page_view_ref0 (_tmp0_);
#line 131 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	prev_page = _tmp1_;
#line 786 "book-view.c"
	{
		gint i;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 791 "book-view.c"
		{
			gboolean _tmp2_;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp2_ = TRUE;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 798 "book-view.c"
				gboolean _tmp3_;
				Book* _tmp5_;
				gint _tmp6_;
				Page* _tmp7_ = NULL;
				Page* p;
				Page* _tmp8_;
				Page* _tmp9_;
				PageView* _tmp10_;
				Page* _tmp11_ = NULL;
				Page* _tmp12_;
				gboolean _tmp13_;
				GHashTable* _tmp14_;
				Page* _tmp15_;
				gconstpointer _tmp16_ = NULL;
				PageView* _tmp17_;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp3_ = _tmp2_;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp3_) {
#line 818 "book-view.c"
					gint _tmp4_;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp4_ = i;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp4_ + 1;
#line 824 "book-view.c"
				}
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp2_ = FALSE;
#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp5_ = self->priv->book;
#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp6_ = i;
#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = book_get_page (_tmp5_, _tmp6_);
#line 134 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				p = _tmp7_;
#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = p;
#line 135 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp8_ == NULL) {
#line 136 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_unref0 (p);
#line 136 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 844 "book-view.c"
				}
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp9_ = p;
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = page;
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = page_view_get_page (_tmp10_);
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp12_ = _tmp11_;
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp13_ = _tmp9_ == _tmp12_;
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (_tmp12_);
#line 137 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp13_) {
#line 138 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					result = prev_page;
#line 138 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_unref0 (p);
#line 138 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					return result;
#line 866 "book-view.c"
				}
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp14_ = self->priv->page_data;
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp15_ = p;
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp16_ = g_hash_table_lookup (_tmp14_, _tmp15_);
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp17_ = _page_view_ref0 ((PageView*) _tmp16_);
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_view_unref0 (prev_page);
#line 139 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				prev_page = _tmp17_;
#line 132 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (p);
#line 882 "book-view.c"
			}
		}
	}
#line 142 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp18_ = page;
#line 142 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp19_ = _page_view_ref0 (_tmp18_);
#line 142 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = _tmp19_;
#line 142 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (prev_page);
#line 142 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 896 "book-view.c"
}


static void book_view_page_view_changed_cb (BookView* self, PageView* page) {
#line 145 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 145 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (page != NULL);
#line 147 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 907 "book-view.c"
}


static void book_view_page_view_size_changed_cb (BookView* self, PageView* page) {
#line 150 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 150 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (page != NULL);
#line 152 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 153 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 920 "book-view.c"
}


static void _book_view_page_view_changed_cb_page_view_changed (PageView* _sender, gpointer self) {
#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_page_view_changed_cb (self, _sender);
#line 927 "book-view.c"
}


static void _book_view_page_view_size_changed_cb_page_view_size_changed (PageView* _sender, gpointer self) {
#line 160 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_page_view_size_changed_cb (self, _sender);
#line 934 "book-view.c"
}


static gpointer _page_ref0 (gpointer self) {
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return self ? page_ref (self) : NULL;
#line 941 "book-view.c"
}


static void book_view_add_cb (BookView* self, Book* book, Page* page) {
	Page* _tmp0_;
	PageView* _tmp1_;
	PageView* page_view;
	GHashTable* _tmp2_;
	Page* _tmp3_;
	Page* _tmp4_;
	PageView* _tmp5_;
#line 156 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 156 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (book != NULL);
#line 156 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (page != NULL);
#line 158 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = page;
#line 158 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = page_view_new (_tmp0_);
#line 158 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	page_view = _tmp1_;
#line 159 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (page_view, "changed", (GCallback) _book_view_page_view_changed_cb_page_view_changed, self, 0);
#line 160 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_connect_object (page_view, "size-changed", (GCallback) _book_view_page_view_size_changed_cb_page_view_size_changed, self, 0);
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = self->priv->page_data;
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = page;
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = _page_ref0 (_tmp3_);
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = _page_view_ref0 (page_view);
#line 161 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_hash_table_insert (_tmp2_, _tmp4_, _tmp5_);
#line 162 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 163 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 156 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (page_view);
#line 985 "book-view.c"
}


static void book_view_set_selected_page (BookView* self, PageView* page) {
	gboolean _tmp0_ = FALSE;
	PageView* _tmp1_;
	gboolean _tmp4_;
	PageView* _tmp6_;
	PageView* _tmp7_;
	PageView* _tmp8_;
	GtkWidget* _tmp9_;
	gboolean _tmp10_ = FALSE;
	gboolean _tmp11_;
#line 166 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = self->priv->selected_page;
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp1_ != NULL) {
#line 1005 "book-view.c"
		PageView* _tmp2_;
		PageView* _tmp3_;
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp2_ = page;
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp3_ = self->priv->selected_page;
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = _tmp2_ != _tmp3_;
#line 1014 "book-view.c"
	} else {
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = FALSE;
#line 1018 "book-view.c"
	}
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = _tmp0_;
#line 169 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp4_) {
#line 1024 "book-view.c"
		PageView* _tmp5_;
#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp5_ = self->priv->selected_page;
#line 170 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		page_view_set_selected (_tmp5_, FALSE);
#line 1030 "book-view.c"
	}
#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp6_ = page;
#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp7_ = _page_view_ref0 (_tmp6_);
#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (self->priv->selected_page);
#line 172 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->selected_page = _tmp7_;
#line 173 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp8_ = self->priv->selected_page;
#line 173 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp8_ == NULL) {
#line 174 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 1046 "book-view.c"
	}
#line 177 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp9_ = self->priv->drawing_area;
#line 177 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_object_get (_tmp9_, "has-focus", &_tmp10_, NULL);
#line 177 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp11_ = _tmp10_;
#line 177 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (!_tmp11_) {
#line 1056 "book-view.c"
		PageView* _tmp12_;
#line 178 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp12_ = self->priv->selected_page;
#line 178 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		page_view_set_selected (_tmp12_, FALSE);
#line 1062 "book-view.c"
	} else {
		PageView* _tmp13_;
#line 180 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp13_ = self->priv->selected_page;
#line 180 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		page_view_set_selected (_tmp13_, TRUE);
#line 1069 "book-view.c"
	}
}


static void book_view_set_x_offset (BookView* self, gint offset) {
	GtkAdjustment* _tmp0_;
	gint _tmp1_;
#line 183 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 185 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->adjustment;
#line 185 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = offset;
#line 185 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_adjustment_set_value (_tmp0_, (gdouble) _tmp1_);
#line 1085 "book-view.c"
}


static gint book_view_get_x_offset (BookView* self) {
	gint result = 0;
	GtkAdjustment* _tmp0_;
	gdouble _tmp1_ = 0.0;
#line 188 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, 0);
#line 190 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->adjustment;
#line 190 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = gtk_adjustment_get_value (_tmp0_);
#line 190 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = (gint) _tmp1_;
#line 190 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 1103 "book-view.c"
}


static void book_view_show_page_view (BookView* self, PageView* page) {
	gboolean _tmp0_ = FALSE;
	PageView* _tmp1_;
	gboolean _tmp4_;
	GtkAllocation allocation = {0};
	GtkWidget* _tmp5_;
	GtkAllocation _tmp6_ = {0};
	PageView* _tmp7_;
	gint _tmp8_ = 0;
	gint left_edge;
	PageView* _tmp9_;
	gint _tmp10_ = 0;
	PageView* _tmp11_;
	gint _tmp12_ = 0;
	gint right_edge;
	gint _tmp13_;
	gint _tmp14_ = 0;
#line 193 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = page;
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp1_ == NULL) {
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = TRUE;
#line 1132 "book-view.c"
	} else {
		GtkScrollbar* _tmp2_;
		gboolean _tmp3_ = FALSE;
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp2_ = self->priv->scroll;
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp3_ = gtk_widget_get_visible ((GtkWidget*) _tmp2_);
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = !_tmp3_;
#line 1142 "book-view.c"
	}
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = _tmp0_;
#line 195 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp4_) {
#line 196 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 1150 "book-view.c"
	}
#line 199 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = self->priv->drawing_area;
#line 199 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_get_allocation (_tmp5_, &_tmp6_);
#line 199 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	allocation = _tmp6_;
#line 200 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp7_ = page;
#line 200 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp8_ = page_view_get_x_offset (_tmp7_);
#line 200 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	left_edge = _tmp8_;
#line 201 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp9_ = page;
#line 201 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp10_ = page_view_get_x_offset (_tmp9_);
#line 201 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp11_ = page;
#line 201 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp12_ = page_view_get_width (_tmp11_);
#line 201 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	right_edge = _tmp10_ + _tmp12_;
#line 203 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp13_ = left_edge;
#line 203 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = book_view_get_x_offset (self);
#line 203 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if ((_tmp13_ - _tmp14_) < 0) {
#line 1180 "book-view.c"
		gint _tmp15_;
#line 204 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp15_ = left_edge;
#line 204 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_set_x_offset (self, _tmp15_);
#line 1186 "book-view.c"
	} else {
		gint _tmp16_;
		gint _tmp17_ = 0;
		GtkAllocation _tmp18_;
		gint _tmp19_;
#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp16_ = right_edge;
#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp17_ = book_view_get_x_offset (self);
#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp18_ = allocation;
#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp19_ = _tmp18_.width;
#line 205 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if ((_tmp16_ - _tmp17_) > _tmp19_) {
#line 1202 "book-view.c"
			gint _tmp20_;
			GtkAllocation _tmp21_;
			gint _tmp22_;
#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp20_ = right_edge;
#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp21_ = allocation;
#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp22_ = _tmp21_.width;
#line 206 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_set_x_offset (self, _tmp20_ - _tmp22_);
#line 1214 "book-view.c"
		}
	}
}


static void book_view_select_page_view (BookView* self, PageView* page) {
	Page* p;
	PageView* _tmp0_;
	PageView* _tmp1_;
	PageView* _tmp2_;
	gboolean _tmp3_;
	PageView* _tmp5_;
	Page* _tmp8_;
#line 209 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 211 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	p = NULL;
#line 213 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 213 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = page;
#line 213 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp0_ == _tmp1_) {
#line 214 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_unref0 (p);
#line 214 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 1242 "book-view.c"
	}
#line 216 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = page;
#line 216 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_set_selected_page (self, _tmp2_);
#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = self->priv->need_layout;
#line 218 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp3_) {
#line 219 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		self->priv->show_selected_page = TRUE;
#line 1254 "book-view.c"
	} else {
		PageView* _tmp4_;
#line 221 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp4_ = page;
#line 221 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_show_page_view (self, _tmp4_);
#line 1261 "book-view.c"
	}
#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = page;
#line 223 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp5_ != NULL) {
#line 1267 "book-view.c"
		PageView* _tmp6_;
		Page* _tmp7_ = NULL;
#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp6_ = page;
#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp7_ = page_view_get_page (_tmp6_);
#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_unref0 (p);
#line 224 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		p = _tmp7_;
#line 1278 "book-view.c"
	}
#line 225 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp8_ = p;
#line 225 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_emit_by_name (self, "page-selected", _tmp8_);
#line 209 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_unref0 (p);
#line 1286 "book-view.c"
}


static void book_view_remove_cb (BookView* self, Book* book, Page* page) {
	PageView* _tmp0_;
	PageView* _tmp1_;
	PageView* new_selection;
	Page* _tmp2_;
	Page* _tmp3_ = NULL;
	Page* _tmp4_;
	gboolean _tmp5_;
	GHashTable* _tmp12_;
	Page* _tmp13_;
	gconstpointer _tmp14_ = NULL;
	PageView* _tmp15_;
	PageView* page_view;
	guint _tmp16_ = 0U;
	guint _tmp17_ = 0U;
	GHashTable* _tmp18_;
	Page* _tmp19_;
	PageView* _tmp20_;
#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (book != NULL);
#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (page != NULL);
#line 230 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 230 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _page_view_ref0 (_tmp0_);
#line 230 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	new_selection = _tmp1_;
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = page;
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = book_view_get_selected (self);
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = _tmp3_;
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = _tmp2_ == _tmp4_;
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_unref0 (_tmp4_);
#line 233 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp5_) {
#line 1332 "book-view.c"
		PageView* _tmp6_;
		PageView* _tmp7_ = NULL;
		PageView* _tmp8_;
		PageView* _tmp9_;
#line 235 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp6_ = self->priv->selected_page;
#line 235 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp7_ = book_view_get_prev_page (self, _tmp6_);
#line 235 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_view_unref0 (new_selection);
#line 235 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		new_selection = _tmp7_;
#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp8_ = new_selection;
#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp9_ = self->priv->selected_page;
#line 236 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if (_tmp8_ == _tmp9_) {
#line 1351 "book-view.c"
			PageView* _tmp10_;
			PageView* _tmp11_ = NULL;
#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp10_ = self->priv->selected_page;
#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp11_ = book_view_get_next_page (self, _tmp10_);
#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_page_view_unref0 (new_selection);
#line 237 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			new_selection = _tmp11_;
#line 1362 "book-view.c"
		}
#line 238 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_view_unref0 (self->priv->selected_page);
#line 238 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		self->priv->selected_page = NULL;
#line 1368 "book-view.c"
	}
#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp12_ = self->priv->page_data;
#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp13_ = page;
#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = g_hash_table_lookup (_tmp12_, _tmp13_);
#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp15_ = _page_view_ref0 ((PageView*) _tmp14_);
#line 241 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	page_view = _tmp15_;
#line 242 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("changed", TYPE_PAGE_VIEW, &_tmp16_, NULL, FALSE);
#line 242 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (page_view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp16_, 0, NULL, (GCallback) _book_view_page_view_changed_cb_page_view_changed, self);
#line 243 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("size-changed", TYPE_PAGE_VIEW, &_tmp17_, NULL, FALSE);
#line 243 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (page_view, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _book_view_page_view_size_changed_cb_page_view_size_changed, self);
#line 244 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp18_ = self->priv->page_data;
#line 244 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp19_ = page;
#line 244 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_hash_table_remove (_tmp18_, _tmp19_);
#line 246 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp20_ = new_selection;
#line 246 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_select_page_view (self, _tmp20_);
#line 248 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 249 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (page_view);
#line 228 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (new_selection);
#line 1406 "book-view.c"
}


static void book_view_reorder_cb (BookView* self, Book* book) {
#line 252 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 252 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (book != NULL);
#line 254 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 255 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 1419 "book-view.c"
}


static void book_view_clear_cb (BookView* self, Book* book) {
	GHashTable* _tmp0_;
#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 258 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (book != NULL);
#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->page_data;
#line 260 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_hash_table_remove_all (_tmp0_);
#line 261 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (self->priv->selected_page);
#line 261 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->selected_page = NULL;
#line 262 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_emit_by_name (self, "page-selected", NULL);
#line 263 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 264 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_redraw (self);
#line 1443 "book-view.c"
}


Book* book_view_get_book (BookView* self) {
	Book* result = NULL;
	Book* _tmp0_;
	Book* _tmp1_;
#line 267 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->book;
#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _book_ref0 (_tmp0_);
#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = _tmp1_;
#line 269 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 1461 "book-view.c"
}


static gboolean book_view_configure_cb (BookView* self, GtkWidget* widget, GdkEventConfigure* event) {
	gboolean result = FALSE;
#line 272 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 272 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 272 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 274 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = TRUE;
#line 275 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = FALSE;
#line 275 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 1479 "book-view.c"
}


static void book_view_layout_into (BookView* self, gint width, gint height, gint* book_width, gint* book_height) {
	gint _vala_book_width = 0;
	gint _vala_book_height = 0;
	gint max_dpi;
	gint max_width;
	gint max_height;
	gint _tmp41_;
	gint _tmp42_;
	gdouble aspect;
	gint _tmp43_;
	gint _tmp44_;
	gdouble max_aspect;
	gint spacing;
	gint x_offset;
#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 281 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	max_dpi = 0;
#line 1501 "book-view.c"
	{
		gint i;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 1506 "book-view.c"
		{
			gboolean _tmp0_;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp0_ = TRUE;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 1513 "book-view.c"
				gboolean _tmp1_;
				gint _tmp3_;
				Book* _tmp4_;
				guint _tmp5_ = 0U;
				Book* _tmp6_;
				gint _tmp7_;
				Page* _tmp8_ = NULL;
				Page* page;
				Page* _tmp9_;
				gint _tmp10_ = 0;
				gint _tmp11_;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp1_ = _tmp0_;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp1_) {
#line 1529 "book-view.c"
					gint _tmp2_;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp2_ = i;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp2_ + 1;
#line 1535 "book-view.c"
				}
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp0_ = FALSE;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp3_ = i;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp4_ = self->priv->book;
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp5_ = book_get_n_pages (_tmp4_);
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp3_) < _tmp5_)) {
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 1549 "book-view.c"
				}
#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp6_ = self->priv->book;
#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = i;
#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = book_get_page (_tmp6_, _tmp7_);
#line 284 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp8_;
#line 285 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp9_ = page;
#line 285 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = page_get_dpi (_tmp9_);
#line 285 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = max_dpi;
#line 285 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp10_ > _tmp11_) {
#line 1567 "book-view.c"
					Page* _tmp12_;
					gint _tmp13_ = 0;
#line 286 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp12_ = page;
#line 286 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp13_ = page_get_dpi (_tmp12_);
#line 286 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					max_dpi = _tmp13_;
#line 1576 "book-view.c"
				}
#line 282 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (page);
#line 1580 "book-view.c"
			}
		}
	}
#line 290 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	max_width = 0;
#line 290 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	max_height = 0;
#line 1588 "book-view.c"
	{
		gint i;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 1593 "book-view.c"
		{
			gboolean _tmp14_;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp14_ = TRUE;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 1600 "book-view.c"
				gboolean _tmp15_;
				gint _tmp17_;
				Book* _tmp18_;
				guint _tmp19_ = 0U;
				Book* _tmp20_;
				gint _tmp21_;
				Page* _tmp22_ = NULL;
				Page* page;
				Page* _tmp23_;
				gint _tmp24_ = 0;
				gint w;
				Page* _tmp25_;
				gint _tmp26_ = 0;
				gint h;
				gint _tmp27_;
				gint _tmp28_;
				Page* _tmp29_;
				gint _tmp30_ = 0;
				gint _tmp31_;
				gint _tmp32_;
				Page* _tmp33_;
				gint _tmp34_ = 0;
				gint _tmp35_;
				gint _tmp36_;
				gint _tmp38_;
				gint _tmp39_;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp15_ = _tmp14_;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp15_) {
#line 1631 "book-view.c"
					gint _tmp16_;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp16_ = i;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp16_ + 1;
#line 1637 "book-view.c"
				}
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp14_ = FALSE;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp17_ = i;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp18_ = self->priv->book;
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp19_ = book_get_n_pages (_tmp18_);
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp17_) < _tmp19_)) {
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 1651 "book-view.c"
				}
#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp20_ = self->priv->book;
#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp21_ = i;
#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp22_ = book_get_page (_tmp20_, _tmp21_);
#line 293 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp22_;
#line 294 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp23_ = page;
#line 294 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp24_ = page_get_width (_tmp23_);
#line 294 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				w = _tmp24_;
#line 295 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp25_ = page;
#line 295 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp26_ = page_get_height (_tmp25_);
#line 295 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				h = _tmp26_;
#line 298 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp27_ = w;
#line 298 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp28_ = max_dpi;
#line 298 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp29_ = page;
#line 298 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp30_ = page_get_dpi (_tmp29_);
#line 298 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				w = (gint) (((((gdouble) _tmp27_) * _tmp28_) / _tmp30_) + 0.5);
#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp31_ = h;
#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp32_ = max_dpi;
#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp33_ = page;
#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp34_ = page_get_dpi (_tmp33_);
#line 299 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				h = (gint) (((((gdouble) _tmp31_) * _tmp32_) / _tmp34_) + 0.5);
#line 301 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp35_ = w;
#line 301 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp36_ = max_width;
#line 301 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp35_ > _tmp36_) {
#line 1699 "book-view.c"
					gint _tmp37_;
#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp37_ = w;
#line 302 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					max_width = _tmp37_;
#line 1705 "book-view.c"
				}
#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp38_ = h;
#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp39_ = max_height;
#line 303 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp38_ > _tmp39_) {
#line 1713 "book-view.c"
					gint _tmp40_;
#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp40_ = h;
#line 304 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					max_height = _tmp40_;
#line 1719 "book-view.c"
				}
#line 291 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (page);
#line 1723 "book-view.c"
			}
		}
	}
#line 307 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp41_ = width;
#line 307 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp42_ = height;
#line 307 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	aspect = ((gdouble) _tmp41_) / _tmp42_;
#line 308 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp43_ = max_width;
#line 308 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp44_ = max_height;
#line 308 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	max_aspect = ((gdouble) _tmp43_) / _tmp44_;
#line 311 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	spacing = 12;
#line 312 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_vala_book_width = 0;
#line 313 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_vala_book_height = 0;
#line 1745 "book-view.c"
	{
		gint i;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 1750 "book-view.c"
		{
			gboolean _tmp45_;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp45_ = TRUE;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 1757 "book-view.c"
				gboolean _tmp46_;
				gint _tmp48_;
				Book* _tmp49_;
				guint _tmp50_ = 0U;
				gint _tmp51_;
				PageView* _tmp52_ = NULL;
				PageView* page;
				PageView* _tmp53_;
				Page* _tmp54_ = NULL;
				Page* p;
				gdouble _tmp55_;
				gdouble _tmp56_;
				PageView* _tmp75_;
				gint _tmp76_ = 0;
				gint h;
				gint _tmp77_;
				gint _tmp78_;
				gint _tmp80_;
				PageView* _tmp81_;
				gint _tmp82_ = 0;
				gint _tmp83_;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp46_ = _tmp45_;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp46_) {
#line 1783 "book-view.c"
					gint _tmp47_;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp47_ = i;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp47_ + 1;
#line 1789 "book-view.c"
				}
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp45_ = FALSE;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp48_ = i;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp49_ = self->priv->book;
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp50_ = book_get_n_pages (_tmp49_);
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp48_) < _tmp50_)) {
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 1803 "book-view.c"
				}
#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp51_ = i;
#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp52_ = book_view_get_nth_page (self, _tmp51_);
#line 316 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp52_;
#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp53_ = page;
#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp54_ = page_view_get_page (_tmp53_);
#line 317 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				p = _tmp54_;
#line 320 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp55_ = max_aspect;
#line 320 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp56_ = aspect;
#line 320 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp55_ > _tmp56_) {
#line 1823 "book-view.c"
					Page* _tmp57_;
					gint _tmp58_ = 0;
					gint _tmp59_;
					gint _tmp60_;
					Page* _tmp61_;
					gint _tmp62_ = 0;
					gint _tmp63_;
					gint w;
					PageView* _tmp64_;
					gint _tmp65_;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp57_ = p;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp58_ = page_get_width (_tmp57_);
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp59_ = max_dpi;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp60_ = width;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp61_ = p;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp62_ = page_get_dpi (_tmp61_);
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp63_ = max_width;
#line 323 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					w = (gint) (((((gdouble) _tmp58_) * _tmp59_) * _tmp60_) / (_tmp62_ * _tmp63_));
#line 324 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp64_ = page;
#line 324 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp65_ = w;
#line 324 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					page_view_set_width (_tmp64_, _tmp65_);
#line 1856 "book-view.c"
				} else {
					Page* _tmp66_;
					gint _tmp67_ = 0;
					gint _tmp68_;
					gint _tmp69_;
					Page* _tmp70_;
					gint _tmp71_ = 0;
					gint _tmp72_;
					gint h;
					PageView* _tmp73_;
					gint _tmp74_;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp66_ = p;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp67_ = page_get_height (_tmp66_);
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp68_ = max_dpi;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp69_ = height;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp70_ = p;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp71_ = page_get_dpi (_tmp70_);
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp72_ = max_height;
#line 329 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					h = (gint) (((((gdouble) _tmp67_) * _tmp68_) * _tmp69_) / (_tmp71_ * _tmp72_));
#line 330 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp73_ = page;
#line 330 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp74_ = h;
#line 330 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					page_view_set_height (_tmp73_, _tmp74_);
#line 1890 "book-view.c"
				}
#line 333 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp75_ = page;
#line 333 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp76_ = page_view_get_height (_tmp75_);
#line 333 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				h = _tmp76_;
#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp77_ = h;
#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp78_ = _vala_book_height;
#line 334 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp77_ > _tmp78_) {
#line 1904 "book-view.c"
					gint _tmp79_;
#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp79_ = h;
#line 335 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_vala_book_height = _tmp79_;
#line 1910 "book-view.c"
				}
#line 336 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp80_ = _vala_book_width;
#line 336 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp81_ = page;
#line 336 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp82_ = page_view_get_width (_tmp81_);
#line 336 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_vala_book_width = _tmp80_ + _tmp82_;
#line 337 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp83_ = i;
#line 337 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp83_ != 0) {
#line 1924 "book-view.c"
					gint _tmp84_;
					gint _tmp85_;
#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp84_ = _vala_book_width;
#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp85_ = spacing;
#line 338 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_vala_book_width = _tmp84_ + _tmp85_;
#line 1933 "book-view.c"
				}
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_unref0 (p);
#line 314 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_view_unref0 (page);
#line 1939 "book-view.c"
			}
		}
	}
#line 341 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	x_offset = 0;
#line 1945 "book-view.c"
	{
		gint i;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 1950 "book-view.c"
		{
			gboolean _tmp86_;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp86_ = TRUE;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 1957 "book-view.c"
				gboolean _tmp87_;
				gint _tmp89_;
				Book* _tmp90_;
				guint _tmp91_ = 0U;
				gint _tmp92_;
				PageView* _tmp93_ = NULL;
				PageView* page;
				PageView* _tmp94_;
				gint _tmp95_;
				gint _tmp96_;
				PageView* _tmp97_;
				gint _tmp98_ = 0;
				gint _tmp99_;
				PageView* _tmp100_;
				gint _tmp101_;
				PageView* _tmp102_;
				gint _tmp103_ = 0;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp87_ = _tmp86_;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp87_) {
#line 1979 "book-view.c"
					gint _tmp88_;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp88_ = i;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp88_ + 1;
#line 1985 "book-view.c"
				}
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp86_ = FALSE;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp89_ = i;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp90_ = self->priv->book;
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp91_ = book_get_n_pages (_tmp90_);
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp89_) < _tmp91_)) {
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 1999 "book-view.c"
				}
#line 344 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp92_ = i;
#line 344 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp93_ = book_view_get_nth_page (self, _tmp92_);
#line 344 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp93_;
#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp94_ = page;
#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp95_ = x_offset;
#line 347 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page_view_set_x_offset (_tmp94_, _tmp95_);
#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp96_ = x_offset;
#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp97_ = page;
#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp98_ = page_view_get_width (_tmp97_);
#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp99_ = spacing;
#line 348 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				x_offset = _tmp96_ + (_tmp98_ + _tmp99_);
#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp100_ = page;
#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp101_ = height;
#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp102_ = page;
#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp103_ = page_view_get_height (_tmp102_);
#line 351 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page_view_set_y_offset (_tmp100_, (_tmp101_ - _tmp103_) / 2);
#line 342 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_view_unref0 (page);
#line 2035 "book-view.c"
			}
		}
	}
#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (book_width) {
#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		*book_width = _vala_book_width;
#line 2043 "book-view.c"
	}
#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (book_height) {
#line 278 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		*book_height = _vala_book_height;
#line 2049 "book-view.c"
	}
}


static void book_view_layout (BookView* self) {
	gboolean _tmp0_;
	GtkAllocation allocation = {0};
	GtkWidget* _tmp1_;
	GtkAllocation _tmp2_ = {0};
	GtkAllocation box_allocation = {0};
	GtkAllocation _tmp3_ = {0};
	gboolean right_aligned;
	GtkAdjustment* _tmp4_;
	gdouble _tmp5_ = 0.0;
	GtkAdjustment* _tmp6_;
	gdouble _tmp7_ = 0.0;
	GtkAdjustment* _tmp8_;
	gdouble _tmp9_ = 0.0;
	GtkAllocation _tmp10_;
	gint _tmp11_;
	gint width;
	GtkAllocation _tmp12_;
	gint _tmp13_;
	guint _tmp14_ = 0U;
	gint height;
	gint book_width = 0;
	gint book_height = 0;
	gint _tmp15_;
	gint _tmp16_;
	gint _tmp17_ = 0;
	gint _tmp18_ = 0;
	gint _tmp19_;
	GtkAllocation _tmp20_;
	gint _tmp21_;
	gboolean _tmp54_;
#line 355 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 357 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->need_layout;
#line 357 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (!_tmp0_) {
#line 358 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 2093 "book-view.c"
	}
#line 360 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->laying_out = TRUE;
#line 363 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = self->priv->drawing_area;
#line 363 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_get_allocation (_tmp1_, &_tmp2_);
#line 363 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	allocation = _tmp2_;
#line 365 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_get_allocation ((GtkWidget*) self, &_tmp3_);
#line 365 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	box_allocation = _tmp3_;
#line 368 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	right_aligned = TRUE;
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = self->priv->adjustment;
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = gtk_adjustment_get_value (_tmp4_);
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp6_ = self->priv->adjustment;
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp7_ = gtk_adjustment_get_upper (_tmp6_);
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp8_ = self->priv->adjustment;
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp9_ = gtk_adjustment_get_page_size (_tmp8_);
#line 369 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp5_ < (_tmp7_ - _tmp9_)) {
#line 370 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		right_aligned = FALSE;
#line 2125 "book-view.c"
	}
#line 373 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp10_ = allocation;
#line 373 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp11_ = _tmp10_.width;
#line 373 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	width = (gint) _tmp11_;
#line 374 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp12_ = box_allocation;
#line 374 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp13_ = _tmp12_.height;
#line 374 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = gtk_container_get_border_width ((GtkContainer*) self);
#line 374 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	height = (gint) (_tmp13_ - (_tmp14_ * 2));
#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp15_ = width;
#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp16_ = height;
#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_layout_into (self, _tmp15_, _tmp16_, &_tmp17_, &_tmp18_);
#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_width = _tmp17_;
#line 376 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_height = _tmp18_;
#line 379 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp19_ = book_width;
#line 379 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp20_ = allocation;
#line 379 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp21_ = _tmp20_.width;
#line 379 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp19_ > _tmp21_) {
#line 2159 "book-view.c"
		GtkAllocation _tmp22_;
		gint _tmp23_;
		gint _tmp24_;
		gint _tmp25_;
		gint _tmp26_ = 0;
		gint _tmp27_ = 0;
		GtkAdjustment* _tmp28_;
		GtkAdjustment* _tmp29_;
		gint _tmp30_;
		GtkAdjustment* _tmp31_;
		GtkAllocation _tmp32_;
		gint _tmp33_;
		gint _tmp34_;
		GtkAllocation _tmp35_;
		gint _tmp36_;
		gint max_offset;
		gboolean _tmp37_ = FALSE;
		gboolean _tmp38_;
		gboolean _tmp41_;
		GtkScrollbar* _tmp43_;
#line 382 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp22_ = allocation;
#line 382 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp23_ = _tmp22_.height;
#line 382 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		height = _tmp23_;
#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp24_ = width;
#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp25_ = height;
#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_layout_into (self, _tmp24_, _tmp25_, &_tmp26_, &_tmp27_);
#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_width = _tmp26_;
#line 383 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_height = _tmp27_;
#line 386 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp28_ = self->priv->adjustment;
#line 386 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_lower (_tmp28_, (gdouble) 0);
#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp29_ = self->priv->adjustment;
#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp30_ = book_width;
#line 387 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_upper (_tmp29_, (gdouble) _tmp30_);
#line 388 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp31_ = self->priv->adjustment;
#line 388 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp32_ = allocation;
#line 388 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp33_ = _tmp32_.width;
#line 388 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_page_size (_tmp31_, (gdouble) _tmp33_);
#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp34_ = book_width;
#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp35_ = allocation;
#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp36_ = _tmp35_.width;
#line 391 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		max_offset = _tmp34_ - _tmp36_;
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp38_ = right_aligned;
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if (_tmp38_) {
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp37_ = TRUE;
#line 2228 "book-view.c"
		} else {
			gint _tmp39_ = 0;
			gint _tmp40_;
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp39_ = book_view_get_x_offset (self);
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp40_ = max_offset;
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp37_ = _tmp39_ > _tmp40_;
#line 2238 "book-view.c"
		}
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp41_ = _tmp37_;
#line 392 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if (_tmp41_) {
#line 2244 "book-view.c"
			gint _tmp42_;
#line 393 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp42_ = max_offset;
#line 393 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_set_x_offset (self, _tmp42_);
#line 2250 "book-view.c"
		}
#line 395 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp43_ = self->priv->scroll;
#line 395 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_widget_show ((GtkWidget*) _tmp43_);
#line 2256 "book-view.c"
	} else {
		GtkScrollbar* _tmp44_;
		gint _tmp45_;
		GtkAllocation _tmp46_;
		gint _tmp47_;
		gint offset;
		GtkAdjustment* _tmp48_;
		gint _tmp49_;
		GtkAdjustment* _tmp50_;
		gint _tmp51_;
		GtkAdjustment* _tmp52_;
		gint _tmp53_;
#line 399 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp44_ = self->priv->scroll;
#line 399 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_widget_hide ((GtkWidget*) _tmp44_);
#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp45_ = book_width;
#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp46_ = allocation;
#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp47_ = _tmp46_.width;
#line 400 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		offset = (_tmp45_ - _tmp47_) / 2;
#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp48_ = self->priv->adjustment;
#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp49_ = offset;
#line 401 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_lower (_tmp48_, (gdouble) _tmp49_);
#line 402 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp50_ = self->priv->adjustment;
#line 402 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp51_ = offset;
#line 402 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_upper (_tmp50_, (gdouble) _tmp51_);
#line 403 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp52_ = self->priv->adjustment;
#line 403 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		gtk_adjustment_set_page_size (_tmp52_, (gdouble) 0);
#line 404 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp53_ = offset;
#line 404 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_set_x_offset (self, _tmp53_);
#line 2301 "book-view.c"
	}
#line 407 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp54_ = self->priv->show_selected_page;
#line 407 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp54_) {
#line 2307 "book-view.c"
		PageView* _tmp55_;
#line 408 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp55_ = self->priv->selected_page;
#line 408 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_show_page_view (self, _tmp55_);
#line 2313 "book-view.c"
	}
#line 410 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->need_layout = FALSE;
#line 411 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->show_selected_page = FALSE;
#line 412 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->laying_out = FALSE;
#line 2321 "book-view.c"
}


static gboolean book_view_draw_cb (BookView* self, GtkWidget* widget, cairo_t* context) {
	gboolean result = FALSE;
	Book* _tmp0_;
	guint _tmp1_ = 0U;
	gdouble left = 0.0;
	gdouble top = 0.0;
	gdouble right = 0.0;
	gdouble bottom = 0.0;
	cairo_t* _tmp2_;
	gdouble _tmp3_ = 0.0;
	gdouble _tmp4_ = 0.0;
	gdouble _tmp5_ = 0.0;
	gdouble _tmp6_ = 0.0;
#line 415 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 415 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 415 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (context != NULL, FALSE);
#line 417 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->book;
#line 417 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = book_get_n_pages (_tmp0_);
#line 417 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp1_ == ((guint) 0)) {
#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		result = FALSE;
#line 418 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return result;
#line 2354 "book-view.c"
	}
#line 420 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_layout (self);
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = context;
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	cairo_clip_extents (_tmp2_, &_tmp3_, &_tmp4_, &_tmp5_, &_tmp6_);
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	left = _tmp3_;
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	top = _tmp4_;
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	right = _tmp5_;
#line 423 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	bottom = _tmp6_;
#line 2370 "book-view.c"
	{
		gint i;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 2375 "book-view.c"
		{
			gboolean _tmp7_;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp7_ = TRUE;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 2382 "book-view.c"
				gboolean _tmp8_;
				gint _tmp10_;
				Book* _tmp11_;
				guint _tmp12_ = 0U;
				gint _tmp13_;
				PageView* _tmp14_ = NULL;
				PageView* page;
				PageView* _tmp15_;
				gint _tmp16_ = 0;
				gint _tmp17_ = 0;
				gint left_edge;
				PageView* _tmp18_;
				gint _tmp19_ = 0;
				PageView* _tmp20_;
				gint _tmp21_ = 0;
				gint _tmp22_ = 0;
				gint right_edge;
				gboolean _tmp23_ = FALSE;
				gint _tmp24_;
				gdouble _tmp25_;
				gboolean _tmp28_;
				cairo_t* _tmp29_;
				cairo_t* _tmp30_;
				gint _tmp31_ = 0;
				PageView* _tmp32_;
				cairo_t* _tmp33_;
				cairo_t* _tmp34_;
				PageView* _tmp35_;
				gboolean _tmp36_ = FALSE;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = _tmp7_;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp8_) {
#line 2416 "book-view.c"
					gint _tmp9_;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp9_ = i;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp9_ + 1;
#line 2422 "book-view.c"
				}
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = FALSE;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = i;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = self->priv->book;
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp12_ = book_get_n_pages (_tmp11_);
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp10_) < _tmp12_)) {
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 2436 "book-view.c"
				}
#line 428 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp13_ = i;
#line 428 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp14_ = book_view_get_nth_page (self, _tmp13_);
#line 428 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp14_;
#line 429 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp15_ = page;
#line 429 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp16_ = page_view_get_x_offset (_tmp15_);
#line 429 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp17_ = book_view_get_x_offset (self);
#line 429 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				left_edge = _tmp16_ - _tmp17_;
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp18_ = page;
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp19_ = page_view_get_x_offset (_tmp18_);
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp20_ = page;
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp21_ = page_view_get_width (_tmp20_);
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp22_ = book_view_get_x_offset (self);
#line 430 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				right_edge = (_tmp19_ + _tmp21_) - _tmp22_;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp24_ = right_edge;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp25_ = left;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (((gdouble) _tmp24_) < _tmp25_) {
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp23_ = TRUE;
#line 2472 "book-view.c"
				} else {
					gint _tmp26_;
					gdouble _tmp27_;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp26_ = left_edge;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp27_ = right;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp23_ = ((gdouble) _tmp26_) > _tmp27_;
#line 2482 "book-view.c"
				}
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp28_ = _tmp23_;
#line 433 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp28_) {
#line 434 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_view_unref0 (page);
#line 434 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					continue;
#line 2492 "book-view.c"
				}
#line 436 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp29_ = context;
#line 436 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				cairo_save (_tmp29_);
#line 437 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp30_ = context;
#line 437 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp31_ = book_view_get_x_offset (self);
#line 437 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				cairo_translate (_tmp30_, (gdouble) (-_tmp31_), (gdouble) 0);
#line 438 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp32_ = page;
#line 438 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp33_ = context;
#line 438 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page_view_render (_tmp32_, _tmp33_);
#line 439 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp34_ = context;
#line 439 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				cairo_restore (_tmp34_);
#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp35_ = page;
#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp36_ = page_view_get_selected (_tmp35_);
#line 441 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp36_) {
#line 2520 "book-view.c"
					GtkWidget* _tmp37_;
					GtkStyleContext* _tmp38_ = NULL;
					cairo_t* _tmp39_;
					PageView* _tmp40_;
					gint _tmp41_ = 0;
					gint _tmp42_ = 0;
					PageView* _tmp43_;
					gint _tmp44_ = 0;
					PageView* _tmp45_;
					gint _tmp46_ = 0;
					PageView* _tmp47_;
					gint _tmp48_ = 0;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp37_ = self->priv->drawing_area;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp38_ = gtk_widget_get_style_context (_tmp37_);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp39_ = context;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp40_ = page;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp41_ = page_view_get_x_offset (_tmp40_);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp42_ = book_view_get_x_offset (self);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp43_ = page;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp44_ = page_view_get_y_offset (_tmp43_);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp45_ = page;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp46_ = page_view_get_width (_tmp45_);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp47_ = page;
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp48_ = page_view_get_height (_tmp47_);
#line 442 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					gtk_render_focus (_tmp38_, _tmp39_, (gdouble) (_tmp41_ - _tmp42_), (gdouble) _tmp44_, (gdouble) _tmp46_, (gdouble) _tmp48_);
#line 2559 "book-view.c"
				}
#line 426 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_view_unref0 (page);
#line 2563 "book-view.c"
			}
		}
	}
#line 449 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = FALSE;
#line 449 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 2571 "book-view.c"
}


static PageView* book_view_get_page_at (BookView* self, gint x, gint y, gint* x_, gint* y_) {
	gint _vala_x_ = 0;
	gint _vala_y_ = 0;
	PageView* result = NULL;
	gint _tmp0_;
#line 452 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 454 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_vala_y_ = 0;
#line 454 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = _vala_y_;
#line 454 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_vala_x_ = _tmp0_;
#line 2588 "book-view.c"
	{
		gint i;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		i = 0;
#line 2593 "book-view.c"
		{
			gboolean _tmp1_;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp1_ = TRUE;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			while (TRUE) {
#line 2600 "book-view.c"
				gboolean _tmp2_;
				gint _tmp4_;
				Book* _tmp5_;
				guint _tmp6_ = 0U;
				gint _tmp7_;
				PageView* _tmp8_ = NULL;
				PageView* page;
				PageView* _tmp9_;
				gint _tmp10_ = 0;
				gint left;
				gint _tmp11_;
				PageView* _tmp12_;
				gint _tmp13_ = 0;
				gint right;
				PageView* _tmp14_;
				gint _tmp15_ = 0;
				gint top;
				gint _tmp16_;
				PageView* _tmp17_;
				gint _tmp18_ = 0;
				gint bottom;
				gboolean _tmp19_ = FALSE;
				gboolean _tmp20_ = FALSE;
				gboolean _tmp21_ = FALSE;
				gint _tmp22_;
				gint _tmp23_;
				gboolean _tmp26_;
				gboolean _tmp29_;
				gboolean _tmp32_;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp2_ = _tmp1_;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!_tmp2_) {
#line 2634 "book-view.c"
					gint _tmp3_;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp3_ = i;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					i = _tmp3_ + 1;
#line 2640 "book-view.c"
				}
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp1_ = FALSE;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp4_ = i;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp5_ = self->priv->book;
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp6_ = book_get_n_pages (_tmp5_);
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (!(((guint) _tmp4_) < _tmp6_)) {
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					break;
#line 2654 "book-view.c"
				}
#line 457 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp7_ = i;
#line 457 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp8_ = book_view_get_nth_page (self, _tmp7_);
#line 457 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page = _tmp8_;
#line 458 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp9_ = page;
#line 458 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp10_ = page_view_get_x_offset (_tmp9_);
#line 458 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				left = _tmp10_;
#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp11_ = left;
#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp12_ = page;
#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp13_ = page_view_get_width (_tmp12_);
#line 459 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				right = _tmp11_ + _tmp13_;
#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp14_ = page;
#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp15_ = page_view_get_y_offset (_tmp14_);
#line 460 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				top = _tmp15_;
#line 461 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp16_ = top;
#line 461 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp17_ = page;
#line 461 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp18_ = page_view_get_height (_tmp17_);
#line 461 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				bottom = _tmp16_ + _tmp18_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp22_ = x;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp23_ = left;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp22_ >= _tmp23_) {
#line 2696 "book-view.c"
					gint _tmp24_;
					gint _tmp25_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp24_ = x;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp25_ = right;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp21_ = _tmp24_ <= _tmp25_;
#line 2705 "book-view.c"
				} else {
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp21_ = FALSE;
#line 2709 "book-view.c"
				}
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp26_ = _tmp21_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp26_) {
#line 2715 "book-view.c"
					gint _tmp27_;
					gint _tmp28_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp27_ = y;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp28_ = top;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp20_ = _tmp27_ >= _tmp28_;
#line 2724 "book-view.c"
				} else {
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp20_ = FALSE;
#line 2728 "book-view.c"
				}
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp29_ = _tmp20_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp29_) {
#line 2734 "book-view.c"
					gint _tmp30_;
					gint _tmp31_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp30_ = y;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp31_ = bottom;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp19_ = _tmp30_ <= _tmp31_;
#line 2743 "book-view.c"
				} else {
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp19_ = FALSE;
#line 2747 "book-view.c"
				}
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp32_ = _tmp19_;
#line 462 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp32_) {
#line 2753 "book-view.c"
					gint _tmp33_;
					gint _tmp34_;
					gint _tmp35_;
					gint _tmp36_;
#line 464 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp33_ = x;
#line 464 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp34_ = left;
#line 464 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_vala_x_ = _tmp33_ - _tmp34_;
#line 465 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp35_ = y;
#line 465 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp36_ = top;
#line 465 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_vala_y_ = _tmp35_ - _tmp36_;
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					result = page;
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					if (x_) {
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						*x_ = _vala_x_;
#line 2776 "book-view.c"
					}
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					if (y_) {
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
						*y_ = _vala_y_;
#line 2782 "book-view.c"
					}
#line 466 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					return result;
#line 2786 "book-view.c"
				}
#line 455 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_page_view_unref0 (page);
#line 2790 "book-view.c"
			}
		}
	}
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = NULL;
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (x_) {
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		*x_ = _vala_x_;
#line 2800 "book-view.c"
	}
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (y_) {
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		*y_ = _vala_y_;
#line 2806 "book-view.c"
	}
#line 470 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 2810 "book-view.c"
}


static gboolean book_view_button_cb (BookView* self, GtkWidget* widget, GdkEventButton* event) {
	gboolean result = FALSE;
	GtkWidget* _tmp0_;
	gint x;
	gint y;
	GdkEventButton _tmp1_;
	GdkEventType _tmp2_;
	PageView* _tmp12_;
	GdkEventButton _tmp13_;
	guint _tmp14_;
	GdkEventButton _tmp29_;
	guint _tmp30_;
#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 473 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 475 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_layout (self);
#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->drawing_area;
#line 477 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_grab_focus (_tmp0_);
#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	x = 0;
#line 479 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	y = 0;
#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = *event;
#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = _tmp1_.type;
#line 480 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp2_ == GDK_BUTTON_PRESS) {
#line 2848 "book-view.c"
		GdkEventButton _tmp3_;
		gdouble _tmp4_;
		gint _tmp5_ = 0;
		GdkEventButton _tmp6_;
		gdouble _tmp7_;
		gint _tmp8_ = 0;
		gint _tmp9_ = 0;
		PageView* _tmp10_ = NULL;
		PageView* _tmp11_;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp3_ = *event;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp4_ = _tmp3_.x;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp5_ = book_view_get_x_offset (self);
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp6_ = *event;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp7_ = _tmp6_.y;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp10_ = book_view_get_page_at (self, (gint) (_tmp4_ + _tmp5_), (gint) _tmp7_, &_tmp8_, &_tmp9_);
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		x = _tmp8_;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		y = _tmp9_;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp11_ = _tmp10_;
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_select_page_view (self, _tmp11_);
#line 481 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_view_unref0 (_tmp11_);
#line 2880 "book-view.c"
	}
#line 483 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp12_ = self->priv->selected_page;
#line 483 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp12_ == NULL) {
#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		result = FALSE;
#line 484 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return result;
#line 2890 "book-view.c"
	}
#line 487 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp13_ = *event;
#line 487 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = _tmp13_.button;
#line 487 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp14_ == ((guint) 1)) {
#line 2898 "book-view.c"
		GdkEventButton _tmp15_;
		GdkEventType _tmp16_;
#line 489 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp15_ = *event;
#line 489 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp16_ = _tmp15_.type;
#line 489 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if (_tmp16_ == GDK_BUTTON_PRESS) {
#line 2907 "book-view.c"
			PageView* _tmp17_;
			gint _tmp18_;
			gint _tmp19_;
#line 490 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp17_ = self->priv->selected_page;
#line 490 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp18_ = x;
#line 490 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp19_ = y;
#line 490 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			page_view_button_press (_tmp17_, _tmp18_, _tmp19_);
#line 2919 "book-view.c"
		} else {
			GdkEventButton _tmp20_;
			GdkEventType _tmp21_;
#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp20_ = *event;
#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp21_ = _tmp20_.type;
#line 491 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			if (_tmp21_ == GDK_BUTTON_RELEASE) {
#line 2929 "book-view.c"
				PageView* _tmp22_;
				gint _tmp23_;
				gint _tmp24_;
#line 492 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp22_ = self->priv->selected_page;
#line 492 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp23_ = x;
#line 492 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp24_ = y;
#line 492 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				page_view_button_release (_tmp22_, _tmp23_, _tmp24_);
#line 2941 "book-view.c"
			} else {
				GdkEventButton _tmp25_;
				GdkEventType _tmp26_;
#line 493 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp25_ = *event;
#line 493 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				_tmp26_ = _tmp25_.type;
#line 493 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
				if (_tmp26_ == GDK_2BUTTON_PRESS) {
#line 2951 "book-view.c"
					Page* _tmp27_ = NULL;
					Page* _tmp28_;
#line 494 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp27_ = book_view_get_selected (self);
#line 494 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_tmp28_ = _tmp27_;
#line 494 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					g_signal_emit_by_name (self, "show-page", _tmp28_);
#line 494 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
					_page_unref0 (_tmp28_);
#line 2962 "book-view.c"
				}
			}
		}
	}
#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp29_ = *event;
#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp30_ = _tmp29_.button;
#line 498 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp30_ == ((guint) 3)) {
#line 499 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		g_signal_emit_by_name (self, "show-menu");
#line 2975 "book-view.c"
	}
#line 501 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = FALSE;
#line 501 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 2981 "book-view.c"
}


static void book_view_set_cursor (BookView* self, GdkCursorType cursor) {
	GdkCursor* c = NULL;
	GdkCursorType _tmp0_;
	GdkCursorType _tmp1_;
	GdkCursorType _tmp2_;
	GdkCursorType _tmp3_;
	GdkCursor* _tmp4_;
	GtkWidget* _tmp5_;
	GdkWindow* _tmp6_ = NULL;
	GdkCursor* _tmp7_;
#line 504 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->cursor;
#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = cursor;
#line 508 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp0_ == _tmp1_) {
#line 509 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_g_object_unref0 (c);
#line 509 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 3007 "book-view.c"
	}
#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = cursor;
#line 510 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->cursor = _tmp2_;
#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = cursor;
#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = gdk_cursor_new (_tmp3_);
#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (c);
#line 512 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	c = _tmp4_;
#line 513 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp5_ = self->priv->drawing_area;
#line 513 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp6_ = gtk_widget_get_window (_tmp5_);
#line 513 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp7_ = c;
#line 513 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gdk_window_set_cursor (_tmp6_, _tmp7_);
#line 504 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (c);
#line 3031 "book-view.c"
}


static gboolean book_view_motion_cb (BookView* self, GtkWidget* widget, GdkEventMotion* event) {
	gboolean result = FALSE;
	GdkCursorType cursor;
	gboolean _tmp0_ = FALSE;
	PageView* _tmp1_;
	gboolean _tmp4_;
	GdkCursorType _tmp33_;
#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 516 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 518 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	cursor = GDK_ARROW;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = self->priv->selected_page;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp1_ != NULL) {
#line 3054 "book-view.c"
		GdkEventMotion _tmp2_;
		GdkModifierType _tmp3_;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp2_ = *event;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp3_ = _tmp2_.state;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = (_tmp3_ & GDK_BUTTON1_MASK) != 0;
#line 3063 "book-view.c"
	} else {
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp0_ = FALSE;
#line 3067 "book-view.c"
	}
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = _tmp0_;
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp4_) {
#line 3073 "book-view.c"
		GdkEventMotion _tmp5_;
		gdouble _tmp6_;
		gint _tmp7_ = 0;
		PageView* _tmp8_;
		gint _tmp9_ = 0;
		gint x;
		GdkEventMotion _tmp10_;
		gdouble _tmp11_;
		PageView* _tmp12_;
		gint _tmp13_ = 0;
		gint y;
		PageView* _tmp14_;
		gint _tmp15_;
		gint _tmp16_;
		PageView* _tmp17_;
		GdkCursorType _tmp18_ = 0;
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp5_ = *event;
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp6_ = _tmp5_.x;
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp7_ = book_view_get_x_offset (self);
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp8_ = self->priv->selected_page;
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp9_ = page_view_get_x_offset (_tmp8_);
#line 523 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		x = (gint) ((_tmp6_ + _tmp7_) - _tmp9_);
#line 524 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp10_ = *event;
#line 524 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp11_ = _tmp10_.y;
#line 524 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp12_ = self->priv->selected_page;
#line 524 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp13_ = page_view_get_y_offset (_tmp12_);
#line 524 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		y = (gint) (_tmp11_ - _tmp13_);
#line 525 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp14_ = self->priv->selected_page;
#line 525 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp15_ = x;
#line 525 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp16_ = y;
#line 525 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		page_view_motion (_tmp14_, _tmp15_, _tmp16_);
#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp17_ = self->priv->selected_page;
#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp18_ = page_view_get_cursor (_tmp17_);
#line 526 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		cursor = _tmp18_;
#line 3126 "book-view.c"
	} else {
		gint x = 0;
		gint y = 0;
		GdkEventMotion _tmp19_;
		gdouble _tmp20_;
		gint _tmp21_ = 0;
		GdkEventMotion _tmp22_;
		gdouble _tmp23_;
		gint _tmp24_ = 0;
		gint _tmp25_ = 0;
		PageView* _tmp26_ = NULL;
		PageView* over_page;
		PageView* _tmp27_;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp19_ = *event;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp20_ = _tmp19_.x;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp21_ = book_view_get_x_offset (self);
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp22_ = *event;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp23_ = _tmp22_.y;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp26_ = book_view_get_page_at (self, (gint) (_tmp20_ + _tmp21_), (gint) _tmp23_, &_tmp24_, &_tmp25_);
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		x = _tmp24_;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		y = _tmp25_;
#line 531 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		over_page = _tmp26_;
#line 532 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp27_ = over_page;
#line 532 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		if (_tmp27_ != NULL) {
#line 3162 "book-view.c"
			PageView* _tmp28_;
			gint _tmp29_;
			gint _tmp30_;
			PageView* _tmp31_;
			GdkCursorType _tmp32_ = 0;
#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp28_ = over_page;
#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp29_ = x;
#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp30_ = y;
#line 534 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			page_view_motion (_tmp28_, _tmp29_, _tmp30_);
#line 535 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp31_ = over_page;
#line 535 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp32_ = page_view_get_cursor (_tmp31_);
#line 535 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			cursor = _tmp32_;
#line 3182 "book-view.c"
		}
#line 521 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_page_view_unref0 (over_page);
#line 3186 "book-view.c"
	}
#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp33_ = cursor;
#line 539 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_set_cursor (self, _tmp33_);
#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = FALSE;
#line 541 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 3196 "book-view.c"
}


static gboolean book_view_key_cb (BookView* self, GtkWidget* widget, GdkEventKey* event) {
	gboolean result = FALSE;
	GdkEventKey _tmp0_;
	guint _tmp1_;
#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 544 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = *event;
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _tmp0_.keyval;
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	switch (_tmp1_) {
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		case 0xff50:
#line 3218 "book-view.c"
		{
			Book* _tmp2_;
			Page* _tmp3_ = NULL;
			Page* _tmp4_;
#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp2_ = self->priv->book;
#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp3_ = book_get_page (_tmp2_, 0);
#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp4_ = _tmp3_;
#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_select_page (self, _tmp4_);
#line 549 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_page_unref0 (_tmp4_);
#line 550 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			result = TRUE;
#line 550 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			return result;
#line 3237 "book-view.c"
		}
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		case 0xff51:
#line 3241 "book-view.c"
		{
			PageView* _tmp5_;
			PageView* _tmp6_ = NULL;
			PageView* _tmp7_;
#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp5_ = self->priv->selected_page;
#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp6_ = book_view_get_prev_page (self, _tmp5_);
#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp7_ = _tmp6_;
#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_select_page_view (self, _tmp7_);
#line 552 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_page_view_unref0 (_tmp7_);
#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			result = TRUE;
#line 553 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			return result;
#line 3260 "book-view.c"
		}
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		case 0xff53:
#line 3264 "book-view.c"
		{
			PageView* _tmp8_;
			PageView* _tmp9_ = NULL;
			PageView* _tmp10_;
#line 555 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp8_ = self->priv->selected_page;
#line 555 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp9_ = book_view_get_next_page (self, _tmp8_);
#line 555 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp10_ = _tmp9_;
#line 555 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_select_page_view (self, _tmp10_);
#line 555 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_page_view_unref0 (_tmp10_);
#line 556 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			result = TRUE;
#line 556 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			return result;
#line 3283 "book-view.c"
		}
#line 546 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		case 0xFF57:
#line 3287 "book-view.c"
		{
			Book* _tmp11_;
			Book* _tmp12_;
			guint _tmp13_ = 0U;
			Page* _tmp14_ = NULL;
			Page* _tmp15_;
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp11_ = self->priv->book;
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp12_ = self->priv->book;
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp13_ = book_get_n_pages (_tmp12_);
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp14_ = book_get_page (_tmp11_, ((gint) _tmp13_) - 1);
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_tmp15_ = _tmp14_;
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			book_view_select_page (self, _tmp15_);
#line 558 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			_page_unref0 (_tmp15_);
#line 559 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			result = TRUE;
#line 559 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			return result;
#line 3312 "book-view.c"
		}
		default:
		{
#line 562 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			result = FALSE;
#line 562 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
			return result;
#line 3320 "book-view.c"
		}
	}
}


static gboolean book_view_focus_cb (BookView* self, GtkWidget* widget, GdkEventFocus* event) {
	gboolean result = FALSE;
	PageView* _tmp0_;
#line 566 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, FALSE);
#line 566 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (widget != NULL, FALSE);
#line 566 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (event != NULL, FALSE);
#line 568 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 568 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_set_selected_page (self, _tmp0_);
#line 569 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	result = FALSE;
#line 569 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	return result;
#line 3343 "book-view.c"
}


static void book_view_scroll_cb (BookView* self, GtkAdjustment* adjustment) {
	gboolean _tmp0_;
#line 572 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 572 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (adjustment != NULL);
#line 574 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->laying_out;
#line 574 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (!_tmp0_) {
#line 575 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_redraw (self);
#line 3359 "book-view.c"
	}
}


void book_view_redraw (BookView* self) {
	GtkWidget* _tmp0_;
#line 578 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 580 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->drawing_area;
#line 580 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	gtk_widget_queue_draw (_tmp0_);
#line 3372 "book-view.c"
}


void book_view_select_page (BookView* self, Page* page) {
	Page* _tmp0_ = NULL;
	Page* _tmp1_;
	Page* _tmp2_;
	gboolean _tmp3_;
	Page* _tmp4_;
#line 583 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = book_view_get_selected (self);
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = _tmp0_;
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = page;
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp3_ = _tmp1_ == _tmp2_;
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_unref0 (_tmp1_);
#line 585 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp3_) {
#line 586 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return;
#line 3398 "book-view.c"
	}
#line 588 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = page;
#line 588 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp4_ != NULL) {
#line 3404 "book-view.c"
		GHashTable* _tmp5_;
		Page* _tmp6_;
		gconstpointer _tmp7_ = NULL;
#line 589 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp5_ = self->priv->page_data;
#line 589 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp6_ = page;
#line 589 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp7_ = g_hash_table_lookup (_tmp5_, _tmp6_);
#line 589 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_select_page_view (self, (PageView*) _tmp7_);
#line 3416 "book-view.c"
	} else {
#line 591 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		book_view_select_page_view (self, NULL);
#line 3420 "book-view.c"
	}
}


void book_view_select_next_page (BookView* self) {
	PageView* _tmp0_;
	PageView* _tmp1_ = NULL;
	PageView* _tmp2_;
#line 594 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = book_view_get_next_page (self, _tmp0_);
#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = _tmp1_;
#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_select_page_view (self, _tmp2_);
#line 596 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (_tmp2_);
#line 3441 "book-view.c"
}


void book_view_select_prev_page (BookView* self) {
	PageView* _tmp0_;
	PageView* _tmp1_ = NULL;
	PageView* _tmp2_;
#line 599 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (self != NULL);
#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp1_ = book_view_get_prev_page (self, _tmp0_);
#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = _tmp1_;
#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_select_page_view (self, _tmp2_);
#line 601 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (_tmp2_);
#line 3461 "book-view.c"
}


Page* book_view_get_selected (BookView* self) {
	Page* result = NULL;
	PageView* _tmp0_;
#line 604 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 606 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->selected_page;
#line 606 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (_tmp0_ != NULL) {
#line 3474 "book-view.c"
		PageView* _tmp1_;
		Page* _tmp2_ = NULL;
#line 607 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp1_ = self->priv->selected_page;
#line 607 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		_tmp2_ = page_view_get_page (_tmp1_);
#line 607 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		result = _tmp2_;
#line 607 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return result;
#line 3485 "book-view.c"
	} else {
#line 609 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		result = NULL;
#line 609 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		return result;
#line 3491 "book-view.c"
	}
}


static void g_cclosure_user_marshal_VOID__PAGE (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
	typedef void (*GMarshalFunc_VOID__PAGE) (gpointer data1, gpointer arg_1, gpointer data2);
	register GMarshalFunc_VOID__PAGE callback;
	register GCClosure * cc;
	register gpointer data1;
	register gpointer data2;
	cc = (GCClosure *) closure;
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_return_if_fail (n_param_values == 2);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	if (G_CCLOSURE_SWAP_DATA (closure)) {
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		data1 = closure->data;
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		data2 = param_values->data[0].v_pointer;
#line 3511 "book-view.c"
	} else {
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		data1 = param_values->data[0].v_pointer;
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
		data2 = closure->data;
#line 3517 "book-view.c"
	}
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	callback = (GMarshalFunc_VOID__PAGE) (marshal_data ? marshal_data : cc->callback);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	callback (data1, value_get_page (param_values + 1), data2);
#line 3523 "book-view.c"
}


static void book_view_class_init (BookViewClass * klass) {
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	book_view_parent_class = g_type_class_peek_parent (klass);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_type_class_add_private (klass, sizeof (BookViewPrivate));
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	G_OBJECT_CLASS (klass)->finalize = book_view_finalize;
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_new ("page_selected", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_new ("show_page", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__PAGE, G_TYPE_NONE, 1, TYPE_PAGE);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_new ("show_menu", TYPE_BOOK_VIEW, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
#line 3540 "book-view.c"
}


static void book_view_instance_init (BookView * self) {
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv = BOOK_VIEW_GET_PRIVATE (self);
#line 27 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self->priv->selected_page = NULL;
#line 3549 "book-view.c"
}


static void book_view_finalize (GObject* obj) {
	BookView * self;
	Book* _tmp0_;
	guint _tmp1_ = 0U;
	Book* _tmp2_;
	guint _tmp3_ = 0U;
	Book* _tmp4_;
	guint _tmp5_ = 0U;
	Book* _tmp6_;
	guint _tmp7_ = 0U;
	GtkWidget* _tmp8_;
	guint _tmp9_ = 0U;
	GtkWidget* _tmp10_;
	guint _tmp11_ = 0U;
	GtkWidget* _tmp12_;
	guint _tmp13_ = 0U;
	GtkWidget* _tmp14_;
	guint _tmp15_ = 0U;
	GtkWidget* _tmp16_;
	guint _tmp17_ = 0U;
	GtkWidget* _tmp18_;
	guint _tmp19_ = 0U;
	GtkWidget* _tmp20_;
	guint _tmp21_ = 0U;
	GtkWidget* _tmp22_;
	guint _tmp23_ = 0U;
	GtkAdjustment* _tmp24_;
	guint _tmp25_ = 0U;
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_BOOK_VIEW, BookView);
#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp0_ = self->priv->book;
#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("page-added", TYPE_BOOK, &_tmp1_, NULL, FALSE);
#line 90 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp0_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp1_, 0, NULL, (GCallback) _book_view_add_cb_book_page_added, self);
#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp2_ = self->priv->book;
#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("page-removed", TYPE_BOOK, &_tmp3_, NULL, FALSE);
#line 91 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp2_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp3_, 0, NULL, (GCallback) _book_view_remove_cb_book_page_removed, self);
#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp4_ = self->priv->book;
#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("reordered", TYPE_BOOK, &_tmp5_, NULL, FALSE);
#line 92 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp4_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp5_, 0, NULL, (GCallback) _book_view_reorder_cb_book_reordered, self);
#line 93 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp6_ = self->priv->book;
#line 93 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("cleared", TYPE_BOOK, &_tmp7_, NULL, FALSE);
#line 93 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp6_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp7_, 0, NULL, (GCallback) _book_view_clear_cb_book_cleared, self);
#line 94 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp8_ = self->priv->drawing_area;
#line 94 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("configure-event", GTK_TYPE_WIDGET, &_tmp9_, NULL, FALSE);
#line 94 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp8_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp9_, 0, NULL, (GCallback) _book_view_configure_cb_gtk_widget_configure_event, self);
#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp10_ = self->priv->drawing_area;
#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("draw", GTK_TYPE_WIDGET, &_tmp11_, NULL, FALSE);
#line 95 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp10_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp11_, 0, NULL, (GCallback) _book_view_draw_cb_gtk_widget_draw, self);
#line 96 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp12_ = self->priv->drawing_area;
#line 96 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("motion-notify-event", GTK_TYPE_WIDGET, &_tmp13_, NULL, FALSE);
#line 96 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp12_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp13_, 0, NULL, (GCallback) _book_view_motion_cb_gtk_widget_motion_notify_event, self);
#line 97 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp14_ = self->priv->drawing_area;
#line 97 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("key-press-event", GTK_TYPE_WIDGET, &_tmp15_, NULL, FALSE);
#line 97 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp14_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp15_, 0, NULL, (GCallback) _book_view_key_cb_gtk_widget_key_press_event, self);
#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp16_ = self->priv->drawing_area;
#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("button-press-event", GTK_TYPE_WIDGET, &_tmp17_, NULL, FALSE);
#line 98 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp16_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp17_, 0, NULL, (GCallback) _book_view_button_cb_gtk_widget_button_press_event, self);
#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp18_ = self->priv->drawing_area;
#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("button-release-event", GTK_TYPE_WIDGET, &_tmp19_, NULL, FALSE);
#line 99 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp18_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp19_, 0, NULL, (GCallback) _book_view_button_cb_gtk_widget_button_release_event, self);
#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp20_ = self->priv->drawing_area;
#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("focus-in-event", GTK_TYPE_WIDGET, &_tmp21_, NULL, FALSE);
#line 100 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp20_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp21_, 0, NULL, (GCallback) _book_view_focus_cb_gtk_widget_focus_in_event, self);
#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp22_ = self->priv->drawing_area;
#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("focus-out-event", GTK_TYPE_WIDGET, &_tmp23_, NULL, FALSE);
#line 101 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp22_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp23_, 0, NULL, (GCallback) _book_view_focus_cb_gtk_widget_focus_out_event, self);
#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_tmp24_ = self->priv->adjustment;
#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_parse_name ("value-changed", GTK_TYPE_ADJUSTMENT, &_tmp25_, NULL, FALSE);
#line 102 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	g_signal_handlers_disconnect_matched (_tmp24_, G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA, _tmp25_, 0, NULL, (GCallback) _book_view_scroll_cb_gtk_adjustment_value_changed, self);
#line 18 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_book_unref0 (self->priv->book);
#line 19 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_hash_table_unref0 (self->priv->page_data);
#line 27 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_page_view_unref0 (self->priv->selected_page);
#line 30 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->drawing_area);
#line 33 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->scroll);
#line 34 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	_g_object_unref0 (self->priv->adjustment);
#line 15 "/home/bob/bzr/simple-scan/trunk/src/book-view.vala"
	G_OBJECT_CLASS (book_view_parent_class)->finalize (obj);
#line 3675 "book-view.c"
}


GType book_view_get_type (void) {
	static volatile gsize book_view_type_id__volatile = 0;
	if (g_once_init_enter (&book_view_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (BookViewClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) book_view_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (BookView), 0, (GInstanceInitFunc) book_view_instance_init, NULL };
		GType book_view_type_id;
		book_view_type_id = g_type_register_static (GTK_TYPE_VBOX, "BookView", &g_define_type_info, 0);
		g_once_init_leave (&book_view_type_id__volatile, book_view_type_id);
	}
	return book_view_type_id__volatile;
}