[Xfce4-commits] [apps/xfdashboard] 04/09: libxfdashboard: update for g_type_class_add_private() deprecation

noreply at xfce.org noreply at xfce.org
Wed Aug 21 15:20:40 CEST 2019


This is an automated email from the git hooks/post-receive script.

n   o   m   a   d       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository apps/xfdashboard.

commit 3e610bd2a421f78e6f73c16e48193f1408f6c24f
Author: Stephan Haller <nomad at froevel.de>
Date:   Wed Aug 21 13:50:32 2019 +0200

    libxfdashboard: update for g_type_class_add_private() deprecation
---
 libxfdashboard/action-button.c                    | 20 +++------
 libxfdashboard/application-button.c               | 17 +++-----
 libxfdashboard/application-database.c             | 17 +++-----
 libxfdashboard/application-tracker.c              | 17 +++-----
 libxfdashboard/application.c                      | 17 +++-----
 libxfdashboard/applications-menu-model.c          | 19 +++-----
 libxfdashboard/applications-search-provider.c     | 17 +++-----
 libxfdashboard/applications-view.c                | 20 +++------
 libxfdashboard/background.c                       | 17 +++-----
 libxfdashboard/binding.c                          | 17 +++-----
 libxfdashboard/bindings-pool.c                    | 17 +++-----
 libxfdashboard/button.c                           | 17 +++-----
 libxfdashboard/click-action.c                     | 17 +++-----
 libxfdashboard/collapse-box.c                     | 20 +++------
 libxfdashboard/css-selector.c                     | 17 +++-----
 libxfdashboard/desktop-app-info-action.c          | 17 +++-----
 libxfdashboard/desktop-app-info.c                 | 26 ++++-------
 libxfdashboard/drag-action.c                      | 17 +++-----
 libxfdashboard/drop-action.c                      | 17 +++-----
 libxfdashboard/dynamic-table-layout.c             | 21 +++------
 libxfdashboard/emblem-effect.c                    | 17 +++-----
 libxfdashboard/fill-box-layout.c                  | 17 +++-----
 libxfdashboard/focus-manager.c                    | 17 +++-----
 libxfdashboard/gdk/window-tracker-backend-gdk.c   | 20 +++------
 libxfdashboard/image-content.c                    | 24 ++++------
 libxfdashboard/label.c                            | 17 +++-----
 libxfdashboard/live-window-simple.c               | 17 +++-----
 libxfdashboard/live-window.c                      | 17 +++-----
 libxfdashboard/live-workspace.c                   | 17 +++-----
 libxfdashboard/model.c                            | 31 ++++---------
 libxfdashboard/outline-effect.c                   | 17 +++-----
 libxfdashboard/plugin.c                           | 17 +++-----
 libxfdashboard/plugins-manager.c                  | 16 ++-----
 libxfdashboard/popup-menu-item-button.c           | 19 +++-----
 libxfdashboard/popup-menu-item-separator.c        | 20 +++------
 libxfdashboard/popup-menu.c                       | 20 +++------
 libxfdashboard/quicklaunch.c                      | 20 +++------
 libxfdashboard/scaled-table-layout.c              | 17 +++-----
 libxfdashboard/scrollbar.c                        | 17 +++-----
 libxfdashboard/search-manager.c                   | 17 +++-----
 libxfdashboard/search-provider.c                  | 17 +++-----
 libxfdashboard/search-result-container.c          | 17 +++-----
 libxfdashboard/search-result-set.c                | 17 +++-----
 libxfdashboard/search-view.c                      | 28 +++++-------
 libxfdashboard/stage-interface.c                  | 17 +++-----
 libxfdashboard/stage.c                            | 17 +++-----
 libxfdashboard/text-box.c                         | 20 +++------
 libxfdashboard/theme-css.c                        | 41 ++++++------------
 libxfdashboard/theme-effects.c                    | 47 ++++++++++----------
 libxfdashboard/theme-layout.c                     | 53 ++++++++++++-----------
 libxfdashboard/theme.c                            | 17 +++-----
 libxfdashboard/toggle-button.c                    | 17 +++-----
 libxfdashboard/tooltip-action.c                   | 17 +++-----
 libxfdashboard/view-manager.c                     | 17 +++-----
 libxfdashboard/view-selector.c                    | 17 +++-----
 libxfdashboard/view.c                             | 17 +++-----
 libxfdashboard/viewpad.c                          | 20 +++------
 libxfdashboard/windows-view.c                     | 20 +++------
 libxfdashboard/workspace-selector.c               | 20 +++------
 libxfdashboard/x11/window-content-x11.c           | 22 ++++------
 libxfdashboard/x11/window-tracker-backend-x11.c   | 20 +++------
 libxfdashboard/x11/window-tracker-monitor-x11.c   | 20 +++------
 libxfdashboard/x11/window-tracker-window-x11.c    | 19 +++-----
 libxfdashboard/x11/window-tracker-workspace-x11.c | 19 +++-----
 libxfdashboard/x11/window-tracker-x11.c           | 20 +++------
 65 files changed, 427 insertions(+), 867 deletions(-)

diff --git a/libxfdashboard/action-button.c b/libxfdashboard/action-button.c
index f602514..381e5e3 100644
--- a/libxfdashboard/action-button.c
+++ b/libxfdashboard/action-button.c
@@ -65,15 +65,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_action_button_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardActionButton,
-						xfdashboard_action_button,
-						XFDASHBOARD_TYPE_BUTTON,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_action_button_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_ACTION_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_ACTION_BUTTON, XfdashboardActionButtonPrivate))
-
 struct _XfdashboardActionButtonPrivate
 {
 	/* Properties related */
@@ -84,6 +75,12 @@ struct _XfdashboardActionButtonPrivate
 	XfdashboardFocusManager				*focusManager;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardActionButton,
+						xfdashboard_action_button,
+						XFDASHBOARD_TYPE_BUTTON,
+						G_ADD_PRIVATE(XfdashboardActionButton)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_action_button_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -438,9 +435,6 @@ static void xfdashboard_action_button_class_init(XfdashboardActionButtonClass *k
 	gobjectClass->set_property=_xfdashboard_action_button_set_property;
 	gobjectClass->get_property=_xfdashboard_action_button_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardActionButtonPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardActionButton:target:
@@ -477,7 +471,7 @@ static void xfdashboard_action_button_init(XfdashboardActionButton *self)
 {
 	XfdashboardActionButtonPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_ACTION_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_action_button_get_instance_private(self);
 
 	/* This actor is react on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/application-button.c b/libxfdashboard/application-button.c
index e66fcb0..c1fe821 100644
--- a/libxfdashboard/application-button.c
+++ b/libxfdashboard/application-button.c
@@ -45,14 +45,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardApplicationButton,
-				xfdashboard_application_button,
-				XFDASHBOARD_TYPE_BUTTON)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATION_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATION_BUTTON, XfdashboardApplicationButtonPrivate))
-
 struct _XfdashboardApplicationButtonPrivate
 {
 	/* Properties related */
@@ -69,6 +61,10 @@ struct _XfdashboardApplicationButtonPrivate
 	guint								runningStateChangedID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplicationButton,
+							xfdashboard_application_button,
+							XFDASHBOARD_TYPE_BUTTON)
+
 /* Properties */
 enum
 {
@@ -423,9 +419,6 @@ static void xfdashboard_application_button_class_init(XfdashboardApplicationButt
 	gobjectClass->set_property=_xfdashboard_application_button_set_property;
 	gobjectClass->get_property=_xfdashboard_application_button_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationButtonPrivate));
-
 	/* Define properties */
 	XfdashboardApplicationButtonProperties[PROP_APP_INFO]=
 		g_param_spec_object("app-info",
@@ -470,7 +463,7 @@ static void xfdashboard_application_button_init(XfdashboardApplicationButton *se
 {
 	XfdashboardApplicationButtonPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_APPLICATION_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_application_button_get_instance_private(self);
 
 	/* This actor is react on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/application-database.c b/libxfdashboard/application-database.c
index e7b6296..077cf75 100644
--- a/libxfdashboard/application-database.c
+++ b/libxfdashboard/application-database.c
@@ -35,14 +35,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardApplicationDatabase,
-				xfdashboard_application_database,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATION_DATABASE_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATION_DATABASE, XfdashboardApplicationDatabasePrivate))
-
 struct _XfdashboardApplicationDatabasePrivate
 {
 	/* Properties related */
@@ -58,6 +50,10 @@ struct _XfdashboardApplicationDatabasePrivate
 	GList				*appDirMonitors;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplicationDatabase,
+							xfdashboard_application_database,
+							G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -1357,9 +1353,6 @@ static void xfdashboard_application_database_class_init(XfdashboardApplicationDa
 	gobjectClass->finalize=_xfdashboard_application_database_finalize;
 	gobjectClass->get_property=_xfdashboard_application_database_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationDatabasePrivate));
-
 	/* Define properties */
 	XfdashboardApplicationDatabaseProperties[PROP_IS_LOADED]=
 		g_param_spec_boolean("is-loaded",
@@ -1414,7 +1407,7 @@ static void xfdashboard_application_database_init(XfdashboardApplicationDatabase
 	const gchar* const						*systemPaths;
 	gchar									*path;
 
-	priv=self->priv=XFDASHBOARD_APPLICATION_DATABASE_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_application_database_get_instance_private(self);
 
 	/* Set default values */
 	priv->isLoaded=FALSE;
diff --git a/libxfdashboard/application-tracker.c b/libxfdashboard/application-tracker.c
index 3c654c9..79598f3 100644
--- a/libxfdashboard/application-tracker.c
+++ b/libxfdashboard/application-tracker.c
@@ -38,14 +38,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardApplicationTracker,
-				xfdashboard_application_tracker,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATION_TRACKER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATION_TRACKER, XfdashboardApplicationTrackerPrivate))
-
 struct _XfdashboardApplicationTrackerPrivate
 {
 	/* Instance related */
@@ -55,6 +47,10 @@ struct _XfdashboardApplicationTrackerPrivate
 	XfdashboardWindowTracker		*windowTracker;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplicationTracker,
+				xfdashboard_application_tracker,
+				G_TYPE_OBJECT)
+
 /* Signals */
 enum
 {
@@ -1007,9 +1003,6 @@ static void xfdashboard_application_tracker_class_init(XfdashboardApplicationTra
 	gobjectClass->dispose=_xfdashboard_application_tracker_dispose;
 	gobjectClass->finalize=_xfdashboard_application_tracker_finalize;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationTrackerPrivate));
-
 	/* Define signals */
 	XfdashboardApplicationTrackerSignals[SIGNAL_STATE_CHANGED]=
 		g_signal_new("state-changed",
@@ -1032,7 +1025,7 @@ static void xfdashboard_application_tracker_init(XfdashboardApplicationTracker *
 {
 	XfdashboardApplicationTrackerPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_APPLICATION_TRACKER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_application_tracker_get_instance_private(self);
 
 	/* Set default values */
 	priv->runningApps=NULL;
diff --git a/libxfdashboard/application.c b/libxfdashboard/application.c
index a25fdf8..7c87afb 100644
--- a/libxfdashboard/application.c
+++ b/libxfdashboard/application.c
@@ -66,14 +66,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardApplication,
-				xfdashboard_application,
-				G_TYPE_APPLICATION)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATION, XfdashboardApplicationPrivate))
-
 struct _XfdashboardApplicationPrivate
 {
 	/* Properties related */
@@ -107,6 +99,10 @@ struct _XfdashboardApplicationPrivate
 	XfdashboardWindowTrackerBackend		*windowTrackerBackend;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplication,
+							xfdashboard_application,
+							G_TYPE_APPLICATION)
+
 /* Properties */
 enum
 {
@@ -1195,9 +1191,6 @@ static void xfdashboard_application_class_init(XfdashboardApplicationClass *klas
 	gobjectClass->set_property=_xfdashboard_application_set_property;
 	gobjectClass->get_property=_xfdashboard_application_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardApplication:is-daemonized:
@@ -1480,7 +1473,7 @@ static void xfdashboard_application_init(XfdashboardApplication *self)
 	XfdashboardApplicationPrivate	*priv;
 	GSimpleAction					*action;
 
-	priv=self->priv=XFDASHBOARD_APPLICATION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_application_get_instance_private(self);
 
 	/* Set default values */
 	priv->isDaemon=FALSE;
diff --git a/libxfdashboard/applications-menu-model.c b/libxfdashboard/applications-menu-model.c
index 3f702a1..45b7d8d 100644
--- a/libxfdashboard/applications-menu-model.c
+++ b/libxfdashboard/applications-menu-model.c
@@ -35,14 +35,6 @@
 
 
 /* Define these classes in GObject system */
-G_DEFINE_TYPE(XfdashboardApplicationsMenuModel,
-				xfdashboard_applications_menu_model,
-				XFDASHBOARD_TYPE_MODEL)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATIONS_MENU_MODEL_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATIONS_MENU_MODEL, XfdashboardApplicationsMenuModelPrivate))
-
 struct _XfdashboardApplicationsMenuModelPrivate
 {
 	/* Instance related */
@@ -52,6 +44,10 @@ struct _XfdashboardApplicationsMenuModelPrivate
 	guint							reloadRequiredSignalID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplicationsMenuModel,
+							xfdashboard_applications_menu_model,
+							XFDASHBOARD_TYPE_MODEL)
+
 /* Signals */
 enum
 {
@@ -440,7 +436,7 @@ static void _xfdashboard_applications_menu_model_fill_model_collect_menu(Xfdashb
 
 			item=_xfdashboard_applications_menu_model_item_new();
 			item->sequenceID=inFillData->sequenceID;
-			if(inMenu) item->menuElement=g_object_ref(inMenu);
+			if(inMenu) item->menuElement=GARCON_MENU_ELEMENT(g_object_ref(inMenu));
 			if(inParentMenu) item->parentMenu=g_object_ref(inParentMenu);
 			if(section) item->section=g_object_ref(section);
 			if(title) item->title=g_strdup(title);
@@ -610,9 +606,6 @@ static void xfdashboard_applications_menu_model_class_init(XfdashboardApplicatio
 
 	gobjectClass->dispose=_xfdashboard_applications_menu_model_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationsMenuModelPrivate));
-
 	/* Define signals */
 	XfdashboardApplicationsMenuModelSignals[SIGNAL_LOADED]=
 		g_signal_new("loaded",
@@ -633,7 +626,7 @@ static void xfdashboard_applications_menu_model_init(XfdashboardApplicationsMenu
 {
 	XfdashboardApplicationsMenuModelPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_APPLICATIONS_MENU_MODEL_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_applications_menu_model_get_instance_private(self);
 
 	/* Set up default values */
 	priv->rootMenu=NULL;
diff --git a/libxfdashboard/applications-search-provider.c b/libxfdashboard/applications-search-provider.c
index c19a6d6..08cfb40 100644
--- a/libxfdashboard/applications-search-provider.c
+++ b/libxfdashboard/applications-search-provider.c
@@ -48,14 +48,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardApplicationsSearchProvider,
-				xfdashboard_applications_search_provider,
-				XFDASHBOARD_TYPE_SEARCH_PROVIDER)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATIONS_SEARCH_PROVIDER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATIONS_SEARCH_PROVIDER, XfdashboardApplicationsSearchProviderPrivate))
-
 struct _XfdashboardApplicationsSearchProviderPrivate
 {
 	/* Properties related */
@@ -73,6 +65,10 @@ struct _XfdashboardApplicationsSearchProviderPrivate
 	XfdashboardApplicationsSearchProviderSortMode	currentSortMode;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardApplicationsSearchProvider,
+							xfdashboard_applications_search_provider,
+							XFDASHBOARD_TYPE_SEARCH_PROVIDER)
+
 /* Properties */
 enum
 {
@@ -1467,9 +1463,6 @@ static void xfdashboard_applications_search_provider_class_init(XfdashboardAppli
 	providerClass->create_result_actor=_xfdashboard_applications_search_provider_create_result_actor;
 	providerClass->activate_result=_xfdashboard_applications_search_provider_activate_result;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationsSearchProviderPrivate));
-
 	/* Define properties */
 	XfdashboardApplicationsSearchProviderProperties[PROP_SORT_MODE]=
 		g_param_spec_flags("sort-mode",
@@ -1489,7 +1482,7 @@ static void xfdashboard_applications_search_provider_init(XfdashboardApplication
 {
 	XfdashboardApplicationsSearchProviderPrivate	*priv;
 
-	self->priv=priv=XFDASHBOARD_APPLICATIONS_SEARCH_PROVIDER_GET_PRIVATE(self);
+	self->priv=priv=xfdashboard_applications_search_provider_get_instance_private(self);
 
 	/* Set up default values */
 	priv->xfconfChannel=xfdashboard_application_get_xfconf_channel(NULL);
diff --git a/libxfdashboard/applications-view.c b/libxfdashboard/applications-view.c
index b107bec..eb02972 100644
--- a/libxfdashboard/applications-view.c
+++ b/libxfdashboard/applications-view.c
@@ -56,15 +56,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_applications_view_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardApplicationsView,
-						xfdashboard_applications_view,
-						XFDASHBOARD_TYPE_VIEW,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_applications_view_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_APPLICATIONS_VIEW_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_APPLICATIONS_VIEW, XfdashboardApplicationsViewPrivate))
-
 struct _XfdashboardApplicationsViewPrivate
 {
 	/* Properties related */
@@ -86,6 +77,12 @@ struct _XfdashboardApplicationsViewPrivate
 	guint								xfconfShowAllAppsMenuBindingID;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardApplicationsView,
+						xfdashboard_applications_view,
+						XFDASHBOARD_TYPE_VIEW,
+						G_ADD_PRIVATE(XfdashboardApplicationsView)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_applications_view_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -1508,9 +1505,6 @@ static void xfdashboard_applications_view_class_init(XfdashboardApplicationsView
 	gobjectClass->set_property=_xfdashboard_applications_view_set_property;
 	gobjectClass->get_property=_xfdashboard_applications_view_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardApplicationsViewPrivate));
-
 	/* Define properties */
 	XfdashboardApplicationsViewProperties[PROP_VIEW_MODE]=
 		g_param_spec_enum("view-mode",
@@ -1574,7 +1568,7 @@ static void xfdashboard_applications_view_init(XfdashboardApplicationsView *self
 	XfdashboardApplicationsViewPrivate	*priv;
 	XfdashboardApplication				*application;
 
-	self->priv=priv=XFDASHBOARD_APPLICATIONS_VIEW_GET_PRIVATE(self);
+	self->priv=priv=xfdashboard_applications_view_get_instance_private(self);
 
 	/* Set up default values */
 	priv->apps=XFDASHBOARD_APPLICATIONS_MENU_MODEL(xfdashboard_applications_menu_model_new());
diff --git a/libxfdashboard/background.c b/libxfdashboard/background.c
index dea8a97..3df8eb4 100644
--- a/libxfdashboard/background.c
+++ b/libxfdashboard/background.c
@@ -38,14 +38,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardBackground,
-				xfdashboard_background,
-				XFDASHBOARD_TYPE_ACTOR)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BACKGROUND_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_BACKGROUND, XfdashboardBackgroundPrivate))
-
 struct _XfdashboardBackgroundPrivate
 {
 	/* Properties related */
@@ -67,6 +59,10 @@ struct _XfdashboardBackgroundPrivate
 	ClutterImage				*image;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardBackground,
+							xfdashboard_background,
+							XFDASHBOARD_TYPE_ACTOR)
+
 /* Properties */
 enum
 {
@@ -413,9 +409,6 @@ static void xfdashboard_background_class_init(XfdashboardBackgroundClass *klass)
 	clutterActorClass->paint_node=_xfdashboard_background_paint_node;
 	clutterActorClass->allocate=_xfdashboard_background_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardBackgroundPrivate));
-
 	/* Define properties */
 	XfdashboardBackgroundProperties[PROP_TYPE]=
 		g_param_spec_flags("background-type",
@@ -534,7 +527,7 @@ static void xfdashboard_background_init(XfdashboardBackground *self)
 {
 	XfdashboardBackgroundPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_BACKGROUND_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_background_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/binding.c b/libxfdashboard/binding.c
index 0dd15d5..58e4e07 100644
--- a/libxfdashboard/binding.c
+++ b/libxfdashboard/binding.c
@@ -35,14 +35,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardBinding,
-				xfdashboard_binding,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BINDING_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_BINDING, XfdashboardBindingPrivate))
-
 struct _XfdashboardBindingPrivate
 {
 	/* Instance related */
@@ -55,6 +47,10 @@ struct _XfdashboardBindingPrivate
 	XfdashboardBindingFlags	flags;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardBinding,
+							xfdashboard_binding,
+							G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -208,9 +204,6 @@ static void xfdashboard_binding_class_init(XfdashboardBindingClass *klass)
 	gobjectClass->set_property=_xfdashboard_binding_set_property;
 	gobjectClass->get_property=_xfdashboard_binding_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardBindingPrivate));
-
 	/* Define properties */
 	XfdashboardBindingProperties[PROP_EVENT_TYPE]=
 		g_param_spec_enum("event-type",
@@ -275,7 +268,7 @@ static void xfdashboard_binding_init(XfdashboardBinding *self)
 {
 	XfdashboardBindingPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_BINDING_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_binding_get_instance_private(self);
 
 	/* Set up default values */
 	priv->eventType=CLUTTER_NOTHING;
diff --git a/libxfdashboard/bindings-pool.c b/libxfdashboard/bindings-pool.c
index 9ec35d0..bbc7663 100644
--- a/libxfdashboard/bindings-pool.c
+++ b/libxfdashboard/bindings-pool.c
@@ -38,20 +38,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardBindingsPool,
-				xfdashboard_bindings_pool,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BINDINGS_POOL_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_BINDINGS_POOL, XfdashboardBindingsPoolPrivate))
-
 struct _XfdashboardBindingsPoolPrivate
 {
 	/* Instance related */
 	GHashTable		*bindings;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardBindingsPool,
+							xfdashboard_bindings_pool,
+							G_TYPE_OBJECT)
+
 /* IMPLEMENTATION: Private variables and methods */
 enum
 {
@@ -1025,9 +1021,6 @@ static void xfdashboard_bindings_pool_class_init(XfdashboardBindingsPoolClass *k
 	gobjectClass->constructor=_xfdashboard_bindings_pool_constructor;
 	gobjectClass->dispose=_xfdashboard_bindings_pool_dispose;
 	gobjectClass->finalize=_xfdashboard_bindings_pool_finalize;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardBindingsPoolPrivate));
 }
 
 /* Object initialization
@@ -1037,7 +1030,7 @@ static void xfdashboard_bindings_pool_init(XfdashboardBindingsPool *self)
 {
 	XfdashboardBindingsPoolPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_BINDINGS_POOL_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_bindings_pool_get_instance_private(self);
 
 	/* Set up default values */
 	priv->bindings=NULL;
diff --git a/libxfdashboard/button.c b/libxfdashboard/button.c
index 2d93058..5454408 100644
--- a/libxfdashboard/button.c
+++ b/libxfdashboard/button.c
@@ -36,20 +36,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardButton,
-				xfdashboard_button,
-				XFDASHBOARD_TYPE_LABEL)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_BUTTON, XfdashboardButtonPrivate))
-
 struct _XfdashboardButtonPrivate
 {
 	/* Instance related */
 	ClutterAction				*clickAction;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardButton,
+							xfdashboard_button,
+							XFDASHBOARD_TYPE_LABEL)
+
 /* Properties */
 enum
 {
@@ -146,9 +142,6 @@ static void xfdashboard_button_class_init(XfdashboardButtonClass *klass)
 	gobjectClass->set_property=_xfdashboard_button_set_property;
 	gobjectClass->get_property=_xfdashboard_button_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardButtonPrivate));
-
 	/* Define properties */
 	XfdashboardButtonProperties[PROP_STYLE]=
 		g_param_spec_override("button-style",
@@ -179,7 +172,7 @@ static void xfdashboard_button_init(XfdashboardButton *self)
 {
 	XfdashboardButtonPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_button_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/click-action.c b/libxfdashboard/click-action.c
index 1f22afe..76fc30d 100644
--- a/libxfdashboard/click-action.c
+++ b/libxfdashboard/click-action.c
@@ -120,14 +120,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardClickAction,
-				xfdashboard_click_action,
-				CLUTTER_TYPE_ACTION);
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_CLICK_ACTION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_CLICK_ACTION, XfdashboardClickActionPrivate))
-
 struct _XfdashboardClickActionPrivate
 {
 	/* Properties related */
@@ -154,6 +146,10 @@ struct _XfdashboardClickActionPrivate
 	gfloat					pressY;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardClickAction,
+							xfdashboard_click_action,
+							CLUTTER_TYPE_ACTION);
+
 /* Properties */
 enum
 {
@@ -652,9 +648,6 @@ static void xfdashboard_click_action_class_init(XfdashboardClickActionClass *kla
 	gobjectClass->set_property=_xfdashboard_click_action_set_property;
 	gobjectClass->get_property=_xfdashboard_click_action_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof (XfdashboardClickActionPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardClickAction:pressed:
@@ -784,7 +777,7 @@ static void xfdashboard_click_action_init(XfdashboardClickAction *self)
 {
 	XfdashboardClickActionPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_CLICK_ACTION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_click_action_get_instance_private(self);
 
 	/* Set up default values */
 	priv->longPressThreshold=-1;
diff --git a/libxfdashboard/collapse-box.c b/libxfdashboard/collapse-box.c
index 98d1dfb..2d538ea 100644
--- a/libxfdashboard/collapse-box.c
+++ b/libxfdashboard/collapse-box.c
@@ -39,15 +39,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_collapse_box_container_iface_init(ClutterContainerIface *inInterface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardCollapseBox,
-						xfdashboard_collapse_box,
-						XFDASHBOARD_TYPE_ACTOR,
-						G_IMPLEMENT_INTERFACE(CLUTTER_TYPE_CONTAINER, _xfdashboard_collapse_box_container_iface_init));
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_COLLAPSE_BOX_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_COLLAPSE_BOX, XfdashboardCollapseBoxPrivate))
-
 struct _XfdashboardCollapseBoxPrivate
 {
 	/* Properties related */
@@ -66,6 +57,12 @@ struct _XfdashboardCollapseBoxPrivate
 	gboolean				expandedByFocus;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardCollapseBox,
+						xfdashboard_collapse_box,
+						XFDASHBOARD_TYPE_ACTOR,
+						G_ADD_PRIVATE(XfdashboardCollapseBox)
+						G_IMPLEMENT_INTERFACE(CLUTTER_TYPE_CONTAINER, _xfdashboard_collapse_box_container_iface_init));
+
 /* Properties */
 enum
 {
@@ -569,9 +566,6 @@ static void xfdashboard_collapse_box_class_init(XfdashboardCollapseBoxClass *kla
 	gobjectClass->get_property=_xfdashboard_collapse_box_get_property;
 	gobjectClass->dispose=_xfdashboard_collapse_box_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardCollapseBoxPrivate));
-
 	/* Define properties */
 	XfdashboardCollapseBoxProperties[PROP_COLLAPSED]=
 		g_param_spec_boolean("collapsed",
@@ -623,7 +617,7 @@ static void xfdashboard_collapse_box_init(XfdashboardCollapseBox *self)
 {
 	XfdashboardCollapseBoxPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_COLLAPSE_BOX_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_collapse_box_get_instance_private(self);
 
 	/* Set up default values */
 	priv->isCollapsed=TRUE;
diff --git a/libxfdashboard/css-selector.c b/libxfdashboard/css-selector.c
index 973ffa3..7271182 100644
--- a/libxfdashboard/css-selector.c
+++ b/libxfdashboard/css-selector.c
@@ -34,14 +34,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardCssSelector,
-				xfdashboard_css_selector,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_CSS_SELECTOR_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_CSS_SELECTOR, XfdashboardCssSelectorPrivate))
-
 struct _XfdashboardCssSelectorPrivate
 {
 	/* Properties related */
@@ -51,6 +43,10 @@ struct _XfdashboardCssSelectorPrivate
 	XfdashboardCssSelectorRule		*rule;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardCssSelector,
+				xfdashboard_css_selector,
+				G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -871,9 +867,6 @@ static void xfdashboard_css_selector_class_init(XfdashboardCssSelectorClass *kla
 	gobjectClass->get_property=_xfdashboard_css_selector_get_property;
 	gobjectClass->dispose=_xfdashboard_css_selector_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardCssSelectorPrivate));
-
 	/* Define properties */
 	XfdashboardCssSelectorProperties[PROP_PRIORITY]=
 		g_param_spec_int("priority",
@@ -893,7 +886,7 @@ static void xfdashboard_css_selector_init(XfdashboardCssSelector *self)
 {
 	XfdashboardCssSelectorPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_CSS_SELECTOR_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_css_selector_get_instance_private(self);
 
 	/* Set up default values */
 	priv->priority=0;
diff --git a/libxfdashboard/desktop-app-info-action.c b/libxfdashboard/desktop-app-info-action.c
index 3eda701..8ca801f 100644
--- a/libxfdashboard/desktop-app-info-action.c
+++ b/libxfdashboard/desktop-app-info-action.c
@@ -44,14 +44,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardDesktopAppInfoAction,
-				xfdashboard_desktop_app_info_action,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_DESKTOP_APP_INFO_ACTION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_DESKTOP_APP_INFO_ACTION, XfdashboardDesktopAppInfoActionPrivate))
-
 struct _XfdashboardDesktopAppInfoActionPrivate
 {
 	/* Properties related */
@@ -60,6 +52,10 @@ struct _XfdashboardDesktopAppInfoActionPrivate
 	gchar				*command;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardDesktopAppInfoAction,
+							xfdashboard_desktop_app_info_action,
+							G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -178,9 +174,6 @@ static void xfdashboard_desktop_app_info_action_class_init(XfdashboardDesktopApp
 	gobjectClass->set_property=_xfdashboard_desktop_app_info_action_set_property;
 	gobjectClass->get_property=_xfdashboard_desktop_app_info_action_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardDesktopAppInfoActionPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardDesktopAppInfoAction:name:
@@ -230,7 +223,7 @@ static void xfdashboard_desktop_app_info_action_init(XfdashboardDesktopAppInfoAc
 {
 	XfdashboardDesktopAppInfoActionPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_DESKTOP_APP_INFO_ACTION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_desktop_app_info_action_get_instance_private(self);
 
 	/* Set up default values */
 	priv->name=NULL;
diff --git a/libxfdashboard/desktop-app-info.c b/libxfdashboard/desktop-app-info.c
index 2aa7054..e462ed1 100644
--- a/libxfdashboard/desktop-app-info.c
+++ b/libxfdashboard/desktop-app-info.c
@@ -37,15 +37,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_desktop_app_info_gappinfo_iface_init(GAppInfoIface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardDesktopAppInfo,
-						xfdashboard_desktop_app_info,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(G_TYPE_APP_INFO, _xfdashboard_desktop_app_info_gappinfo_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_DESKTOP_APP_INFO_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_DESKTOP_APP_INFO, XfdashboardDesktopAppInfoPrivate))
-
 struct _XfdashboardDesktopAppInfoPrivate
 {
 	/* Properties related */
@@ -70,6 +61,12 @@ struct _XfdashboardDesktopAppInfoPrivate
 	GList				*keywords;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardDesktopAppInfo,
+						xfdashboard_desktop_app_info,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardDesktopAppInfo)
+						G_IMPLEMENT_INTERFACE(G_TYPE_APP_INFO, _xfdashboard_desktop_app_info_gappinfo_iface_init))
+
 /* Properties */
 enum
 {
@@ -974,8 +971,7 @@ static gboolean _xfdashboard_desktop_app_info_launch_appinfo_internal(Xfdashboar
 		}
 
 		/* Release allocated resources */
-		g_list_foreach(filesToLaunch, (GFunc)g_object_unref, NULL);
-		g_list_free(filesToLaunch);
+		g_list_free_full(filesToLaunch, g_object_unref);
 	}
 
 	/* Get working directory and test if directory exists */
@@ -1378,8 +1374,7 @@ static gboolean _xfdashboard_desktop_app_info_gappinfo_launch(GAppInfo *inAppInf
 																	outError);
 
 	/* Release allocated resources */
-	g_list_foreach(uris, (GFunc)g_free, NULL);
-	g_list_free(uris);
+	g_list_free_full(uris, g_free);
 
 	return(result);
 }
@@ -1614,9 +1609,6 @@ static void xfdashboard_desktop_app_info_class_init(XfdashboardDesktopAppInfoCla
 	gobjectClass->set_property=_xfdashboard_desktop_app_info_set_property;
 	gobjectClass->get_property=_xfdashboard_desktop_app_info_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardDesktopAppInfoPrivate));
-
 	/* Define properties */
 	XfdashboardDesktopAppInfoProperties[PROP_VALID]=
 		g_param_spec_boolean("valid",
@@ -1661,7 +1653,7 @@ static void xfdashboard_desktop_app_info_init(XfdashboardDesktopAppInfo *self)
 {
 	XfdashboardDesktopAppInfoPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_DESKTOP_APP_INFO_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_desktop_app_info_get_instance_private(self);
 
 	/* Set up default values */
 	priv->inited=FALSE;
diff --git a/libxfdashboard/drag-action.c b/libxfdashboard/drag-action.c
index 3f333aa..d308809 100644
--- a/libxfdashboard/drag-action.c
+++ b/libxfdashboard/drag-action.c
@@ -37,14 +37,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardDragAction,
-				xfdashboard_drag_action,
-				CLUTTER_TYPE_DRAG_ACTION)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_DRAG_ACTION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_DRAG_ACTION, XfdashboardDragActionPrivate))
-
 struct _XfdashboardDragActionPrivate
 {
 	/* Properties related */
@@ -64,6 +56,10 @@ struct _XfdashboardDragActionPrivate
 	guint					dragHandleChangedID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardDragAction,
+							xfdashboard_drag_action,
+							CLUTTER_TYPE_DRAG_ACTION)
+
 /* Properties */
 enum
 {
@@ -926,9 +922,6 @@ void xfdashboard_drag_action_class_init(XfdashboardDragActionClass *klass)
 	dragActionClass->drag_motion=_xfdashboard_drag_action_drag_motion;
 	dragActionClass->drag_end=_xfdashboard_drag_action_drag_end;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardDragActionPrivate));
-
 	/* Define properties */
 	XfdashboardDragActionProperties[PROP_SOURCE]=
 		g_param_spec_object("source",
@@ -962,7 +955,7 @@ void xfdashboard_drag_action_init(XfdashboardDragAction *self)
 {
 	XfdashboardDragActionPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_DRAG_ACTION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_drag_action_get_instance_private(self);
 
 	/* Set up default values */
 	priv->source=NULL;
diff --git a/libxfdashboard/drop-action.c b/libxfdashboard/drop-action.c
index 493b386..e14204b 100644
--- a/libxfdashboard/drop-action.c
+++ b/libxfdashboard/drop-action.c
@@ -36,14 +36,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardDropAction,
-				xfdashboard_drop_action,
-				CLUTTER_TYPE_ACTION)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_DROP_ACTION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_DROP_ACTION, XfdashboardDropActionPrivate))
-
 struct _XfdashboardDropActionPrivate
 {
 	/* Instance related */
@@ -51,6 +43,10 @@ struct _XfdashboardDropActionPrivate
 	guint			destroySignalID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardDropAction,
+							xfdashboard_drop_action,
+							CLUTTER_TYPE_ACTION)
+
 /* Signals */
 enum
 {
@@ -337,9 +333,6 @@ void xfdashboard_drop_action_class_init(XfdashboardDropActionClass *klass)
 	klass->drag_enter=_xfdashboard_drop_action_class_real_drag_enter;
 	klass->drag_leave=_xfdashboard_drop_action_class_real_drag_leave;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardDropActionPrivate));
-
 	/* Define signals */
 	XfdashboardDropActionSignals[SIGNAL_BEGIN]=
 		g_signal_new("begin",
@@ -439,7 +432,7 @@ void xfdashboard_drop_action_init(XfdashboardDropAction *self)
 {
 	XfdashboardDropActionPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_DROP_ACTION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_drop_action_get_instance_private(self);
 
 	/* Set up default values */
 	priv->destroySignalID=0;
diff --git a/libxfdashboard/dynamic-table-layout.c b/libxfdashboard/dynamic-table-layout.c
index f631e12..22b641e 100644
--- a/libxfdashboard/dynamic-table-layout.c
+++ b/libxfdashboard/dynamic-table-layout.c
@@ -41,16 +41,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_dynamic_table_layout_stylable_iface_init(XfdashboardStylableInterface *inInterface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardDynamicTableLayout,
-						xfdashboard_dynamic_table_layout,
-						CLUTTER_TYPE_LAYOUT_MANAGER,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_dynamic_table_layout_stylable_iface_init));
-
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_DYNAMIC_TABLE_LAYOUT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_DYNAMIC_TABLE_LAYOUT, XfdashboardDynamicTableLayoutPrivate))
-
 struct _XfdashboardDynamicTableLayoutPrivate
 {
 	/* Properties related */
@@ -70,6 +60,12 @@ struct _XfdashboardDynamicTableLayoutPrivate
 	guint				styleRevalidationSignalID;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardDynamicTableLayout,
+						xfdashboard_dynamic_table_layout,
+						CLUTTER_TYPE_LAYOUT_MANAGER,
+						G_ADD_PRIVATE(XfdashboardDynamicTableLayout)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_dynamic_table_layout_stylable_iface_init));
+
 /* Properties */
 enum
 {
@@ -850,9 +846,6 @@ static void xfdashboard_dynamic_table_layout_class_init(XfdashboardDynamicTableL
 
 	stylableIface=g_type_default_interface_ref(XFDASHBOARD_TYPE_STYLABLE);
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardDynamicTableLayoutPrivate));
-
 	/* Define properties */
 	XfdashboardDynamicTableLayoutProperties[PROP_ROW_SPACING]=
 		g_param_spec_float("row-spacing",
@@ -929,7 +922,7 @@ static void xfdashboard_dynamic_table_layout_init(XfdashboardDynamicTableLayout
 {
 	XfdashboardDynamicTableLayoutPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_DYNAMIC_TABLE_LAYOUT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_dynamic_table_layout_get_instance_private(self);
 
 	/* Set default values */
 	priv->rowSpacing=0.0f;
diff --git a/libxfdashboard/emblem-effect.c b/libxfdashboard/emblem-effect.c
index ab05e96..857afbf 100644
--- a/libxfdashboard/emblem-effect.c
+++ b/libxfdashboard/emblem-effect.c
@@ -41,14 +41,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardEmblemEffect,
-				xfdashboard_emblem_effect,
-				CLUTTER_TYPE_EFFECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_EMBLEM_EFFECT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_EMBLEM_EFFECT, XfdashboardEmblemEffectPrivate))
-
 struct _XfdashboardEmblemEffectPrivate
 {
 	/* Properties related */
@@ -67,6 +59,10 @@ struct _XfdashboardEmblemEffectPrivate
 	CoglPipeline				*pipeline;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardEmblemEffect,
+							xfdashboard_emblem_effect,
+							CLUTTER_TYPE_EFFECT)
+
 /* Properties */
 enum
 {
@@ -469,9 +465,6 @@ static void xfdashboard_emblem_effect_class_init(XfdashboardEmblemEffectClass *k
 
 	effectClass->paint=_xfdashboard_emblem_effect_paint;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardEmblemEffectPrivate));
-
 	/* Define properties */
 	XfdashboardEmblemEffectProperties[PROP_ICON_NAME]=
 		g_param_spec_string("icon-name",
@@ -530,7 +523,7 @@ static void xfdashboard_emblem_effect_init(XfdashboardEmblemEffect *self)
 {
 	XfdashboardEmblemEffectPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_EMBLEM_EFFECT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_emblem_effect_get_instance_private(self);
 
 	/* Set up default values */
 	priv->iconName=NULL;
diff --git a/libxfdashboard/fill-box-layout.c b/libxfdashboard/fill-box-layout.c
index 23aac73..256c43a 100644
--- a/libxfdashboard/fill-box-layout.c
+++ b/libxfdashboard/fill-box-layout.c
@@ -37,14 +37,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardFillBoxLayout,
-				xfdashboard_fill_box_layout,
-				CLUTTER_TYPE_LAYOUT_MANAGER)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_FILL_BOX_LAYOUT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_FILL_BOX_LAYOUT, XfdashboardFillBoxLayoutPrivate))
-
 struct _XfdashboardFillBoxLayoutPrivate
 {
 	/* Properties related */
@@ -54,6 +46,10 @@ struct _XfdashboardFillBoxLayoutPrivate
 	gboolean			keepAspect;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardFillBoxLayout,
+							xfdashboard_fill_box_layout,
+							CLUTTER_TYPE_LAYOUT_MANAGER)
+
 /* Properties */
 enum
 {
@@ -569,9 +565,6 @@ static void xfdashboard_fill_box_layout_class_init(XfdashboardFillBoxLayoutClass
 	gobjectClass->set_property=_xfdashboard_fill_box_layout_set_property;
 	gobjectClass->get_property=_xfdashboard_fill_box_layout_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardFillBoxLayoutPrivate));
-
 	/* Define properties */
 	XfdashboardFillBoxLayoutProperties[PROP_ORIENTATION]=
 		g_param_spec_enum("orientation",
@@ -614,7 +607,7 @@ static void xfdashboard_fill_box_layout_init(XfdashboardFillBoxLayout *self)
 {
 	XfdashboardFillBoxLayoutPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_FILL_BOX_LAYOUT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_fill_box_layout_get_instance_private(self);
 
 	/* Set default values */
 	priv->orientation=CLUTTER_ORIENTATION_HORIZONTAL;
diff --git a/libxfdashboard/focus-manager.c b/libxfdashboard/focus-manager.c
index 382ac9b..659ba06 100644
--- a/libxfdashboard/focus-manager.c
+++ b/libxfdashboard/focus-manager.c
@@ -39,14 +39,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardFocusManager,
-				xfdashboard_focus_manager,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_FOCUS_MANAGER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_FOCUS_MANAGER, XfdashboardFocusManagerPrivate))
-
 struct _XfdashboardFocusManagerPrivate
 {
 	/* Instance related */
@@ -54,6 +46,10 @@ struct _XfdashboardFocusManagerPrivate
 	XfdashboardFocusable	*currentFocus;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardFocusManager,
+							xfdashboard_focus_manager,
+							G_TYPE_OBJECT)
+
 /* Signals */
 enum
 {
@@ -422,9 +418,6 @@ static void xfdashboard_focus_manager_class_init(XfdashboardFocusManagerClass *k
 	klass->focus_move_next=_xfdashboard_focus_manager_move_focus_next;
 	klass->focus_move_previous=_xfdashboard_focus_manager_move_focus_previous;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardFocusManagerPrivate));
-
 	/* Define signals */
 	XfdashboardFocusManagerSignals[SIGNAL_REGISTERED]=
 		g_signal_new("registered",
@@ -527,7 +520,7 @@ static void xfdashboard_focus_manager_init(XfdashboardFocusManager *self)
 {
 	XfdashboardFocusManagerPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_FOCUS_MANAGER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_focus_manager_get_instance_private(self);
 
 	/* Set default values */
 	priv->registeredFocusables=NULL;
diff --git a/libxfdashboard/gdk/window-tracker-backend-gdk.c b/libxfdashboard/gdk/window-tracker-backend-gdk.c
index 2250f35..e8446c6 100644
--- a/libxfdashboard/gdk/window-tracker-backend-gdk.c
+++ b/libxfdashboard/gdk/window-tracker-backend-gdk.c
@@ -46,22 +46,17 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_backend_gdk_window_tracker_backend_iface_init(XfdashboardWindowTrackerBackendInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerBackendGDK,
-						xfdashboard_window_tracker_backend_gdk,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND, _xfdashboard_window_tracker_backend_gdk_window_tracker_backend_iface_init))
-
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_BACKEND_GDK_GET_PRIVATE(obj)                \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND_GDK, XfdashboardWindowTrackerBackendGDKPrivate))
-
 struct _XfdashboardWindowTrackerBackendGDKPrivate
 {
 	/* Instance related */
 	XfdashboardWindowTrackerX11		*windowTracker;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerBackendGDK,
+						xfdashboard_window_tracker_backend_gdk,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerBackendGDK)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND, _xfdashboard_window_tracker_backend_gdk_window_tracker_backend_iface_init))
 
 /* IMPLEMENTATION: Private variables and methods */
 
@@ -760,9 +755,6 @@ void xfdashboard_window_tracker_backend_gdk_class_init(XfdashboardWindowTrackerB
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_window_tracker_backend_gdk_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerBackendGDKPrivate));
 }
 
 /* Object initialization
@@ -772,7 +764,7 @@ void xfdashboard_window_tracker_backend_gdk_init(XfdashboardWindowTrackerBackend
 {
 	XfdashboardWindowTrackerBackendGDKPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_BACKEND_GDK_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_backend_gdk_get_instance_private(self);
 
 	XFDASHBOARD_DEBUG(self, WINDOWS, "Initializing GDK-X11 window tracker backend");
 
diff --git a/libxfdashboard/image-content.c b/libxfdashboard/image-content.c
index 13e8f27..12324d2 100644
--- a/libxfdashboard/image-content.c
+++ b/libxfdashboard/image-content.c
@@ -44,14 +44,6 @@
 #endif
 
 
-/* Define this class in GObject system */
-static void _xfdashboard_image_content_stylable_iface_init(XfdashboardStylableInterface *iface);
-
-G_DEFINE_TYPE_WITH_CODE(XfdashboardImageContent,
-						xfdashboard_image_content,
-						CLUTTER_TYPE_IMAGE,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_image_content_stylable_iface_init))
-
 /* Local definitions */
 typedef enum /*< skip,prefix=XFDASHBOARD_IMAGE_TYPE >*/
 {
@@ -61,9 +53,8 @@ typedef enum /*< skip,prefix=XFDASHBOARD_IMAGE_TYPE >*/
 	XFDASHBOARD_IMAGE_TYPE_GICON,
 } XfdashboardImageType;
 
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_IMAGE_CONTENT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_IMAGE_CONTENT, XfdashboardImageContentPrivate))
+/* Define this class in GObject system */
+static void _xfdashboard_image_content_stylable_iface_init(XfdashboardStylableInterface *iface);
 
 struct _XfdashboardImageContentPrivate
 {
@@ -86,6 +77,12 @@ struct _XfdashboardImageContentPrivate
 	guint								iconThemeChangedSignalID;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardImageContent,
+						xfdashboard_image_content,
+						CLUTTER_TYPE_IMAGE,
+						G_ADD_PRIVATE(XfdashboardImageContent)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_image_content_stylable_iface_init))
+
 /* Properties */
 enum
 {
@@ -1441,9 +1438,6 @@ void xfdashboard_image_content_class_init(XfdashboardImageContentClass *klass)
 
 	stylableIface=g_type_default_interface_ref(XFDASHBOARD_TYPE_STYLABLE);
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardImageContentPrivate));
-
 	/* Define properties */
 	XfdashboardImageContentProperties[PROP_KEY]=
 		g_param_spec_string("key",
@@ -1503,7 +1497,7 @@ void xfdashboard_image_content_init(XfdashboardImageContent *self)
 {
 	XfdashboardImageContentPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_IMAGE_CONTENT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_image_content_get_instance_private(self);
 
 	/* Set up default values */
 	priv->key=NULL;
diff --git a/libxfdashboard/label.c b/libxfdashboard/label.c
index 11e8b3c..8d931fa 100644
--- a/libxfdashboard/label.c
+++ b/libxfdashboard/label.c
@@ -46,14 +46,6 @@ typedef enum /*< skip,prefix=XFDASHBOARD_LABEL_ICON_TYPE >*/
 } XfdashboardLabelIconType;
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardLabel,
-				xfdashboard_label,
-				XFDASHBOARD_TYPE_BACKGROUND)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_LABEL_GET_PRIVATE(obj)                                     \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_LABEL, XfdashboardLabelPrivate))
-
 struct _XfdashboardLabelPrivate
 {
 	/* Properties related */
@@ -81,6 +73,10 @@ struct _XfdashboardLabelPrivate
 	XfdashboardLabelIconType	iconType;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardLabel,
+							xfdashboard_label,
+							XFDASHBOARD_TYPE_BACKGROUND)
+
 /* Properties */
 enum
 {
@@ -1238,9 +1234,6 @@ static void xfdashboard_label_class_init(XfdashboardLabelClass *klass)
 	clutterActorClass->allocate=_xfdashboard_label_allocate;
 	clutterActorClass->destroy=_xfdashboard_label_destroy;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardLabelPrivate));
-
 	/* Define properties */
 	XfdashboardLabelProperties[PROP_PADDING]=
 		g_param_spec_float("padding",
@@ -1380,7 +1373,7 @@ static void xfdashboard_label_init(XfdashboardLabel *self)
 {
 	XfdashboardLabelPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_LABEL_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_label_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/live-window-simple.c b/libxfdashboard/live-window-simple.c
index 78e5c6d..f483b61 100644
--- a/libxfdashboard/live-window-simple.c
+++ b/libxfdashboard/live-window-simple.c
@@ -40,14 +40,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardLiveWindowSimple,
-				xfdashboard_live_window_simple,
-				XFDASHBOARD_TYPE_BACKGROUND)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_LIVE_WINDOW_SIMPLE_GET_PRIVATE(obj)                        \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_LIVE_WINDOW_SIMPLE, XfdashboardLiveWindowSimplePrivate))
-
 struct _XfdashboardLiveWindowSimplePrivate
 {
 	/* Properties related */
@@ -60,6 +52,10 @@ struct _XfdashboardLiveWindowSimplePrivate
 	gboolean								destroyOnClose;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardLiveWindowSimple,
+							xfdashboard_live_window_simple,
+							XFDASHBOARD_TYPE_BACKGROUND)
+
 /* Properties */
 enum
 {
@@ -503,9 +499,6 @@ static void xfdashboard_live_window_simple_class_init(XfdashboardLiveWindowSimpl
 	gobjectClass->set_property=_xfdashboard_live_window_simple_set_property;
 	gobjectClass->get_property=_xfdashboard_live_window_simple_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardLiveWindowSimplePrivate));
-
 	/* Define properties */
 	XfdashboardLiveWindowSimpleProperties[PROP_WINDOW]=
 		g_param_spec_object("window",
@@ -577,7 +570,7 @@ static void xfdashboard_live_window_simple_init(XfdashboardLiveWindowSimple *sel
 {
 	XfdashboardLiveWindowSimplePrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_LIVE_WINDOW_SIMPLE_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_live_window_simple_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/live-window.c b/libxfdashboard/live-window.c
index 5b14918..1cc9951 100644
--- a/libxfdashboard/live-window.c
+++ b/libxfdashboard/live-window.c
@@ -46,14 +46,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardLiveWindow,
-				xfdashboard_live_window,
-				XFDASHBOARD_TYPE_LIVE_WINDOW_SIMPLE)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_LIVE_WINDOW_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_LIVE_WINDOW, XfdashboardLiveWindowPrivate))
-
 struct _XfdashboardLiveWindowPrivate
 {
 	/* Properties related */
@@ -78,6 +70,10 @@ struct _XfdashboardLiveWindowPrivate
 	guint								xfconfAllowSubwindowsBindingID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardLiveWindow,
+							xfdashboard_live_window,
+							XFDASHBOARD_TYPE_LIVE_WINDOW_SIMPLE)
+
 /* Properties */
 enum
 {
@@ -1065,9 +1061,6 @@ static void xfdashboard_live_window_class_init(XfdashboardLiveWindowClass *klass
 	gobjectClass->set_property=_xfdashboard_live_window_set_property;
 	gobjectClass->get_property=_xfdashboard_live_window_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardLiveWindowPrivate));
-
 	/* Define properties */
 	XfdashboardLiveWindowProperties[PROP_WINDOW_NUMBER]=
 		g_param_spec_uint("window-number",
@@ -1146,7 +1139,7 @@ static void xfdashboard_live_window_init(XfdashboardLiveWindow *self)
 	XfdashboardLiveWindowPrivate	*priv;
 	ClutterAction					*action;
 
-	priv=self->priv=XFDASHBOARD_LIVE_WINDOW_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_live_window_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/live-workspace.c b/libxfdashboard/live-workspace.c
index 54ca47d..5ef2d6a 100644
--- a/libxfdashboard/live-workspace.c
+++ b/libxfdashboard/live-workspace.c
@@ -44,14 +44,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardLiveWorkspace,
-				xfdashboard_live_workspace,
-				XFDASHBOARD_TYPE_BACKGROUND)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_LIVE_WORKSPACE_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_LIVE_WORKSPACE, XfdashboardLiveWorkspacePrivate))
-
 struct _XfdashboardLiveWorkspacePrivate
 {
 	/* Properties related */
@@ -68,6 +60,10 @@ struct _XfdashboardLiveWorkspacePrivate
 	ClutterAction							*clickAction;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardLiveWorkspace,
+							xfdashboard_live_workspace,
+							XFDASHBOARD_TYPE_BACKGROUND)
+
 /* Properties */
 enum
 {
@@ -997,9 +993,6 @@ static void xfdashboard_live_workspace_class_init(XfdashboardLiveWorkspaceClass
 	gobjectClass->set_property=_xfdashboard_live_workspace_set_property;
 	gobjectClass->get_property=_xfdashboard_live_workspace_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardLiveWorkspacePrivate));
-
 	/* Define properties */
 	XfdashboardLiveWorkspaceProperties[PROP_WORKSPACE]=
 		g_param_spec_object("workspace",
@@ -1065,7 +1058,7 @@ static void xfdashboard_live_workspace_init(XfdashboardLiveWorkspace *self)
 {
 	XfdashboardLiveWorkspacePrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_LIVE_WORKSPACE_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_live_workspace_get_instance_private(self);
 
 	/* Set default values */
 	priv->windowTracker=xfdashboard_window_tracker_get_default();
diff --git a/libxfdashboard/model.c b/libxfdashboard/model.c
index f409ba8..96792d0 100644
--- a/libxfdashboard/model.c
+++ b/libxfdashboard/model.c
@@ -31,18 +31,6 @@
 
 
 /* Define theses classes in GObject system */
-G_DEFINE_TYPE(XfdashboardModel,
-				xfdashboard_model,
-				G_TYPE_OBJECT);
-
-G_DEFINE_TYPE(XfdashboardModelIter,
-				xfdashboard_model_iter,
-				G_TYPE_OBJECT);
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_MODEL_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_MODEL, XfdashboardModelPrivate))
-
 struct _XfdashboardModelPrivate
 {
 	/* Instance related */
@@ -58,8 +46,9 @@ struct _XfdashboardModelPrivate
 	GDestroyNotify				filterUserDataDestroyCallback;
 };
 
-#define XFDASHBOARD_MODEL_ITER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_MODEL_ITER, XfdashboardModelIterPrivate))
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardModel,
+							xfdashboard_model,
+							G_TYPE_OBJECT);
 
 struct _XfdashboardModelIterPrivate
 {
@@ -68,6 +57,10 @@ struct _XfdashboardModelIterPrivate
 	GSequenceIter				*iter;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardModelIter,
+							xfdashboard_model_iter,
+							G_TYPE_OBJECT);
+
 /* Properties */
 enum
 {
@@ -284,9 +277,6 @@ static void xfdashboard_model_class_init(XfdashboardModelClass *klass)
 	gobjectClass->set_property=_xfdashboard_model_set_property;
 	gobjectClass->get_property=_xfdashboard_model_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardModelPrivate));
-
 	/* Define properties */
 	XfdashboardModelProperties[PROP_ROWS]=
 		g_param_spec_int("rows",
@@ -385,7 +375,7 @@ static void xfdashboard_model_init(XfdashboardModel *self)
 {
 	XfdashboardModelPrivate			*priv;
 
-	priv=self->priv=XFDASHBOARD_MODEL_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_model_get_instance_private(self);
 
 	/* Set up default values */
 	priv->data=g_sequence_new(NULL);
@@ -429,9 +419,6 @@ static void xfdashboard_model_iter_class_init(XfdashboardModelIterClass *klass)
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_model_iter_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardModelIterPrivate));
 }
 
 /* Object initialization of type XfdashboardModelIter
@@ -441,7 +428,7 @@ static void xfdashboard_model_iter_init(XfdashboardModelIter *self)
 {
 	XfdashboardModelIterPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_MODEL_ITER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_model_iter_get_instance_private(self);
 
 	/* Set up default values */
 	priv->model=NULL;
diff --git a/libxfdashboard/outline-effect.c b/libxfdashboard/outline-effect.c
index c5581d5..777ccfe 100644
--- a/libxfdashboard/outline-effect.c
+++ b/libxfdashboard/outline-effect.c
@@ -35,14 +35,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardOutlineEffect,
-				xfdashboard_outline_effect,
-				CLUTTER_TYPE_EFFECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_OUTLINE_EFFECT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_OUTLINE_EFFECT, XfdashboardOutlineEffectPrivate))
-
 struct _XfdashboardOutlineEffectPrivate
 {
 	/* Properties related */
@@ -53,6 +45,10 @@ struct _XfdashboardOutlineEffectPrivate
 	gfloat						cornersRadius;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardOutlineEffect,
+							xfdashboard_outline_effect,
+							CLUTTER_TYPE_EFFECT)
+
 /* Properties */
 enum
 {
@@ -421,9 +417,6 @@ static void xfdashboard_outline_effect_class_init(XfdashboardOutlineEffectClass
 
 	effectClass->paint=_xfdashboard_outline_effect_paint;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardOutlineEffectPrivate));
-
 	/* Define properties */
 	XfdashboardOutlineEffectProperties[PROP_COLOR]=
 		clutter_param_spec_color("color",
@@ -474,7 +467,7 @@ static void xfdashboard_outline_effect_init(XfdashboardOutlineEffect *self)
 {
 	XfdashboardOutlineEffectPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_OUTLINE_EFFECT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_outline_effect_get_instance_private(self);
 
 	/* Set up default values */
 	priv->color=clutter_color_copy(CLUTTER_COLOR_White);
diff --git a/libxfdashboard/plugin.c b/libxfdashboard/plugin.c
index ab6a18b..4272296 100644
--- a/libxfdashboard/plugin.c
+++ b/libxfdashboard/plugin.c
@@ -46,14 +46,6 @@ typedef enum /*< skip,prefix=XFDASHBOARD_PLUGIN_STATE >*/
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardPlugin,
-				xfdashboard_plugin,
-				G_TYPE_TYPE_MODULE)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_PLUGIN_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_PLUGIN, XfdashboardPluginPrivate))
-
 struct _XfdashboardPluginPrivate
 {
 	/* Properties related */
@@ -78,6 +70,10 @@ struct _XfdashboardPluginPrivate
 
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardPlugin,
+							xfdashboard_plugin,
+							G_TYPE_TYPE_MODULE)
+
 /* Properties */
 enum
 {
@@ -804,9 +800,6 @@ static void xfdashboard_plugin_class_init(XfdashboardPluginClass *klass)
 	gobjectClass->get_property=_xfdashboard_plugin_get_property;
 	gobjectClass->dispose=_xfdashboard_plugin_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardPluginPrivate));
-
 	/* Define properties */
 	XfdashboardPluginProperties[PROP_FILENAME]=
 		g_param_spec_string("filename",
@@ -930,7 +923,7 @@ static void xfdashboard_plugin_init(XfdashboardPlugin *self)
 {
 	XfdashboardPluginPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_PLUGIN_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_plugin_get_instance_private(self);
 
 	/* Set up default values */
 	priv->filename=NULL;
diff --git a/libxfdashboard/plugins-manager.c b/libxfdashboard/plugins-manager.c
index a44a61f..450357f 100644
--- a/libxfdashboard/plugins-manager.c
+++ b/libxfdashboard/plugins-manager.c
@@ -51,14 +51,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardPluginsManager,
-				xfdashboard_plugins_manager,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_PLUGINS_MANAGER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_PLUGINS_MANAGER, XfdashboardPluginsManagerPrivate))
-
 struct _XfdashboardPluginsManagerPrivate
 {
 	/* Instance related */
@@ -72,6 +64,9 @@ struct _XfdashboardPluginsManagerPrivate
 	guint					applicationInitializedSignalID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardPluginsManager,
+							xfdashboard_plugins_manager,
+							G_TYPE_OBJECT)
 
 /* IMPLEMENTATION: Private variables and methods */
 #define ENABLED_PLUGINS_XFCONF_PROP			"/enabled-plugins"
@@ -598,9 +593,6 @@ static void xfdashboard_plugins_manager_class_init(XfdashboardPluginsManagerClas
 	gobjectClass->constructor=_xfdashboard_plugins_manager_constructor;
 	gobjectClass->dispose=_xfdashboard_plugins_manager_dispose;
 	gobjectClass->finalize=_xfdashboard_plugins_manager_finalize;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardPluginsManagerPrivate));
 }
 
 /* Object initialization
@@ -610,7 +602,7 @@ static void xfdashboard_plugins_manager_init(XfdashboardPluginsManager *self)
 {
 	XfdashboardPluginsManagerPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_PLUGINS_MANAGER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_plugins_manager_get_instance_private(self);
 
 	/* Set default values */
 	priv->isInited=FALSE;
diff --git a/libxfdashboard/popup-menu-item-button.c b/libxfdashboard/popup-menu-item-button.c
index 37bbc76..175a9bb 100644
--- a/libxfdashboard/popup-menu-item-button.c
+++ b/libxfdashboard/popup-menu-item-button.c
@@ -37,15 +37,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_popup_menu_item_button_popup_menu_item_iface_init(XfdashboardPopupMenuItemInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenuItemButton,
-						xfdashboard_popup_menu_item_button,
-						XFDASHBOARD_TYPE_LABEL,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_POPUP_MENU_ITEM, _xfdashboard_popup_menu_item_button_popup_menu_item_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_POPUP_MENU_ITEM_BUTTON, XfdashboardPopupMenuItemButtonPrivate))
-
 struct _XfdashboardPopupMenuItemButtonPrivate
 {
 	/* Instance related */
@@ -53,6 +44,12 @@ struct _XfdashboardPopupMenuItemButtonPrivate
 	gboolean					enabled;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenuItemButton,
+						xfdashboard_popup_menu_item_button,
+						XFDASHBOARD_TYPE_LABEL,
+						G_ADD_PRIVATE(XfdashboardPopupMenuItemButton)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_POPUP_MENU_ITEM, _xfdashboard_popup_menu_item_button_popup_menu_item_iface_init))
+
 /* IMPLEMENTATION: Private variables and methods */
 
 /* Pop-up menu item button was clicked so activate this item */
@@ -121,8 +118,6 @@ void _xfdashboard_popup_menu_item_button_popup_menu_item_iface_init(XfdashboardP
  */
 static void xfdashboard_popup_menu_item_button_class_init(XfdashboardPopupMenuItemButtonClass *klass)
 {
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardPopupMenuItemButtonPrivate));
 }
 
 /* Object initialization
@@ -132,7 +127,7 @@ static void xfdashboard_popup_menu_item_button_init(XfdashboardPopupMenuItemButt
 {
 	XfdashboardPopupMenuItemButtonPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_popup_menu_item_button_get_instance_private(self);
 
 	/* Set up default values */
 	priv->enabled=TRUE;
diff --git a/libxfdashboard/popup-menu-item-separator.c b/libxfdashboard/popup-menu-item-separator.c
index d931b70..cbc07d1 100644
--- a/libxfdashboard/popup-menu-item-separator.c
+++ b/libxfdashboard/popup-menu-item-separator.c
@@ -48,15 +48,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_popup_menu_item_separator_popup_menu_item_iface_init(XfdashboardPopupMenuItemInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenuItemSeparator,
-						xfdashboard_popup_menu_item_separator,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_POPUP_MENU_ITEM, _xfdashboard_popup_menu_item_separator_popup_menu_item_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_POPUP_MENU_ITEM_SEPARATOR, XfdashboardPopupMenuItemSeparatorPrivate))
-
 struct _XfdashboardPopupMenuItemSeparatorPrivate
 {
 	/* Properties related */
@@ -72,6 +63,12 @@ struct _XfdashboardPopupMenuItemSeparatorPrivate
 	ClutterContent				*lineCanvas;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenuItemSeparator,
+						xfdashboard_popup_menu_item_separator,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardPopupMenuItemSeparator)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_POPUP_MENU_ITEM, _xfdashboard_popup_menu_item_separator_popup_menu_item_iface_init))
+
 /* Properties */
 enum
 {
@@ -365,9 +362,6 @@ static void xfdashboard_popup_menu_item_separator_class_init(XfdashboardPopupMen
 	clutterActorClass->paint_node=_xfdashboard_popup_menu_item_separator_paint_node;
 	clutterActorClass->allocate=_xfdashboard_popup_menu_item_separator_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardPopupMenuItemSeparatorPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardPopupMenuItemSeparator:minimum-height:
@@ -467,7 +461,7 @@ static void xfdashboard_popup_menu_item_separator_init(XfdashboardPopupMenuItemS
 {
 	XfdashboardPopupMenuItemSeparatorPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_popup_menu_item_separator_get_instance_private(self);
 
 	/* Set up default values */
 	priv->minHeight=4.0f;
diff --git a/libxfdashboard/popup-menu.c b/libxfdashboard/popup-menu.c
index 55a5ba8..32339aa 100644
--- a/libxfdashboard/popup-menu.c
+++ b/libxfdashboard/popup-menu.c
@@ -69,15 +69,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_popup_menu_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenu,
-						xfdashboard_popup_menu,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_popup_menu_focusable_iface_init));
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_POPUP_MENU_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_POPUP_MENU, XfdashboardPopupMenuPrivate))
-
 struct _XfdashboardPopupMenuPrivate
 {
 	/* Properties related */
@@ -108,6 +99,12 @@ struct _XfdashboardPopupMenuPrivate
 	guint							suspendSignalID;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardPopupMenu,
+						xfdashboard_popup_menu,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardPopupMenu)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_popup_menu_focusable_iface_init));
+
 /* Properties */
 enum
 {
@@ -934,9 +931,6 @@ static void xfdashboard_popup_menu_class_init(XfdashboardPopupMenuClass *klass)
 
 	clutterActorClass->allocate=_xfdashboard_popup_menu_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardPopupMenuPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardPopupMenu:destroy-on-cancel:
@@ -1138,7 +1132,7 @@ static void xfdashboard_popup_menu_init(XfdashboardPopupMenu *self)
 	XfdashboardPopupMenuPrivate		*priv;
 	ClutterLayoutManager			*layout;
 
-	priv=self->priv=XFDASHBOARD_POPUP_MENU_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_popup_menu_get_instance_private(self);
 
 	/* Set up default values */
 	priv->destroyOnCancel=FALSE;
diff --git a/libxfdashboard/quicklaunch.c b/libxfdashboard/quicklaunch.c
index 62dfa69..2b0040c 100644
--- a/libxfdashboard/quicklaunch.c
+++ b/libxfdashboard/quicklaunch.c
@@ -60,15 +60,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_quicklaunch_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardQuicklaunch,
-						xfdashboard_quicklaunch,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_quicklaunch_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_QUICKLAUNCH_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_QUICKLAUNCH, XfdashboardQuicklaunchPrivate))
-
 struct _XfdashboardQuicklaunchPrivate
 {
 	/* Properties related */
@@ -103,6 +94,12 @@ struct _XfdashboardQuicklaunchPrivate
 	XfdashboardApplicationTracker	*appTracker;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardQuicklaunch,
+						xfdashboard_quicklaunch,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardQuicklaunch)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_quicklaunch_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -3033,9 +3030,6 @@ static void xfdashboard_quicklaunch_class_init(XfdashboardQuicklaunchClass *klas
 	klass->favourite_reorder_up=_xfdashboard_quicklaunch_favourite_reorder_up;
 	klass->favourite_reorder_down=_xfdashboard_quicklaunch_favourite_reorder_down;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardQuicklaunchPrivate));
-
 	/* Define properties */
 	XfdashboardQuicklaunchProperties[PROP_FAVOURITES]=
 		g_param_spec_boxed("favourites",
@@ -3194,7 +3188,7 @@ static void xfdashboard_quicklaunch_init(XfdashboardQuicklaunch *self)
 	ClutterRequestMode				requestMode;
 	ClutterAction					*dropAction;
 
-	priv=self->priv=XFDASHBOARD_QUICKLAUNCH_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_quicklaunch_get_instance_private(self);
 
 	/* Set up default values */
 	priv->favourites=NULL;
diff --git a/libxfdashboard/scaled-table-layout.c b/libxfdashboard/scaled-table-layout.c
index 028b967..876657e 100644
--- a/libxfdashboard/scaled-table-layout.c
+++ b/libxfdashboard/scaled-table-layout.c
@@ -39,14 +39,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardScaledTableLayout,
-				xfdashboard_scaled_table_layout,
-				CLUTTER_TYPE_LAYOUT_MANAGER)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SCALED_TABLE_LAYOUT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SCALED_TABLE_LAYOUT, XfdashboardScaledTableLayoutPrivate))
-
 struct _XfdashboardScaledTableLayoutPrivate
 {
 	/* Properties related */
@@ -64,6 +56,10 @@ struct _XfdashboardScaledTableLayoutPrivate
 	gboolean	reentrantDetermineHeight;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardScaledTableLayout,
+							xfdashboard_scaled_table_layout,
+							CLUTTER_TYPE_LAYOUT_MANAGER)
+
 /* Properties */
 enum
 {
@@ -479,9 +475,6 @@ static void xfdashboard_scaled_table_layout_class_init(XfdashboardScaledTableLay
 	gobjectClass->set_property=_xfdashboard_scaled_table_layout_set_property;
 	gobjectClass->get_property=_xfdashboard_scaled_table_layout_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardScaledTableLayoutPrivate));
-
 	/* Define properties */
 	XfdashboardScaledTableLayoutProperties[PROP_ROW_SPACING]=
 		g_param_spec_float("row-spacing",
@@ -552,7 +545,7 @@ static void xfdashboard_scaled_table_layout_init(XfdashboardScaledTableLayout *s
 {
 	XfdashboardScaledTableLayoutPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_SCALED_TABLE_LAYOUT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_scaled_table_layout_get_instance_private(self);
 
 	/* Set default values */
 	priv->rowSpacing=0.0f;
diff --git a/libxfdashboard/scrollbar.c b/libxfdashboard/scrollbar.c
index 57ec636..057f4e0 100644
--- a/libxfdashboard/scrollbar.c
+++ b/libxfdashboard/scrollbar.c
@@ -35,14 +35,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardScrollbar,
-				xfdashboard_scrollbar,
-				XFDASHBOARD_TYPE_BACKGROUND)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SCROLLBAR_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SCROLLBAR, XfdashboardScrollbarPrivate))
-
 struct _XfdashboardScrollbarPrivate
 {
 	/* Properties related */
@@ -67,6 +59,10 @@ struct _XfdashboardScrollbarPrivate
 	guint					signalMotionEventID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardScrollbar,
+							xfdashboard_scrollbar,
+							XFDASHBOARD_TYPE_BACKGROUND)
+
 /* Properties */
 enum
 {
@@ -711,9 +707,6 @@ static void xfdashboard_scrollbar_class_init(XfdashboardScrollbarClass *klass)
 	clutterActorClass->get_preferred_height=_xfdashboard_scrollbar_get_preferred_height;
 	clutterActorClass->allocate=_xfdashboard_scrollbar_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardScrollbarPrivate));
-
 	/* Define properties */
 	XfdashboardScrollbarProperties[PROP_ORIENTATION]=
 		g_param_spec_enum("orientation",
@@ -817,7 +810,7 @@ static void xfdashboard_scrollbar_init(XfdashboardScrollbar *self)
 {
 	XfdashboardScrollbarPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_SCROLLBAR_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_scrollbar_get_instance_private(self);
 
 	/* Set up default values */
 	priv->orientation=CLUTTER_ORIENTATION_HORIZONTAL;
diff --git a/libxfdashboard/search-manager.c b/libxfdashboard/search-manager.c
index 1dfec3e..cda6883 100644
--- a/libxfdashboard/search-manager.c
+++ b/libxfdashboard/search-manager.c
@@ -38,20 +38,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardSearchManager,
-				xfdashboard_search_manager,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SEARCH_MANAGER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SEARCH_MANAGER, XfdashboardSearchManagerPrivate))
-
 struct _XfdashboardSearchManagerPrivate
 {
 	/* Instance related */
 	GList		*registeredProviders;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardSearchManager,
+							xfdashboard_search_manager,
+							G_TYPE_OBJECT)
+
 /* Signals */
 enum
 {
@@ -231,9 +227,6 @@ static void xfdashboard_search_manager_class_init(XfdashboardSearchManagerClass
 	gobjectClass->dispose=_xfdashboard_search_manager_dispose;
 	gobjectClass->finalize=_xfdashboard_search_manager_finalize;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardSearchManagerPrivate));
-
 	/* Define signals */
 	XfdashboardSearchManagerSignals[SIGNAL_REGISTERED]=
 		g_signal_new("registered",
@@ -267,7 +260,7 @@ static void xfdashboard_search_manager_init(XfdashboardSearchManager *self)
 {
 	XfdashboardSearchManagerPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_SEARCH_MANAGER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_search_manager_get_instance_private(self);
 
 	/* Set default values */
 	priv->registeredProviders=NULL;
diff --git a/libxfdashboard/search-provider.c b/libxfdashboard/search-provider.c
index a26f1bb..0bc1ae4 100644
--- a/libxfdashboard/search-provider.c
+++ b/libxfdashboard/search-provider.c
@@ -36,20 +36,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_ABSTRACT_TYPE(XfdashboardSearchProvider,
-						xfdashboard_search_provider,
-						G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SEARCH_PROVIDER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SEARCH_PROVIDER, XfdashboardSearchProviderPrivate))
-
 struct _XfdashboardSearchProviderPrivate
 {
 	/* Properties related */
 	gchar					*providerID;
 };
 
+G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(XfdashboardSearchProvider,
+									xfdashboard_search_provider,
+									G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -166,9 +162,6 @@ static void xfdashboard_search_provider_class_init(XfdashboardSearchProviderClas
 	gobjectClass->get_property=_xfdashboard_search_provider_get_property;
 	gobjectClass->dispose=_xfdashboard_search_provider_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardSearchProviderPrivate));
-
 	/* Define properties */
 	XfdashboardSearchProviderProperties[PROP_PROVIDER_ID]=
 		g_param_spec_string("provider-id",
@@ -187,7 +180,7 @@ static void xfdashboard_search_provider_init(XfdashboardSearchProvider *self)
 {
 	XfdashboardSearchProviderPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_SEARCH_PROVIDER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_search_provider_get_instance_private(self);
 
 	/* Set up default values */
 	priv->providerID=NULL;
diff --git a/libxfdashboard/search-result-container.c b/libxfdashboard/search-result-container.c
index 7fd576f..395f84f 100644
--- a/libxfdashboard/search-result-container.c
+++ b/libxfdashboard/search-result-container.c
@@ -46,14 +46,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardSearchResultContainer,
-				xfdashboard_search_result_container,
-				XFDASHBOARD_TYPE_ACTOR)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SEARCH_RESULT_CONTAINER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SEARCH_RESULT_CONTAINER, XfdashboardSearchResultContainerPrivate))
-
 struct _XfdashboardSearchResultContainerPrivate
 {
 	/* Properties related */
@@ -85,6 +77,10 @@ struct _XfdashboardSearchResultContainerPrivate
 	ClutterActor				*allResultsLabelActor;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardSearchResultContainer,
+							xfdashboard_search_result_container,
+							XFDASHBOARD_TYPE_ACTOR)
+
 /* Properties */
 enum
 {
@@ -1251,9 +1247,6 @@ static void xfdashboard_search_result_container_class_init(XfdashboardSearchResu
 	gobjectClass->set_property=_xfdashboard_search_result_container_set_property;
 	gobjectClass->get_property=_xfdashboard_search_result_container_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardSearchResultContainerPrivate));
-
 	/* Define properties */
 	XfdashboardSearchResultContainerProperties[PROP_PROVIDER]=
 		g_param_spec_object("provider",
@@ -1362,7 +1355,7 @@ static void xfdashboard_search_result_container_init(XfdashboardSearchResultCont
 	ClutterLayoutManager						*layout;
 	ClutterActor								*buttonContainer;
 
-	priv=self->priv=XFDASHBOARD_SEARCH_RESULT_CONTAINER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_search_result_container_get_instance_private(self);
 
 	/* Set up default values */
 	priv->icon=NULL;
diff --git a/libxfdashboard/search-result-set.c b/libxfdashboard/search-result-set.c
index 4f414c4..392026b 100644
--- a/libxfdashboard/search-result-set.c
+++ b/libxfdashboard/search-result-set.c
@@ -33,14 +33,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardSearchResultSet,
-				xfdashboard_search_result_set,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SEARCH_RESULT_SET_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SEARCH_RESULT_SET, XfdashboardSearchResultSetPrivate))
-
 struct _XfdashboardSearchResultSetPrivate
 {
 	/* Instance related */
@@ -51,6 +43,10 @@ struct _XfdashboardSearchResultSetPrivate
 	GDestroyNotify							sortUserDataDestroyFunc;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardSearchResultSet,
+							xfdashboard_search_result_set,
+							G_TYPE_OBJECT)
+
 /* IMPLEMENTATION: Private variables and methods */
 typedef struct _XfdashboardSearchResultSetItemData		XfdashboardSearchResultSetItemData;
 struct _XfdashboardSearchResultSetItemData
@@ -211,9 +207,6 @@ static void xfdashboard_search_result_set_class_init(XfdashboardSearchResultSetC
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_search_result_set_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardSearchResultSetPrivate));
 }
 
 /* Object initialization
@@ -223,7 +216,7 @@ static void xfdashboard_search_result_set_init(XfdashboardSearchResultSet *self)
 {
 	XfdashboardSearchResultSetPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_SEARCH_RESULT_SET_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_search_result_set_get_instance_private(self);
 
 	/* Set default values */
 	priv->set=g_hash_table_new_full(g_variant_hash,
diff --git a/libxfdashboard/search-view.c b/libxfdashboard/search-view.c
index f8318e5..4b5eb40 100644
--- a/libxfdashboard/search-view.c
+++ b/libxfdashboard/search-view.c
@@ -62,21 +62,12 @@
 #include <libxfdashboard/debug.h>
 
 
-/* Define this class in GObject system */
-static void _xfdashboard_search_view_focusable_iface_init(XfdashboardFocusableInterface *iface);
-
-G_DEFINE_TYPE_WITH_CODE(XfdashboardSearchView,
-						xfdashboard_search_view,
-						XFDASHBOARD_TYPE_VIEW,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_search_view_focusable_iface_init))
-
 /* Forward declarations */
 typedef struct _XfdashboardSearchViewProviderData	XfdashboardSearchViewProviderData;
 typedef struct _XfdashboardSearchViewSearchTerms	XfdashboardSearchViewSearchTerms;
 
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_SEARCH_VIEW_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_SEARCH_VIEW, XfdashboardSearchViewPrivate))
+/* Define this class in GObject system */
+static void _xfdashboard_search_view_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
 struct _XfdashboardSearchViewPrivate
 {
@@ -97,6 +88,12 @@ struct _XfdashboardSearchViewPrivate
 	XfdashboardFocusManager				*focusManager;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardSearchView,
+						xfdashboard_search_view,
+						XFDASHBOARD_TYPE_VIEW,
+						G_ADD_PRIVATE(XfdashboardSearchView)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_search_view_focusable_iface_init))
+
 /* Signals */
 enum
 {
@@ -825,7 +822,7 @@ static guint _xfdashboard_search_view_perform_search(XfdashboardSearchView *self
 
 	/* Perform a search at all registered search providers */
 	providers=g_list_copy(priv->providers);
-	g_list_foreach(providers, (GFunc)_xfdashboard_search_view_provider_data_ref, NULL);
+	g_list_foreach(providers, (GFunc)(void*)_xfdashboard_search_view_provider_data_ref, NULL);
 	for(iter=providers; iter; iter=g_list_next(iter))
 	{
 		XfdashboardSearchViewProviderData		*providerData;
@@ -1651,9 +1648,6 @@ static void xfdashboard_search_view_class_init(XfdashboardSearchViewClass *klass
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_search_view_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardSearchViewPrivate));
-
 	/* Define signals */
 	/**
 	 * XfdashboardSearchView::search-reset:
@@ -1701,7 +1695,7 @@ static void xfdashboard_search_view_init(XfdashboardSearchView *self)
 	GList							*providers, *providerEntry;
 	ClutterLayoutManager			*layout;
 
-	self->priv=priv=XFDASHBOARD_SEARCH_VIEW_GET_PRIVATE(self);
+	self->priv=priv=xfdashboard_search_view_get_instance_private(self);
 
 	/* Set up default values */
 	priv->searchManager=xfdashboard_search_manager_get_default();
@@ -1782,7 +1776,7 @@ void xfdashboard_search_view_reset_search(XfdashboardSearchView *self)
 	 * clearing mappings and release all other allocated resources used.
 	 */
 	providers=g_list_copy(priv->providers);
-	g_list_foreach(providers, (GFunc)_xfdashboard_search_view_provider_data_ref, NULL);
+	g_list_foreach(providers, (GFunc)(void*)_xfdashboard_search_view_provider_data_ref, NULL);
 	for(iter=providers; iter; iter=g_list_next(iter))
 	{
 		XfdashboardSearchViewProviderData		*providerData;
diff --git a/libxfdashboard/stage-interface.c b/libxfdashboard/stage-interface.c
index f0e8a25..a103af2 100644
--- a/libxfdashboard/stage-interface.c
+++ b/libxfdashboard/stage-interface.c
@@ -38,14 +38,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardStageInterface,
-				xfdashboard_stage_interface,
-				XFDASHBOARD_TYPE_ACTOR)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_STAGE_INTERFACE_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_STAGE_INTERFACE, XfdashboardStageInterfacePrivate))
-
 struct _XfdashboardStageInterfacePrivate
 {
 	/* Properties related */
@@ -62,6 +54,10 @@ struct _XfdashboardStageInterfacePrivate
 	guint									primaryChangedID;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardStageInterface,
+							xfdashboard_stage_interface,
+							XFDASHBOARD_TYPE_ACTOR)
+
 /* Properties */
 enum
 {
@@ -357,9 +353,6 @@ static void xfdashboard_stage_interface_class_init(XfdashboardStageInterfaceClas
 	gobjectClass->set_property=_xfdashboard_stage_interface_set_property;
 	gobjectClass->get_property=_xfdashboard_stage_interface_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardStageInterfacePrivate));
-
 	/* Define properties */
 	XfdashboardStageInterfaceProperties[PROP_MONITOR]=
 		g_param_spec_object("monitor",
@@ -397,7 +390,7 @@ static void xfdashboard_stage_interface_init(XfdashboardStageInterface *self)
 {
 	XfdashboardStageInterfacePrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_STAGE_INTERFACE_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_stage_interface_get_instance_private(self);
 
 	/* Set default values */
 	priv->monitor=NULL;
diff --git a/libxfdashboard/stage.c b/libxfdashboard/stage.c
index 245e304..504d945 100644
--- a/libxfdashboard/stage.c
+++ b/libxfdashboard/stage.c
@@ -57,14 +57,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardStage,
-				xfdashboard_stage,
-				CLUTTER_TYPE_STAGE)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_STAGE_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_STAGE, XfdashboardStagePrivate))
-
 struct _XfdashboardStagePrivate
 {
 	/* Properties related */
@@ -100,6 +92,10 @@ struct _XfdashboardStagePrivate
 	XfdashboardFocusManager					*focusManager;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardStage,
+							xfdashboard_stage,
+							CLUTTER_TYPE_STAGE)
+
 /* Properties */
 enum
 {
@@ -1814,9 +1810,6 @@ static void xfdashboard_stage_class_init(XfdashboardStageClass *klass)
 	gobjectClass->set_property=_xfdashboard_stage_set_property;
 	gobjectClass->get_property=_xfdashboard_stage_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardStagePrivate));
-
 	/* Define properties */
 	XfdashboardStageProperties[PROP_BACKGROUND_IMAGE_TYPE]=
 		g_param_spec_enum("background-image-type",
@@ -1925,7 +1918,7 @@ static void xfdashboard_stage_init(XfdashboardStage *self)
 	ClutterConstraint			*heightConstraint;
 	ClutterColor				transparent;
 
-	priv=self->priv=XFDASHBOARD_STAGE_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_stage_get_instance_private(self);
 
 	/* Set default values */
 	priv->focusManager=xfdashboard_focus_manager_get_default();
diff --git a/libxfdashboard/text-box.c b/libxfdashboard/text-box.c
index fd2a026..c3309eb 100644
--- a/libxfdashboard/text-box.c
+++ b/libxfdashboard/text-box.c
@@ -42,15 +42,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_text_box_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardTextBox,
-						xfdashboard_text_box,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_text_box_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_TEXT_BOX_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_TEXT_BOX, XfdashboardTextBoxPrivate))
-
 struct _XfdashboardTextBoxPrivate
 {
 	/* Properties related */
@@ -84,6 +75,12 @@ struct _XfdashboardTextBoxPrivate
 	gboolean				selectionColorSet;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardTextBox,
+						xfdashboard_text_box,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardTextBox)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_text_box_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -774,9 +771,6 @@ static void xfdashboard_text_box_class_init(XfdashboardTextBoxClass *klass)
 	clutterActorClass->destroy=_xfdashboard_text_box_destroy;
 	clutterActorClass->key_focus_in=_xfdashboard_text_box_key_focus_in;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardTextBoxPrivate));
-
 	/* Define properties */
 	XfdashboardTextBoxProperties[PROP_PADDING]=
 		g_param_spec_float("padding",
@@ -935,7 +929,7 @@ static void xfdashboard_text_box_init(XfdashboardTextBox *self)
 {
 	XfdashboardTextBoxPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_TEXT_BOX_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_text_box_get_instance_private(self);
 
 	/* This actor is react on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/theme-css.c b/libxfdashboard/theme-css.c
index 54bd38f..ca3994b 100644
--- a/libxfdashboard/theme-css.c
+++ b/libxfdashboard/theme-css.c
@@ -43,14 +43,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardThemeCSS,
-				xfdashboard_theme_css,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_THEME_CSS_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_THEME_CSS, XfdashboardThemeCSSPrivate))
-
 struct _XfdashboardThemeCSSPrivate
 {
 	/* Instance related */
@@ -65,6 +57,10 @@ struct _XfdashboardThemeCSSPrivate
 	gint		offsetLine;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardThemeCSS,
+							xfdashboard_theme_css,
+							G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -2278,8 +2274,7 @@ static GTokenType _xfdashboard_theme_css_parse_css_block(XfdashboardThemeCSS *se
 	token=_xfdashboard_theme_css_parse_css_ruleset(self, inScanner, &selectors);
 	if(token!=G_TOKEN_NONE)
 	{
-		g_list_foreach(selectors, (GFunc)_xfdashboard_theme_css_selector_free, NULL);
-		g_list_free(selectors);
+		g_list_free_full(selectors, (GDestroyNotify)_xfdashboard_theme_css_selector_free);
 
 		return(token);
 	}
@@ -2311,8 +2306,7 @@ static GTokenType _xfdashboard_theme_css_parse_css_block(XfdashboardThemeCSS *se
 													styles);
 	if(token!=G_TOKEN_NONE)
 	{
-		g_list_foreach(selectors, (GFunc)_xfdashboard_theme_css_selector_free, NULL);
-		g_list_free(selectors);
+		g_list_free_full(selectors, (GDestroyNotify)_xfdashboard_theme_css_selector_free);
 
 		g_hash_table_unref(styles);
 
@@ -2434,12 +2428,10 @@ static gboolean _xfdashboard_theme_css_parse_css(XfdashboardThemeCSS *self,
 		success=FALSE;
 
 		/* Free selectors and styles */
-		g_list_foreach(selectors, (GFunc)_xfdashboard_theme_css_selector_free, NULL);
-		g_list_free(selectors);
+		g_list_free_full(selectors, (GDestroyNotify)_xfdashboard_theme_css_selector_free);
 		selectors=NULL;
 
-		g_list_foreach(styles, (GFunc)g_hash_table_unref, NULL);
-		g_list_free(styles);
+		g_list_free_full(styles, (GDestroyNotify)g_hash_table_unref);
 		styles=NULL;
 	}
 
@@ -2514,22 +2506,19 @@ static void _xfdashboard_theme_css_dispose(GObject *inObject)
 
 	if(priv->selectors)
 	{
-		g_list_foreach(priv->selectors, (GFunc)_xfdashboard_theme_css_selector_free, NULL);
-		g_list_free(priv->selectors);
+		g_list_free_full(priv->selectors, (GDestroyNotify)_xfdashboard_theme_css_selector_free);
 		priv->selectors=NULL;
 	}
 
 	if(priv->styles)
 	{
-		g_list_foreach(priv->styles, (GFunc)g_hash_table_unref, NULL);
-		g_list_free(priv->styles);
+		g_list_free_full(priv->styles, (GDestroyNotify)g_hash_table_unref);
 		priv->styles=NULL;
 	}
 
 	if(priv->names)
 	{
-		g_slist_foreach(priv->names, (GFunc)g_free, NULL);
-		g_slist_free(priv->names);
+		g_slist_free_full(priv->names, (GDestroyNotify)g_free);
 		priv->names=NULL;
 	}
 
@@ -2582,9 +2571,6 @@ void xfdashboard_theme_css_class_init(XfdashboardThemeCSSClass *klass)
 	gobjectClass->dispose=_xfdashboard_theme_css_dispose;
 	gobjectClass->set_property=_xfdashboard_theme_css_set_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardThemeCSSPrivate));
-
 	/* Define properties */
 	XfdashboardThemeCSSProperties[PROP_THEME_PATH]=
 		g_param_spec_string("theme-path",
@@ -2603,7 +2589,7 @@ void xfdashboard_theme_css_init(XfdashboardThemeCSS *self)
 {
 	XfdashboardThemeCSSPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_THEME_CSS_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_theme_css_get_instance_private(self);
 
 	/* Set default values */
 	priv->themePath=NULL;
@@ -2832,8 +2818,7 @@ GHashTable* xfdashboard_theme_css_get_properties(XfdashboardThemeCSS *self,
 								&copyData);
 	}
 
-	g_list_foreach(matches, (GFunc)_xfdashboard_themes_css_selector_match_free, NULL);
-	g_list_free(matches);
+	g_list_free_full(matches, (GDestroyNotify)_xfdashboard_themes_css_selector_match_free);
 
 #ifdef DEBUG
 	XFDASHBOARD_DEBUG(self, STYLE,
diff --git a/libxfdashboard/theme-effects.c b/libxfdashboard/theme-effects.c
index e8a3b01..dc324ab 100644
--- a/libxfdashboard/theme-effects.c
+++ b/libxfdashboard/theme-effects.c
@@ -37,20 +37,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardThemeEffects,
-				xfdashboard_theme_effects,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_THEME_EFFECTS_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_THEME_EFFECTS, XfdashboardThemeEffectsPrivate))
-
 struct _XfdashboardThemeEffectsPrivate
 {
 	/* Instance related */
 	GSList			*effects;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardThemeEffects,
+							xfdashboard_theme_effects,
+							G_TYPE_OBJECT)
+
 /* IMPLEMENTATION: Private variables and methods */
 enum
 {
@@ -65,7 +61,8 @@ struct _XfdashboardThemeEffectsPropertiesCollectData
 {
 	guint			index;
 	guint			maxProperties;
-	GParameter		*properties;
+	gchar			**names;
+	GValue			*values;
 };
 
 typedef struct _XfdashboardThemeEffectsParsedObject				XfdashboardThemeEffectsParsedObject;
@@ -431,10 +428,10 @@ static void _xfdashboard_theme_effects_create_object_collect_properties(gpointer
 	data=(XfdashboardThemeEffectsPropertiesCollectData*)inUserData;
 
 	/* Add property parameter to array */
-	data->properties[data->index].name=name;
+	data->names[data->index]=g_strdup(name);
 
-	g_value_init(&data->properties[data->index].value, G_TYPE_STRING);
-	g_value_set_string(&data->properties[data->index].value, value);
+	g_value_init(&data->values[data->index], G_TYPE_STRING);
+	g_value_set_string(&data->values[data->index], value);
 
 	/* Increase pointer to next parameter in array */
 	data->index++;
@@ -447,12 +444,14 @@ static ClutterEffect* _xfdashboard_theme_effects_create_object(XfdashboardThemeE
 
 	/* Collect all properties as array */
 	collectData.index=0;
-	collectData.properties=NULL;
+	collectData.names=NULL;
+	collectData.values=NULL;
 
 	collectData.maxProperties=g_hash_table_size(inObjectData->properties);
 	if(collectData.maxProperties>0)
 	{
-		collectData.properties=g_new0(GParameter, collectData.maxProperties);
+		collectData.names=g_new0(gchar*, collectData.maxProperties);
+		collectData.values=g_new0(GValue, collectData.maxProperties);
 		g_hash_table_foreach(inObjectData->properties, _xfdashboard_theme_effects_create_object_collect_properties, &collectData);
 	}
 
@@ -460,14 +459,18 @@ static ClutterEffect* _xfdashboard_theme_effects_create_object(XfdashboardThemeE
 	 * of creation release allocated resources for properties as they are
 	 * not needed anymore.
 	 */
-	object=G_OBJECT(g_object_newv(inObjectData->classType, collectData.maxProperties, collectData.properties));
+	object=g_object_new_with_properties(inObjectData->classType,
+										collectData.maxProperties,
+										(const gchar **)collectData.names,
+										(const GValue *)collectData.values);
 
 	for(collectData.index=0; collectData.index<collectData.maxProperties; collectData.index++)
 	{
-		collectData.properties[collectData.index].name=NULL;
-		g_value_unset(&collectData.properties[collectData.index].value);
+		g_free(collectData.names[collectData.index]);
+		g_value_unset(&collectData.values[collectData.index]);
 	}
-	g_free(collectData.properties);
+	g_free(collectData.names);
+	g_free(collectData.values);
 
 	if(!object)
 	{
@@ -1136,8 +1139,7 @@ static gboolean _xfdashboard_theme_effects_parse_xml(XfdashboardThemeEffects *se
 
 	g_markup_parse_context_free(context);
 
-	g_slist_foreach(data->effects, (GFunc)_xfdashboard_theme_effects_object_data_unref, NULL);
-	g_slist_free(data->effects);
+	g_slist_free_full(data->effects, (GDestroyNotify)_xfdashboard_theme_effects_object_data_unref);
 	if(data->lastPropertyName) g_free(data->lastPropertyName);
 	g_free(data);
 
@@ -1174,9 +1176,6 @@ void xfdashboard_theme_effects_class_init(XfdashboardThemeEffectsClass *klass)
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_theme_effects_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardThemeEffectsPrivate));
 }
 
 /* Object initialization
@@ -1186,7 +1185,7 @@ void xfdashboard_theme_effects_init(XfdashboardThemeEffects *self)
 {
 	XfdashboardThemeEffectsPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_THEME_EFFECTS_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_theme_effects_get_instance_private(self);
 
 	/* Set default values */
 	priv->effects=NULL;
diff --git a/libxfdashboard/theme-layout.c b/libxfdashboard/theme-layout.c
index fc5ef7d..ad51acd 100644
--- a/libxfdashboard/theme-layout.c
+++ b/libxfdashboard/theme-layout.c
@@ -37,11 +37,6 @@
 #include <libxfdashboard/debug.h>
 
 
-/* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardThemeLayout,
-				xfdashboard_theme_layout,
-				G_TYPE_OBJECT)
-
 /* Forward declaration */
 typedef struct _XfdashboardThemeLayoutTagData				XfdashboardThemeLayoutTagData;
 typedef struct _XfdashboardThemeLayoutParsedObject			XfdashboardThemeLayoutParsedObject;
@@ -49,10 +44,7 @@ typedef struct _XfdashboardThemeLayoutParserData			XfdashboardThemeLayoutParserD
 typedef struct _XfdashboardThemeLayoutUnresolvedBuildID		XfdashboardThemeLayoutUnresolvedBuildID;
 typedef struct _XfdashboardThemeLayoutCheckRefID			XfdashboardThemeLayoutCheckRefID;
 
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_THEME_LAYOUT_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_THEME_LAYOUT, XfdashboardThemeLayoutPrivate))
-
+/* Define this class in GObject system */
 struct _XfdashboardThemeLayoutPrivate
 {
 	/* Instance related */
@@ -61,6 +53,10 @@ struct _XfdashboardThemeLayoutPrivate
 	XfdashboardThemeLayoutTagData		*focusSelected;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardThemeLayout,
+							xfdashboard_theme_layout,
+							G_TYPE_OBJECT)
+
 /* IMPLEMENTATION: Private variables and methods */
 enum
 {
@@ -637,7 +633,7 @@ static void _xfdashboard_theme_layout_create_object_resolve_unresolved(Xfdashboa
 				 */
 				if(!focusSelected && unresolvedID->property->tag.focus.selected)
 				{
-					focusSelected=g_object_ref(refObject);
+					focusSelected=CLUTTER_ACTOR(g_object_ref(refObject));
 
 					XFDASHBOARD_DEBUG(self, THEME,
 										"Remember resolved focusable actor %s with reference ID '%s' as pre-selected actor at target object %s ",
@@ -713,7 +709,8 @@ static GObject* _xfdashboard_theme_layout_create_object(XfdashboardThemeLayout *
 {
 	GObject									*object;
 	GSList									*iter;
-	GParameter								*properties;
+	gchar									**names;
+	GValue									*values;
 	gint									maxProperties, usedProperties, i;
 	guint									j;
 
@@ -724,10 +721,15 @@ static GObject* _xfdashboard_theme_layout_create_object(XfdashboardThemeLayout *
 
 	/* Collect all properties as array which do not refer to other objects */
 	usedProperties=0;
-	properties=NULL;
+	names=NULL;
+	values=NULL;
 
 	maxProperties=g_slist_length(inObjectData->properties);
-	if(maxProperties>0) properties=g_new0(GParameter, maxProperties);
+	if(maxProperties>0)
+	{
+		names=g_new0(gchar*, maxProperties);
+		values=g_new0(GValue, maxProperties);
+	}
 
 	for(iter=inObjectData->properties; iter; iter=g_slist_next(iter))
 	{
@@ -738,11 +740,11 @@ static GObject* _xfdashboard_theme_layout_create_object(XfdashboardThemeLayout *
 		/* Check if property refers to an other object, if not add it */
 		if(!property->tag.property.refID)
 		{
-			properties[usedProperties].name=property->tag.property.name;
-			g_value_init(&properties[usedProperties].value, G_TYPE_STRING);
+			names[usedProperties]=g_strdup(property->tag.property.name);
+			g_value_init(&values[usedProperties], G_TYPE_STRING);
 
-			if(!property->tag.property.translatable) g_value_set_string(&properties[usedProperties].value, property->tag.property.value);
-				else g_value_set_string(&properties[usedProperties].value, _(property->tag.property.value));
+			if(!property->tag.property.translatable) g_value_set_string(&values[usedProperties], property->tag.property.value);
+				else g_value_set_string(&values[usedProperties], _(property->tag.property.value));
 
 			usedProperties++;
 		}
@@ -752,14 +754,18 @@ static GObject* _xfdashboard_theme_layout_create_object(XfdashboardThemeLayout *
 	 * of creation release allocated resources for properties as they are
 	 * not needed anymore.
 	 */
-	object=G_OBJECT(g_object_newv(inObjectData->classType, usedProperties, properties));
+	object=g_object_new_with_properties(inObjectData->classType,
+										usedProperties,
+										(const gchar **)names,
+										(const GValue *)values);
 
 	for(i=0; i<usedProperties; i++)
 	{
-		properties[i].name=NULL;
-		g_value_unset(&properties[i].value);
+		g_free(names[i]);
+		g_value_unset(&values[i]);
 	}
-	g_free(properties);
+	g_free(names);
+	g_free(values);
 
 	if(!object)
 	{
@@ -2067,9 +2073,6 @@ void xfdashboard_theme_layout_class_init(XfdashboardThemeLayoutClass *klass)
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_theme_layout_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardThemeLayoutPrivate));
 }
 
 /* Object initialization
@@ -2079,7 +2082,7 @@ void xfdashboard_theme_layout_init(XfdashboardThemeLayout *self)
 {
 	XfdashboardThemeLayoutPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_THEME_LAYOUT_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_theme_layout_get_instance_private(self);
 
 	/* Set default values */
 	priv->interfaces=NULL;
diff --git a/libxfdashboard/theme.c b/libxfdashboard/theme.c
index 1968b35..f90888f 100644
--- a/libxfdashboard/theme.c
+++ b/libxfdashboard/theme.c
@@ -37,14 +37,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardTheme,
-				xfdashboard_theme,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_THEME_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_THEME, XfdashboardThemePrivate))
-
 struct _XfdashboardThemePrivate
 {
 	/* Properties related */
@@ -65,6 +57,10 @@ struct _XfdashboardThemePrivate
 	gchar						*userGlobalStyleFile;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardTheme,
+							xfdashboard_theme,
+							G_TYPE_OBJECT)
+
 /* Properties */
 enum
 {
@@ -724,9 +720,6 @@ void xfdashboard_theme_class_init(XfdashboardThemeClass *klass)
 	gobjectClass->set_property=_xfdashboard_theme_set_property;
 	gobjectClass->get_property=_xfdashboard_theme_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardThemePrivate));
-
 	/* Define properties */
 	XfdashboardThemeProperties[PROP_NAME]=
 		g_param_spec_string("theme-name",
@@ -766,7 +759,7 @@ void xfdashboard_theme_init(XfdashboardTheme *self)
 {
 	XfdashboardThemePrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_THEME_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_theme_get_instance_private(self);
 
 	/* Set default values */
 	priv->loaded=FALSE;
diff --git a/libxfdashboard/toggle-button.c b/libxfdashboard/toggle-button.c
index cf2fbd8..2d59ab9 100644
--- a/libxfdashboard/toggle-button.c
+++ b/libxfdashboard/toggle-button.c
@@ -57,14 +57,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardToggleButton,
-				xfdashboard_toggle_button,
-				XFDASHBOARD_TYPE_BUTTON)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_TOGGLE_BUTTON_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_TOGGLE_BUTTON, XfdashboardToggleButtonPrivate))
-
 struct _XfdashboardToggleButtonPrivate
 {
 	/* Properties related */
@@ -72,6 +64,10 @@ struct _XfdashboardToggleButtonPrivate
 	gboolean		autoToggleOnClick;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardToggleButton,
+							xfdashboard_toggle_button,
+							XFDASHBOARD_TYPE_BUTTON)
+
 /* Properties */
 enum
 {
@@ -178,9 +174,6 @@ static void xfdashboard_toggle_button_class_init(XfdashboardToggleButtonClass *k
 
 	buttonClass->clicked=_xfdashboard_toggle_button_clicked;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardToggleButtonPrivate));
-
 	/* Define properties */
 	/**
 	 * XfdashboardToggleButton:toggle-state:
@@ -240,7 +233,7 @@ static void xfdashboard_toggle_button_init(XfdashboardToggleButton *self)
 {
 	XfdashboardToggleButtonPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_TOGGLE_BUTTON_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_toggle_button_get_instance_private(self);
 
 	/* This actor reacts on events */
 	clutter_actor_set_reactive(CLUTTER_ACTOR(self), TRUE);
diff --git a/libxfdashboard/tooltip-action.c b/libxfdashboard/tooltip-action.c
index 2f3aab7..e3c6b22 100644
--- a/libxfdashboard/tooltip-action.c
+++ b/libxfdashboard/tooltip-action.c
@@ -37,14 +37,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardTooltipAction,
-				xfdashboard_tooltip_action,
-				CLUTTER_TYPE_ACTION);
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_TOOLTIP_ACTION_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_TOOLTIP_ACTION, XfdashboardTooltipActionPrivate))
-
 struct _XfdashboardTooltipActionPrivate
 {
 	/* Properties related */
@@ -65,6 +57,10 @@ struct _XfdashboardTooltipActionPrivate
 	gboolean		isVisible;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardTooltipAction,
+							xfdashboard_tooltip_action,
+							CLUTTER_TYPE_ACTION);
+
 /* Properties */
 enum
 {
@@ -518,9 +514,6 @@ static void xfdashboard_tooltip_action_class_init(XfdashboardTooltipActionClass
 	gobjectClass->set_property=_xfdashboard_tooltip_action_set_property;
 	gobjectClass->get_property=_xfdashboard_tooltip_action_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof (XfdashboardTooltipActionPrivate));
-
 	/* Define properties */
 	XfdashboardTooltipActionProperties[PROP_TOOLTIP_TEXT]=
 		g_param_spec_string("tooltip-text",
@@ -551,7 +544,7 @@ static void xfdashboard_tooltip_action_init(XfdashboardTooltipAction *self)
 {
 	XfdashboardTooltipActionPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_TOOLTIP_ACTION_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_tooltip_action_get_instance_private(self);
 
 	/* Set up default values */
 	priv->tooltipText=NULL;
diff --git a/libxfdashboard/view-manager.c b/libxfdashboard/view-manager.c
index 2a2903a..ef0c129 100644
--- a/libxfdashboard/view-manager.c
+++ b/libxfdashboard/view-manager.c
@@ -36,20 +36,16 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardViewManager,
-				xfdashboard_view_manager,
-				G_TYPE_OBJECT)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_VIEW_MANAGER_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_VIEW_MANAGER, XfdashboardViewManagerPrivate))
-
 struct _XfdashboardViewManagerPrivate
 {
 	/* Instance related */
 	GList		*registeredViews;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardViewManager,
+							xfdashboard_view_manager,
+							G_TYPE_OBJECT)
+
 /* Signals */
 enum
 {
@@ -226,9 +222,6 @@ static void xfdashboard_view_manager_class_init(XfdashboardViewManagerClass *kla
 	gobjectClass->dispose=_xfdashboard_view_manager_dispose;
 	gobjectClass->finalize=_xfdashboard_view_manager_finalize;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardViewManagerPrivate));
-
 	/* Define signals */
 	XfdashboardViewManagerSignals[SIGNAL_REGISTERED]=
 		g_signal_new("registered",
@@ -262,7 +255,7 @@ static void xfdashboard_view_manager_init(XfdashboardViewManager *self)
 {
 	XfdashboardViewManagerPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_VIEW_MANAGER_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_view_manager_get_instance_private(self);
 
 	/* Set default values */
 	priv->registeredViews=NULL;
diff --git a/libxfdashboard/view-selector.c b/libxfdashboard/view-selector.c
index ad17370..c27552b 100644
--- a/libxfdashboard/view-selector.c
+++ b/libxfdashboard/view-selector.c
@@ -51,14 +51,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_TYPE(XfdashboardViewSelector,
-				xfdashboard_view_selector,
-				XFDASHBOARD_TYPE_ACTOR)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_VIEW_SELECTOR_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_VIEW_SELECTOR, XfdashboardViewSelectorPrivate))
-
 struct _XfdashboardViewSelectorPrivate
 {
 	/* Properties related */
@@ -70,6 +62,10 @@ struct _XfdashboardViewSelectorPrivate
 	ClutterLayoutManager	*layout;
 };
 
+G_DEFINE_TYPE_WITH_PRIVATE(XfdashboardViewSelector,
+							xfdashboard_view_selector,
+							XFDASHBOARD_TYPE_ACTOR)
+
 /* Properties */
 enum
 {
@@ -376,9 +372,6 @@ static void xfdashboard_view_selector_class_init(XfdashboardViewSelectorClass *k
 	gobjectClass->get_property=_xfdashboard_view_selector_get_property;
 	gobjectClass->dispose=_xfdashboard_view_selector_dispose;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardViewSelectorPrivate));
-
 	/* Define properties */
 
 	/**
@@ -454,7 +447,7 @@ static void xfdashboard_view_selector_init(XfdashboardViewSelector *self)
 {
 	XfdashboardViewSelectorPrivate		*priv;
 
-	priv=self->priv=XFDASHBOARD_VIEW_SELECTOR_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_view_selector_get_instance_private(self);
 
 	/* Set up default values */
 	priv->viewpad=NULL;
diff --git a/libxfdashboard/view.c b/libxfdashboard/view.c
index 8f0abef..345a2ba 100644
--- a/libxfdashboard/view.c
+++ b/libxfdashboard/view.c
@@ -40,14 +40,6 @@
 
 
 /* Define this class in GObject system */
-G_DEFINE_ABSTRACT_TYPE(XfdashboardView,
-						xfdashboard_view,
-						XFDASHBOARD_TYPE_ACTOR)
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_VIEW_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_VIEW, XfdashboardViewPrivate))
-
 struct _XfdashboardViewPrivate
 {
 	/* Properties related */
@@ -66,6 +58,10 @@ struct _XfdashboardViewPrivate
 	guint					signalChangedID;
 };
 
+G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(XfdashboardView,
+									xfdashboard_view,
+									XFDASHBOARD_TYPE_ACTOR)
+
 /* Properties */
 enum
 {
@@ -361,9 +357,6 @@ static void xfdashboard_view_class_init(XfdashboardViewClass *klass)
 	klass->enabled=_xfdashboard_view_enabled;
 	klass->disabled=_xfdashboard_view_disabled;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardViewPrivate));
-
 	/* Define properties */
 	XfdashboardViewProperties[PROP_VIEW_ID]=
 		g_param_spec_string("view-id",
@@ -579,7 +572,7 @@ static void xfdashboard_view_init(XfdashboardView *self)
 {
 	XfdashboardViewPrivate	*priv;
 
-	priv=self->priv=XFDASHBOARD_VIEW_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_view_get_instance_private(self);
 
 	/* Set up default values */
 	priv->viewName=NULL;
diff --git a/libxfdashboard/viewpad.c b/libxfdashboard/viewpad.c
index 3f92003..410eccc 100644
--- a/libxfdashboard/viewpad.c
+++ b/libxfdashboard/viewpad.c
@@ -44,15 +44,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_viewpad_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardViewpad,
-						xfdashboard_viewpad,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_viewpad_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_VIEWPAD_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_VIEWPAD, XfdashboardViewpadPrivate))
-
 struct _XfdashboardViewpadPrivate
 {
 	/* Properties related */
@@ -78,6 +69,12 @@ struct _XfdashboardViewpadPrivate
 	ClutterActorBox					*lastAllocation;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardViewpad,
+						xfdashboard_viewpad,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardViewpad)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_viewpad_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -1229,9 +1226,6 @@ static void xfdashboard_viewpad_class_init(XfdashboardViewpadClass *klass)
 	clutterActorClass->get_preferred_height=_xfdashboard_viewpad_get_preferred_height;
 	clutterActorClass->allocate=_xfdashboard_viewpad_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardViewpadPrivate));
-
 	/* Define properties */
 	XfdashboardViewpadProperties[PROP_SPACING]=
 		g_param_spec_float("spacing",
@@ -1367,7 +1361,7 @@ static void xfdashboard_viewpad_init(XfdashboardViewpad *self)
 	XfdashboardViewpadPrivate	*priv;
 	GList						*views, *viewEntry;
 
-	priv=self->priv=XFDASHBOARD_VIEWPAD_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_viewpad_get_instance_private(self);
 
 	/* Set up default values */
 	priv->viewManager=xfdashboard_view_manager_get_default();
diff --git a/libxfdashboard/windows-view.c b/libxfdashboard/windows-view.c
index 149c0b7..42bc64b 100644
--- a/libxfdashboard/windows-view.c
+++ b/libxfdashboard/windows-view.c
@@ -52,15 +52,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_windows_view_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowsView,
-						xfdashboard_windows_view,
-						XFDASHBOARD_TYPE_VIEW,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_windows_view_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOWS_VIEW_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOWS_VIEW, XfdashboardWindowsViewPrivate))
-
 struct _XfdashboardWindowsViewPrivate
 {
 	/* Properties related */
@@ -88,6 +79,12 @@ struct _XfdashboardWindowsViewPrivate
 	guint								currentStageMonitorBindingID;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowsView,
+						xfdashboard_windows_view,
+						XFDASHBOARD_TYPE_VIEW,
+						G_ADD_PRIVATE(XfdashboardWindowsView)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_windows_view_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -2010,9 +2007,6 @@ static void xfdashboard_windows_view_class_init(XfdashboardWindowsViewClass *kla
 	klass->windows_activate_window_nine=_xfdashboard_windows_view_windows_activate_window_nine;
 	klass->windows_activate_window_ten=_xfdashboard_windows_view_windows_activate_window_ten;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowsViewPrivate));
-
 	/* Define properties */
 	XfdashboardWindowsViewProperties[PROP_WORKSPACE]=
 		g_param_spec_object("workspace",
@@ -2258,7 +2252,7 @@ static void xfdashboard_windows_view_init(XfdashboardWindowsView *self)
 	ClutterAction						*action;
 	XfdashboardWindowTrackerWorkspace	*activeWorkspace;
 
-	self->priv=priv=XFDASHBOARD_WINDOWS_VIEW_GET_PRIVATE(self);
+	self->priv=priv=xfdashboard_windows_view_get_instance_private(self);
 
 	/* Set up default values */
 	priv->windowTracker=xfdashboard_window_tracker_get_default();
diff --git a/libxfdashboard/workspace-selector.c b/libxfdashboard/workspace-selector.c
index 1d5b3db..fb50e73 100644
--- a/libxfdashboard/workspace-selector.c
+++ b/libxfdashboard/workspace-selector.c
@@ -49,15 +49,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_workspace_selector_focusable_iface_init(XfdashboardFocusableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWorkspaceSelector,
-						xfdashboard_workspace_selector,
-						XFDASHBOARD_TYPE_BACKGROUND,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_workspace_selector_focusable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WORKSPACE_SELECTOR_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WORKSPACE_SELECTOR, XfdashboardWorkspaceSelectorPrivate))
-
 struct _XfdashboardWorkspaceSelectorPrivate
 {
 	/* Properties related */
@@ -73,6 +64,12 @@ struct _XfdashboardWorkspaceSelectorPrivate
 	XfdashboardWindowTrackerWorkspace	*activeWorkspace;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWorkspaceSelector,
+						xfdashboard_workspace_selector,
+						XFDASHBOARD_TYPE_BACKGROUND,
+						G_ADD_PRIVATE(XfdashboardWorkspaceSelector)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_FOCUSABLE, _xfdashboard_workspace_selector_focusable_iface_init))
+
 /* Properties */
 enum
 {
@@ -1249,9 +1246,6 @@ static void xfdashboard_workspace_selector_class_init(XfdashboardWorkspaceSelect
 	clutterActorClass->get_preferred_height=_xfdashboard_workspace_selector_get_preferred_height;
 	clutterActorClass->allocate=_xfdashboard_workspace_selector_allocate;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWorkspaceSelectorPrivate));
-
 	/* Define properties */
 	XfdashboardWorkspaceSelectorProperties[PROP_SPACING]=
 		g_param_spec_float("spacing",
@@ -1318,7 +1312,7 @@ static void xfdashboard_workspace_selector_init(XfdashboardWorkspaceSelector *se
 	GList									*workspaces;
 	XfdashboardWindowTrackerWorkspace		*workspace;
 
-	priv=self->priv=XFDASHBOARD_WORKSPACE_SELECTOR_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_workspace_selector_get_instance_private(self);
 
 	/* Set up default values */
 	priv->windowTracker=xfdashboard_window_tracker_get_default();
diff --git a/libxfdashboard/x11/window-content-x11.c b/libxfdashboard/x11/window-content-x11.c
index 666234d..4ecfbcf 100644
--- a/libxfdashboard/x11/window-content-x11.c
+++ b/libxfdashboard/x11/window-content-x11.c
@@ -68,16 +68,6 @@ typedef enum /*< skip,prefix=XFDASHBOARD_WINDOW_CONTENT_X11_WORKAROUND_MODE >*/
 static void _xfdashboard_window_content_clutter_content_iface_init(ClutterContentIface *iface);
 static void _xfdashboard_window_content_x11_stylable_iface_init(XfdashboardStylableInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowContentX11,
-						xfdashboard_window_content_x11,
-						XFDASHBOARD_TYPE_WINDOW_CONTENT,
-						G_IMPLEMENT_INTERFACE(CLUTTER_TYPE_CONTENT, _xfdashboard_window_content_clutter_content_iface_init)
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_window_content_x11_stylable_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_CONTENT_X11_GET_PRIVATE(obj)                        \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_CONTENT_X11, XfdashboardWindowContentX11Private))
-
 struct _XfdashboardWindowContentX11Private
 {
 	/* Properties related */
@@ -118,6 +108,13 @@ struct _XfdashboardWindowContentX11Private
 	gboolean									suspendAfterResumeOnIdle;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowContentX11,
+						xfdashboard_window_content_x11,
+						XFDASHBOARD_TYPE_WINDOW_CONTENT,
+						G_ADD_PRIVATE(XfdashboardWindowContentX11)
+						G_IMPLEMENT_INTERFACE(CLUTTER_TYPE_CONTENT, _xfdashboard_window_content_clutter_content_iface_init)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_STYLABLE, _xfdashboard_window_content_x11_stylable_iface_init))
+
 /* Properties */
 enum
 {
@@ -2134,9 +2131,6 @@ void xfdashboard_window_content_x11_class_init(XfdashboardWindowContentX11Class
 
 	stylableIface=g_type_default_interface_ref(XFDASHBOARD_TYPE_STYLABLE);
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowContentX11Private));
-
 	/* Define properties */
 	XfdashboardWindowContentX11Properties[PROP_WINDOW]=
 		g_param_spec_object("window",
@@ -2250,7 +2244,7 @@ void xfdashboard_window_content_x11_init(XfdashboardWindowContentX11 *self)
 	XfdashboardWindowContentX11Private		*priv;
 	XfdashboardApplication				*app;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_CONTENT_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_content_x11_get_instance_private(self);
 
 	/* Set default values */
 	priv->window=NULL;
diff --git a/libxfdashboard/x11/window-tracker-backend-x11.c b/libxfdashboard/x11/window-tracker-backend-x11.c
index 973d060..70ba0e3 100644
--- a/libxfdashboard/x11/window-tracker-backend-x11.c
+++ b/libxfdashboard/x11/window-tracker-backend-x11.c
@@ -45,22 +45,17 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_backend_x11_window_tracker_backend_iface_init(XfdashboardWindowTrackerBackendInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerBackendX11,
-						xfdashboard_window_tracker_backend_x11,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND, _xfdashboard_window_tracker_backend_x11_window_tracker_backend_iface_init))
-
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_BACKEND_X11_GET_PRIVATE(obj) \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND_X11, XfdashboardWindowTrackerBackendX11Private))
-
 struct _XfdashboardWindowTrackerBackendX11Private
 {
 	/* Instance related */
 	XfdashboardWindowTrackerX11		*windowTracker;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerBackendX11,
+						xfdashboard_window_tracker_backend_x11,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerBackendX11)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_BACKEND, _xfdashboard_window_tracker_backend_x11_window_tracker_backend_iface_init))
 
 /* IMPLEMENTATION: Private variables and methods */
 
@@ -728,9 +723,6 @@ void xfdashboard_window_tracker_backend_x11_class_init(XfdashboardWindowTrackerB
 
 	/* Override functions */
 	gobjectClass->dispose=_xfdashboard_window_tracker_backend_x11_dispose;
-
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerBackendX11Private));
 }
 
 /* Object initialization
@@ -740,7 +732,7 @@ void xfdashboard_window_tracker_backend_x11_init(XfdashboardWindowTrackerBackend
 {
 	XfdashboardWindowTrackerBackendX11Private		*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_BACKEND_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_backend_x11_get_instance_private(self);
 
 	XFDASHBOARD_DEBUG(self, WINDOWS, "Initializing X11 window tracker backend");
 
diff --git a/libxfdashboard/x11/window-tracker-monitor-x11.c b/libxfdashboard/x11/window-tracker-monitor-x11.c
index a0eab22..c4f4be2 100644
--- a/libxfdashboard/x11/window-tracker-monitor-x11.c
+++ b/libxfdashboard/x11/window-tracker-monitor-x11.c
@@ -42,15 +42,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_monitor_x11_x11_window_tracker_monitor_iface_init(XfdashboardWindowTrackerMonitorInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerMonitorX11,
-						xfdashboard_window_tracker_monitor_x11,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR, _xfdashboard_window_tracker_monitor_x11_x11_window_tracker_monitor_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_MONITOR_X11_GET_PRIVATE(obj)                \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR_X11, XfdashboardWindowTrackerMonitorX11Private))
-
 struct _XfdashboardWindowTrackerMonitorX11Private
 {
 	/* Properties related */
@@ -62,6 +53,12 @@ struct _XfdashboardWindowTrackerMonitorX11Private
 	GdkRectangle		geometry;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerMonitorX11,
+						xfdashboard_window_tracker_monitor_x11,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerMonitorX11)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_MONITOR, _xfdashboard_window_tracker_monitor_x11_x11_window_tracker_monitor_iface_init))
+
 /* Properties */
 enum
 {
@@ -387,9 +384,6 @@ static void xfdashboard_window_tracker_monitor_x11_class_init(XfdashboardWindowT
 	gobjectClass->set_property=_xfdashboard_window_tracker_monitor_x11_set_property;
 	gobjectClass->get_property=_xfdashboard_window_tracker_monitor_x11_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerMonitorX11Private));
-
 	/* Define properties */
 	paramSpec=g_object_interface_find_property(monitorIface, "is-primary");
 	XfdashboardWindowTrackerMonitorX11Properties[PROP_IS_PRIMARY]=
@@ -412,7 +406,7 @@ static void xfdashboard_window_tracker_monitor_x11_init(XfdashboardWindowTracker
 {
 	XfdashboardWindowTrackerMonitorX11Private		*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_MONITOR_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_monitor_x11_get_instance_private(self);
 
 	/* Set default values */
 	priv->monitorIndex=-1;
diff --git a/libxfdashboard/x11/window-tracker-window-x11.c b/libxfdashboard/x11/window-tracker-window-x11.c
index 6435455..0865ca3 100644
--- a/libxfdashboard/x11/window-tracker-window-x11.c
+++ b/libxfdashboard/x11/window-tracker-window-x11.c
@@ -63,15 +63,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_window_x11_window_tracker_window_iface_init(XfdashboardWindowTrackerWindowInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerWindowX11,
-						xfdashboard_window_tracker_window_x11,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_WINDOW, _xfdashboard_window_tracker_window_x11_window_tracker_window_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_WINDOW_X11_GET_PRIVATE(obj)                 \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_WINDOW_X11, XfdashboardWindowTrackerWindowX11Private))
-
 struct _XfdashboardWindowTrackerWindowX11Private
 {
 	/* Properties related */
@@ -90,6 +81,11 @@ struct _XfdashboardWindowTrackerWindowX11Private
 	ClutterContent							*content;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerWindowX11,
+						xfdashboard_window_tracker_window_x11,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerWindowX11)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_WINDOW, _xfdashboard_window_tracker_window_x11_window_tracker_window_iface_init))
 
 /* Properties */
 enum
@@ -1276,9 +1272,6 @@ void xfdashboard_window_tracker_window_x11_class_init(XfdashboardWindowTrackerWi
 	gobjectClass->set_property=_xfdashboard_window_tracker_window_x11_set_property;
 	gobjectClass->get_property=_xfdashboard_window_tracker_window_x11_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerWindowX11Private));
-
 	/* Define properties */
 	XfdashboardWindowTrackerWindowX11Properties[PROP_WINDOW]=
 		g_param_spec_object("window",
@@ -1308,7 +1301,7 @@ void xfdashboard_window_tracker_window_x11_init(XfdashboardWindowTrackerWindowX1
 {
 	XfdashboardWindowTrackerWindowX11Private	*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_WINDOW_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_window_x11_get_instance_private(self);
 
 	/* Set default values */
 	priv->window=NULL;
diff --git a/libxfdashboard/x11/window-tracker-workspace-x11.c b/libxfdashboard/x11/window-tracker-workspace-x11.c
index 72fb255..4c6d57e 100644
--- a/libxfdashboard/x11/window-tracker-workspace-x11.c
+++ b/libxfdashboard/x11/window-tracker-workspace-x11.c
@@ -55,21 +55,17 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_workspace_x11_window_tracker_workspace_iface_init(XfdashboardWindowTrackerWorkspaceInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerWorkspaceX11,
-						xfdashboard_window_tracker_workspace_x11,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_WORKSPACE, _xfdashboard_window_tracker_workspace_x11_window_tracker_workspace_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_WORKSPACE_X11_GET_PRIVATE(obj)              \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_WORKSPACE_X11, XfdashboardWindowTrackerWorkspaceX11Private))
-
 struct _XfdashboardWindowTrackerWorkspaceX11Private
 {
 	/* Properties related */
 	WnckWorkspace							*workspace;
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerWorkspaceX11,
+						xfdashboard_window_tracker_workspace_x11,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerWorkspaceX11)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER_WORKSPACE, _xfdashboard_window_tracker_workspace_x11_window_tracker_workspace_iface_init))
 
 /* Properties */
 enum
@@ -383,9 +379,6 @@ void xfdashboard_window_tracker_workspace_x11_class_init(XfdashboardWindowTracke
 	gobjectClass->set_property=_xfdashboard_window_tracker_workspace_x11_set_property;
 	gobjectClass->get_property=_xfdashboard_window_tracker_workspace_x11_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerWorkspaceX11Private));
-
 	/* Define properties */
 	XfdashboardWindowTrackerWorkspaceX11Properties[PROP_WORKSPACE]=
 		g_param_spec_object("workspace",
@@ -404,7 +397,7 @@ void xfdashboard_window_tracker_workspace_x11_init(XfdashboardWindowTrackerWorks
 {
 	XfdashboardWindowTrackerWorkspaceX11Private	*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_WORKSPACE_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_workspace_x11_get_instance_private(self);
 
 	/* Set default values */
 	priv->workspace=NULL;
diff --git a/libxfdashboard/x11/window-tracker-x11.c b/libxfdashboard/x11/window-tracker-x11.c
index b394b90..d37d285 100644
--- a/libxfdashboard/x11/window-tracker-x11.c
+++ b/libxfdashboard/x11/window-tracker-x11.c
@@ -60,15 +60,6 @@
 /* Define this class in GObject system */
 static void _xfdashboard_window_tracker_x11_window_tracker_iface_init(XfdashboardWindowTrackerInterface *iface);
 
-G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerX11,
-						xfdashboard_window_tracker_x11,
-						G_TYPE_OBJECT,
-						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER, _xfdashboard_window_tracker_x11_window_tracker_iface_init))
-
-/* Private structure - access only by public API if needed */
-#define XFDASHBOARD_WINDOW_TRACKER_X11_GET_PRIVATE(obj)                        \
-	(G_TYPE_INSTANCE_GET_PRIVATE((obj), XFDASHBOARD_TYPE_WINDOW_TRACKER_X11, XfdashboardWindowTrackerX11Private))
-
 struct _XfdashboardWindowTrackerX11Private
 {
 	/* Properties related */
@@ -97,6 +88,12 @@ struct _XfdashboardWindowTrackerX11Private
 #endif
 };
 
+G_DEFINE_TYPE_WITH_CODE(XfdashboardWindowTrackerX11,
+						xfdashboard_window_tracker_x11,
+						G_TYPE_OBJECT,
+						G_ADD_PRIVATE(XfdashboardWindowTrackerX11)
+						G_IMPLEMENT_INTERFACE(XFDASHBOARD_TYPE_WINDOW_TRACKER, _xfdashboard_window_tracker_x11_window_tracker_iface_init))
+
 /* Properties */
 enum
 {
@@ -1810,9 +1807,6 @@ void xfdashboard_window_tracker_x11_class_init(XfdashboardWindowTrackerX11Class
 	gobjectClass->set_property=_xfdashboard_window_tracker_x11_set_property;
 	gobjectClass->get_property=_xfdashboard_window_tracker_x11_get_property;
 
-	/* Set up private structure */
-	g_type_class_add_private(klass, sizeof(XfdashboardWindowTrackerX11Private));
-
 	/* Define properties */
 	paramSpec=g_object_interface_find_property(trackerIface, "active-window");
 	XfdashboardWindowTrackerX11Properties[PROP_ACTIVE_WINDOW]=
@@ -1839,7 +1833,7 @@ void xfdashboard_window_tracker_x11_init(XfdashboardWindowTrackerX11 *self)
 {
 	XfdashboardWindowTrackerX11Private		*priv;
 
-	priv=self->priv=XFDASHBOARD_WINDOW_TRACKER_X11_GET_PRIVATE(self);
+	priv=self->priv=xfdashboard_window_tracker_x11_get_instance_private(self);
 
 	XFDASHBOARD_DEBUG(self, WINDOWS, "Initializing X11 window tracker");
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list