[gucharmap] Revert unintentional API/ABI break



commit adb912e4e09a9909737f18f79c371761ac3cfe9f
Author: Christian Persch <chpe gnome org>
Date:   Fri Feb 17 17:55:24 2012 +0100

    Revert unintentional API/ABI break

 gucharmap/gucharmap-chapters-view.c |    7 ++++++
 gucharmap/gucharmap-chapters-view.h |    2 +
 gucharmap/gucharmap-unicode-info.c  |   38 +++++++++++++++++++++++++++++++++++
 gucharmap/gucharmap-unicode-info.h  |    3 ++
 4 files changed, 50 insertions(+), 0 deletions(-)
---
diff --git a/gucharmap/gucharmap-chapters-view.c b/gucharmap/gucharmap-chapters-view.c
index 8fddcd1..dfdd091 100644
--- a/gucharmap/gucharmap-chapters-view.c
+++ b/gucharmap/gucharmap-chapters-view.c
@@ -297,3 +297,10 @@ gucharmap_chapters_view_get_book_codepoint_list (GucharmapChaptersView *view)
 
   return gucharmap_chapters_model_get_book_codepoint_list (priv->model);
 }
+
+gboolean
+gucharmap_chapters_view_select_locale (GucharmapChaptersView *view)
+{
+  return gucharmap_chapters_view_select_character (view,
+                                                   gucharmap_unicode_get_locale_character ());
+}
diff --git a/gucharmap/gucharmap-chapters-view.h b/gucharmap/gucharmap-chapters-view.h
index 7e8160c..b80b41a 100644
--- a/gucharmap/gucharmap-chapters-view.h
+++ b/gucharmap/gucharmap-chapters-view.h
@@ -75,6 +75,8 @@ gchar *            gucharmap_chapters_view_get_selected  (GucharmapChaptersView
 gboolean           gucharmap_chapters_view_set_selected  (GucharmapChaptersView *view,
                                                           const gchar       *name);
 
+gboolean           gucharmap_chapters_view_select_locale (GucharmapChaptersView *view);
+
 G_END_DECLS
 
 #endif /* #ifndef GUCHARMAP_CHAPTERS_VIEW_H */
diff --git a/gucharmap/gucharmap-unicode-info.c b/gucharmap/gucharmap-unicode-info.c
index c633837..edfeead 100644
--- a/gucharmap/gucharmap-unicode-info.c
+++ b/gucharmap/gucharmap-unicode-info.c
@@ -649,3 +649,41 @@ gucharmap_unichar_isgraph (gunichar uc)
           && t != G_UNICODE_SURROGATE
           && t != G_UNICODE_SPACE_SEPARATOR);
 }
+
+static gunichar
+get_first_non_underscore_char (const char *str)
+{
+  const char *p;
+
+  if (!str)
+    return 0;
+
+  for (p = str; p && *p; p = g_utf8_find_next_char (p, NULL))
+    {
+      gunichar ch;
+
+      ch = g_utf8_get_char (p);
+      if (g_unichar_isalpha (ch))
+        return ch;
+    }
+
+  return 0;
+}
+
+/**
+ * gucharmap_unicode_get_locale_character:
+ *
+ * Determines a character that's commonly used in the current
+ * locale's script.
+ * 
+ * Returns: a unicode character
+ */
+gunichar
+gucharmap_unicode_get_locale_character (void)
+{
+  GtkStockItem item;
+  if (!gtk_stock_lookup (GTK_STOCK_FIND, &item))
+    return 0;
+
+  return get_first_non_underscore_char (item.label);
+}
diff --git a/gucharmap/gucharmap-unicode-info.h b/gucharmap/gucharmap-unicode-info.h
index a9e8644..1dbc818 100644
--- a/gucharmap/gucharmap-unicode-info.h
+++ b/gucharmap/gucharmap-unicode-info.h
@@ -79,6 +79,9 @@ G_CONST_RETURN gchar *  gucharmap_unicode_get_script_for_char     (gunichar wc);
 
 G_CONST_RETURN gchar *  gucharmap_unicode_version_to_string       (GucharmapUnicodeVersion version);
 
+/* doesn't really belong here, but no better place was available */
+gunichar     gucharmap_unicode_get_locale_character (void);
+
 G_END_DECLS
 
 #endif  /* #ifndef GUCHARMAP_UNICODE_INFO_H */



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