[gnome-bluetooth] lib: Fixes for building with introspection



commit 1f90ddfa988f90b696c3b07961c96baccfed34bc
Author: Bastien Nocera <hadess hadess net>
Date:   Thu Nov 11 20:26:50 2010 +0000

    lib: Fixes for building with introspection

 lib/Makefile.am               |    1 +
 lib/bluetooth-chooser-combo.c |  137 +++++++++++++++++++++--------------------
 lib/bluetooth-chooser-combo.h |   17 ++++-
 lib/bluetooth-chooser.c       |    2 +-
 4 files changed, 87 insertions(+), 70 deletions(-)
---
diff --git a/lib/Makefile.am b/lib/Makefile.am
index d5a1766..210c7bc 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -57,6 +57,7 @@ libgnome_bluetooth_introspect_headers =			\
 	bluetooth-client.h				\
 	bluetooth-chooser.h				\
 	bluetooth-chooser-button.h			\
+	bluetooth-chooser-combo.h			\
 	bluetooth-filter-widget.h			\
 	bluetooth-enums.h
 
diff --git a/lib/bluetooth-chooser-combo.c b/lib/bluetooth-chooser-combo.c
index 3de2145..09e8d06 100644
--- a/lib/bluetooth-chooser-combo.c
+++ b/lib/bluetooth-chooser-combo.c
@@ -31,9 +31,7 @@
 #include "bluetooth-chooser-private.h"
 #include "marshal.h"
 
-struct _BluetoothChooserCombo {
-	GtkVBox            parent;
-
+struct _BluetoothChooserComboPrivate {
 	GtkWidget         *chooser;
 	GtkWidget         *drop_box;
 	GtkWidget         *drop;
@@ -64,45 +62,48 @@ static GtkVBoxClass *parent_class;
 
 G_DEFINE_TYPE(BluetoothChooserCombo, bluetooth_chooser_combo, GTK_TYPE_VBOX);
 
+#define BLUETOOTH_CHOOSER_COMBO_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), \
+									BLUETOOTH_TYPE_CHOOSER_COMBO, BluetoothChooserComboPrivate))
+
 static void
 bluetooth_chooser_combo_set_device (BluetoothChooserCombo *combo,
 				    const char *bdaddr)
 {
-	if (bdaddr == NULL || combo->model == NULL) {
-		g_free (combo->bdaddr);
-		gtk_widget_set_sensitive (combo->drop_box, FALSE);
+	if (bdaddr == NULL || combo->priv->model == NULL) {
+		g_free (combo->priv->bdaddr);
+		gtk_widget_set_sensitive (combo->priv->drop_box, FALSE);
 	} else {
 		GtkTreeIter iter;
 		gboolean cont = FALSE;
 
-		gtk_widget_set_sensitive (combo->drop_box, TRUE);
+		gtk_widget_set_sensitive (combo->priv->drop_box, TRUE);
 
-		g_free (combo->bdaddr);
+		g_free (combo->priv->bdaddr);
 		if (g_strcmp0 (BLUETOOTH_CHOOSER_COMBO_FIRST_DEVICE, bdaddr) != 0)
-			combo->bdaddr = g_strdup (bdaddr);
+			combo->priv->bdaddr = g_strdup (bdaddr);
 		else
-			combo->bdaddr = NULL;
+			combo->priv->bdaddr = NULL;
 
-		cont = gtk_tree_model_iter_children (combo->model, &iter, NULL);
+		cont = gtk_tree_model_iter_children (combo->priv->model, &iter, NULL);
 		while (cont == TRUE) {
 			char *value;
 
-			gtk_tree_model_get (GTK_TREE_MODEL (combo->model), &iter,
+			gtk_tree_model_get (GTK_TREE_MODEL (combo->priv->model), &iter,
 					    BLUETOOTH_COLUMN_ADDRESS, &value, -1);
 
-			if (combo->bdaddr == NULL) {
-				gtk_tree_selection_select_iter (combo->selection, &iter);
-				combo->bdaddr = value;
+			if (combo->priv->bdaddr == NULL) {
+				gtk_tree_selection_select_iter (combo->priv->selection, &iter);
+				combo->priv->bdaddr = value;
 				break;
 			}
 
 			if (g_ascii_strcasecmp(bdaddr, value) == 0) {
-				gtk_tree_selection_select_iter (combo->selection, &iter);
+				gtk_tree_selection_select_iter (combo->priv->selection, &iter);
 				g_free (value);
 				break;
 			}
 			g_free (value);
-			cont = gtk_tree_model_iter_next (GTK_TREE_MODEL (combo->model), &iter);
+			cont = gtk_tree_model_iter_next (GTK_TREE_MODEL (combo->priv->model), &iter);
 		}
 	}
 	g_object_notify (G_OBJECT (combo), "device");
@@ -113,20 +114,20 @@ bluetooth_chooser_combo_dispose (GObject *object)
 {
 	BluetoothChooserCombo *combo = BLUETOOTH_CHOOSER_COMBO (object);
 
-	if (combo->model_notify_id != 0) {
+	if (combo->priv->model_notify_id != 0) {
 		GtkWidget *treeview;
 
-		treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->chooser));
-		g_signal_handler_disconnect (treeview, combo->model_notify_id);
-		combo->model_notify_id = 0;
+		treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->priv->chooser));
+		g_signal_handler_disconnect (treeview, combo->priv->model_notify_id);
+		combo->priv->model_notify_id = 0;
 	}
-	if (combo->model != NULL) {
-		g_object_unref (combo->model);
-		combo->model = NULL;
+	if (combo->priv->model != NULL) {
+		g_object_unref (combo->priv->model);
+		combo->priv->model = NULL;
 	}
-	if (combo->chooser != NULL) {
-		g_object_unref (combo->chooser);
-		combo->chooser = NULL;
+	if (combo->priv->chooser != NULL) {
+		g_object_unref (combo->priv->chooser);
+		combo->priv->chooser = NULL;
 	}
 
 	G_OBJECT_CLASS (parent_class)->dispose (object);
@@ -160,10 +161,10 @@ bluetooth_chooser_combo_get_property (GObject *object, guint property_id, GValue
 
 	switch (property_id) {
 	case PROP_CHOOSER:
-		g_value_set_object (value, combo->chooser);
+		g_value_set_object (value, combo->priv->chooser);
 		break;
 	case PROP_DEVICE:
-		g_value_set_string (value, combo->bdaddr);
+		g_value_set_string (value, combo->priv->bdaddr);
 		break;
 	default:
 		G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -181,6 +182,8 @@ bluetooth_chooser_combo_class_init (BluetoothChooserComboClass *klass)
 	object_class->set_property = bluetooth_chooser_combo_set_property;
 	object_class->get_property = bluetooth_chooser_combo_get_property;
 
+	g_type_class_add_private(klass, sizeof(BluetoothChooserComboPrivate));
+
 	/**
 	 * BluetoothChooserCombo::chooser-created:
 	 * @self: a #BluetoothChooserCombo widget
@@ -226,12 +229,12 @@ treeview_model_notify_cb (GObject    *gobject,
 	GtkTreeModel *model;
 
 	g_object_get (gobject, "model", &model, NULL);
-	gtk_combo_box_set_model (GTK_COMBO_BOX (combo->drop), model);
-	if (combo->model != NULL) {
-		g_object_unref (combo->model);
-		combo->model = NULL;
+	gtk_combo_box_set_model (GTK_COMBO_BOX (combo->priv->drop), model);
+	if (combo->priv->model != NULL) {
+		g_object_unref (combo->priv->model);
+		combo->priv->model = NULL;
 	}
-	combo->model = model;
+	combo->priv->model = model;
 }
 
 static void
@@ -242,19 +245,19 @@ treeview_selection_changed_cb (GtkTreeSelection *treeselection,
 	GtkTreeIter iter;
 	char *value = NULL;
 
-	if (gtk_tree_selection_get_selected (combo->selection, NULL, &iter)) {
-		gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo->drop), &iter);
-		if (combo->model != NULL)
-			gtk_tree_model_get (GTK_TREE_MODEL (combo->model), &iter,
+	if (gtk_tree_selection_get_selected (combo->priv->selection, NULL, &iter)) {
+		gtk_combo_box_set_active_iter (GTK_COMBO_BOX (combo->priv->drop), &iter);
+		if (combo->priv->model != NULL)
+			gtk_tree_model_get (GTK_TREE_MODEL (combo->priv->model), &iter,
 					    BLUETOOTH_COLUMN_ADDRESS, &value, -1);
 	} else {
-		if (combo->model != NULL)
-			gtk_combo_box_set_active (GTK_COMBO_BOX (combo->drop), -1);
+		if (combo->priv->model != NULL)
+			gtk_combo_box_set_active (GTK_COMBO_BOX (combo->priv->drop), -1);
 	}
 
-	if (g_strcmp0 (combo->bdaddr, value) != 0) {
-		g_free (combo->bdaddr);
-		combo->bdaddr = value;
+	if (g_strcmp0 (combo->priv->bdaddr, value) != 0) {
+		g_free (combo->priv->bdaddr);
+		combo->priv->bdaddr = value;
 		g_object_notify (G_OBJECT (combo), "device");
 	} else {
 		g_free (value);
@@ -270,18 +273,18 @@ drop_changed_cb (GtkComboBox *widget,
 	char *value = NULL;
 
 	if (gtk_combo_box_get_active_iter (widget, &iter)) {
-		gtk_tree_selection_select_iter (combo->selection, &iter);
-		if (combo->model != NULL)
-			gtk_tree_model_get (GTK_TREE_MODEL (combo->model), &iter,
+		gtk_tree_selection_select_iter (combo->priv->selection, &iter);
+		if (combo->priv->model != NULL)
+			gtk_tree_model_get (GTK_TREE_MODEL (combo->priv->model), &iter,
 					    BLUETOOTH_COLUMN_ADDRESS, &value, -1);
 	} else {
-		if (combo->model != NULL)
-			gtk_tree_selection_unselect_all (combo->selection);
+		if (combo->priv->model != NULL)
+			gtk_tree_selection_unselect_all (combo->priv->selection);
 	}
 
-	if (g_strcmp0 (combo->bdaddr, value) != 0) {
-		g_free (combo->bdaddr);
-		combo->bdaddr = value;
+	if (g_strcmp0 (combo->priv->bdaddr, value) != 0) {
+		g_free (combo->priv->bdaddr);
+		combo->priv->bdaddr = value;
 		g_object_notify (G_OBJECT (combo), "device");
 	} else {
 		g_free (value);
@@ -294,42 +297,44 @@ bluetooth_chooser_combo_init (BluetoothChooserCombo *combo)
 	GtkWidget *treeview;
 	GtkCellRenderer *renderer;
 
-	combo->drop_box = gtk_hbox_new (TRUE, 0);
-	gtk_box_pack_start (GTK_BOX (combo), combo->drop_box,
+	combo->priv = BLUETOOTH_CHOOSER_COMBO_GET_PRIVATE (combo);
+
+	combo->priv->drop_box = gtk_hbox_new (TRUE, 0);
+	gtk_box_pack_start (GTK_BOX (combo), combo->priv->drop_box,
 			    TRUE, FALSE, 0);
 	/* Setup the combo itself */
-	combo->drop = gtk_combo_box_new ();
-	gtk_box_pack_start (GTK_BOX (combo->drop_box), combo->drop,
+	combo->priv->drop = gtk_combo_box_new ();
+	gtk_box_pack_start (GTK_BOX (combo->priv->drop_box), combo->priv->drop,
 			    TRUE, TRUE, 0);
 	renderer = gtk_cell_renderer_pixbuf_new ();
-	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->drop),
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->priv->drop),
 				    renderer,
 				    FALSE);
-	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->drop),
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->priv->drop),
 					renderer,
 					"icon-name", BLUETOOTH_COLUMN_ICON,
 					NULL);
 	renderer = gtk_cell_renderer_text_new ();
-	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->drop),
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->priv->drop),
 				    renderer,
 				    TRUE);
-	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->drop),
+	gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->priv->drop),
 					renderer,
 					"text", BLUETOOTH_COLUMN_ALIAS,
 					NULL);
 
-	combo->chooser = bluetooth_chooser_new ("");
+	combo->priv->chooser = bluetooth_chooser_new ("");
 
-	treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->chooser));
-	combo->model_notify_id = g_signal_connect (G_OBJECT (treeview), "notify::model",
+	treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->priv->chooser));
+	combo->priv->model_notify_id = g_signal_connect (G_OBJECT (treeview), "notify::model",
 						   G_CALLBACK (treeview_model_notify_cb), combo);
 	treeview_model_notify_cb (G_OBJECT (treeview), NULL, combo);
-	gtk_combo_box_set_active (GTK_COMBO_BOX (combo->drop), 0);
+	gtk_combo_box_set_active (GTK_COMBO_BOX (combo->priv->drop), 0);
 
-	combo->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
-	g_signal_connect (G_OBJECT (combo->selection), "changed",
+	combo->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+	g_signal_connect (G_OBJECT (combo->priv->selection), "changed",
 			  G_CALLBACK (treeview_selection_changed_cb), combo);
-	g_signal_connect (G_OBJECT (combo->drop), "changed",
+	g_signal_connect (G_OBJECT (combo->priv->drop), "changed",
 			  G_CALLBACK (drop_changed_cb), combo);
 
 	gtk_widget_show_all (GTK_WIDGET (combo));
diff --git a/lib/bluetooth-chooser-combo.h b/lib/bluetooth-chooser-combo.h
index da5deb7..2191fcc 100644
--- a/lib/bluetooth-chooser-combo.h
+++ b/lib/bluetooth-chooser-combo.h
@@ -28,16 +28,27 @@ G_BEGIN_DECLS
 #define BLUETOOTH_TYPE_CHOOSER_COMBO     (bluetooth_chooser_combo_get_type ())
 #define BLUETOOTH_CHOOSER_COMBO(obj)     (G_TYPE_CHECK_INSTANCE_CAST ((obj), BLUETOOTH_TYPE_CHOOSER_COMBO, BluetoothChooserCombo))
 #define BLUETOOTH_IS_CHOOSER_COMBO(obj)  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), BLUETOOTH_TYPE_CHOOSER_COMBO))
+#define BLUETOOTH_IS_CHOOSER_COMBO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), \
+									 BLUETOOTH_TYPE_CHOOSER_COMBO))
+#define BLUETOOTH_GET_CHOOSER_COMBO_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), \
+				BLUETOOTH_TYPE_CHOOSER_COMBO, BluetoothChooserComboClass))
 
 #define BLUETOOTH_CHOOSER_COMBO_FIRST_DEVICE "00:00:00:00:00:00"
 
-typedef struct _BluetoothChooserCombo BluetoothChooserCombo;
+typedef struct _BluetoothChooserComboPrivate BluetoothChooserComboPrivate;
+typedef struct _BluetoothChooserComboClass BluetoothChooserComboClass;
 
-typedef struct _BluetoothChooserComboClass {
+typedef struct _BluetoothChooserCombo {
+	GtkVBox            parent;
+
+	BluetoothChooserComboPrivate *priv;
+} BluetoothChooserCombo;
+
+struct _BluetoothChooserComboClass {
   GtkVBoxClass parent_class;
 
   void (*chooser_created) (BluetoothChooserCombo *self, GtkWidget *chooser);
-} BluetoothChooserComboClass;
+};
 
 GType		bluetooth_chooser_combo_get_type	(void);
 
diff --git a/lib/bluetooth-chooser.c b/lib/bluetooth-chooser.c
index 4b5eb91..0a92df3 100644
--- a/lib/bluetooth-chooser.c
+++ b/lib/bluetooth-chooser.c
@@ -54,7 +54,7 @@ enum {
 static int selection_table_signals[LAST_SIGNAL] = { 0 };
 
 #define BLUETOOTH_CHOOSER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), \
-										 BLUETOOTH_TYPE_CHOOSER, BluetoothChooserPrivate))
+									BLUETOOTH_TYPE_CHOOSER, BluetoothChooserPrivate))
 
 typedef struct _BluetoothChooserPrivate BluetoothChooserPrivate;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]