[gtk+/refactor: 61/106] GtkImageMenuItem: move public members to private structure



commit c9b7066e145ec62a72cd8fe8bc5ef7af362da929
Author: Javier Jardón <jjardon gnome org>
Date:   Thu Jun 24 00:53:00 2010 +0200

    GtkImageMenuItem: move public members to private structure

 gtk/gtkimcontextsimple.c |  237 ++++++++++++++++++++++++++--------------------
 gtk/gtkimcontextsimple.h |   11 +--
 2 files changed, 136 insertions(+), 112 deletions(-)
---
diff --git a/gtk/gtkimcontextsimple.c b/gtk/gtkimcontextsimple.c
index f45efcc..7a17340 100644
--- a/gtk/gtkimcontextsimple.c
+++ b/gtk/gtkimcontextsimple.c
@@ -33,6 +33,18 @@
 typedef struct _GtkComposeTable GtkComposeTable;
 typedef struct _GtkComposeTableCompact GtkComposeTableCompact;
 
+struct _GtkIMContextSimplePriv
+{
+  GSList        *tables;
+
+  guint          compose_buffer[GTK_MAX_COMPOSE_LEN + 1];
+  gunichar       tentative_match;
+  gint           tentative_match_len;
+
+  guint          in_hex_sequence : 1;
+  guint          modifiers_dropped : 1;
+};
+
 struct _GtkComposeTable 
 {
   const guint16 *data;
@@ -106,24 +118,30 @@ gtk_im_context_simple_class_init (GtkIMContextSimpleClass *class)
   im_context_class->reset = gtk_im_context_simple_reset;
   im_context_class->get_preedit_string = gtk_im_context_simple_get_preedit_string;
   gobject_class->finalize = gtk_im_context_simple_finalize;
+
+  g_type_class_add_private (class, sizeof (GtkIMContextSimplePriv));
 }
 
 static void
 gtk_im_context_simple_init (GtkIMContextSimple *im_context_simple)
-{  
+{
+  im_context_simple->priv = G_TYPE_INSTANCE_GET_PRIVATE (im_context_simple,
+                                                         GTK_TYPE_IM_CONTEXT_SIMPLE,
+                                                         GtkIMContextSimplePriv);
 }
 
 static void
 gtk_im_context_simple_finalize (GObject *obj)
 {
   GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (obj);
+  GtkIMContextSimplePriv *priv = context_simple->priv;
 
-  if (context_simple->tables)
+  if (priv->tables)
     {
-      g_slist_foreach (context_simple->tables, (GFunc)g_free, NULL);
-      g_slist_free (context_simple->tables);
+      g_slist_foreach (priv->tables, (GFunc)g_free, NULL);
+      g_slist_free (priv->tables);
 
-      context_simple->tables = NULL;
+      priv->tables = NULL;
     }
 
   G_OBJECT_CLASS (gtk_im_context_simple_parent_class)->finalize (obj);
@@ -146,21 +164,21 @@ static void
 gtk_im_context_simple_commit_char (GtkIMContext *context,
 				   gunichar ch)
 {
+  GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   gchar buf[10];
   gint len;
 
-  GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
-
   g_return_if_fail (g_unichar_validate (ch));
-  
+
   len = g_unichar_to_utf8 (ch, buf);
   buf[len] = '\0';
 
-  if (context_simple->tentative_match || context_simple->in_hex_sequence)
+  if (priv->tentative_match || priv->in_hex_sequence)
     {
-      context_simple->in_hex_sequence = FALSE;  
-      context_simple->tentative_match = 0;
-      context_simple->tentative_match_len = 0;
+      priv->in_hex_sequence = FALSE;
+      priv->tentative_match = 0;
+      priv->tentative_match_len = 0;
       g_signal_emit_by_name (context_simple, "preedit-changed");
       g_signal_emit_by_name (context_simple, "preedit-end");
     }
@@ -207,6 +225,7 @@ check_table (GtkIMContextSimple    *context_simple,
 	     const GtkComposeTable *table,
 	     gint                   n_compose)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   gint row_stride = table->max_seq_len + 2; 
   guint16 *seq; 
   
@@ -216,7 +235,7 @@ check_table (GtkIMContextSimple    *context_simple,
   if (n_compose > table->max_seq_len)
     return FALSE;
   
-  seq = bsearch (context_simple->compose_buffer,
+  seq = bsearch (priv->compose_buffer,
 		 table->data, table->n_seqs,
 		 sizeof (guint16) *  row_stride, 
 		 compare_seq);
@@ -231,7 +250,7 @@ check_table (GtkIMContextSimple    *context_simple,
       while (seq > table->data)
 	{
 	  prev_seq = seq - row_stride;
-	  if (compare_seq (context_simple->compose_buffer, prev_seq) != 0)
+	  if (compare_seq (priv->compose_buffer, prev_seq) != 0)
 	    break;
 	  seq = prev_seq;
 	}
@@ -250,10 +269,10 @@ check_table (GtkIMContextSimple    *context_simple,
 	  next_seq = seq + row_stride;
 	  if (next_seq < table->data + row_stride * table->n_seqs)
 	    {
-	      if (compare_seq (context_simple->compose_buffer, next_seq) == 0)
+	      if (compare_seq (priv->compose_buffer, next_seq) == 0)
 		{
-		  context_simple->tentative_match = value;
-		  context_simple->tentative_match_len = n_compose;
+		  priv->tentative_match = value;
+		  priv->tentative_match_len = n_compose;
 		
 		  g_signal_emit_by_name (context_simple, "preedit-changed");
 
@@ -262,7 +281,7 @@ check_table (GtkIMContextSimple    *context_simple,
 	    }
 
 	  gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
-	  context_simple->compose_buffer[0] = 0;
+	  priv->compose_buffer[0] = 0;
 	}
       
       return TRUE;
@@ -294,12 +313,13 @@ static gboolean
 check_win32_special_cases (GtkIMContextSimple    *context_simple,
 			   gint                   n_compose)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   if (n_compose == 2 &&
-      context_simple->compose_buffer[1] == GDK_space)
+      priv->compose_buffer[1] == GDK_space)
     {
       gunichar value = 0;
 
-      switch (context_simple->compose_buffer[0])
+      switch (priv->compose_buffer[0])
 	{
 	case GDK_dead_acute:
 	  value = 0x00B4; break;
@@ -309,7 +329,7 @@ check_win32_special_cases (GtkIMContextSimple    *context_simple,
       if (value > 0)
 	{
 	  gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
-	  context_simple->compose_buffer[0] = 0;
+	  priv->compose_buffer[0] = 0;
 
 	  GTK_NOTE (MISC, g_print ("win32: U+%04X\n", value));
 	  return TRUE;
@@ -323,12 +343,14 @@ check_win32_special_case_after_compact_match (GtkIMContextSimple    *context_sim
 					      gint                   n_compose,
 					      guint                  value)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
+
   /* On Windows user expectation is that typing two dead accents will input
    * two corresponding spacing accents.
    */
   if (n_compose == 2 &&
-      context_simple->compose_buffer[0] == context_simple->compose_buffer[1] &&
-      IS_DEAD_KEY (context_simple->compose_buffer[0]))
+      priv->compose_buffer[0] == priv->compose_buffer[1] &&
+      IS_DEAD_KEY (priv->compose_buffer[0]))
     {
       gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
       GTK_NOTE (MISC, g_print ("win32: U+%04X ", value));
@@ -342,6 +364,7 @@ check_compact_table (GtkIMContextSimple    *context_simple,
 	     const GtkComposeTableCompact *table,
 	     gint                   n_compose)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   gint row_stride;
   guint16 *seq_index;
   guint16 *seq; 
@@ -352,8 +375,8 @@ check_compact_table (GtkIMContextSimple    *context_simple,
    * will overrun val if key is longer than val. */
   if (n_compose > table->max_seq_len)
     return FALSE;
-  
-  seq_index = bsearch (context_simple->compose_buffer,
+
+  seq_index = bsearch (priv->compose_buffer,
 		 table->data, table->n_index_size,
 		 sizeof (guint16) *  table->n_index_stride, 
 		 compare_seq_index);
@@ -379,7 +402,7 @@ check_compact_table (GtkIMContextSimple    *context_simple,
 
       if (seq_index[i+1] - seq_index[i] > 0)
         {
-	  seq = bsearch (context_simple->compose_buffer + 1,
+	  seq = bsearch (priv->compose_buffer + 1,
 		 table->data + seq_index[i], (seq_index[i+1] - seq_index[i]) / row_stride,
 		 sizeof (guint16) *  row_stride, 
 		 compare_seq);
@@ -414,7 +437,7 @@ check_compact_table (GtkIMContextSimple    *context_simple,
 #ifdef G_OS_WIN32
       check_win32_special_case_after_compact_match (context_simple, n_compose, value);
 #endif
-      context_simple->compose_buffer[0] = 0;
+      priv->compose_buffer[0] = 0;
 
       GTK_NOTE (MISC, g_print ("U+%04X\n", value));
       return TRUE;
@@ -496,6 +519,7 @@ check_algorithmically (GtkIMContextSimple    *context_simple,
 		       gint                   n_compose)
 
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   gint i;
   gunichar combination_buffer[GTK_MAX_COMPOSE_LEN];
   gchar *combination_utf8, *nfc;
@@ -503,19 +527,19 @@ check_algorithmically (GtkIMContextSimple    *context_simple,
   if (n_compose >= GTK_MAX_COMPOSE_LEN)
     return FALSE;
 
-  for (i = 0; i < n_compose && IS_DEAD_KEY (context_simple->compose_buffer[i]); i++)
+  for (i = 0; i < n_compose && IS_DEAD_KEY (priv->compose_buffer[i]); i++)
     ;
   if (i == n_compose)
     return TRUE;
 
   if (i > 0 && i == n_compose - 1)
     {
-      combination_buffer[0] = gdk_keyval_to_unicode (context_simple->compose_buffer[i]);
+      combination_buffer[0] = gdk_keyval_to_unicode (priv->compose_buffer[i]);
       combination_buffer[n_compose] = 0;
       i--;
       while (i >= 0)
 	{
-	  switch (context_simple->compose_buffer[i])
+	  switch (priv->compose_buffer[i])
 	    {
 #define CASE(keysym, unicode) \
 	    case GDK_dead_##keysym: combination_buffer[i+1] = unicode; break
@@ -552,7 +576,7 @@ check_algorithmically (GtkIMContextSimple    *context_simple,
 	    /* CASE (psili, 0x343); */
 #undef CASE
 	    default:
-	      combination_buffer[i+1] = gdk_keyval_to_unicode (context_simple->compose_buffer[i]);
+	      combination_buffer[i+1] = gdk_keyval_to_unicode (priv->compose_buffer[i]);
 	    }
 	  i--;
 	}
@@ -569,7 +593,7 @@ check_algorithmically (GtkIMContextSimple    *context_simple,
 
           value = g_utf8_get_char (nfc);
           gtk_im_context_simple_commit_char (GTK_IM_CONTEXT (context_simple), value);
-          context_simple->compose_buffer[0] = 0;
+          priv->compose_buffer[0] = 0;
 
           g_free (combination_utf8);
           g_free (nfc);
@@ -602,6 +626,7 @@ static gboolean
 check_hex (GtkIMContextSimple *context_simple,
            gint                n_compose)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   /* See if this is a hex sequence, return TRUE if so */
   gint i;
   GString *str;
@@ -609,8 +634,8 @@ check_hex (GtkIMContextSimple *context_simple,
   gchar *nptr = NULL;
   gchar buf[7];
 
-  context_simple->tentative_match = 0;
-  context_simple->tentative_match_len = 0;
+  priv->tentative_match = 0;
+  priv->tentative_match_len = 0;
 
   str = g_string_new (NULL);
   
@@ -619,7 +644,7 @@ check_hex (GtkIMContextSimple *context_simple,
     {
       gunichar ch;
       
-      ch = gdk_keyval_to_unicode (context_simple->compose_buffer[i]);
+      ch = gdk_keyval_to_unicode (priv->compose_buffer[i]);
       
       if (ch == 0)
         return FALSE;
@@ -649,8 +674,8 @@ check_hex (GtkIMContextSimple *context_simple,
 
   if (g_unichar_validate (n))
     {
-      context_simple->tentative_match = n;
-      context_simple->tentative_match_len = n_compose;
+      priv->tentative_match = n;
+      priv->tentative_match_len = n_compose;
     }
   
   return TRUE;
@@ -686,6 +711,7 @@ no_sequence_matches (GtkIMContextSimple *context_simple,
                      gint                n_compose,
                      GdkEventKey        *event)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   GtkIMContext *context;
   gunichar ch;
   
@@ -694,18 +720,18 @@ no_sequence_matches (GtkIMContextSimple *context_simple,
   /* No compose sequences found, check first if we have a partial
    * match pending.
    */
-  if (context_simple->tentative_match)
+  if (priv->tentative_match)
     {
-      gint len = context_simple->tentative_match_len;
+      gint len = priv->tentative_match_len;
       int i;
       
-      gtk_im_context_simple_commit_char (context, context_simple->tentative_match);
-      context_simple->compose_buffer[0] = 0;
+      gtk_im_context_simple_commit_char (context, priv->tentative_match);
+      priv->compose_buffer[0] = 0;
       
       for (i=0; i < n_compose - len - 1; i++)
 	{
 	  GdkEvent *tmp_event = gdk_event_copy ((GdkEvent *)event);
-	  tmp_event->key.keyval = context_simple->compose_buffer[len + i];
+	  tmp_event->key.keyval = priv->compose_buffer[len + i];
 	  
 	  gtk_im_context_filter_keypress (context, (GdkEventKey *)tmp_event);
 	  gdk_event_free (tmp_event);
@@ -715,7 +741,7 @@ no_sequence_matches (GtkIMContextSimple *context_simple,
     }
   else
     {
-      context_simple->compose_buffer[0] = 0;
+      priv->compose_buffer[0] = 0;
       if (n_compose > 1)		/* Invalid sequence */
 	{
 	  beep_window (event->window);
@@ -790,6 +816,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 				       GdkEventKey  *event)
 {
   GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   GSList *tmp_list;  
   int n_compose = 0;
   gboolean have_hex_mods;
@@ -800,34 +827,34 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
   guint hex_keyval;
   int i;
 
-  while (context_simple->compose_buffer[n_compose] != 0)
+  while (priv->compose_buffer[n_compose] != 0)
     n_compose++;
 
   if (event->type == GDK_KEY_RELEASE)
     {
-      if (context_simple->in_hex_sequence &&
+      if (priv->in_hex_sequence &&
 	  (event->keyval == GDK_Control_L || event->keyval == GDK_Control_R ||
 	   event->keyval == GDK_Shift_L || event->keyval == GDK_Shift_R))
 	{
-	  if (context_simple->tentative_match &&
-	      g_unichar_validate (context_simple->tentative_match))
+	  if (priv->tentative_match &&
+	      g_unichar_validate (priv->tentative_match))
 	    {
-	      gtk_im_context_simple_commit_char (context, context_simple->tentative_match);
-	      context_simple->compose_buffer[0] = 0;
+	      gtk_im_context_simple_commit_char (context, priv->tentative_match);
+	      priv->compose_buffer[0] = 0;
 
 	    }
 	  else if (n_compose == 0)
 	    {
-	      context_simple->modifiers_dropped = TRUE;
+	      priv->modifiers_dropped = TRUE;
 	    }
 	  else
 	    {
 	      /* invalid hex sequence */
 	      beep_window (event->window);
 	      
-	      context_simple->tentative_match = 0;
-	      context_simple->in_hex_sequence = FALSE;
-	      context_simple->compose_buffer[0] = 0;
+	      priv->tentative_match = 0;
+	      priv->in_hex_sequence = FALSE;
+	      priv->compose_buffer[0] = 0;
 	      
 	      g_signal_emit_by_name (context_simple, "preedit-changed");
 	      g_signal_emit_by_name (context_simple, "preedit-end");
@@ -844,7 +871,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
     if (event->keyval == gtk_compose_ignore[i])
       return FALSE;
 
-  if (context_simple->in_hex_sequence && context_simple->modifiers_dropped)
+  if (priv->in_hex_sequence && priv->modifiers_dropped)
     have_hex_mods = TRUE;
   else
     have_hex_mods = (event->state & (HEX_MOD_MASK)) == HEX_MOD_MASK;
@@ -866,13 +893,13 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
    * ISO_Level3_Switch.
    */
   if (!have_hex_mods ||
-      (n_compose > 0 && !context_simple->in_hex_sequence) || 
-      (n_compose == 0 && !context_simple->in_hex_sequence && !is_hex_start) ||
-      (context_simple->in_hex_sequence && !hex_keyval && 
+      (n_compose > 0 && !priv->in_hex_sequence) ||
+      (n_compose == 0 && !priv->in_hex_sequence && !is_hex_start) ||
+      (priv->in_hex_sequence && !hex_keyval &&
        !is_hex_start && !is_hex_end && !is_escape && !is_backspace))
     {
       if (event->state & (GDK_MOD1_MASK | GDK_CONTROL_MASK) ||
-	  (context_simple->in_hex_sequence && context_simple->modifiers_dropped &&
+	  (priv->in_hex_sequence && priv->modifiers_dropped &&
 	   (event->keyval == GDK_Return || 
 	    event->keyval == GDK_ISO_Enter ||
 	    event->keyval == GDK_KP_Enter)))
@@ -882,35 +909,35 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
     }
   
   /* Handle backspace */
-  if (context_simple->in_hex_sequence && have_hex_mods && is_backspace)
+  if (priv->in_hex_sequence && have_hex_mods && is_backspace)
     {
       if (n_compose > 0)
 	{
 	  n_compose--;
-	  context_simple->compose_buffer[n_compose] = 0;
+	  priv->compose_buffer[n_compose] = 0;
           check_hex (context_simple, n_compose);
 	}
       else
 	{
-	  context_simple->in_hex_sequence = FALSE;
+	  priv->in_hex_sequence = FALSE;
 	}
 
       g_signal_emit_by_name (context_simple, "preedit-changed");
 
-      if (!context_simple->in_hex_sequence)
+      if (!priv->in_hex_sequence)
         g_signal_emit_by_name (context_simple, "preedit-end");
       
       return TRUE;
     }
 
   /* Check for hex sequence restart */
-  if (context_simple->in_hex_sequence && have_hex_mods && is_hex_start)
+  if (priv->in_hex_sequence && have_hex_mods && is_hex_start)
     {
-      if (context_simple->tentative_match &&
-	  g_unichar_validate (context_simple->tentative_match))
+      if (priv->tentative_match &&
+	  g_unichar_validate (priv->tentative_match))
 	{
-	  gtk_im_context_simple_commit_char (context, context_simple->tentative_match);
-	  context_simple->compose_buffer[0] = 0;
+	  gtk_im_context_simple_commit_char (context, priv->tentative_match);
+	  priv->compose_buffer[0] = 0;
 	}
       else 
 	{
@@ -918,19 +945,19 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 	  if (n_compose > 0)
 	    beep_window (event->window);
 	  
-	  context_simple->tentative_match = 0;
-	  context_simple->in_hex_sequence = FALSE;
-	  context_simple->compose_buffer[0] = 0;
+	  priv->tentative_match = 0;
+	  priv->in_hex_sequence = FALSE;
+	  priv->compose_buffer[0] = 0;
 	}
     }
   
   /* Check for hex sequence start */
-  if (!context_simple->in_hex_sequence && have_hex_mods && is_hex_start)
+  if (!priv->in_hex_sequence && have_hex_mods && is_hex_start)
     {
-      context_simple->compose_buffer[0] = 0;
-      context_simple->in_hex_sequence = TRUE;
-      context_simple->modifiers_dropped = FALSE;
-      context_simple->tentative_match = 0;
+      priv->compose_buffer[0] = 0;
+      priv->in_hex_sequence = TRUE;
+      priv->modifiers_dropped = FALSE;
+      priv->tentative_match = 0;
 
       g_signal_emit_by_name (context_simple, "preedit-start");
       g_signal_emit_by_name (context_simple, "preedit-changed");
@@ -939,10 +966,10 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
     }
   
   /* Then, check for compose sequences */
-  if (context_simple->in_hex_sequence)
+  if (priv->in_hex_sequence)
     {
       if (hex_keyval)
-	context_simple->compose_buffer[n_compose++] = hex_keyval;
+	priv->compose_buffer[n_compose++] = hex_keyval;
       else if (is_escape)
 	{
 	  gtk_im_context_simple_reset (context);
@@ -958,11 +985,11 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 	}
     }
   else
-    context_simple->compose_buffer[n_compose++] = event->keyval;
+    priv->compose_buffer[n_compose++] = event->keyval;
 
-  context_simple->compose_buffer[n_compose] = 0;
+  priv->compose_buffer[n_compose] = 0;
 
-  if (context_simple->in_hex_sequence)
+  if (priv->in_hex_sequence)
     {
       /* If the modifiers are still held down, consider the sequence again */
       if (have_hex_mods)
@@ -970,20 +997,20 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
           /* space or return ends the sequence, and we eat the key */
           if (n_compose > 0 && is_hex_end)
             {
-	      if (context_simple->tentative_match &&
-		  g_unichar_validate (context_simple->tentative_match))
+	      if (priv->tentative_match &&
+		  g_unichar_validate (priv->tentative_match))
 		{
-		  gtk_im_context_simple_commit_char (context, context_simple->tentative_match);
-		  context_simple->compose_buffer[0] = 0;
+		  gtk_im_context_simple_commit_char (context, priv->tentative_match);
+		  priv->compose_buffer[0] = 0;
 		}
 	      else
 		{
 		  /* invalid hex sequence */
 		  beep_window (event->window);
 
-		  context_simple->tentative_match = 0;
-		  context_simple->in_hex_sequence = FALSE;
-		  context_simple->compose_buffer[0] = 0;
+		  priv->tentative_match = 0;
+		  priv->in_hex_sequence = FALSE;
+		  priv->compose_buffer[0] = 0;
 		}
             }
           else if (!check_hex (context_simple, n_compose))
@@ -991,7 +1018,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 	  
 	  g_signal_emit_by_name (context_simple, "preedit-changed");
 
-	  if (!context_simple->in_hex_sequence)
+	  if (!priv->in_hex_sequence)
 	    g_signal_emit_by_name (context_simple, "preedit-end");
 
 	  return TRUE;
@@ -999,7 +1026,7 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
     }
   else
     {
-      tmp_list = context_simple->tables;
+      tmp_list = priv->tables;
       while (tmp_list)
         {
           if (check_table (context_simple, tmp_list->data, n_compose))
@@ -1011,12 +1038,12 @@ gtk_im_context_simple_filter_keypress (GtkIMContext *context,
 	  g_print ("[ ");
 	  for (i = 0; i < n_compose; i++)
 	    {
-	      const gchar *keyval_name = gdk_keyval_name (context_simple->compose_buffer[i]);
+	      const gchar *keyval_name = gdk_keyval_name (priv->compose_buffer[i]);
 	      
 	      if (keyval_name != NULL)
 		g_print ("%s ", keyval_name);
 	      else
-		g_print ("%04x ", context_simple->compose_buffer[i]);
+		g_print ("%04x ", priv->compose_buffer[i]);
 	    }
 	  g_print ("] ");
 	});
@@ -1041,14 +1068,15 @@ static void
 gtk_im_context_simple_reset (GtkIMContext *context)
 {
   GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
+  GtkIMContextSimplePriv *priv = context_simple->priv;
 
-  context_simple->compose_buffer[0] = 0;
+  priv->compose_buffer[0] = 0;
 
-  if (context_simple->tentative_match || context_simple->in_hex_sequence)
+  if (priv->tentative_match || priv->in_hex_sequence)
     {
-      context_simple->in_hex_sequence = FALSE;
-      context_simple->tentative_match = 0;
-      context_simple->tentative_match_len = 0;
+      priv->in_hex_sequence = FALSE;
+      priv->tentative_match = 0;
+      priv->tentative_match_len = 0;
       g_signal_emit_by_name (context_simple, "preedit-changed");
       g_signal_emit_by_name (context_simple, "preedit-end");
     }
@@ -1060,29 +1088,29 @@ gtk_im_context_simple_get_preedit_string (GtkIMContext   *context,
 					  PangoAttrList **attrs,
 					  gint           *cursor_pos)
 {
+  GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   char outbuf[37]; /* up to 6 hex digits */
   int len = 0;
-  
-  GtkIMContextSimple *context_simple = GTK_IM_CONTEXT_SIMPLE (context);
 
-  if (context_simple->in_hex_sequence)
+  if (priv->in_hex_sequence)
     {
       int hexchars = 0;
          
       outbuf[0] = 'u';
       len = 1;
 
-      while (context_simple->compose_buffer[hexchars] != 0)
+      while (priv->compose_buffer[hexchars] != 0)
 	{
-	  len += g_unichar_to_utf8 (gdk_keyval_to_unicode (context_simple->compose_buffer[hexchars]),
+	  len += g_unichar_to_utf8 (gdk_keyval_to_unicode (priv->compose_buffer[hexchars]),
 				    outbuf + len);
 	  ++hexchars;
 	}
 
       g_assert (len < 25);
     }
-  else if (context_simple->tentative_match)
-    len = g_unichar_to_utf8 (context_simple->tentative_match, outbuf);
+  else if (priv->tentative_match)
+    len = g_unichar_to_utf8 (priv->tentative_match, outbuf);
       
   outbuf[len] = '\0';      
 
@@ -1130,6 +1158,7 @@ gtk_im_context_simple_add_table (GtkIMContextSimple *context_simple,
 				 gint                max_seq_len,
 				 gint                n_seqs)
 {
+  GtkIMContextSimplePriv *priv = context_simple->priv;
   GtkComposeTable *table;
 
   g_return_if_fail (GTK_IS_IM_CONTEXT_SIMPLE (context_simple));
@@ -1141,5 +1170,5 @@ gtk_im_context_simple_add_table (GtkIMContextSimple *context_simple,
   table->max_seq_len = max_seq_len;
   table->n_seqs = n_seqs;
 
-  context_simple->tables = g_slist_prepend (context_simple->tables, table);
+  priv->tables = g_slist_prepend (priv->tables, table);
 }
diff --git a/gtk/gtkimcontextsimple.h b/gtk/gtkimcontextsimple.h
index 8017c31..ee02e1b 100644
--- a/gtk/gtkimcontextsimple.h
+++ b/gtk/gtkimcontextsimple.h
@@ -39,6 +39,7 @@ G_BEGIN_DECLS
 
 
 typedef struct _GtkIMContextSimple       GtkIMContextSimple;
+typedef struct _GtkIMContextSimplePriv   GtkIMContextSimplePriv;
 typedef struct _GtkIMContextSimpleClass  GtkIMContextSimpleClass;
 
 #define GTK_MAX_COMPOSE_LEN 7
@@ -47,14 +48,8 @@ struct _GtkIMContextSimple
 {
   GtkIMContext object;
 
-  GSList *GSEAL (tables);
-
-  guint GSEAL (compose_buffer[GTK_MAX_COMPOSE_LEN + 1]);
-  gunichar GSEAL (tentative_match);
-  gint GSEAL (tentative_match_len);
-
-  guint GSEAL (in_hex_sequence) : 1;
-  guint GSEAL (modifiers_dropped) : 1;
+  /* <private> */
+  GtkIMContextSimplePriv *priv;
 };
 
 struct _GtkIMContextSimpleClass



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