static void modest_account_mgr_class_init (ModestAccountMgrClass * klass);
static void modest_account_mgr_init (ModestAccountMgr * obj);
static void modest_account_mgr_finalize (GObject * obj);
+static void modest_account_mgr_base_init (gpointer g_class);
/* list my signals */
enum {
+ ACCOUNT_INSERTED_SIGNAL,
ACCOUNT_CHANGED_SIGNAL,
ACCOUNT_REMOVED_SIGNAL,
ACCOUNT_BUSY_SIGNAL,
if (!my_type) {
static const GTypeInfo my_info = {
sizeof (ModestAccountMgrClass),
- NULL, /* base init */
+ modest_account_mgr_base_init, /* base init */
NULL, /* base finalize */
(GClassInitFunc) modest_account_mgr_class_init,
NULL, /* class finalize */
return my_type;
}
+static void
+modest_account_mgr_base_init (gpointer g_class)
+{
+ static gboolean modest_account_mgr_initialized = FALSE;
+
+ if (!modest_account_mgr_initialized) {
+ /* signal definitions */
+ signals[ACCOUNT_INSERTED_SIGNAL] =
+ g_signal_new ("account_inserted",
+ MODEST_TYPE_ACCOUNT_MGR,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(ModestAccountMgrClass,account_inserted),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
+
+ signals[ACCOUNT_REMOVED_SIGNAL] =
+ g_signal_new ("account_removed",
+ MODEST_TYPE_ACCOUNT_MGR,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(ModestAccountMgrClass,account_removed),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE, 1, G_TYPE_STRING);
+
+ signals[ACCOUNT_CHANGED_SIGNAL] =
+ g_signal_new ("account_changed",
+ MODEST_TYPE_ACCOUNT_MGR,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(ModestAccountMgrClass,account_changed),
+ NULL, NULL,
+ modest_marshal_VOID__STRING_POINTER_BOOLEAN,
+ G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
+
+ signals[ACCOUNT_BUSY_SIGNAL] =
+ g_signal_new ("account_busy_changed",
+ MODEST_TYPE_ACCOUNT_MGR,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET(ModestAccountMgrClass,account_busy_changed),
+ NULL, NULL,
+ modest_marshal_VOID__STRING_BOOLEAN,
+ G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_BOOLEAN);
+
+ modest_account_mgr_initialized = TRUE;
+ }
+}
+
static void
modest_account_mgr_class_init (ModestAccountMgrClass * klass)
{
g_type_class_add_private (gobject_class,
sizeof (ModestAccountMgrPrivate));
-
- /* signal definitions */
- signals[ACCOUNT_REMOVED_SIGNAL] =
- g_signal_new ("account_removed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(ModestAccountMgrClass,account_removed),
- NULL, NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE, 1, G_TYPE_STRING);
- signals[ACCOUNT_CHANGED_SIGNAL] =
- g_signal_new ("account_changed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(ModestAccountMgrClass,account_changed),
- NULL, NULL,
- modest_marshal_VOID__STRING_POINTER_BOOLEAN,
- G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_POINTER, G_TYPE_BOOLEAN);
- signals[ACCOUNT_BUSY_SIGNAL] =
- g_signal_new ("account_busy_changed",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(ModestAccountMgrClass,account_busy_changed),
- NULL, NULL,
- modest_marshal_VOID__STRING_BOOLEAN,
- G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_BOOLEAN);
}