grim/purple-signals
Clone
Summary
Browse
Changes
Graph
moved everything to it's own files, fixed the build system for it, still failing miserably at actually making this work
2009-07-09, Gary Kramlich
ce6377086ad5
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"
);
}