[ekiga] Modernized the GmWindow's object code



commit 9d7f54740d9f871670c87e5a8bce1230d3638a8f
Author: Snark <jpuydt gnome org>
Date:   Tue Nov 9 11:17:04 2010 +0100

    Modernized the GmWindow's object code

 lib/engine/gui/gtk-frontend/addressbook-window.cpp |    2 +-
 lib/engine/gui/gtk-frontend/chat-window.cpp        |    2 +-
 lib/gui/gmwindow.c                                 |  115 +++++---------------
 lib/gui/gmwindow.h                                 |   34 +++---
 src/gui/main_window.cpp                            |    2 +-
 5 files changed, 50 insertions(+), 105 deletions(-)
---
diff --git a/lib/engine/gui/gtk-frontend/addressbook-window.cpp b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
index 7d5014f..3a656e9 100644
--- a/lib/engine/gui/gtk-frontend/addressbook-window.cpp
+++ b/lib/engine/gui/gtk-frontend/addressbook-window.cpp
@@ -636,7 +636,7 @@ addressbook_window_get_type ()
       NULL
     };
 
-    result = g_type_register_static (GM_WINDOW_TYPE,
+    result = g_type_register_static (GM_TYPE_WINDOW,
                                      "AddressBookWindowType",
                                      &info, (GTypeFlags) 0);
   }
diff --git a/lib/engine/gui/gtk-frontend/chat-window.cpp b/lib/engine/gui/gtk-frontend/chat-window.cpp
index 324776c..4b9db18 100644
--- a/lib/engine/gui/gtk-frontend/chat-window.cpp
+++ b/lib/engine/gui/gtk-frontend/chat-window.cpp
@@ -452,7 +452,7 @@ chat_window_get_type ()
       NULL
     };
 
-    result = g_type_register_static (GM_WINDOW_TYPE,
+    result = g_type_register_static (GM_TYPE_WINDOW,
 				     "ChatWindow",
 				     &info, (GTypeFlags) 0);
   }
diff --git a/lib/gui/gmwindow.c b/lib/gui/gmwindow.c
index 78b4a56..bbf8f1e 100644
--- a/lib/gui/gmwindow.c
+++ b/lib/gui/gmwindow.c
@@ -61,7 +61,7 @@ struct _GmWindowPrivate
   GtkAccelGroup *accel;
   gboolean hide_on_esc;
   gboolean hide_on_delete;
-  const gchar *key;
+  gchar *key;
   int x;
   int y;
   int width;
@@ -74,7 +74,7 @@ enum {
   GM_HIDE_ON_DELETE = 3
 };
 
-static GObjectClass *parent_class = NULL;
+G_DEFINE_TYPE (GmWindow, gm_window, GTK_TYPE_WINDOW);
 
 static gboolean
 gm_window_delete_event (GtkWidget *w,
@@ -96,16 +96,6 @@ gm_window_configure_event (GtkWidget *widget,
 /* 
  * GObject stuff
  */
-static void
-gm_window_dispose (GObject *obj)
-{
-  GmWindow *window = NULL;
-
-  window = GM_WINDOW (obj);
-
-  parent_class->dispose (obj);
-}
-
 
 static void
 gm_window_finalize (GObject *obj)
@@ -114,9 +104,10 @@ gm_window_finalize (GObject *obj)
 
   window = GM_WINDOW (obj);
 
-  g_free ((gchar *) window->priv->key);
+  g_free (window->priv->key);
+  window->priv->key = NULL;
 
-  parent_class->finalize (obj);
+  G_OBJECT_CLASS (gm_window_parent_class)->finalize (obj);
 }
 
 
@@ -129,7 +120,7 @@ gm_window_get_property (GObject *obj,
   GmWindow *self = NULL;
 
   self = GM_WINDOW (obj);
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_WINDOW_TYPE, GmWindowPrivate);
+  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_TYPE_WINDOW, GmWindowPrivate);
 
   switch (prop_id) {
 
@@ -162,12 +153,13 @@ gm_window_set_property (GObject *obj,
   const gchar *str = NULL;
 
   self = GM_WINDOW (obj);
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_WINDOW_TYPE, GmWindowPrivate);
+  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_TYPE_WINDOW, GmWindowPrivate);
 
   switch (prop_id) {
 
   case GM_WINDOW_KEY:
-    g_free ((gchar *) self->priv->key);
+    if (self->priv->key)
+      g_free (self->priv->key);
     str = g_value_get_string (value);
     self->priv->key = g_strdup (str ? str : "");
     break;
@@ -193,17 +185,13 @@ gm_window_set_property (GObject *obj,
 
 
 static void
-gm_window_class_init (gpointer g_class,
-                      G_GNUC_UNUSED gpointer class_data)
+gm_window_class_init (GmWindowClass* 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);
-  g_type_class_add_private (g_class, sizeof (GmWindowPrivate));
+  g_type_class_add_private (klass, sizeof (GmWindowPrivate));
 
-  gobject_class = (GObjectClass *) g_class;
-  gobject_class->dispose = gm_window_dispose;
   gobject_class->finalize = gm_window_finalize;
   gobject_class->get_property = gm_window_get_property;
   gobject_class->set_property = gm_window_set_property;
@@ -223,15 +211,9 @@ gm_window_class_init (gpointer g_class,
 
 
 static void
-gm_window_init (GTypeInstance *instance,
-                gpointer g_class)
+gm_window_init (GmWindow* self)
 {
-  GmWindow *self = NULL;
-
-  (void) g_class; /* -Wextra */
-
-  self = GM_WINDOW (instance);
-  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_WINDOW_TYPE, GmWindowPrivate);
+  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GM_TYPE_WINDOW, GmWindowPrivate);
   self->priv->key = g_strdup ("");
   self->priv->hide_on_esc = TRUE;
   self->priv->hide_on_delete = TRUE;
@@ -254,36 +236,6 @@ gm_window_init (GTypeInstance *instance,
                     G_CALLBACK (gm_window_configure_event), self);
 }
 
-
-GType
-gm_window_get_type ()
-{
-  static GType result = 0;
-
-  if (result == 0) {
-
-    static const GTypeInfo info = {
-      sizeof (GmWindowClass),
-      NULL,
-      NULL,
-      gm_window_class_init,
-      NULL,
-      NULL,
-      sizeof (GmWindow),
-      0,
-      gm_window_init,
-      NULL
-    };
-
-    result = g_type_register_static (GTK_TYPE_WINDOW,
-				     "GmWindowType",
-				     &info, (GTypeFlags) 0);
-  }
-
-  return result;
-}
-
-
 /* 
  * Our own stuff
  */
@@ -313,7 +265,6 @@ gm_window_delete_event (GtkWidget *w,
   }
 }
 
-
 static void
 window_show_cb (GtkWidget *w,
                 G_GNUC_UNUSED gpointer data)
@@ -328,8 +279,6 @@ window_show_cb (GtkWidget *w,
   gchar *size = NULL;
   gchar *position = NULL;
   gchar **couple = NULL;
-
-  g_return_if_fail (w != NULL);
   
   self = GM_WINDOW (w);
 
@@ -439,21 +388,16 @@ gm_window_configure_event (GtkWidget *self,
 GtkWidget *
 gm_window_new ()
 {
-  return GTK_WIDGET (g_object_new (GM_WINDOW_TYPE, NULL));
+  return GTK_WIDGET (g_object_new (GM_TYPE_WINDOW, NULL));
 }
 
 
 GtkWidget *
 gm_window_new_with_key (const char *key)
 {
-  GtkWidget *window = NULL;
-
   g_return_val_if_fail (key != NULL, NULL);
 
-  window = gm_window_new ();
-  gm_window_set_key (GM_WINDOW (window), key);
-
-  return window;
+  return GTK_WIDGET (g_object_new (GM_TYPE_WINDOW, "key", key, NULL));
 }
 
 
@@ -461,10 +405,10 @@ void
 gm_window_set_key (GmWindow *window,
                    const char *key)
 {
-  g_return_if_fail (window != NULL);
+  g_return_if_fail (GM_IS_WINDOW (window));
   g_return_if_fail (key != NULL);
 
-  g_object_set (GM_WINDOW (window), "key", key, NULL);
+  g_object_set (window, "key", key, NULL);
 }
 
 
@@ -477,7 +421,7 @@ gm_window_get_size (GmWindow *self,
   gchar *size = NULL;
   gchar **couple = NULL;
 
-  g_return_if_fail (self != NULL);
+  g_return_if_fail (GM_IS_WINDOW (self) && x != NULL && y != NULL);
 
   conf_key_size = g_strdup_printf ("%s/size", self->priv->key);
   size = gm_conf_get_string (conf_key_size);
@@ -498,26 +442,25 @@ void
 gm_window_set_hide_on_delete (GmWindow *window,
 			      gboolean hide_on_delete)
 {
-  g_return_if_fail (window != NULL);
-  g_return_if_fail (IS_GM_WINDOW (window));
+  g_return_if_fail (GM_IS_WINDOW (window));
 
-  g_object_set (GM_WINDOW (window), "hide_on_delete", hide_on_delete, NULL);
+  g_object_set (window, "hide_on_delete", hide_on_delete, NULL);
 }
 
 gboolean
 gm_window_get_hide_on_delete (GmWindow *window)
 {
-  g_return_val_if_fail (window != NULL, FALSE);
-  g_return_val_if_fail (IS_GM_WINDOW (window), FALSE);
+  g_return_val_if_fail (GM_IS_WINDOW (window), FALSE);
 
   return window->priv->hide_on_delete;
 }
 
 // helper copied from gdk
-static void gdk_wmspec_change_state (gboolean add,
-				     GdkWindow *window,
-				     GdkAtom state1,
-				     GdkAtom state2);
+static void
+gdk_wmspec_change_state (gboolean add,
+			 GdkWindow *window,
+			 GdkAtom state1,
+			 GdkAtom state2);
 
 void
 gm_window_set_always_on_top (GdkWindow *window,
@@ -624,7 +567,7 @@ gm_window_hide (GtkWidget* w)
   gchar* size = NULL;
   gchar* position = NULL;
 
-  g_return_if_fail (w != NULL);
+  g_return_if_fail (GTK_IS_WINDOW (w));
 
   window_name = (char *) g_object_get_data (G_OBJECT (w), "window_name");
 
@@ -662,7 +605,7 @@ gm_window_hide (GtkWidget* w)
 void
 gm_window_hide_on_delete (GtkWidget* window)
 {
-  g_return_if_fail (GTK_IS_OBJECT (window));
+  g_return_if_fail (GTK_IS_WIDGET (window));
 
   g_signal_connect (window, "delete-event",
 		    G_CALLBACK (delete_event_cb), NULL);
diff --git a/lib/gui/gmwindow.h b/lib/gui/gmwindow.h
index e0702bc..e441f0b 100644
--- a/lib/gui/gmwindow.h
+++ b/lib/gui/gmwindow.h
@@ -61,22 +61,6 @@ struct _GmWindowClass
   GtkWindowClass parent;
 };
 
-#define GM_WINDOW_TYPE (gm_window_get_type ())
-
-#define GM_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GM_WINDOW_TYPE, GmWindow))
-
-#define IS_GM_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GM_WINDOW_TYPE))
-
-#define GM_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GM_WINDOW_TYPE, GmWindowClass))
-
-#define IS_GM_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_WINDOW_TYPE))
-
-#define GM_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GM_WINDOW_TYPE, GmWindowClass))
-
-GType gm_window_get_type ();
-
-
-
 /* Public API */
 
 /** Create a new GmWindow.
@@ -153,6 +137,24 @@ void gm_window_hide (GtkWidget* window);
  */
 void gm_window_hide_on_delete (GtkWidget* window);
 
+/* GObject boilerplate */
+
+#define GM_TYPE_WINDOW (gm_window_get_type ())
+
+#define GM_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GM_TYPE_WINDOW, GmWindow))
+
+#define GM_IS_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GM_TYPE_WINDOW))
+
+#define GM_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GM_TYPE_WINDOW, GmWindowClass))
+
+#define GM_IS_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GM_TYPE_WINDOW))
+
+#define GM_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GM_TYPE_WINDOW, GmWindowClass))
+
+GType gm_window_get_type ();
+
+
+
 G_END_DECLS
 
 #endif
diff --git a/src/gui/main_window.cpp b/src/gui/main_window.cpp
index f99dfff..50746af 100644
--- a/src/gui/main_window.cpp
+++ b/src/gui/main_window.cpp
@@ -118,7 +118,7 @@ struct deviceStruct {
   DeviceType deviceType;
 };
 
-G_DEFINE_TYPE (EkigaMainWindow, ekiga_main_window, GM_WINDOW_TYPE);
+G_DEFINE_TYPE (EkigaMainWindow, ekiga_main_window, GM_TYPE_WINDOW);
 
 struct _EkigaMainWindowPrivate
 {



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