/* action_mapping.c generated by valac 0.56.17, the Vala compiler
 * generated from action_mapping.vala, do not modify */

#include <glib-object.h>
#include <poppler.h>
#include <gtk/gtk.h>
#include <gdk/gdk.h>
#include <glib.h>

#if !defined(VALA_STRICT_C)
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
#elif defined(__clang__) && (__clang_major__ >= 16)
#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
#endif
#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
#elif __GNUC__ >= 4
#define VALA_EXTERN __attribute__((visibility("default"))) extern
#else
#define VALA_EXTERN extern
#endif
#endif

#define PDFPC_TYPE_ACTION_MAPPING (pdfpc_action_mapping_get_type ())
#define PDFPC_ACTION_MAPPING(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PDFPC_TYPE_ACTION_MAPPING, pdfpcActionMapping))
#define PDFPC_ACTION_MAPPING_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PDFPC_TYPE_ACTION_MAPPING, pdfpcActionMappingClass))
#define PDFPC_IS_ACTION_MAPPING(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PDFPC_TYPE_ACTION_MAPPING))
#define PDFPC_IS_ACTION_MAPPING_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PDFPC_TYPE_ACTION_MAPPING))
#define PDFPC_ACTION_MAPPING_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PDFPC_TYPE_ACTION_MAPPING, pdfpcActionMappingClass))

typedef struct _pdfpcActionMapping pdfpcActionMapping;
typedef struct _pdfpcActionMappingClass pdfpcActionMappingClass;
typedef struct _pdfpcActionMappingPrivate pdfpcActionMappingPrivate;

#define PDFPC_TYPE_PRESENTATION_CONTROLLER (pdfpc_presentation_controller_get_type ())
#define PDFPC_PRESENTATION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PDFPC_TYPE_PRESENTATION_CONTROLLER, pdfpcPresentationController))
#define PDFPC_PRESENTATION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PDFPC_TYPE_PRESENTATION_CONTROLLER, pdfpcPresentationControllerClass))
#define PDFPC_IS_PRESENTATION_CONTROLLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PDFPC_TYPE_PRESENTATION_CONTROLLER))
#define PDFPC_IS_PRESENTATION_CONTROLLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PDFPC_TYPE_PRESENTATION_CONTROLLER))
#define PDFPC_PRESENTATION_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PDFPC_TYPE_PRESENTATION_CONTROLLER, pdfpcPresentationControllerClass))

typedef struct _pdfpcPresentationController pdfpcPresentationController;
typedef struct _pdfpcPresentationControllerClass pdfpcPresentationControllerClass;
typedef enum  {
	PDFPC_ACTION_MAPPING_ACTION_TYPE_LINK,
	PDFPC_ACTION_MAPPING_ACTION_TYPE_MOVIE
} pdfpcActionMappingActionType;

#define PDFPC_ACTION_MAPPING_TYPE_ACTION_TYPE (pdfpc_action_mapping_action_type_get_type ())
enum  {
	PDFPC_ACTION_MAPPING_0_PROPERTY,
	PDFPC_ACTION_MAPPING_NUM_PROPERTIES
};
static GParamSpec* pdfpc_action_mapping_properties[PDFPC_ACTION_MAPPING_NUM_PROPERTIES];
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

struct _pdfpcActionMapping {
	GObject parent_instance;
	pdfpcActionMappingPrivate * priv;
	pdfpcActionMappingActionType type;
	PopplerRectangle area;
	pdfpcPresentationController* controller;
};

struct _pdfpcActionMappingClass {
	GObjectClass parent_class;
	void (*init) (pdfpcActionMapping* self, PopplerRectangle* area, pdfpcPresentationController* controller);
	pdfpcActionMapping* (*new_from_link_mapping) (pdfpcActionMapping* self, PopplerLinkMapping* mapping, pdfpcPresentationController* controller);
	pdfpcActionMapping* (*new_from_annot_mapping) (pdfpcActionMapping* self, PopplerAnnotMapping* mapping, pdfpcPresentationController* controller);
	void (*on_mouse_enter) (pdfpcActionMapping* self, GtkWidget* widget, GdkEventMotion* event);
	void (*on_mouse_leave) (pdfpcActionMapping* self, GtkWidget* widget, GdkEventMotion* event);
	gboolean (*on_button_press) (pdfpcActionMapping* self, GtkWidget* widget, GdkEventButton* event);
	gboolean (*on_button_release) (pdfpcActionMapping* self, GtkWidget* widget, GdkEventButton* event);
	gboolean (*on_mouse_move) (pdfpcActionMapping* self, GtkWidget* widget, GdkEventMotion* event);
	gboolean (*is_sensitive) (pdfpcActionMapping* self);
	void (*on_freeze) (pdfpcActionMapping* self, gboolean frozen);
	void (*deactivate) (pdfpcActionMapping* self);
};

static gpointer pdfpc_action_mapping_parent_class = NULL;

VALA_EXTERN GType pdfpc_action_mapping_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (pdfpcActionMapping, g_object_unref)
VALA_EXTERN GType pdfpc_presentation_controller_get_type (void) G_GNUC_CONST ;
G_DEFINE_AUTOPTR_CLEANUP_FUNC (pdfpcPresentationController, g_object_unref)
VALA_EXTERN GType pdfpc_action_mapping_action_type_get_type (void) G_GNUC_CONST ;
VALA_EXTERN void pdfpc_action_mapping_init (pdfpcActionMapping* self,
                                PopplerRectangle* area,
                                pdfpcPresentationController* controller);
VALA_EXTERN pdfpcActionMapping* pdfpc_action_mapping_new_from_link_mapping (pdfpcActionMapping* self,
                                                                PopplerLinkMapping* mapping,
                                                                pdfpcPresentationController* controller);
VALA_EXTERN pdfpcActionMapping* pdfpc_action_mapping_new_from_annot_mapping (pdfpcActionMapping* self,
                                                                 PopplerAnnotMapping* mapping,
                                                                 pdfpcPresentationController* controller);
VALA_EXTERN void pdfpc_action_mapping_on_mouse_enter (pdfpcActionMapping* self,
                                          GtkWidget* widget,
                                          GdkEventMotion* event);
VALA_EXTERN void pdfpc_action_mapping_on_mouse_leave (pdfpcActionMapping* self,
                                          GtkWidget* widget,
                                          GdkEventMotion* event);
VALA_EXTERN gboolean pdfpc_action_mapping_on_button_press (pdfpcActionMapping* self,
                                               GtkWidget* widget,
                                               GdkEventButton* event);
VALA_EXTERN gboolean pdfpc_action_mapping_on_button_release (pdfpcActionMapping* self,
                                                 GtkWidget* widget,
                                                 GdkEventButton* event);
VALA_EXTERN gboolean pdfpc_action_mapping_on_mouse_move (pdfpcActionMapping* self,
                                             GtkWidget* widget,
                                             GdkEventMotion* event);
VALA_EXTERN gboolean pdfpc_action_mapping_is_sensitive (pdfpcActionMapping* self);
VALA_EXTERN void pdfpc_action_mapping_on_freeze (pdfpcActionMapping* self,
                                     gboolean frozen);
VALA_EXTERN void pdfpc_action_mapping_deactivate (pdfpcActionMapping* self);
VALA_EXTERN pdfpcActionMapping* pdfpc_action_mapping_construct (GType object_type);
static void pdfpc_action_mapping_real_init (pdfpcActionMapping* self,
                                     PopplerRectangle* area,
                                     pdfpcPresentationController* controller);
static pdfpcActionMapping* pdfpc_action_mapping_real_new_from_link_mapping (pdfpcActionMapping* self,
                                                                     PopplerLinkMapping* mapping,
                                                                     pdfpcPresentationController* controller);
static pdfpcActionMapping* pdfpc_action_mapping_real_new_from_annot_mapping (pdfpcActionMapping* self,
                                                                      PopplerAnnotMapping* mapping,
                                                                      pdfpcPresentationController* controller);
static void pdfpc_action_mapping_real_on_mouse_enter (pdfpcActionMapping* self,
                                               GtkWidget* widget,
                                               GdkEventMotion* event);
static void pdfpc_action_mapping_real_on_mouse_leave (pdfpcActionMapping* self,
                                               GtkWidget* widget,
                                               GdkEventMotion* event);
static gboolean pdfpc_action_mapping_real_on_button_press (pdfpcActionMapping* self,
                                                    GtkWidget* widget,
                                                    GdkEventButton* event);
static gboolean pdfpc_action_mapping_real_on_button_release (pdfpcActionMapping* self,
                                                      GtkWidget* widget,
                                                      GdkEventButton* event);
static gboolean pdfpc_action_mapping_real_on_mouse_move (pdfpcActionMapping* self,
                                                  GtkWidget* widget,
                                                  GdkEventMotion* event);
static gboolean pdfpc_action_mapping_real_is_sensitive (pdfpcActionMapping* self);
VALA_EXTERN gboolean pdfpc_presentation_controller_in_normal_mode (pdfpcPresentationController* self);
static void pdfpc_action_mapping_real_on_freeze (pdfpcActionMapping* self,
                                          gboolean frozen);
static void pdfpc_action_mapping_real_deactivate (pdfpcActionMapping* self);
static void pdfpc_action_mapping_finalize (GObject * obj);
static GType pdfpc_action_mapping_get_type_once (void);

static GType
pdfpc_action_mapping_action_type_get_type_once (void)
{
	static const GEnumValue values[] = {{PDFPC_ACTION_MAPPING_ACTION_TYPE_LINK, "PDFPC_ACTION_MAPPING_ACTION_TYPE_LINK", "link"}, {PDFPC_ACTION_MAPPING_ACTION_TYPE_MOVIE, "PDFPC_ACTION_MAPPING_ACTION_TYPE_MOVIE", "movie"}, {0, NULL, NULL}};
	GType pdfpc_action_mapping_action_type_type_id;
	pdfpc_action_mapping_action_type_type_id = g_enum_register_static ("pdfpcActionMappingActionType", values);
	return pdfpc_action_mapping_action_type_type_id;
}

GType
pdfpc_action_mapping_action_type_get_type (void)
{
	static volatile gsize pdfpc_action_mapping_action_type_type_id__once = 0;
	if (g_once_init_enter (&pdfpc_action_mapping_action_type_type_id__once)) {
		GType pdfpc_action_mapping_action_type_type_id;
		pdfpc_action_mapping_action_type_type_id = pdfpc_action_mapping_action_type_get_type_once ();
		g_once_init_leave (&pdfpc_action_mapping_action_type_type_id__once, pdfpc_action_mapping_action_type_type_id);
	}
	return pdfpc_action_mapping_action_type_type_id__once;
}

/**
         * Constructors of ActionMapping classes shouldn't actually do much.  These
         * objects will generally be made with the new_from_... methods, below.
         * Unlike constructors, these have the option of returning null.  Since I
         * couldn't figure out how to make class objects in Vala, those are object
         * methods, and we need blank objects to call them.  Thus, this blank
         * constructor.
         */
pdfpcActionMapping*
pdfpc_action_mapping_construct (GType object_type)
{
	pdfpcActionMapping * self = NULL;
	self = (pdfpcActionMapping*) g_object_new (object_type, NULL);
	return self;
}

/**
         * Instead of in the constructor, most setup is done in the init method.
         */
static gpointer
_g_object_ref0 (gpointer self)
{
	return self ? g_object_ref (self) : NULL;
}

static void
pdfpc_action_mapping_real_init (pdfpcActionMapping* self,
                                PopplerRectangle* area,
                                pdfpcPresentationController* controller)
{
	PopplerRectangle _tmp0_;
	pdfpcPresentationController* _tmp1_;
	g_return_if_fail (area != NULL);
	g_return_if_fail (controller != NULL);
	_tmp0_ = *area;
	self->area = _tmp0_;
	_tmp1_ = _g_object_ref0 (controller);
	_g_object_unref0 (self->controller);
	self->controller = _tmp1_;
}

void
pdfpc_action_mapping_init (pdfpcActionMapping* self,
                           PopplerRectangle* area,
                           pdfpcPresentationController* controller)
{
	pdfpcActionMappingClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->init) {
		_klass_->init (self, area, controller);
	}
}

/**
         * Create and return a new ActionMapping object from the LinkMapping, or
         * return null if this class doesn't handle this type of LinkMapping.  Note
         * that this is an object method, not a static method, which makes it easier
         * to figure out if you're in a subclass.
         */
static pdfpcActionMapping*
pdfpc_action_mapping_real_new_from_link_mapping (pdfpcActionMapping* self,
                                                 PopplerLinkMapping* mapping,
                                                 pdfpcPresentationController* controller)
{
	pdfpcActionMapping* result;
	g_return_val_if_fail (mapping != NULL, NULL);
	g_return_val_if_fail (controller != NULL, NULL);
	result = NULL;
	return result;
}

pdfpcActionMapping*
pdfpc_action_mapping_new_from_link_mapping (pdfpcActionMapping* self,
                                            PopplerLinkMapping* mapping,
                                            pdfpcPresentationController* controller)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->new_from_link_mapping) {
		return _klass_->new_from_link_mapping (self, mapping, controller);
	}
	return NULL;
}

/**
         * Create and return a new ActionMapping object from the AnnotMapping, or
         * return null if this class doesn't handle this type of AnnotMapping.
         */
static pdfpcActionMapping*
pdfpc_action_mapping_real_new_from_annot_mapping (pdfpcActionMapping* self,
                                                  PopplerAnnotMapping* mapping,
                                                  pdfpcPresentationController* controller)
{
	pdfpcActionMapping* result;
	g_return_val_if_fail (mapping != NULL, NULL);
	g_return_val_if_fail (controller != NULL, NULL);
	result = NULL;
	return result;
}

pdfpcActionMapping*
pdfpc_action_mapping_new_from_annot_mapping (pdfpcActionMapping* self,
                                             PopplerAnnotMapping* mapping,
                                             pdfpcPresentationController* controller)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->new_from_annot_mapping) {
		return _klass_->new_from_annot_mapping (self, mapping, controller);
	}
	return NULL;
}

/**
         * Override this method to get notified of the mouse entering the area.
         */
static void
pdfpc_action_mapping_real_on_mouse_enter (pdfpcActionMapping* self,
                                          GtkWidget* widget,
                                          GdkEventMotion* event)
{
	g_return_if_fail (widget != NULL);
	g_return_if_fail (event != NULL);
	return;
}

void
pdfpc_action_mapping_on_mouse_enter (pdfpcActionMapping* self,
                                     GtkWidget* widget,
                                     GdkEventMotion* event)
{
	pdfpcActionMappingClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_mouse_enter) {
		_klass_->on_mouse_enter (self, widget, event);
	}
}

/**
         * Override this method to get notified of the mouse exiting the area.
         */
static void
pdfpc_action_mapping_real_on_mouse_leave (pdfpcActionMapping* self,
                                          GtkWidget* widget,
                                          GdkEventMotion* event)
{
	g_return_if_fail (widget != NULL);
	g_return_if_fail (event != NULL);
	return;
}

void
pdfpc_action_mapping_on_mouse_leave (pdfpcActionMapping* self,
                                     GtkWidget* widget,
                                     GdkEventMotion* event)
{
	pdfpcActionMappingClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_mouse_leave) {
		_klass_->on_mouse_leave (self, widget, event);
	}
}

/**
         * Handle mouse press/release/motion events in the area. Return true to
         * indicate that the event has been handled.
         */
static gboolean
pdfpc_action_mapping_real_on_button_press (pdfpcActionMapping* self,
                                           GtkWidget* widget,
                                           GdkEventButton* event)
{
	gboolean result;
	g_return_val_if_fail (widget != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	result = FALSE;
	return result;
}

gboolean
pdfpc_action_mapping_on_button_press (pdfpcActionMapping* self,
                                      GtkWidget* widget,
                                      GdkEventButton* event)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, FALSE);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_button_press) {
		return _klass_->on_button_press (self, widget, event);
	}
	return FALSE;
}

static gboolean
pdfpc_action_mapping_real_on_button_release (pdfpcActionMapping* self,
                                             GtkWidget* widget,
                                             GdkEventButton* event)
{
	gboolean result;
	g_return_val_if_fail (widget != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	result = FALSE;
	return result;
}

gboolean
pdfpc_action_mapping_on_button_release (pdfpcActionMapping* self,
                                        GtkWidget* widget,
                                        GdkEventButton* event)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, FALSE);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_button_release) {
		return _klass_->on_button_release (self, widget, event);
	}
	return FALSE;
}

static gboolean
pdfpc_action_mapping_real_on_mouse_move (pdfpcActionMapping* self,
                                         GtkWidget* widget,
                                         GdkEventMotion* event)
{
	gboolean result;
	g_return_val_if_fail (widget != NULL, FALSE);
	g_return_val_if_fail (event != NULL, FALSE);
	result = FALSE;
	return result;
}

gboolean
pdfpc_action_mapping_on_mouse_move (pdfpcActionMapping* self,
                                    GtkWidget* widget,
                                    GdkEventMotion* event)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, FALSE);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_mouse_move) {
		return _klass_->on_mouse_move (self, widget, event);
	}
	return FALSE;
}

/**
         * By default, all mappings are active only in the normal mode.
         * Override to change this (probably, there will never be a need).
         */
static gboolean
pdfpc_action_mapping_real_is_sensitive (pdfpcActionMapping* self)
{
	pdfpcPresentationController* _tmp0_;
	gboolean result;
	_tmp0_ = self->controller;
	result = pdfpc_presentation_controller_in_normal_mode (_tmp0_);
	return result;
}

gboolean
pdfpc_action_mapping_is_sensitive (pdfpcActionMapping* self)
{
	pdfpcActionMappingClass* _klass_;
	g_return_val_if_fail (self != NULL, FALSE);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->is_sensitive) {
		return _klass_->is_sensitive (self);
	}
	return FALSE;
}

/**
         * Override this method to get notified of the freeze toggle events.
         */
static void
pdfpc_action_mapping_real_on_freeze (pdfpcActionMapping* self,
                                     gboolean frozen)
{
	return;
}

void
pdfpc_action_mapping_on_freeze (pdfpcActionMapping* self,
                                gboolean frozen)
{
	pdfpcActionMappingClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->on_freeze) {
		_klass_->on_freeze (self, frozen);
	}
}

/**
         * Called when leaving the page.  Override to clean up after yourself.
         */
static void
pdfpc_action_mapping_real_deactivate (pdfpcActionMapping* self)
{
	return;
}

void
pdfpc_action_mapping_deactivate (pdfpcActionMapping* self)
{
	pdfpcActionMappingClass* _klass_;
	g_return_if_fail (self != NULL);
	_klass_ = PDFPC_ACTION_MAPPING_GET_CLASS (self);
	if (_klass_->deactivate) {
		_klass_->deactivate (self);
	}
}

static void
pdfpc_action_mapping_class_init (pdfpcActionMappingClass * klass,
                                 gpointer klass_data)
{
	pdfpc_action_mapping_parent_class = g_type_class_peek_parent (klass);
	((pdfpcActionMappingClass *) klass)->init = (void (*) (pdfpcActionMapping*, PopplerRectangle*, pdfpcPresentationController*)) pdfpc_action_mapping_real_init;
	((pdfpcActionMappingClass *) klass)->new_from_link_mapping = (pdfpcActionMapping* (*) (pdfpcActionMapping*, PopplerLinkMapping*, pdfpcPresentationController*)) pdfpc_action_mapping_real_new_from_link_mapping;
	((pdfpcActionMappingClass *) klass)->new_from_annot_mapping = (pdfpcActionMapping* (*) (pdfpcActionMapping*, PopplerAnnotMapping*, pdfpcPresentationController*)) pdfpc_action_mapping_real_new_from_annot_mapping;
	((pdfpcActionMappingClass *) klass)->on_mouse_enter = (void (*) (pdfpcActionMapping*, GtkWidget*, GdkEventMotion*)) pdfpc_action_mapping_real_on_mouse_enter;
	((pdfpcActionMappingClass *) klass)->on_mouse_leave = (void (*) (pdfpcActionMapping*, GtkWidget*, GdkEventMotion*)) pdfpc_action_mapping_real_on_mouse_leave;
	((pdfpcActionMappingClass *) klass)->on_button_press = (gboolean (*) (pdfpcActionMapping*, GtkWidget*, GdkEventButton*)) pdfpc_action_mapping_real_on_button_press;
	((pdfpcActionMappingClass *) klass)->on_button_release = (gboolean (*) (pdfpcActionMapping*, GtkWidget*, GdkEventButton*)) pdfpc_action_mapping_real_on_button_release;
	((pdfpcActionMappingClass *) klass)->on_mouse_move = (gboolean (*) (pdfpcActionMapping*, GtkWidget*, GdkEventMotion*)) pdfpc_action_mapping_real_on_mouse_move;
	((pdfpcActionMappingClass *) klass)->is_sensitive = (gboolean (*) (pdfpcActionMapping*)) pdfpc_action_mapping_real_is_sensitive;
	((pdfpcActionMappingClass *) klass)->on_freeze = (void (*) (pdfpcActionMapping*, gboolean)) pdfpc_action_mapping_real_on_freeze;
	((pdfpcActionMappingClass *) klass)->deactivate = (void (*) (pdfpcActionMapping*)) pdfpc_action_mapping_real_deactivate;
	G_OBJECT_CLASS (klass)->finalize = pdfpc_action_mapping_finalize;
}

static void
pdfpc_action_mapping_instance_init (pdfpcActionMapping * self,
                                    gpointer klass)
{
}

static void
pdfpc_action_mapping_finalize (GObject * obj)
{
	pdfpcActionMapping * self;
	self = G_TYPE_CHECK_INSTANCE_CAST (obj, PDFPC_TYPE_ACTION_MAPPING, pdfpcActionMapping);
	_g_object_unref0 (self->controller);
	G_OBJECT_CLASS (pdfpc_action_mapping_parent_class)->finalize (obj);
}

/**
     * Base action mapping, encapsulating actions that result from links or annotations.
     */
static GType
pdfpc_action_mapping_get_type_once (void)
{
	static const GTypeInfo g_define_type_info = { sizeof (pdfpcActionMappingClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) pdfpc_action_mapping_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (pdfpcActionMapping), 0, (GInstanceInitFunc) pdfpc_action_mapping_instance_init, NULL };
	GType pdfpc_action_mapping_type_id;
	pdfpc_action_mapping_type_id = g_type_register_static (G_TYPE_OBJECT, "pdfpcActionMapping", &g_define_type_info, G_TYPE_FLAG_ABSTRACT);
	return pdfpc_action_mapping_type_id;
}

GType
pdfpc_action_mapping_get_type (void)
{
	static volatile gsize pdfpc_action_mapping_type_id__once = 0;
	if (g_once_init_enter (&pdfpc_action_mapping_type_id__once)) {
		GType pdfpc_action_mapping_type_id;
		pdfpc_action_mapping_type_id = pdfpc_action_mapping_get_type_once ();
		g_once_init_leave (&pdfpc_action_mapping_type_id__once, pdfpc_action_mapping_type_id);
	}
	return pdfpc_action_mapping_type_id__once;
}

