[gnome-bluetooth/wip/hadess/cleanups: 15/24] lib: Simplify BluetoothChooserCombo object declaration
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-bluetooth/wip/hadess/cleanups: 15/24] lib: Simplify BluetoothChooserCombo object declaration
- Date: Wed, 17 Feb 2021 11:02:24 +0000 (UTC)
commit 61b3a0b17f21390308edc936532b386216a262e0
Author: Bastien Nocera <hadess hadess net>
Date: Wed Feb 10 17:25:38 2021 +0100
lib: Simplify BluetoothChooserCombo object declaration
lib/bluetooth-chooser-combo.c | 150 +++++++++++++++++++-----------------------
lib/bluetooth-chooser-combo.h | 33 +---------
2 files changed, 72 insertions(+), 111 deletions(-)
---
diff --git a/lib/bluetooth-chooser-combo.c b/lib/bluetooth-chooser-combo.c
index 6903e836..25800e0d 100644
--- a/lib/bluetooth-chooser-combo.c
+++ b/lib/bluetooth-chooser-combo.c
@@ -38,7 +38,9 @@
#include "bluetooth-chooser-private.h"
#include "bluetooth-utils.h"
-struct _BluetoothChooserComboPrivate {
+struct _BluetoothChooserCombo {
+ GtkWidget parent;
+
GtkWidget *chooser;
GtkWidget *drop_box;
GtkWidget *drop;
@@ -62,55 +64,47 @@ enum {
static int signals[LAST_SIGNAL] = { 0 };
-static void bluetooth_chooser_combo_class_init (BluetoothChooserComboClass * klass);
-static void bluetooth_chooser_combo_init (BluetoothChooserCombo * combo);
-
-static GtkBoxClass *parent_class;
-
G_DEFINE_TYPE(BluetoothChooserCombo, bluetooth_chooser_combo, GTK_TYPE_BOX);
-#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->priv->model == NULL) {
- g_free (combo->priv->bdaddr);
- gtk_widget_set_sensitive (combo->priv->drop_box, FALSE);
+ if (bdaddr == NULL || combo->model == NULL) {
+ g_free (combo->bdaddr);
+ gtk_widget_set_sensitive (combo->drop_box, FALSE);
} else {
GtkTreeIter iter;
gboolean cont = FALSE;
- gtk_widget_set_sensitive (combo->priv->drop_box, TRUE);
+ gtk_widget_set_sensitive (combo->drop_box, TRUE);
- g_free (combo->priv->bdaddr);
+ g_free (combo->bdaddr);
if (g_strcmp0 (BLUETOOTH_CHOOSER_COMBO_FIRST_DEVICE, bdaddr) != 0)
- combo->priv->bdaddr = g_strdup (bdaddr);
+ combo->bdaddr = g_strdup (bdaddr);
else
- combo->priv->bdaddr = NULL;
+ combo->bdaddr = NULL;
- cont = gtk_tree_model_iter_children (combo->priv->model, &iter, NULL);
+ cont = gtk_tree_model_iter_children (combo->model, &iter, NULL);
while (cont == TRUE) {
char *value;
- gtk_tree_model_get (GTK_TREE_MODEL (combo->priv->model), &iter,
+ gtk_tree_model_get (GTK_TREE_MODEL (combo->model), &iter,
BLUETOOTH_COLUMN_ADDRESS, &value, -1);
- if (combo->priv->bdaddr == NULL) {
- gtk_tree_selection_select_iter (combo->priv->selection, &iter);
- combo->priv->bdaddr = value;
+ if (combo->bdaddr == NULL) {
+ gtk_tree_selection_select_iter (combo->selection, &iter);
+ combo->bdaddr = value;
break;
}
if (g_ascii_strcasecmp(bdaddr, value) == 0) {
- gtk_tree_selection_select_iter (combo->priv->selection, &iter);
+ gtk_tree_selection_select_iter (combo->selection, &iter);
g_free (value);
break;
}
g_free (value);
- cont = gtk_tree_model_iter_next (GTK_TREE_MODEL (combo->priv->model), &iter);
+ cont = gtk_tree_model_iter_next (GTK_TREE_MODEL (combo->model), &iter);
}
}
g_object_notify (G_OBJECT (combo), "device");
@@ -121,23 +115,23 @@ bluetooth_chooser_combo_dispose (GObject *object)
{
BluetoothChooserCombo *combo = BLUETOOTH_CHOOSER_COMBO (object);
- if (combo->priv->model_notify_id != 0) {
+ if (combo->model_notify_id != 0) {
GtkWidget *treeview;
- 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;
+ treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->chooser));
+ g_signal_handler_disconnect (treeview, combo->model_notify_id);
+ combo->model_notify_id = 0;
}
- if (combo->priv->model != NULL) {
- g_object_unref (combo->priv->model);
- combo->priv->model = NULL;
+ if (combo->model != NULL) {
+ g_object_unref (combo->model);
+ combo->model = NULL;
}
- if (combo->priv->chooser != NULL) {
- g_object_unref (combo->priv->chooser);
- combo->priv->chooser = NULL;
+ if (combo->chooser != NULL) {
+ g_object_unref (combo->chooser);
+ combo->chooser = NULL;
}
- G_OBJECT_CLASS (parent_class)->dispose (object);
+ G_OBJECT_CLASS (bluetooth_chooser_combo_parent_class)->dispose (object);
}
static void
@@ -168,10 +162,10 @@ bluetooth_chooser_combo_get_property (GObject *object, guint property_id, GValue
switch (property_id) {
case PROP_CHOOSER:
- g_value_set_object (value, combo->priv->chooser);
+ g_value_set_object (value, combo->chooser);
break;
case PROP_DEVICE:
- g_value_set_string (value, combo->priv->bdaddr);
+ g_value_set_string (value, combo->bdaddr);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
@@ -183,14 +177,10 @@ bluetooth_chooser_combo_class_init (BluetoothChooserComboClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- parent_class = g_type_class_peek_parent (klass);
-
object_class->dispose = bluetooth_chooser_combo_dispose;
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
@@ -204,7 +194,7 @@ bluetooth_chooser_combo_class_init (BluetoothChooserComboClass *klass)
g_signal_new ("chooser-created",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (BluetoothChooserComboClass, chooser_created),
+ 0,
NULL, NULL,
g_cclosure_marshal_VOID__OBJECT,
G_TYPE_NONE, 1, G_TYPE_OBJECT);
@@ -236,12 +226,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->priv->drop), model);
- if (combo->priv->model != NULL) {
- g_object_unref (combo->priv->model);
- combo->priv->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;
}
- combo->priv->model = model;
+ combo->model = model;
}
static void
@@ -252,19 +242,19 @@ treeview_selection_changed_cb (GtkTreeSelection *treeselection,
GtkTreeIter iter;
char *value = NULL;
- 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,
+ 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,
BLUETOOTH_COLUMN_ADDRESS, &value, -1);
} else {
- if (combo->priv->model != NULL)
- gtk_combo_box_set_active (GTK_COMBO_BOX (combo->priv->drop), -1);
+ if (combo->model != NULL)
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo->drop), -1);
}
- if (g_strcmp0 (combo->priv->bdaddr, value) != 0) {
- g_free (combo->priv->bdaddr);
- combo->priv->bdaddr = value;
+ if (g_strcmp0 (combo->bdaddr, value) != 0) {
+ g_free (combo->bdaddr);
+ combo->bdaddr = value;
g_object_notify (G_OBJECT (combo), "device");
} else {
g_free (value);
@@ -280,18 +270,18 @@ drop_changed_cb (GtkComboBox *widget,
char *value = NULL;
if (gtk_combo_box_get_active_iter (widget, &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,
+ gtk_tree_selection_select_iter (combo->selection, &iter);
+ if (combo->model != NULL)
+ gtk_tree_model_get (GTK_TREE_MODEL (combo->model), &iter,
BLUETOOTH_COLUMN_ADDRESS, &value, -1);
} else {
- if (combo->priv->model != NULL)
- gtk_tree_selection_unselect_all (combo->priv->selection);
+ if (combo->model != NULL)
+ gtk_tree_selection_unselect_all (combo->selection);
}
- if (g_strcmp0 (combo->priv->bdaddr, value) != 0) {
- g_free (combo->priv->bdaddr);
- combo->priv->bdaddr = value;
+ if (g_strcmp0 (combo->bdaddr, value) != 0) {
+ g_free (combo->bdaddr);
+ combo->bdaddr = value;
g_object_notify (G_OBJECT (combo), "device");
} else {
g_free (value);
@@ -304,45 +294,43 @@ bluetooth_chooser_combo_init (BluetoothChooserCombo *combo)
GtkWidget *treeview;
GtkCellRenderer *renderer;
- combo->priv = BLUETOOTH_CHOOSER_COMBO_GET_PRIVATE (combo);
-
- combo->priv->drop_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_set_homogeneous (GTK_BOX (combo->priv->drop_box), TRUE);
- gtk_box_pack_start (GTK_BOX (combo), combo->priv->drop_box,
+ combo->drop_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
+ gtk_box_set_homogeneous (GTK_BOX (combo->drop_box), TRUE);
+ gtk_box_pack_start (GTK_BOX (combo), combo->drop_box,
TRUE, FALSE, 0);
/* Setup the combo itself */
- combo->priv->drop = gtk_combo_box_new ();
- gtk_box_pack_start (GTK_BOX (combo->priv->drop_box), combo->priv->drop,
+ combo->drop = gtk_combo_box_new ();
+ gtk_box_pack_start (GTK_BOX (combo->drop_box), combo->drop,
TRUE, TRUE, 0);
renderer = gtk_cell_renderer_pixbuf_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->priv->drop),
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->drop),
renderer,
FALSE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->priv->drop),
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->drop),
renderer,
"icon-name", BLUETOOTH_COLUMN_ICON,
NULL);
renderer = gtk_cell_renderer_text_new ();
- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->priv->drop),
+ gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo->drop),
renderer,
TRUE);
- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->priv->drop),
+ gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo->drop),
renderer,
"text", BLUETOOTH_COLUMN_ALIAS,
NULL);
- combo->priv->chooser = bluetooth_chooser_new ();
+ combo->chooser = bluetooth_chooser_new ();
- treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->priv->chooser));
- combo->priv->model_notify_id = g_signal_connect (G_OBJECT (treeview), "notify::model",
+ treeview = bluetooth_chooser_get_treeview (BLUETOOTH_CHOOSER (combo->chooser));
+ combo->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->priv->drop), 0);
+ gtk_combo_box_set_active (GTK_COMBO_BOX (combo->drop), 0);
- combo->priv->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
- g_signal_connect (G_OBJECT (combo->priv->selection), "changed",
+ combo->selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
+ g_signal_connect (G_OBJECT (combo->selection), "changed",
G_CALLBACK (treeview_selection_changed_cb), combo);
- g_signal_connect (G_OBJECT (combo->priv->drop), "changed",
+ g_signal_connect (G_OBJECT (combo->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 f7f19b69..73d4f399 100644
--- a/lib/bluetooth-chooser-combo.h
+++ b/lib/bluetooth-chooser-combo.h
@@ -1,6 +1,6 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
- * (C) Copyright 2007 Bastien Nocera <hadess hadess net>
+ * (C) Copyright 2007, 2021 Bastien Nocera <hadess hadess net>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -20,13 +20,8 @@
#include <gtk/gtk.h>
-#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))
+G_DECLARE_FINAL_TYPE(BluetoothChooserCombo, bluetooth_chooser_combo, BLUETOOTH, CHOOSER_COMBO, GtkBox)
+#define BLUETOOTH_TYPE_CHOOSER_COMBO (bluetooth_chooser_combo_get_type ())
/**
* BLUETOOTH_CHOOSER_COMBO_FIRST_DEVICE:
@@ -35,26 +30,4 @@
**/
#define BLUETOOTH_CHOOSER_COMBO_FIRST_DEVICE "00:00:00:00:00:00"
-typedef struct _BluetoothChooserComboPrivate BluetoothChooserComboPrivate;
-typedef struct _BluetoothChooserComboClass BluetoothChooserComboClass;
-
-/**
- * BluetoothChooserCombo:
- *
- * The <structname>BluetoothChooserCombo</structname> struct contains
- * only private fields and should not be directly accessed.
- */
-typedef struct _BluetoothChooserCombo {
- GtkBox parent;
- BluetoothChooserComboPrivate *priv;
-} BluetoothChooserCombo;
-
-struct _BluetoothChooserComboClass {
- GtkBoxClass parent_class;
-
- void (*chooser_created) (BluetoothChooserCombo *self, GtkWidget *chooser);
-};
-
-GType bluetooth_chooser_combo_get_type (void);
-
GtkWidget * bluetooth_chooser_combo_new (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]