/* gitg-diff-image-surface-cache.c generated by valac 0.34.7, the Vala compiler
 * generated from gitg-diff-image-surface-cache.vala, do not modify */

/*
 * This file is part of gitg
 *
 * Copyright (C) 2016 - Jesse van den Kieboom
 *
 * gitg is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * gitg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with gitg. If not, see <http://www.gnu.org/licenses/>.
 */

#include <glib.h>
#include <glib-object.h>
#include <gdk/gdk.h>
#include <cairo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>


#define GITG_TYPE_DIFF_IMAGE_SURFACE_CACHE (gitg_diff_image_surface_cache_get_type ())
#define GITG_DIFF_IMAGE_SURFACE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GITG_TYPE_DIFF_IMAGE_SURFACE_CACHE, GitgDiffImageSurfaceCache))
#define GITG_IS_DIFF_IMAGE_SURFACE_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GITG_TYPE_DIFF_IMAGE_SURFACE_CACHE))
#define GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GITG_TYPE_DIFF_IMAGE_SURFACE_CACHE, GitgDiffImageSurfaceCacheIface))

typedef struct _GitgDiffImageSurfaceCache GitgDiffImageSurfaceCache;
typedef struct _GitgDiffImageSurfaceCacheIface GitgDiffImageSurfaceCacheIface;

struct _GitgDiffImageSurfaceCacheIface {
	GTypeInterface parent_iface;
	cairo_surface_t* (*get_old_surface) (GitgDiffImageSurfaceCache* self, GdkWindow* window);
	cairo_surface_t* (*get_new_surface) (GitgDiffImageSurfaceCache* self, GdkWindow* window);
	GdkPixbuf* (*get_old_pixbuf) (GitgDiffImageSurfaceCache* self);
	void (*set_old_pixbuf) (GitgDiffImageSurfaceCache* self, GdkPixbuf* value);
	GdkPixbuf* (*get_new_pixbuf) (GitgDiffImageSurfaceCache* self);
	void (*set_new_pixbuf) (GitgDiffImageSurfaceCache* self, GdkPixbuf* value);
	GdkWindow* (*get_window) (GitgDiffImageSurfaceCache* self);
	void (*set_window) (GitgDiffImageSurfaceCache* self, GdkWindow* value);
};



GType gitg_diff_image_surface_cache_get_type (void) G_GNUC_CONST;
cairo_surface_t* gitg_diff_image_surface_cache_get_old_surface (GitgDiffImageSurfaceCache* self, GdkWindow* window);
cairo_surface_t* gitg_diff_image_surface_cache_get_new_surface (GitgDiffImageSurfaceCache* self, GdkWindow* window);
GdkPixbuf* gitg_diff_image_surface_cache_get_old_pixbuf (GitgDiffImageSurfaceCache* self);
void gitg_diff_image_surface_cache_set_old_pixbuf (GitgDiffImageSurfaceCache* self, GdkPixbuf* value);
GdkPixbuf* gitg_diff_image_surface_cache_get_new_pixbuf (GitgDiffImageSurfaceCache* self);
void gitg_diff_image_surface_cache_set_new_pixbuf (GitgDiffImageSurfaceCache* self, GdkPixbuf* value);
GdkWindow* gitg_diff_image_surface_cache_get_window (GitgDiffImageSurfaceCache* self);
void gitg_diff_image_surface_cache_set_window (GitgDiffImageSurfaceCache* self, GdkWindow* value);


cairo_surface_t* gitg_diff_image_surface_cache_get_old_surface (GitgDiffImageSurfaceCache* self, GdkWindow* window) {
#line 27 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 27 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	return GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->get_old_surface (self, window);
#line 69 "gitg-diff-image-surface-cache.c"
}


cairo_surface_t* gitg_diff_image_surface_cache_get_new_surface (GitgDiffImageSurfaceCache* self, GdkWindow* window) {
#line 28 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 28 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	return GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->get_new_surface (self, window);
#line 78 "gitg-diff-image-surface-cache.c"
}


GdkPixbuf* gitg_diff_image_surface_cache_get_old_pixbuf (GitgDiffImageSurfaceCache* self) {
#line 22 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 22 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	return GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->get_old_pixbuf (self);
#line 87 "gitg-diff-image-surface-cache.c"
}


void gitg_diff_image_surface_cache_set_old_pixbuf (GitgDiffImageSurfaceCache* self, GdkPixbuf* value) {
#line 22 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_if_fail (self != NULL);
#line 22 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->set_old_pixbuf (self, value);
#line 96 "gitg-diff-image-surface-cache.c"
}


GdkPixbuf* gitg_diff_image_surface_cache_get_new_pixbuf (GitgDiffImageSurfaceCache* self) {
#line 23 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 23 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	return GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->get_new_pixbuf (self);
#line 105 "gitg-diff-image-surface-cache.c"
}


void gitg_diff_image_surface_cache_set_new_pixbuf (GitgDiffImageSurfaceCache* self, GdkPixbuf* value) {
#line 23 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_if_fail (self != NULL);
#line 23 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->set_new_pixbuf (self, value);
#line 114 "gitg-diff-image-surface-cache.c"
}


GdkWindow* gitg_diff_image_surface_cache_get_window (GitgDiffImageSurfaceCache* self) {
#line 25 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_val_if_fail (self != NULL, NULL);
#line 25 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	return GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->get_window (self);
#line 123 "gitg-diff-image-surface-cache.c"
}


void gitg_diff_image_surface_cache_set_window (GitgDiffImageSurfaceCache* self, GdkWindow* value) {
#line 25 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	g_return_if_fail (self != NULL);
#line 25 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	GITG_DIFF_IMAGE_SURFACE_CACHE_GET_INTERFACE (self)->set_window (self, value);
#line 132 "gitg-diff-image-surface-cache.c"
}


static void gitg_diff_image_surface_cache_base_init (GitgDiffImageSurfaceCacheIface * iface) {
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	static gboolean initialized = FALSE;
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
	if (!initialized) {
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
		initialized = TRUE;
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
		g_object_interface_install_property (iface, g_param_spec_object ("old-pixbuf", "old-pixbuf", "old-pixbuf", gdk_pixbuf_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
		g_object_interface_install_property (iface, g_param_spec_object ("new-pixbuf", "new-pixbuf", "new-pixbuf", gdk_pixbuf_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
#line 20 "/home/jesse/dev/gitg/libgitg/gitg-diff-image-surface-cache.vala"
		g_object_interface_install_property (iface, g_param_spec_object ("window", "window", "window", gdk_window_get_type (), G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
#line 149 "gitg-diff-image-surface-cache.c"
	}
}


GType gitg_diff_image_surface_cache_get_type (void) {
	static volatile gsize gitg_diff_image_surface_cache_type_id__volatile = 0;
	if (g_once_init_enter (&gitg_diff_image_surface_cache_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (GitgDiffImageSurfaceCacheIface), (GBaseInitFunc) gitg_diff_image_surface_cache_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
		GType gitg_diff_image_surface_cache_type_id;
		gitg_diff_image_surface_cache_type_id = g_type_register_static (G_TYPE_INTERFACE, "GitgDiffImageSurfaceCache", &g_define_type_info, 0);
		g_type_interface_add_prerequisite (gitg_diff_image_surface_cache_type_id, G_TYPE_OBJECT);
		g_once_init_leave (&gitg_diff_image_surface_cache_type_id__volatile, gitg_diff_image_surface_cache_type_id);
	}
	return gitg_diff_image_surface_cache_type_id__volatile;
}



