diff options
author | Niels De Graef <nielsdegraef@gmail.com> | 2018-12-23 12:09:52 +0100 |
---|---|---|
committer | Niels De Graef <nielsdegraef@gmail.com> | 2018-12-23 16:04:05 +0100 |
commit | a97b09c2a335a54ea53c1a4979defb0b4d111484 (patch) | |
tree | 0e6ac5d28a26ecf057cecd73d497e4e609bb0fca | |
parent | ffdef9716e6a169a844ff761f6537eca1360eb63 (diff) | |
download | gdm-a97b09c2a335a54ea53c1a4979defb0b4d111484.tar.gz |
display-factory: use G_DECLARE_DERIVABLE_TYPE
-rw-r--r-- | daemon/gdm-display-factory.c | 54 | ||||
-rw-r--r-- | daemon/gdm-display-factory.h | 20 |
2 files changed, 35 insertions, 39 deletions
diff --git a/daemon/gdm-display-factory.c b/daemon/gdm-display-factory.c index c520e108..b2e1405f 100644 --- a/daemon/gdm-display-factory.c +++ b/daemon/gdm-display-factory.c @@ -30,13 +30,11 @@ #include "gdm-display-factory.h" #include "gdm-display-store.h" -#define GDM_DISPLAY_FACTORY_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryPrivate)) - -struct GdmDisplayFactoryPrivate +typedef struct _GdmDisplayFactoryPrivate { GdmDisplayStore *display_store; guint purge_displays_id; -}; +} GdmDisplayFactoryPrivate; enum { PROP_0, @@ -47,7 +45,7 @@ static void gdm_display_factory_class_init (GdmDisplayFactoryClass *klass); static void gdm_display_factory_init (GdmDisplayFactory *factory); static void gdm_display_factory_finalize (GObject *object); -G_DEFINE_ABSTRACT_TYPE (GdmDisplayFactory, gdm_display_factory, G_TYPE_OBJECT) +G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (GdmDisplayFactory, gdm_display_factory, G_TYPE_OBJECT) GQuark gdm_display_factory_error_quark (void) @@ -81,8 +79,11 @@ purge_display (char *id, static void purge_displays (GdmDisplayFactory *factory) { - factory->priv->purge_displays_id = 0; - gdm_display_store_foreach_remove (factory->priv->display_store, + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + priv->purge_displays_id = 0; + gdm_display_store_foreach_remove (priv->display_store, (GdmDisplayStoreFunc)purge_display, NULL); } @@ -90,17 +91,23 @@ purge_displays (GdmDisplayFactory *factory) void gdm_display_factory_queue_purge_displays (GdmDisplayFactory *factory) { - if (factory->priv->purge_displays_id == 0) { - factory->priv->purge_displays_id = g_idle_add ((GSourceFunc) purge_displays, factory); + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + if (priv->purge_displays_id == 0) { + priv->purge_displays_id = g_idle_add ((GSourceFunc) purge_displays, factory); } } GdmDisplayStore * gdm_display_factory_get_display_store (GdmDisplayFactory *factory) { + GdmDisplayFactoryPrivate *priv; + g_return_val_if_fail (GDM_IS_DISPLAY_FACTORY (factory), NULL); - return factory->priv->display_store; + priv = gdm_display_factory_get_instance_private (factory); + return priv->display_store; } gboolean @@ -135,13 +142,13 @@ static void gdm_display_factory_set_display_store (GdmDisplayFactory *factory, GdmDisplayStore *display_store) { - if (factory->priv->display_store != NULL) { - g_object_unref (factory->priv->display_store); - factory->priv->display_store = NULL; - } + GdmDisplayFactoryPrivate *priv; + + priv = gdm_display_factory_get_instance_private (factory); + g_clear_object (&priv->display_store); if (display_store != NULL) { - factory->priv->display_store = g_object_ref (display_store); + priv->display_store = g_object_ref (display_store); } } @@ -172,12 +179,14 @@ gdm_display_factory_get_property (GObject *object, GParamSpec *pspec) { GdmDisplayFactory *self; + GdmDisplayFactoryPrivate *priv; self = GDM_DISPLAY_FACTORY (object); + priv = gdm_display_factory_get_instance_private (self); switch (prop_id) { case PROP_DISPLAY_STORE: - g_value_set_object (value, self->priv->display_store); + g_value_set_object (value, priv->display_store); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -201,31 +210,30 @@ gdm_display_factory_class_init (GdmDisplayFactoryClass *klass) "display store", GDM_TYPE_DISPLAY_STORE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); - - g_type_class_add_private (klass, sizeof (GdmDisplayFactoryPrivate)); } static void gdm_display_factory_init (GdmDisplayFactory *factory) { - factory->priv = GDM_DISPLAY_FACTORY_GET_PRIVATE (factory); } static void gdm_display_factory_finalize (GObject *object) { GdmDisplayFactory *factory; + GdmDisplayFactoryPrivate *priv; g_return_if_fail (object != NULL); g_return_if_fail (GDM_IS_DISPLAY_FACTORY (object)); factory = GDM_DISPLAY_FACTORY (object); + priv = gdm_display_factory_get_instance_private (factory); - g_return_if_fail (factory->priv != NULL); + g_return_if_fail (priv != NULL); - if (factory->priv->purge_displays_id != 0) { - g_source_remove (factory->priv->purge_displays_id); - factory->priv->purge_displays_id = 0; + if (priv->purge_displays_id != 0) { + g_source_remove (priv->purge_displays_id); + priv->purge_displays_id = 0; } G_OBJECT_CLASS (gdm_display_factory_parent_class)->finalize (object); diff --git a/daemon/gdm-display-factory.h b/daemon/gdm-display-factory.h index 1cffa1bd..b17cb1c8 100644 --- a/daemon/gdm-display-factory.h +++ b/daemon/gdm-display-factory.h @@ -28,28 +28,16 @@ G_BEGIN_DECLS -#define GDM_TYPE_DISPLAY_FACTORY (gdm_display_factory_get_type ()) -#define GDM_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactory)) -#define GDM_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryClass)) -#define GDM_IS_DISPLAY_FACTORY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_DISPLAY_FACTORY)) -#define GDM_IS_DISPLAY_FACTORY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_DISPLAY_FACTORY)) -#define GDM_DISPLAY_FACTORY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_DISPLAY_FACTORY, GdmDisplayFactoryClass)) +#define GDM_TYPE_DISPLAY_FACTORY (gdm_display_factory_get_type ()) +G_DECLARE_DERIVABLE_TYPE (GdmDisplayFactory, gdm_display_factory, GDM, DISPLAY_FACTORY, GObject) -typedef struct GdmDisplayFactoryPrivate GdmDisplayFactoryPrivate; - -typedef struct -{ - GObject parent; - GdmDisplayFactoryPrivate *priv; -} GdmDisplayFactory; - -typedef struct +struct _GdmDisplayFactoryClass { GObjectClass parent_class; gboolean (*start) (GdmDisplayFactory *factory); gboolean (*stop) (GdmDisplayFactory *factory); -} GdmDisplayFactoryClass; +}; typedef enum { |