[ekiga] Modernized the ChatArea's GObject code



commit ef1bfd5982209d0c33faef5ab86b120853830403
Author: Snark <jpuydt gnome org>
Date:   Tue Nov 9 13:23:36 2010 +0100

    Modernized the ChatArea's GObject code

 lib/engine/gui/gtk-frontend/chat-area.cpp |   56 ++++-------------------------
 lib/engine/gui/gtk-frontend/chat-area.h   |    4 +-
 2 files changed, 9 insertions(+), 51 deletions(-)
---
diff --git a/lib/engine/gui/gtk-frontend/chat-area.cpp b/lib/engine/gui/gtk-frontend/chat-area.cpp
index 693b644..5fe747d 100644
--- a/lib/engine/gui/gtk-frontend/chat-area.cpp
+++ b/lib/engine/gui/gtk-frontend/chat-area.cpp
@@ -80,7 +80,7 @@ enum {
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-static GObjectClass* parent_class = NULL;
+G_DEFINE_TYPE (ChatArea, chat_area, GTK_TYPE_VPANED);
 
 /* declaration of internal api */
 
@@ -628,7 +628,7 @@ chat_area_dispose (GObject* obj)
     self->priv->smiley_menu = NULL;
   }
 
-  parent_class->dispose (obj);
+  G_OBJECT_CLASS (chat_area_parent_class)->dispose (obj);
 }
 
 static void
@@ -648,7 +648,7 @@ chat_area_finalize (GObject* obj)
     self->priv->chat = NULL;
   }
 
-  parent_class->finalize (obj);
+  G_OBJECT_CLASS (chat_area_parent_class)->finalize (obj);
 }
 
 static void
@@ -701,18 +701,13 @@ chat_area_set_property (GObject* obj,
 }
 
 static void
-chat_area_class_init (gpointer g_class,
-		      G_GNUC_UNUSED gpointer class_data)
+chat_area_class_init (ChatAreaClass* klass)
 {
-  ChatAreaClass* chat_area_class = NULL;
-  GObjectClass* gobject_class = NULL;
+  GObjectClass* gobject_class = G_OBJECT_CLASS (klass);
   GParamSpec* spec = NULL;
 
-  parent_class = (GObjectClass*)g_type_class_peek_parent (g_class);
+  g_type_class_add_private (klass, sizeof (ChatAreaPrivate));
 
-  g_type_class_add_private (g_class, sizeof (ChatAreaPrivate));
-
-  gobject_class = (GObjectClass*)g_class;
   gobject_class->dispose = chat_area_dispose;
   gobject_class->finalize = chat_area_finalize;
   gobject_class->get_property = chat_area_get_property;
@@ -734,17 +729,11 @@ chat_area_class_init (gpointer g_class,
 		  NULL, NULL,
 		  g_cclosure_marshal_VOID__VOID,
 		  G_TYPE_NONE, 0);
-
-  /* FIXME: is it useful? */
-  chat_area_class = (ChatAreaClass*)g_class;
-  chat_area_class->message_notice_event = NULL;
 }
 
 static void
-chat_area_init (GTypeInstance* instance,
-		G_GNUC_UNUSED gpointer g_class)
+chat_area_init (ChatArea* self)
 {
-  ChatArea* self = NULL;
   GtkTextBuffer* buffer = NULL;
   GmTextBufferEnhancerHelper* helper = NULL;
   GtkTextTag* tag = NULL;
@@ -752,8 +741,6 @@ chat_area_init (GTypeInstance* instance,
   GtkWidget *frame = NULL;
   GtkWidget *sep = NULL;
 
-  self = (ChatArea*)instance;
-
   self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self,
 					    TYPE_CHAT_AREA,
 					    ChatAreaPrivate);
@@ -978,35 +965,6 @@ chat_area_init (GTypeInstance* instance,
   gtk_widget_grab_focus (self->priv->message);
 }
 
-
-GType
-chat_area_get_type ()
-{
-  static GType result = 0;
-
-  if (result == 0) {
-
-    static const GTypeInfo info = {
-      sizeof (ChatAreaClass),
-      NULL,
-      NULL,
-      chat_area_class_init,
-      NULL,
-      NULL,
-      sizeof (ChatArea),
-      0,
-      chat_area_init,
-      NULL
-    };
-
-    result = g_type_register_static (GTK_TYPE_VPANED,
-				     "ChatArea",
-				     &info, (GTypeFlags) 0);
-  }
-
-  return result;
-}
-
 /* public api */
 
 GtkWidget*
diff --git a/lib/engine/gui/gtk-frontend/chat-area.h b/lib/engine/gui/gtk-frontend/chat-area.h
index e03073a..21d33ae 100644
--- a/lib/engine/gui/gtk-frontend/chat-area.h
+++ b/lib/engine/gui/gtk-frontend/chat-area.h
@@ -74,8 +74,8 @@ const std::string chat_area_get_title (ChatArea* chat);
 #define TYPE_CHAT_AREA (chat_area_get_type ())
 #define CHAT_AREA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_CHAT_AREA, ChatArea))
 #define CHAT_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_CHAT_AREA, ChatAreaClass))
-#define GTK_IS_CHAT_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAT_AREA))
-#define GTK_IS_CHAT_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAT_AREA))
+#define IS_CHAT_AREA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_CHAT_AREA))
+#define IS_CHAT_AREA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_CHAT_AREA))
 #define CHAT_AREA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_CHAT_AREA, ChatAreaClass))
 
 GType chat_area_get_type () G_GNUC_CONST;



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