[ekiga] Modernized the CodecsBox' GObject code
- From: Julien Puydt <jpuydt src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [ekiga] Modernized the CodecsBox' GObject code
- Date: Wed, 10 Nov 2010 10:02:42 +0000 (UTC)
commit 90cbaab7da58cddf6952319359ab1dadef8f2ffc
Author: Snark <jpuydt gnome org>
Date: Tue Nov 9 11:57:59 2010 +0100
Modernized the CodecsBox' GObject code
lib/engine/gui/gtk-core/codecsbox.cpp | 102 +++++----------------------------
lib/engine/gui/gtk-core/codecsbox.h | 22 ++++---
2 files changed, 26 insertions(+), 98 deletions(-)
---
diff --git a/lib/engine/gui/gtk-core/codecsbox.cpp b/lib/engine/gui/gtk-core/codecsbox.cpp
index cccdd7b..16de1a2 100644
--- a/lib/engine/gui/gtk-core/codecsbox.cpp
+++ b/lib/engine/gui/gtk-core/codecsbox.cpp
@@ -65,8 +65,7 @@ struct _CodecsBoxPrivate
enum { TYPE = 1 };
-static GObjectClass *parent_class = NULL;
-
+G_DEFINE_TYPE (CodecsBox, codecs_box, GTK_TYPE_HBOX);
/* Static functions */
static void codecs_box_set_codecs (CodecsBox *self,
@@ -83,17 +82,12 @@ static void codec_moved_cb (GtkWidget *widget,
static GSList *codecs_box_to_gm_conf_list (CodecsBox *self);
-
-/* Static functions and declarations */
-static void codecs_box_class_init (gpointer g_class,
- gpointer class_data);
+static void codecs_box_class_init (CodecsBoxClass* klass);
static void codecs_box_init (CodecsBox *);
static void codecs_box_dispose (GObject *obj);
-static void codecs_box_finalize (GObject *obj);
-
static void codecs_box_get_property (GObject *obj,
guint prop_id,
GValue *value,
@@ -104,8 +98,6 @@ static void codecs_box_set_property (GObject *obj,
const GValue *value,
GParamSpec *spec);
-
-
static void
codecs_box_set_codecs (CodecsBox *self,
GSList *list)
@@ -121,8 +113,6 @@ codecs_box_set_codecs (CodecsBox *self,
unsigned select_rate = 0;
bool selected = false;
- g_return_if_fail (self != NULL);
-
model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->codecs_list));
codecs_data = list;
@@ -196,9 +186,6 @@ codec_toggled_cb (G_GNUC_UNUSED GtkCellRendererToggle *cell,
gboolean fixed = FALSE;
- g_return_if_fail (data != NULL);
- g_return_if_fail (IS_CODECS_BOX (data));
-
self = CODECS_BOX (data);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->codecs_list));
@@ -238,9 +225,6 @@ codec_moved_cb (GtkWidget *widget,
gchar *path_str = NULL;
- g_return_if_fail (data != NULL);
- g_return_if_fail (IS_CODECS_BOX (data));
-
self = CODECS_BOX (data);
model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->codecs_list));
@@ -298,9 +282,6 @@ codecs_box_to_gm_conf_list (CodecsBox *self)
GSList *codecs_data = NULL;
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (IS_CODECS_BOX (self), NULL);
-
model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->priv->codecs_list));
if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (model), &iter)) {
@@ -353,23 +334,20 @@ codecs_list_changed_nt (G_GNUC_UNUSED gpointer id,
static void
-codecs_box_class_init (gpointer g_class,
- gpointer /*class_data*/)
+codecs_box_class_init (CodecsBoxClass* klass)
{
- GObjectClass *gobject_class = NULL;
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GParamSpec *spec = NULL;
- parent_class = (GObjectClass *) g_type_class_peek_parent (g_class);
-
- gobject_class = (GObjectClass *) g_class;
gobject_class->dispose = codecs_box_dispose;
- gobject_class->finalize = codecs_box_finalize;
gobject_class->get_property = codecs_box_get_property;
gobject_class->set_property = codecs_box_set_property;
spec = g_param_spec_int ("type", "Type", "Type",
0, 1, 0, (GParamFlags) G_PARAM_READWRITE);
g_object_class_install_property (gobject_class, TYPE, spec);
+
+ g_type_class_add_private (klass, sizeof (CodecsBoxPrivate));
}
@@ -387,17 +365,13 @@ codecs_box_init (CodecsBox *self)
GtkCellRenderer *renderer = NULL;
GtkTreeViewColumn *column = NULL;
- g_return_if_fail (self != NULL);
- g_return_if_fail (IS_CODECS_BOX (self));
-
- self->priv = new CodecsBoxPrivate;
+ self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, CODECS_BOX_TYPE, CodecsBoxPrivate);
self->priv->type = Ekiga::Call::Audio;
+ self->priv->codecs_list = gtk_tree_view_new ();
gtk_box_set_spacing (GTK_BOX (self), 6);
gtk_box_set_homogeneous (GTK_BOX (self), FALSE);
- self->priv->codecs_list = gtk_tree_view_new ();
-
list_store = gtk_list_store_new (COLUMN_CODEC_NUMBER,
G_TYPE_BOOLEAN,
G_TYPE_STRING,
@@ -507,26 +481,16 @@ codecs_box_dispose (GObject *obj)
self->priv->codecs_list = NULL;
- parent_class->dispose (obj);
-}
-
-
-static void
-codecs_box_finalize (GObject *obj)
-{
- parent_class->finalize (obj);
+ G_OBJECT_CLASS (codecs_box_parent_class)->dispose (obj);
}
-
static void
codecs_box_get_property (GObject *obj,
guint prop_id,
GValue *value,
GParamSpec *spec)
{
- CodecsBox *self = NULL;
-
- self = CODECS_BOX (obj);
+ CodecsBox *self = CODECS_BOX (obj);
switch (prop_id) {
@@ -547,11 +511,9 @@ codecs_box_set_property (GObject *obj,
const GValue *value,
GParamSpec *spec)
{
- CodecsBox *self = NULL;
+ CodecsBox *self = CODECS_BOX (obj);
GSList *list = NULL;
- self = CODECS_BOX (obj);
-
switch (prop_id) {
case TYPE:
@@ -580,53 +542,17 @@ codecs_box_set_property (GObject *obj,
}
-/* Global functions */
-GType
-codecs_box_get_type (void)
-{
- static GType codecs_box_type = 0;
-
- if (codecs_box_type == 0)
- {
- static const GTypeInfo codecs_box_info =
- {
- sizeof (CodecsBoxClass),
- NULL,
- NULL,
- (GClassInitFunc) codecs_box_class_init,
- NULL,
- NULL,
- sizeof (CodecsBox),
- 0,
- (GInstanceInitFunc) codecs_box_init,
- NULL
- };
-
- codecs_box_type =
- g_type_register_static (GTK_TYPE_HBOX,
- "CodecsBox",
- &codecs_box_info,
- (GTypeFlags) 0);
- }
-
- return codecs_box_type;
-}
-
+/* public api */
GtkWidget *
codecs_box_new ()
{
- return GTK_WIDGET (CODECS_BOX (g_object_new (CODECS_BOX_TYPE, NULL)));
+ return GTK_WIDGET (g_object_new (CODECS_BOX_TYPE, NULL));
}
GtkWidget *
codecs_box_new_with_type (Ekiga::Call::StreamType type)
{
- GtkWidget *codecs_box = NULL;
-
- codecs_box = codecs_box_new ();
- g_object_set (G_OBJECT (codecs_box), "type", type, NULL);
-
- return codecs_box;
+ return GTK_WIDGET (g_object_new (CODECS_BOX_TYPE, "type", type, NULL));
}
diff --git a/lib/engine/gui/gtk-core/codecsbox.h b/lib/engine/gui/gtk-core/codecsbox.h
index ad4870a..3a9b945 100644
--- a/lib/engine/gui/gtk-core/codecsbox.h
+++ b/lib/engine/gui/gtk-core/codecsbox.h
@@ -46,7 +46,6 @@
#include "call.h"
-
/** This implements a CodecsBox for the Ekiga Engine.
* The codecs list is loaded from the GmConf configuration engine,
* using the /apps/ekiga/codecs/audio/list or /apps/ekiga/codecs/video/list
@@ -57,13 +56,6 @@
G_BEGIN_DECLS
-#define CODECS_BOX_TYPE (codecs_box_get_type ())
-#define CODECS_BOX(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CODECS_BOX_TYPE, CodecsBox))
-#define CODECS_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CODECS_BOX_TYPE, CodecsBoxClass))
-#define IS_CODECS_BOX(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CODECS_BOX_TYPE))
-#define IS_CODECS_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CODECS_BOX_TYPE))
-#define CODECS_BOX_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CODECS_BOX_TYPE, CodecsBoxClass))
-
typedef struct _CodecsBox CodecsBox;
typedef struct _CodecsBoxPrivate CodecsBoxPrivate;
typedef struct _CodecsBoxClass CodecsBoxClass;
@@ -81,8 +73,6 @@ struct _CodecsBoxClass
GtkHBoxClass parent_class;
};
-GType codecs_box_get_type (void);
-
/** Create a new CodecsBox for Ekiga::Call::Audio codecs.
*/
@@ -94,6 +84,18 @@ GtkWidget *codecs_box_new ();
*/
GtkWidget *codecs_box_new_with_type (Ekiga::Call::StreamType type);
+
+/* GObject boilerplate */
+
+GType codecs_box_get_type (void);
+
+#define CODECS_BOX_TYPE (codecs_box_get_type ())
+#define CODECS_BOX(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), CODECS_BOX_TYPE, CodecsBox))
+#define CODECS_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), CODECS_BOX_TYPE, CodecsBoxClass))
+#define IS_CODECS_BOX(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), CODECS_BOX_TYPE))
+#define IS_CODECS_BOX_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CODECS_BOX_TYPE))
+#define CODECS_BOX_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), CODECS_BOX_TYPE, CodecsBoxClass))
+
G_END_DECLS
#endif /* __CODECS_BOX_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]