gucharmap r1714 - trunk/gucharmap



Author: chpe
Date: Fri Mar 21 11:00:55 2008
New Revision: 1714
URL: http://svn.gnome.org/viewvc/gucharmap?rev=1714&view=rev

Log:
Use gobject instance private data.


Modified:
   trunk/gucharmap/gucharmap-charmap.c
   trunk/gucharmap/gucharmap-charmap.h
   trunk/gucharmap/gucharmap-private.h
   trunk/gucharmap/gucharmap-types.h

Modified: trunk/gucharmap/gucharmap-charmap.c
==============================================================================
--- trunk/gucharmap/gucharmap-charmap.c	(original)
+++ trunk/gucharmap/gucharmap-charmap.c	Fri Mar 21 11:00:55 2008
@@ -30,6 +30,23 @@
 #include "gucharmap-marshal.h"
 #include "gucharmap-private.h"
 
+struct _GucharmapCharmapPrivate {
+  GucharmapChaptersView *chapters_view;
+  GucharmapChartable *chartable;
+  GtkTextView *details_view;
+  GtkTextTag *text_tag_gimongous;
+  GtkTextTag *text_tag_big;
+
+  PangoFontDescription *font_desc;
+
+  GdkCursor *hand_cursor;
+  GdkCursor *regular_cursor;
+
+  guint hovering_over_link   : 1;
+  guint showing_details_page : 1;
+  guint last_character_set   : 1;
+};
+
 enum
 {
   STATUS_MESSAGE,
@@ -55,12 +72,13 @@
 gucharmap_charmap_finalize (GObject *object)
 {
   GucharmapCharmap *charmap = GUCHARMAP_CHARMAP (object);
+  GucharmapCharmapPrivate *priv = charmap->priv;
 
-  gdk_cursor_unref (charmap->hand_cursor);
-  gdk_cursor_unref (charmap->regular_cursor);
+  gdk_cursor_unref (priv->hand_cursor);
+  gdk_cursor_unref (priv->regular_cursor);
 
-  if (charmap->font_desc)
-    pango_font_description_free (charmap->font_desc);
+  if (priv->font_desc)
+    pango_font_description_free (priv->font_desc);
 
   G_OBJECT_CLASS (gucharmap_charmap_parent_class)->finalize (object);
 }
@@ -72,13 +90,14 @@
                                 GParamSpec *pspec)
 {
   GucharmapCharmap *charmap = GUCHARMAP_CHARMAP (object);
+  GucharmapCharmapPrivate *priv = charmap->priv;
 
   switch (prop_id) {
     case PROP_CHAPTERS_MODEL:
       g_value_set_object (value, gucharmap_charmap_get_chapters_model (charmap));
       break;
     case PROP_ACTIVE_CHAPTER:
-      g_value_take_string (value, gucharmap_chapters_view_get_selected (charmap->chapters_view));
+      g_value_take_string (value, gucharmap_chapters_view_get_selected (priv->chapters_view));
       break;
     case PROP_ACTIVE_CHARACTER:
       g_value_set_uint (value, gucharmap_charmap_get_active_character (charmap));
@@ -96,13 +115,14 @@
                                 GParamSpec *pspec)
 {
   GucharmapCharmap *charmap = GUCHARMAP_CHARMAP (object);
+  GucharmapCharmapPrivate *priv = charmap->priv;
 
   switch (prop_id) {
     case PROP_CHAPTERS_MODEL:
       gucharmap_charmap_set_chapters_model (charmap, g_value_get_object (value));
       break;
     case PROP_ACTIVE_CHAPTER:
-      gucharmap_chapters_view_set_selected (charmap->chapters_view,
+      gucharmap_chapters_view_set_selected (priv->chapters_view,
                                             g_value_get_string (value));
       break;
     case PROP_ACTIVE_CHARACTER:
@@ -172,26 +192,28 @@
                         G_PARAM_STATIC_NICK |
                         G_PARAM_STATIC_BLURB));
 
+  g_type_class_add_private (object_class, sizeof (GucharmapCharmapPrivate));
 }
 
 static void
 gucharmap_charmap_update_text_tags (GucharmapCharmap *charmap)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GtkStyle *style;
   int default_font_size;
 
-  style = gtk_widget_get_style (GTK_WIDGET (charmap->details_view));
+  style = gtk_widget_get_style (GTK_WIDGET (priv->details_view));
   default_font_size = pango_font_description_get_size (style->font_desc);
 
-  if (charmap->font_desc)
-    g_object_set (charmap->text_tag_gimongous, "font-desc", charmap->font_desc, NULL);
+  if (priv->font_desc)
+    g_object_set (priv->text_tag_gimongous, "font-desc", priv->font_desc, NULL);
 
   /* FIXME: do we need to consider whether the font size is absolute or not? */
-  g_object_set (charmap->text_tag_gimongous,
+  g_object_set (priv->text_tag_gimongous,
                 "size", 8 * default_font_size,
                 "left-margin", PANGO_PIXELS (5 * default_font_size),
                 NULL);
-  g_object_set (charmap->text_tag_big,
+  g_object_set (priv->text_tag_big,
                 "size", default_font_size * 5 / 4,
                 NULL);
 }
@@ -200,14 +222,16 @@
 gucharmap_charmap_set_font_desc_internal (GucharmapCharmap *charmap, 
                                           PangoFontDescription *font_desc)
 {
-  if (charmap->font_desc)
-    pango_font_description_free (charmap->font_desc);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  if (priv->font_desc)
+    pango_font_description_free (priv->font_desc);
 
-  charmap->font_desc = font_desc; /* adopted */
+  priv->font_desc = font_desc; /* adopted */
 
-  gucharmap_chartable_set_font_desc (charmap->chartable, font_desc);
+  gucharmap_chartable_set_font_desc (priv->chartable, font_desc);
 
-  if (gtk_widget_get_style (GTK_WIDGET (charmap->details_view)))
+  if (gtk_widget_get_style (GTK_WIDGET (priv->details_view)))
     gucharmap_charmap_update_text_tags (charmap);
 }
 
@@ -413,6 +437,7 @@
 set_details (GucharmapCharmap *charmap,
              gunichar uc)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GtkTextBuffer *buffer;
   GtkTextIter iter;
   GString *gstemp;
@@ -426,7 +451,7 @@
   gunichar2 *utf16;
   GucharmapUnicodeVersion version;
 
-  buffer = gtk_text_view_get_buffer (charmap->details_view);
+  buffer = gtk_text_view_get_buffer (priv->details_view);
   gtk_text_buffer_set_text (buffer, "", 0);
 
   gtk_text_buffer_get_start_iter (buffer, &iter);
@@ -631,18 +656,19 @@
                             GParamSpec *pspec,
                             GucharmapCharmap *charmap)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GString *gs;
   const gchar *temp;
   const gchar **temps;
   gint i;
   gunichar wc;
 
-  wc = gucharmap_chartable_get_active_character (charmap->chartable);
+  wc = gucharmap_chartable_get_active_character (priv->chartable);
 
   /* Forward the notification */
   g_object_notify (G_OBJECT (charmap), "active-character");
 
-  if (charmap->showing_details_page)
+  if (priv->showing_details_page)
     set_details (charmap, wc);
 
   gs = g_string_sized_new (256);
@@ -681,6 +707,7 @@
 follow_if_link (GucharmapCharmap *charmap,
                 GtkTextIter *iter)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GSList *tags = NULL, *tagp = NULL;
 
   tags = gtk_text_iter_get_tags (iter);
@@ -696,7 +723,7 @@
       if (uc != (gunichar)(-1)) 
         {
           g_signal_emit (charmap, gucharmap_charmap_signals[LINK_CLICKED], 0, 
-                         gucharmap_chartable_get_active_character (charmap->chartable), 
+                         gucharmap_chartable_get_active_character (priv->chartable),
                          uc);
           gucharmap_charmap_set_active_character (charmap, uc);
           break;
@@ -725,6 +752,7 @@
 
   switch (event->keyval)
     {
+      /* FIXMEchpe */
       case GDK_Return: 
       case GDK_KP_Enter:
         buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text_view));
@@ -781,14 +809,15 @@
                            gint x,
                            gint y)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GSList *tags = NULL, *tagp = NULL;
   GtkTextBuffer *buffer;
   GtkTextIter iter;
   gboolean hovering_over_link = FALSE;
 
-  buffer = gtk_text_view_get_buffer (charmap->details_view);
+  buffer = gtk_text_view_get_buffer (priv->details_view);
 
-  gtk_text_view_get_iter_at_location (charmap->details_view,
+  gtk_text_view_get_iter_at_location (priv->details_view,
                                       &iter, x, y);
 
   tags = gtk_text_iter_get_tags (&iter);
@@ -808,14 +837,14 @@
         }
     }
 
-  if (hovering_over_link != charmap->hovering_over_link)
+  if (hovering_over_link != priv->hovering_over_link)
     {
-      charmap->hovering_over_link = hovering_over_link;
+      priv->hovering_over_link = hovering_over_link;
 
       if (hovering_over_link)
-        gdk_window_set_cursor (gtk_text_view_get_window (charmap->details_view, GTK_TEXT_WINDOW_TEXT), charmap->hand_cursor);
+        gdk_window_set_cursor (gtk_text_view_get_window (priv->details_view, GTK_TEXT_WINDOW_TEXT), priv->hand_cursor);
       else
-        gdk_window_set_cursor (gtk_text_view_get_window (charmap->details_view, GTK_TEXT_WINDOW_TEXT), charmap->regular_cursor);
+        gdk_window_set_cursor (gtk_text_view_get_window (priv->details_view, GTK_TEXT_WINDOW_TEXT), priv->regular_cursor);
     }
 
   if (tags) 
@@ -863,15 +892,17 @@
                       guint page_num,
                       GucharmapCharmap *charmap)
 {
-  charmap->showing_details_page = (page_num == 1);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  priv->showing_details_page = (page_num == 1);
 
-  if (charmap->showing_details_page)
-    set_details (charmap, gucharmap_chartable_get_active_character (charmap->chartable));
+  if (priv->showing_details_page)
+    set_details (charmap, gucharmap_chartable_get_active_character (priv->chartable));
   else
     {
       GtkTextBuffer *buffer;
 
-      buffer = gtk_text_view_get_buffer (charmap->details_view);
+      buffer = gtk_text_view_get_buffer (priv->details_view);
       gtk_text_buffer_set_text (buffer, "", 0);
     }
 }
@@ -880,14 +911,15 @@
 chapters_view_selection_changed_cb (GtkTreeSelection *selection,
                                     GucharmapCharmap *charmap)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GucharmapCodepointList *codepoint_list;
   GtkTreeIter iter;
 
   if (!gtk_tree_selection_get_selected (selection, NULL, &iter))
     return;
 
-  codepoint_list = gucharmap_chapters_view_get_codepoint_list (charmap->chapters_view);
-  gucharmap_chartable_set_codepoint_list (charmap->chartable, codepoint_list);
+  codepoint_list = gucharmap_chapters_view_get_codepoint_list (priv->chapters_view);
+  gucharmap_chartable_set_codepoint_list (priv->chartable, codepoint_list);
   g_object_unref (codepoint_list);
 
   g_object_notify (G_OBJECT (charmap), "active-chapter");
@@ -896,14 +928,17 @@
 static void
 gucharmap_charmap_init (GucharmapCharmap *charmap)
 {
+  GucharmapCharmapPrivate *priv;
   GtkWidget *scrolled_window, *view, *notebook, *chartable, *textview;
   GtkTreeSelection *selection;
   GtkTextBuffer *buffer;
 
+  priv = charmap->priv = G_TYPE_INSTANCE_GET_PRIVATE (charmap, GUCHARMAP_TYPE_CHARMAP, GucharmapCharmapPrivate);
+
   /* FIXME: move this to realize */
-  charmap->hand_cursor = gdk_cursor_new (GDK_HAND2);
-  charmap->regular_cursor = gdk_cursor_new (GDK_XTERM);
-  charmap->hovering_over_link = FALSE;
+  priv->hand_cursor = gdk_cursor_new (GDK_HAND2);
+  priv->regular_cursor = gdk_cursor_new (GDK_XTERM);
+  priv->hovering_over_link = FALSE;
 
   /* Left pane */
   scrolled_window = gtk_scrolled_window_new (NULL, NULL);
@@ -913,7 +948,7 @@
                                        GTK_SHADOW_ETCHED_IN);
 
   view = gucharmap_chapters_view_new ();
-  charmap->chapters_view = GUCHARMAP_CHAPTERS_VIEW (view);
+  priv->chapters_view = GUCHARMAP_CHAPTERS_VIEW (view);
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
   g_signal_connect (selection, "changed",
                     G_CALLBACK (chapters_view_selection_changed_cb), charmap);
@@ -934,7 +969,7 @@
                                        GTK_SHADOW_NONE);
 
   chartable = gucharmap_chartable_new ();
-  charmap->chartable = GUCHARMAP_CHARTABLE (chartable);
+  priv->chartable = GUCHARMAP_CHARTABLE (chartable);
 
   g_signal_connect_swapped (chartable, "status-message",
                             G_CALLBACK (chartable_status_message), charmap);
@@ -957,7 +992,7 @@
                                        GTK_SHADOW_NONE);
 
   textview = gtk_text_view_new ();
-  charmap->details_view = GTK_TEXT_VIEW (textview);
+  priv->details_view = GTK_TEXT_VIEW (textview);
   gtk_text_view_set_editable (GTK_TEXT_VIEW (textview), FALSE);
   gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview),
                                GTK_WRAP_WORD);
@@ -973,11 +1008,11 @@
   g_signal_connect (textview, "visibility-notify-event",
                     G_CALLBACK (details_visibility_notify_event), charmap);
 
-  buffer = gtk_text_view_get_buffer (charmap->details_view);
-  charmap->text_tag_gimongous =
+  buffer = gtk_text_view_get_buffer (priv->details_view);
+  priv->text_tag_gimongous =
     gtk_text_buffer_create_tag (buffer, "gimongous",
                                 NULL);
-  charmap->text_tag_big =
+  priv->text_tag_big =
     gtk_text_buffer_create_tag (buffer, "big",
                                 NULL);
   gtk_text_buffer_create_tag (buffer, "bold",
@@ -1019,14 +1054,17 @@
 gucharmap_charmap_set_font (GucharmapCharmap *charmap, 
                             const gchar *font_name)
 {
+  GucharmapCharmapPrivate *priv;
   PangoFontDescription *font_desc;
 
   g_return_if_fail (GUCHARMAP_IS_CHARMAP (charmap));
   g_return_if_fail (font_name != NULL);
 
+  priv = charmap->priv;
+
   font_desc = pango_font_description_from_string (font_name);
-  if (charmap->font_desc &&
-      pango_font_description_equal (font_desc, charmap->font_desc))
+  if (priv->font_desc &&
+      pango_font_description_equal (font_desc, priv->font_desc))
     {
       pango_font_description_free (font_desc);
       return;
@@ -1046,11 +1084,14 @@
 gucharmap_charmap_set_font_desc (GucharmapCharmap *charmap,
                                  PangoFontDescription *font_desc)
 {
+  GucharmapCharmapPrivate *priv;
+
   g_return_if_fail (GUCHARMAP_IS_CHARMAP (charmap));
   g_return_if_fail (font_desc != NULL);
 
-  if (charmap->font_desc &&
-      pango_font_description_equal (font_desc, charmap->font_desc))
+  priv = charmap->priv;
+  if (priv->font_desc &&
+      pango_font_description_equal (font_desc, priv->font_desc))
     return;
 
   gucharmap_charmap_set_font_desc_internal (charmap,
@@ -1061,34 +1102,43 @@
 gucharmap_charmap_set_active_character (GucharmapCharmap *charmap,
                                         gunichar          wc)
 {
-  if (wc > UNICHAR_MAX)
+  GucharmapCharmapPrivate *priv;
+
+   if (wc > UNICHAR_MAX)
     return;
 
-  if (!gucharmap_chapters_view_select_character (charmap->chapters_view, wc)) {
+  priv = charmap->priv;
+  if (!gucharmap_chapters_view_select_character (priv->chapters_view, wc)) {
     g_warning ("gucharmap_chapters_view_select_character failed (U+%04X)\n", wc);
     return;
   }
 
-  gucharmap_chartable_set_active_character (charmap->chartable, wc);
+  gucharmap_chartable_set_active_character (priv->chartable, wc);
 }
 
 gunichar
 gucharmap_charmap_get_active_character (GucharmapCharmap *charmap)
 {
-  return gucharmap_chartable_get_active_character (charmap->chartable);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  return gucharmap_chartable_get_active_character (priv->chartable);
 }
 
 void
 gucharmap_charmap_set_active_chapter (GucharmapCharmap *charmap,
                                       const gchar *chapter)
 {
-  gucharmap_chapters_view_set_selected (charmap->chapters_view, chapter);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  gucharmap_chapters_view_set_selected (priv->chapters_view, chapter);
 }
 
 char *
 gucharmap_charmap_get_active_chapter (GucharmapCharmap *charmap)
 {
-  return gucharmap_chapters_view_get_selected (charmap->chapters_view);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  return gucharmap_chapters_view_get_selected (priv->chapters_view);
 }
 
 /**
@@ -1100,13 +1150,16 @@
 GucharmapChartable *
 gucharmap_charmap_get_chartable (GucharmapCharmap *charmap)
 {
-  return charmap->chartable;
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  return priv->chartable;
 }
 
 void
 gucharmap_charmap_set_chapters_model (GucharmapCharmap  *charmap,
                                       GucharmapChaptersModel *model)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
   GObject *object = G_OBJECT (charmap);
   gunichar wc;
 
@@ -1114,18 +1167,18 @@
 
   g_object_notify (G_OBJECT (charmap), "chapters-model");
 
-  gucharmap_chapters_view_set_model (charmap->chapters_view, model);
+  gucharmap_chapters_view_set_model (priv->chapters_view, model);
   if (!model) {
     g_object_thaw_notify (object);
     return;
   }
 
-  if (charmap->last_character_set) {
-    wc = gucharmap_chartable_get_active_character (charmap->chartable);
+  if (priv->last_character_set) {
+    wc = gucharmap_chartable_get_active_character (priv->chartable);
     gucharmap_charmap_set_active_character (charmap, wc);
   }
 
-  charmap->last_character_set = TRUE;
+  priv->last_character_set = TRUE;
 
   g_object_thaw_notify (object);
 }
@@ -1133,19 +1186,25 @@
 GucharmapChaptersModel *
 gucharmap_charmap_get_chapters_model (GucharmapCharmap *charmap)
 {
-  return gucharmap_chapters_view_get_model (charmap->chapters_view);
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  return gucharmap_chapters_view_get_model (priv->chapters_view);
 }
 
 GucharmapChaptersView *
 gucharmap_charmap_get_chapters_view  (GucharmapCharmap *charmap)
 {
-  return charmap->chapters_view;
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
+  return priv->chapters_view;
 }
 
 GucharmapCodepointList *
 gucharmap_charmap_get_book_codepoint_list (GucharmapCharmap *charmap)
 {
+  GucharmapCharmapPrivate *priv = charmap->priv;
+
   GucharmapCodepointList *codepoint_list;
-  codepoint_list = (GucharmapCodepointList *) gucharmap_chapters_view_get_book_codepoint_list (charmap->chapters_view);
+  codepoint_list = (GucharmapCodepointList *) gucharmap_chapters_view_get_book_codepoint_list (priv->chapters_view);
   return g_object_ref (codepoint_list);
 }

Modified: trunk/gucharmap/gucharmap-charmap.h
==============================================================================
--- trunk/gucharmap/gucharmap-charmap.h	(original)
+++ trunk/gucharmap/gucharmap-charmap.h	Fri Mar 21 11:00:55 2008
@@ -38,6 +38,32 @@
 #define GUCHARMAP_IS_CHARMAP_CLASS(k)      (G_TYPE_CHECK_CLASS_TYPE ((k), GUCHARMAP_TYPE_CHARMAP))
 #define GUCHARMAP_CHARMAP_GET_CLASS(o)     (G_TYPE_INSTANCE_GET_CLASS ((o), GUCHARMAP_TYPE_CHARMAP, GucharmapCharmapClass))
 
+typedef struct _GucharmapCharmap        GucharmapCharmap;
+typedef struct _GucharmapCharmapPrivate GucharmapCharmapPrivate;
+typedef struct _GucharmapCharmapClass   GucharmapCharmapClass;
+
+struct _GucharmapCharmap
+{
+  GtkHPaned parent;
+
+  /*< private >*/
+  GucharmapCharmapPrivate *priv;
+};
+
+struct _GucharmapCharmapClass
+{
+  GtkHPanedClass parent_class;
+
+  void (* status_message) (GucharmapCharmap *charmap, const gchar *message);
+  void (* link_clicked) (GucharmapCharmap *charmap, 
+                         gunichar old_character,
+                         gunichar new_character);
+  void (* _gucharmap_reserved0) (void);
+  void (* _gucharmap_reserved1) (void);
+  void (* _gucharmap_reserved2) (void);
+  void (* _gucharmap_reserved3) (void);
+};
+
 GType                 gucharmap_charmap_get_type           (void);
 
 GtkWidget *           gucharmap_charmap_new                (void);

Modified: trunk/gucharmap/gucharmap-private.h
==============================================================================
--- trunk/gucharmap/gucharmap-private.h	(original)
+++ trunk/gucharmap/gucharmap-private.h	Fri Mar 21 11:00:55 2008
@@ -79,38 +79,6 @@
 };
 
 
-struct _GucharmapCharmap
-{
-  GtkHPaned parent;
-
-  GucharmapChaptersView *chapters_view;
-  GucharmapChartable *chartable;
-  GtkTextView *details_view;
-  GtkTextTag *text_tag_gimongous;
-  GtkTextTag *text_tag_big;
-
-  PangoFontDescription *font_desc;
-
-  GdkCursor *hand_cursor;
-  GdkCursor *regular_cursor;
-
-  guint hovering_over_link   : 1;
-  guint showing_details_page : 1;
-  guint last_character_set   : 1;
-};
-
-
-struct _GucharmapCharmapClass
-{
-  GtkHPanedClass parent_class;
-
-  void (* status_message) (GucharmapCharmap *charmap, const gchar *message);
-  void (* link_clicked) (GucharmapCharmap *charmap, 
-                         gunichar old_character,
-                         gunichar new_character);
-};
-
-
 struct _GucharmapChartableCellAccessible
 {
   AtkObject parent;

Modified: trunk/gucharmap/gucharmap-types.h
==============================================================================
--- trunk/gucharmap/gucharmap-types.h	(original)
+++ trunk/gucharmap/gucharmap-types.h	Fri Mar 21 11:00:55 2008
@@ -36,9 +36,6 @@
 typedef struct _GucharmapChartable GucharmapChartable;
 typedef struct _GucharmapChartableClass GucharmapChartableClass;
 
-typedef struct _GucharmapCharmap GucharmapCharmap;
-typedef struct _GucharmapCharmapClass GucharmapCharmapClass;
-
 typedef struct _GucharmapChaptersView GucharmapChaptersView;
 typedef struct _GucharmapChaptersViewClass GucharmapChaptersViewClass;
 



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