grim/purple-signals

moved everything to it's own files, fixed the build system for it, still failing miserably at actually making this work
#include "marshallers.h"
#include "object.h"
#include <stdio.h>
enum {
SIG_SIMPLE,
SIG_BOOLEAN_RETURN,
SIG_LAST
};
static guint signals[SIG_LAST] = { 0, };
G_DEFINE_TYPE(PurpleObject, purple_object, G_TYPE_OBJECT);
static void
purple_object_init(PurpleObject *obj) {
}
static void
purple_object_class_init(PurpleObjectClass *klass) {
signals[SIG_SIMPLE] =
g_signal_new("simple",
G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(PurpleObjectClass, simple_signal),
NULL, NULL,
purple_marshal_VOID__OBJECT,
G_TYPE_NONE,
1, PURPLE_TYPE_OBJECT);
signals[SIG_BOOLEAN_RETURN] =
g_signal_new("boolean-return",
G_OBJECT_CLASS_TYPE(klass),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET(PurpleObjectClass, boolean_ret_signal),
NULL, NULL,
purple_marshal_BOOLEAN__OBJECT,
G_TYPE_BOOLEAN,
1, PURPLE_TYPE_OBJECT);
}
PurpleObject *
purple_object_new(void) {
return g_object_new(PURPLE_TYPE_OBJECT, NULL);
}
void
purple_object_emit_signals(PurpleObject *obj) {
gboolean ret = FALSE;
g_return_if_fail(G_TYPE_CHECK_INSTANCE_TYPE(obj, PURPLE_TYPE_OBJECT));
printf("passed error check\n");
g_signal_emit(obj, signals[SIG_SIMPLE], 0, NULL);
printf("emitted simple\n");
// g_signal_emit_by_name(obj, "boolean-return", &ret);
printf("emitted boolean\n");
printf("boolean return was '%s'\n", (ret) ? "True" : "False");
}