[Tomoe-cvs 1335] CVS update: tomoe/dict

アーカイブの一覧に戻る

Kouhei Sutou kous****@users*****
2006年 11月 29日 (水) 00:07:02 JST


Index: tomoe/dict/tomoe-dict-xml.c
diff -u tomoe/dict/tomoe-dict-xml.c:1.1 tomoe/dict/tomoe-dict-xml.c:1.2
--- tomoe/dict/tomoe-dict-xml.c:1.1	Tue Nov 28 17:11:31 2006
+++ tomoe/dict/tomoe-dict-xml.c	Wed Nov 29 00:07:01 2006
@@ -21,7 +21,7 @@
  *  Free Software Foundation, Inc., 59 Temple Place, Suite 330,
  *  Boston, MA  02111-1307  USA
  *
- *  $Id: tomoe-dict-xml.c,v 1.1 2006/11/28 08:11:31 kous Exp $
+ *  $Id: tomoe-dict-xml.c,v 1.2 2006/11/28 15:07:01 kous Exp $
  */
 
 #include <stdio.h>
@@ -34,7 +34,7 @@
 #include <tomoe-candidate.h>
 #include <glib-utils.h>
 
-#define TOMOE_TYPE_DICT_XML            (tomoe_dict_xml_get_type ())
+#define TOMOE_TYPE_DICT_XML            tomoe_type_dict_xml
 #define TOMOE_DICT_XML(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), TOMOE_TYPE_DICT_XML, TomoeDictXML))
 #define TOMOE_DICT_XML_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), TOMOE_TYPE_DICT_XML, TomoeDictXMLClass))
 #define TOMOE_IS_DICT_XML(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TOMOE_TYPE_DICT_XML))
@@ -45,9 +45,9 @@
 typedef struct _TomoeDictXMLClass TomoeDictXMLClass;
 struct _TomoeDictXML
 {
-    GObject              parent;
-    char                *filename;
-    char                *name;
+    TomoeDict            object;
+    gchar               *filename;
+    gchar               *name;
     GPtrArray           *chars;
 
     gboolean             editable;
@@ -56,7 +56,7 @@
 
 struct _TomoeDictXMLClass
 {
-    GObjectClass parent_class;
+    TomoeDictClass parent_class;
 };
 
 typedef struct _TomoeDictSearchContext {
@@ -64,34 +64,46 @@
     GList *results;
 } TomoeDictSearchContext;
 
-struct _TomoeRecognizerClass
-{
-    GObjectClass parent_class;
-};
-
-static GType    tomoe_dict_xml_get_type   (void) G_GNUC_CONST;
-
-G_DEFINE_TYPE (TomoeDictXML, tomoe_dict_xml, G_TYPE_OBJECT)
-
-static void     dispose                   (GObject         *object);
-static gboolean tomoe_dict_xml_load       (TomoeDictXML    *dict);
-static void     tomoe_dict_xml_save       (TomoeDictXML    *dict);
-static gint     letter_compare_func       (gconstpointer    a,
-                                           gconstpointer    b);
+static GType tomoe_type_dict_xml = 0;
+static GObjectClass *parent_class;
 
+static void         dispose                   (GObject       *object);
+static const gchar *get_name                  (TomoeDict     *dict);
+static gboolean     register_char             (TomoeDict     *dict,
+                                               TomoeChar     *chr);
+static gboolean     unregister_char           (TomoeDict     *dict,
+                                               const gchar   *utf8);
+static TomoeChar    *get_char                 (TomoeDict     *dict,
+                                               const gchar   *utf8);
+static GList        *search                   (TomoeDict     *dict,
+                                               TomoeQuery    *query);
+static gboolean      tomoe_dict_xml_load      (TomoeDictXML  *dict);
+static void          tomoe_dict_xml_save      (TomoeDictXML  *dict);
+static gint          letter_compare_func      (gconstpointer  a,
+                                               gconstpointer  b);
 
 static void
-tomoe_dict_xml_class_init (TomoeDictXMLClass *klass)
+class_init (TomoeDictXMLClass *klass)
 {
     GObjectClass *gobject_class;
+    TomoeDictClass *dict_class;
+
+    parent_class = g_type_class_peek_parent (klass);
 
     gobject_class = G_OBJECT_CLASS (klass);
 
     gobject_class->dispose = dispose;
+
+    dict_class = TOMOE_DICT_CLASS (klass);
+    dict_class->get_name        = get_name;
+    dict_class->register_char   = register_char;
+    dict_class->unregister_char = unregister_char;
+    dict_class->get_char        = get_char;
+    dict_class->search          = search;
 }
 
 static void
-tomoe_dict_xml_init (TomoeDictXML *dict)
+init (TomoeDictXML *dict)
 {
     dict->filename = NULL;
     dict->name     = NULL;
@@ -100,34 +112,53 @@
     dict->editable = FALSE;
 }
 
+static void
+register_type (GTypeModule *type_module)
+{
+    static const GTypeInfo info =
+        {
+            sizeof (TomoeDictXMLClass),
+            (GBaseInitFunc) NULL,
+            (GBaseFinalizeFunc) NULL,
+            (GClassInitFunc) class_init,
+            NULL,           /* class_finalize */
+            NULL,           /* class_data */
+            sizeof (TomoeDictXML),
+            0,
+            (GInstanceInitFunc) init,
+        };
+
+    tomoe_type_dict_xml = g_type_module_register_type (type_module,
+                                                       TOMOE_TYPE_DICT,
+                                                       "TomoeDictXML",
+                                                       &info, 0);
+}
 
-gpointer
-TOMOE_DICT_IMPL_NEW (void)
+void
+TOMOE_DICT_IMPL_INIT (GTypeModule *type_module)
 {
-    return g_object_new(TOMOE_TYPE_DICT_XML, NULL);
+    register_type (type_module);
 }
 
 void
-TOMOE_DICT_IMPL_LOAD (gpointer context, const gchar *filename,
-                      gboolean editable)
+TOMOE_DICT_IMPL_EXIT (void)
 {
-    TomoeDictXML *dict = context;
+}
 
-    if (!filename && !*filename) return;
+TomoeDict *
+TOMOE_DICT_IMPL_INSTANTIATE (const gchar *filename, gboolean editable)
+{
+    TomoeDictXML *dict;
+
+    if (!filename && !*filename) return NULL;
 
+    dict = g_object_new (TOMOE_TYPE_DICT_XML, NULL);
     dict->filename = g_strdup (filename);
     dict->editable = editable;
-    tomoe_dict_xml_load (dict);
-}
 
-void
-TOMOE_DICT_IMPL_FREE (gpointer context)
-{
-    TomoeDictXML *dict = context;
-
-    g_return_if_fail (TOMOE_IS_DICT_XML (dict));
+    tomoe_dict_xml_load (dict);
 
-    g_object_unref (dict);
+    return TOMOE_DICT (dict);
 }
 
 static void
@@ -153,24 +184,23 @@
     dict->filename = NULL;
     dict->chars    = NULL;
 
-    G_OBJECT_CLASS (tomoe_dict_xml_parent_class)->dispose (object);
+    G_OBJECT_CLASS (parent_class)->dispose (object);
 }
 
 const gchar*
-TOMOE_DICT_IMPL_GET_NAME (gpointer context)
+get_name (TomoeDict *_dict)
 {
-    TomoeDictXML *dict = context;
-    g_return_val_if_fail(TOMOE_IS_DICT_XML(dict), NULL);
+    TomoeDictXML *dict = TOMOE_DICT_XML (_dict);
+    g_return_val_if_fail (TOMOE_IS_DICT_XML (dict), NULL);
     return dict->name;
 }
 
 gboolean
-TOMOE_DICT_IMPL_REGISTER_CHAR (gpointer context, TomoeChar *add)
+register_char (TomoeDict *_dict, TomoeChar *add)
 {
-    TomoeDictXML *dict = context;
-
-    g_return_val_if_fail(dict, FALSE);
-    g_return_val_if_fail(add, FALSE);
+    TomoeDictXML *dict = TOMOE_DICT_XML (_dict);
+    g_return_val_if_fail (TOMOE_IS_DICT_XML (dict), FALSE);
+    g_return_val_if_fail (add, FALSE);
 
     g_ptr_array_add (dict->chars, g_object_ref (G_OBJECT (add)));
     g_ptr_array_sort (dict->chars, letter_compare_func);
@@ -180,15 +210,15 @@
 }
 
 gboolean
-TOMOE_DICT_IMPL_UNREGISTER_CHAR (gpointer context, const gchar *utf8)
+unregister_char (TomoeDict *_dict, const gchar *utf8)
 {
-    TomoeDictXML *dict = context;
+    TomoeDictXML *dict = TOMOE_DICT_XML (_dict);
     GPtrArray *chars;
     TomoeChar *removed = NULL;
     guint i, index = -1;
 
-    g_return_val_if_fail(dict, FALSE);
-    g_return_val_if_fail(utf8 && *utf8 != '\0', FALSE);
+    g_return_val_if_fail (TOMOE_IS_DICT_XML (dict), FALSE);
+    g_return_val_if_fail (utf8 && *utf8 != '\0', FALSE);
 
     chars = dict->chars;
     for (i = 0; i < chars->len; i++) {
@@ -211,9 +241,9 @@
 }
 
 TomoeChar *
-TOMOE_DICT_IMPL_GET_CHAR (gpointer context, const gchar *utf8)
+get_char (TomoeDict *_dict, const gchar *utf8)
 {
-    TomoeDictXML *dict = context;
+    TomoeDictXML *dict = TOMOE_DICT_XML (_dict);
     GPtrArray *chars;
     guint i;
 
@@ -302,9 +332,9 @@
 }
 
 GList *
-TOMOE_DICT_IMPL_SEARCH (gpointer context, TomoeQuery *query)
+search (TomoeDict *_dict, TomoeQuery *query)
 {
-    TomoeDictXML *dict = context;
+    TomoeDictXML *dict = TOMOE_DICT_XML (_dict);
     TomoeDictSearchContext search_context;
 
     search_context.query = g_object_ref (query);


tomoe-cvs メーリングリストの案内
アーカイブの一覧に戻る