[gtk+/refactor: 62/106] GtkIMMulticontext: move public members to private structure



commit a0d483ba129db8c86cbbd3493c043a496a2a53b4
Author: Javier Jardón <jjardon gnome org>
Date:   Thu Jun 24 01:20:47 2010 +0200

    GtkIMMulticontext: move public members to private structure

 gtk/gtkimmulticontext.c |  148 +++++++++++++++++++++++++++-------------------
 gtk/gtkimmulticontext.h |    7 +--
 2 files changed, 89 insertions(+), 66 deletions(-)
---
diff --git a/gtk/gtkimmulticontext.c b/gtk/gtkimmulticontext.c
index 3da16f3..854daa1 100644
--- a/gtk/gtkimmulticontext.c
+++ b/gtk/gtkimmulticontext.c
@@ -33,13 +33,17 @@
 
 struct _GtkIMMulticontextPrivate
 {
-  GdkWindow *client_window;
-  GdkRectangle cursor_location;
-  gchar *context_id;
+  GtkIMContext          *slave;
 
-  guint use_preedit : 1;
-  guint have_cursor_location : 1;
-  guint focus_in : 1;
+  GdkWindow             *client_window;
+  GdkRectangle           cursor_location;
+
+  gchar                 *context_id;
+  gchar                 *context_id_aux;
+
+  guint                  use_preedit          : 1;
+  guint                  have_cursor_location : 1;
+  guint                  focus_in             : 1;
 };
 
 static void     gtk_im_multicontext_finalize           (GObject                 *object);
@@ -116,12 +120,15 @@ gtk_im_multicontext_class_init (GtkIMMulticontextClass *class)
 static void
 gtk_im_multicontext_init (GtkIMMulticontext *multicontext)
 {
-  multicontext->slave = NULL;
+  GtkIMMulticontextPrivate *priv;
   
   multicontext->priv = G_TYPE_INSTANCE_GET_PRIVATE (multicontext, GTK_TYPE_IM_MULTICONTEXT, GtkIMMulticontextPrivate);
-  multicontext->priv->use_preedit = TRUE;
-  multicontext->priv->have_cursor_location = FALSE;
-  multicontext->priv->focus_in = FALSE;
+  priv = multicontext->priv;
+
+  priv->slave = NULL;
+  priv->use_preedit = TRUE;
+  priv->have_cursor_location = FALSE;
+  priv->focus_in = FALSE;
 }
 
 /**
@@ -141,10 +148,11 @@ static void
 gtk_im_multicontext_finalize (GObject *object)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (object);
-  
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
+
   gtk_im_multicontext_set_slave (multicontext, NULL, TRUE);
-  g_free (multicontext->context_id);
-  g_free (multicontext->priv->context_id);
+  g_free (priv->context_id);
+  g_free (priv->context_id_aux);
 
   G_OBJECT_CLASS (gtk_im_multicontext_parent_class)->finalize (object);
 }
@@ -157,53 +165,53 @@ gtk_im_multicontext_set_slave (GtkIMMulticontext *multicontext,
   GtkIMMulticontextPrivate *priv = multicontext->priv;
   gboolean need_preedit_changed = FALSE;
   
-  if (multicontext->slave)
+  if (priv->slave)
     {
       if (!finalizing)
-	gtk_im_context_reset (multicontext->slave);
+	gtk_im_context_reset (priv->slave);
       
-      g_signal_handlers_disconnect_by_func (multicontext->slave,
+      g_signal_handlers_disconnect_by_func (priv->slave,
 					    gtk_im_multicontext_preedit_start_cb,
 					    multicontext);
-      g_signal_handlers_disconnect_by_func (multicontext->slave,
+      g_signal_handlers_disconnect_by_func (priv->slave,
 					    gtk_im_multicontext_preedit_end_cb,
 					    multicontext);
-      g_signal_handlers_disconnect_by_func (multicontext->slave,
+      g_signal_handlers_disconnect_by_func (priv->slave,
 					    gtk_im_multicontext_preedit_changed_cb,
 					    multicontext);
-      g_signal_handlers_disconnect_by_func (multicontext->slave,
+      g_signal_handlers_disconnect_by_func (priv->slave,
 					    gtk_im_multicontext_commit_cb,
 					    multicontext);
 
-      g_object_unref (multicontext->slave);
-      multicontext->slave = NULL;
+      g_object_unref (priv->slave);
+      priv->slave = NULL;
 
       if (!finalizing)
 	need_preedit_changed = TRUE;
     }
   
-  multicontext->slave = slave;
+  priv->slave = slave;
 
-  if (multicontext->slave)
+  if (priv->slave)
     {
-      g_object_ref (multicontext->slave);
+      g_object_ref (priv->slave);
 
-      g_signal_connect (multicontext->slave, "preedit-start",
+      g_signal_connect (priv->slave, "preedit-start",
 			G_CALLBACK (gtk_im_multicontext_preedit_start_cb),
 			multicontext);
-      g_signal_connect (multicontext->slave, "preedit-end",
+      g_signal_connect (priv->slave, "preedit-end",
 			G_CALLBACK (gtk_im_multicontext_preedit_end_cb),
 			multicontext);
-      g_signal_connect (multicontext->slave, "preedit-changed",
+      g_signal_connect (priv->slave, "preedit-changed",
 			G_CALLBACK (gtk_im_multicontext_preedit_changed_cb),
 			multicontext);
-      g_signal_connect (multicontext->slave, "commit",
+      g_signal_connect (priv->slave, "commit",
 			G_CALLBACK (gtk_im_multicontext_commit_cb),
 			multicontext);
-      g_signal_connect (multicontext->slave, "retrieve-surrounding",
+      g_signal_connect (priv->slave, "retrieve-surrounding",
 			G_CALLBACK (gtk_im_multicontext_retrieve_surrounding_cb),
 			multicontext);
-      g_signal_connect (multicontext->slave, "delete-surrounding",
+      g_signal_connect (priv->slave, "delete-surrounding",
 			G_CALLBACK (gtk_im_multicontext_delete_surrounding_cb),
 			multicontext);
       
@@ -224,11 +232,13 @@ gtk_im_multicontext_set_slave (GtkIMMulticontext *multicontext,
 static const gchar *
 get_effective_context_id (GtkIMMulticontext *multicontext)
 {
-  if (multicontext->priv->context_id)
-    return multicontext->priv->context_id;
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
+
+  if (priv->context_id_aux)
+    return priv->context_id_aux;
 
   if (!global_context_id)
-    global_context_id = _gtk_im_module_get_default_context_id (multicontext->priv->client_window);
+    global_context_id = _gtk_im_module_get_default_context_id (priv->client_window);
 
   return global_context_id;
 }
@@ -236,23 +246,25 @@ get_effective_context_id (GtkIMMulticontext *multicontext)
 static GtkIMContext *
 gtk_im_multicontext_get_slave (GtkIMMulticontext *multicontext)
 {
-  if (!multicontext->slave)
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
+
+  if (!priv->slave)
     {
       GtkIMContext *slave;
 
-      g_free (multicontext->context_id);
+      g_free (priv->context_id);
 
-      multicontext->context_id = g_strdup (get_effective_context_id (multicontext));
+      priv->context_id = g_strdup (get_effective_context_id (multicontext));
 
-      if (g_strcmp0 (multicontext->context_id, NONE_ID) == 0)
+      if (g_strcmp0 (priv->context_id, NONE_ID) == 0)
         return NULL;
 
-      slave = _gtk_im_module_create (multicontext->context_id);
+      slave = _gtk_im_module_create (priv->context_id);
       gtk_im_multicontext_set_slave (multicontext, slave, FALSE);
       g_object_unref (slave);
     }
 
-  return multicontext->slave;
+  return priv->slave;
 }
 
 static void
@@ -268,11 +280,12 @@ gtk_im_multicontext_set_client_window (GtkIMContext *context,
 				       GdkWindow    *window)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
   GdkScreen *screen; 
   GtkSettings *settings;
   gboolean connected;
 
-  multicontext->priv->client_window = window;
+  priv->client_window = window;
 
   if (window)
     {
@@ -292,11 +305,11 @@ gtk_im_multicontext_set_client_window (GtkIMContext *context,
         }
     }
 
-  if (g_strcmp0 (multicontext->context_id, get_effective_context_id (multicontext)) != 0)
+  if (g_strcmp0 (priv->context_id, get_effective_context_id (multicontext)) != 0)
     gtk_im_multicontext_set_slave (multicontext, NULL, FALSE);
 
-  if (multicontext->slave)
-    gtk_im_context_set_client_window (multicontext->slave, window);
+  if (priv->slave)
+    gtk_im_context_set_client_window (priv->slave, window);
 }
 
 static void
@@ -355,15 +368,16 @@ static void
 gtk_im_multicontext_focus_in (GtkIMContext   *context)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
   GtkIMContext *slave;
 
-  if (g_strcmp0 (multicontext->context_id, get_effective_context_id (multicontext)) != 0)
+  if (g_strcmp0 (priv->context_id, get_effective_context_id (multicontext)) != 0)
     gtk_im_multicontext_set_slave (multicontext, NULL, FALSE);
 
   slave = gtk_im_multicontext_get_slave (multicontext);
-  
-  multicontext->priv->focus_in = TRUE;
-  
+
+  priv->focus_in = TRUE;
+
   if (slave)
     gtk_im_context_focus_in (slave);
 }
@@ -372,10 +386,11 @@ static void
 gtk_im_multicontext_focus_out (GtkIMContext   *context)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
   GtkIMContext *slave = gtk_im_multicontext_get_slave (multicontext);
 
-  multicontext->priv->focus_in = FALSE;
-  
+  priv->focus_in = FALSE;
+
   if (slave)
     gtk_im_context_focus_out (slave);
 }
@@ -395,10 +410,11 @@ gtk_im_multicontext_set_cursor_location (GtkIMContext   *context,
 					 GdkRectangle   *area)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
   GtkIMContext *slave = gtk_im_multicontext_get_slave (multicontext);
 
-  multicontext->priv->have_cursor_location = TRUE;
-  multicontext->priv->cursor_location = *area;
+  priv->have_cursor_location = TRUE;
+  priv->cursor_location = *area;
 
   if (slave)
     gtk_im_context_set_cursor_location (slave, area);
@@ -409,11 +425,12 @@ gtk_im_multicontext_set_use_preedit (GtkIMContext   *context,
 				     gboolean	    use_preedit)
 {
   GtkIMMulticontext *multicontext = GTK_IM_MULTICONTEXT (context);
+  GtkIMMulticontextPrivate *priv = multicontext->priv;
   GtkIMContext *slave = gtk_im_multicontext_get_slave (multicontext);
 
   use_preedit = use_preedit != FALSE;
 
-  multicontext->priv->use_preedit = use_preedit;
+  priv->use_preedit = use_preedit;
 
   if (slave)
     gtk_im_context_set_use_preedit (slave, use_preedit);
@@ -552,15 +569,16 @@ void
 gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
 				      GtkMenuShell      *menushell)
 {
+  GtkIMMulticontextPrivate *priv = context->priv;
   const GtkIMContextInfo **contexts;
   guint n_contexts, i;
   GSList *group = NULL;
   GtkWidget *menuitem, *system_menuitem;
   const char *system_context_id; 
-  
-  system_context_id = _gtk_im_module_get_default_context_id (context->priv->client_window);
+
+  system_context_id = _gtk_im_module_get_default_context_id (priv->client_window);
   system_menuitem = menuitem = gtk_radio_menu_item_new_with_label (group, C_("input method menu", "System"));
-  if (!context->priv->context_id)
+  if (!priv->context_id_aux)
     gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE);
   group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem));
   g_object_set_data (G_OBJECT (menuitem), I_("gtk-context-id"), NULL);
@@ -570,7 +588,7 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
   gtk_menu_shell_append (menushell, menuitem);
 
   menuitem = gtk_radio_menu_item_new_with_label (group, C_("input method menu", "None"));
-  if (g_strcmp0 (context->priv->context_id, NONE_ID) == 0)
+  if (g_strcmp0 (priv->context_id_aux, NONE_ID) == 0)
     gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE);
   g_object_set_data (G_OBJECT (menuitem), I_("gtk-context-id"), NONE_ID);
   g_signal_connect (menuitem, "activate", G_CALLBACK (activate_cb), context);
@@ -642,8 +660,8 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
       menuitem = gtk_radio_menu_item_new_with_label (group,
 						     translated_name);
       
-      if ((context->priv->context_id &&
-           strcmp (contexts[i]->context_id, context->priv->context_id) == 0))
+      if ((priv->context_id_aux &&
+           strcmp (contexts[i]->context_id, priv->context_id_aux) == 0))
         gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE);
 
       if (strcmp (contexts[i]->context_id, system_context_id) == 0)
@@ -684,7 +702,9 @@ gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
 const char *
 gtk_im_multicontext_get_context_id (GtkIMMulticontext *context)
 {
-  return context->context_id;
+  g_return_val_if_fail (GTK_IS_IM_MULTICONTEXT (context), NULL);
+
+  return context->priv->context_id;
 }
 
 /**
@@ -703,8 +723,14 @@ void
 gtk_im_multicontext_set_context_id (GtkIMMulticontext *context,
                                     const char        *context_id)
 {
+  GtkIMMulticontextPrivate *priv;
+
+  g_return_if_fail (GTK_IS_IM_MULTICONTEXT (context));
+
+  priv = context->priv;
+
   gtk_im_context_reset (GTK_IM_CONTEXT (context));
-  g_free (context->priv->context_id);
-  context->priv->context_id = g_strdup (context_id);
+  g_free (priv->context_id_aux);
+  priv->context_id_aux = g_strdup (context_id);
   gtk_im_multicontext_set_slave (context, NULL, FALSE);
 }
diff --git a/gtk/gtkimmulticontext.h b/gtk/gtkimmulticontext.h
index 418a932..1ed6533 100644
--- a/gtk/gtkimmulticontext.h
+++ b/gtk/gtkimmulticontext.h
@@ -45,11 +45,8 @@ struct _GtkIMMulticontext
 {
   GtkIMContext object;
 
-  GtkIMContext *GSEAL (slave);
-
-  GtkIMMulticontextPrivate *GSEAL (priv);
-
-  gchar *GSEAL (context_id);
+  /* <private> */
+  GtkIMMulticontextPrivate *priv;
 };
 
 struct _GtkIMMulticontextClass



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