/* txr-graphics.c generated by valac 0.16.1, the Vala compiler
 * generated from txr-graphics.vala, do not modify */


#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>


#define TYPE_TXR_OBJECT (txr_object_get_type ())
#define TXR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_OBJECT, TXRObject))
#define TXR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_OBJECT, TXRObjectClass))
#define IS_TXR_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_OBJECT))
#define IS_TXR_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_OBJECT))
#define TXR_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_OBJECT, TXRObjectClass))

typedef struct _TXRObject TXRObject;
typedef struct _TXRObjectClass TXRObjectClass;
typedef struct _TXRObjectPrivate TXRObjectPrivate;

#define TYPE_TXR_DOC (txr_doc_get_type ())
#define TXR_DOC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_DOC, TXRDoc))
#define TXR_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_DOC, TXRDocClass))
#define IS_TXR_DOC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_DOC))
#define IS_TXR_DOC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_DOC))
#define TXR_DOC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_DOC, TXRDocClass))

typedef struct _TXRDoc TXRDoc;
typedef struct _TXRDocClass TXRDocClass;
typedef struct _TXRDocPrivate TXRDocPrivate;

#define TYPE_TXR_DOC_IFACE (txr_doc_iface_get_type ())
#define TXR_DOC_IFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_DOC_IFACE, TXRDocIface))
#define IS_TXR_DOC_IFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_DOC_IFACE))
#define TXR_DOC_IFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_TXR_DOC_IFACE, TXRDocIfaceIface))

typedef struct _TXRDocIface TXRDocIface;
typedef struct _TXRDocIfaceIface TXRDocIfaceIface;

#define TYPE_TXR_GRAPHICS (txr_graphics_get_type ())
#define TXR_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_TXR_GRAPHICS, TXRGraphics))
#define TXR_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_TXR_GRAPHICS, TXRGraphicsClass))
#define IS_TXR_GRAPHICS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_TXR_GRAPHICS))
#define IS_TXR_GRAPHICS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_TXR_GRAPHICS))
#define TXR_GRAPHICS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_TXR_GRAPHICS, TXRGraphicsClass))

typedef struct _TXRGraphics TXRGraphics;
typedef struct _TXRGraphicsClass TXRGraphicsClass;
typedef struct _TXRGraphicsPrivate TXRGraphicsPrivate;

struct _TXRObject {
	GObject parent_instance;
	TXRObjectPrivate * priv;
	gint object_field;
};

struct _TXRObjectClass {
	GObjectClass parent_class;
	void (*copy) (TXRObject* self, TXRObject* copy);
};

struct _TXRDoc {
	TXRObject parent_instance;
	TXRDocPrivate * priv;
	gint doc_field;
};

struct _TXRDocClass {
	TXRObjectClass parent_class;
};

struct _TXRDocIfaceIface {
	GTypeInterface parent_iface;
	gchar* (*gen) (TXRDocIface* self);
};

struct _TXRGraphics {
	TXRDoc parent_instance;
	TXRGraphicsPrivate * priv;
	gint graphics_field;
};

struct _TXRGraphicsClass {
	TXRDocClass parent_class;
};


static gpointer txr_graphics_parent_class = NULL;
static TXRDocIfaceIface* txr_graphics_txr_doc_iface_parent_iface = NULL;

GType txr_object_get_type (void) G_GNUC_CONST;
GType txr_doc_get_type (void) G_GNUC_CONST;
GType txr_doc_iface_get_type (void) G_GNUC_CONST;
GType txr_graphics_get_type (void) G_GNUC_CONST;
enum  {
	TXR_GRAPHICS_DUMMY_PROPERTY
};
static void txr_graphics_real_copy (TXRObject* base, TXRObject* copy);
void txr_object_copy (TXRObject* self, TXRObject* copy);
static gchar* txr_graphics_real_gen (TXRDocIface* base);
TXRGraphics* txr_graphics_new (void);
TXRGraphics* txr_graphics_construct (GType object_type);
TXRDoc* txr_doc_new (void);
TXRDoc* txr_doc_construct (GType object_type);
static void txr_graphics_finalize (GObject* obj);


static void txr_graphics_real_copy (TXRObject* base, TXRObject* copy) {
	TXRGraphics * self;
	FILE* _tmp0_;
	TXRObject* _tmp1_;
	self = (TXRGraphics*) base;
	g_return_if_fail (copy != NULL);
	_tmp0_ = stdout;
	fprintf (_tmp0_, "TXRGraphics:copy() called\n");
	_tmp1_ = copy;
	if (IS_TXR_GRAPHICS (_tmp1_)) {
		TXRObject* _tmp2_;
		TXRObject* _tmp3_;
		gint _tmp4_;
		_tmp2_ = copy;
		TXR_OBJECT_CLASS (txr_graphics_parent_class)->copy ((TXRObject*) TXR_DOC (self), _tmp2_);
		_tmp3_ = copy;
		_tmp4_ = self->graphics_field;
		TXR_GRAPHICS (_tmp3_)->graphics_field = _tmp4_;
	}
}


static gchar* txr_graphics_real_gen (TXRDocIface* base) {
	TXRGraphics * self;
	gchar* result = NULL;
	gchar* _tmp0_;
	self = (TXRGraphics*) base;
	_tmp0_ = g_strdup ("TXRGraphics generated string.");
	result = _tmp0_;
	return result;
}


TXRGraphics* txr_graphics_construct (GType object_type) {
	TXRGraphics * self = NULL;
	self = (TXRGraphics*) txr_doc_construct (object_type);
	return self;
}


TXRGraphics* txr_graphics_new (void) {
	return txr_graphics_construct (TYPE_TXR_GRAPHICS);
}


static void txr_graphics_class_init (TXRGraphicsClass * klass) {
	txr_graphics_parent_class = g_type_class_peek_parent (klass);
	TXR_OBJECT_CLASS (klass)->copy = txr_graphics_real_copy;
	G_OBJECT_CLASS (klass)->finalize = txr_graphics_finalize;
}


static void txr_graphics_txr_doc_iface_interface_init (TXRDocIfaceIface * iface) {
	txr_graphics_txr_doc_iface_parent_iface = g_type_interface_peek_parent (iface);
	iface->gen = (gchar* (*)(TXRDocIface*)) txr_graphics_real_gen;
}


static void txr_graphics_instance_init (TXRGraphics * self) {
}


static void txr_graphics_finalize (GObject* obj) {
	TXRGraphics * self;
	self = TXR_GRAPHICS (obj);
	G_OBJECT_CLASS (txr_graphics_parent_class)->finalize (obj);
}


GType txr_graphics_get_type (void) {
	static volatile gsize txr_graphics_type_id__volatile = 0;
	if (g_once_init_enter (&txr_graphics_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (TXRGraphicsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) txr_graphics_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TXRGraphics), 0, (GInstanceInitFunc) txr_graphics_instance_init, NULL };
		static const GInterfaceInfo txr_doc_iface_info = { (GInterfaceInitFunc) txr_graphics_txr_doc_iface_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
		GType txr_graphics_type_id;
		txr_graphics_type_id = g_type_register_static (TYPE_TXR_DOC, "TXRGraphics", &g_define_type_info, 0);
		g_type_add_interface_static (txr_graphics_type_id, TYPE_TXR_DOC_IFACE, &txr_doc_iface_info);
		g_once_init_leave (&txr_graphics_type_id__volatile, txr_graphics_type_id);
	}
	return txr_graphics_type_id__volatile;
}



