Revert "Revert "Merge remote-tracking branch 'origin/sandbox/mniesluchow/upstream_2_1...
[platform/upstream/atk.git] / atk / atknoopobject.c
index bbb2999..41b6551 100644 (file)
@@ -1,5 +1,5 @@
 /* ATK -  Accessibility Toolkit
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * Boston, MA 02111-1307, USA.
  */
 
+#include "config.h"
+
 #include "atk.h"
 #include "atknoopobject.h"
 
+/**
+ * SECTION:atknoopobject
+ * @Short_description: An AtkObject which purports to implement all ATK interfaces.
+ * @Title:AtkNoOpObject
+ *
+ * An AtkNoOpObject is an AtkObject which purports to implement all
+ * ATK interfaces. It is the type of AtkObject which is created if an
+ * accessible object is requested for an object type for which no
+ * factory type is specified.
+ *
+ */
+
+
 static void atk_no_op_object_class_init (AtkNoOpObjectClass *klass);
 
 static gpointer parent_class = NULL;
@@ -88,6 +103,13 @@ atk_no_op_object_get_type (void)
         NULL
     };
 
+    static const GInterfaceInfo atk_table_cell_info =
+    {
+        (GInterfaceInitFunc) NULL,
+        (GInterfaceFinalizeFunc) NULL,
+        NULL
+    };
+
     static const GInterfaceInfo atk_text_info =
     {
         (GInterfaceInitFunc) NULL,
@@ -95,6 +117,13 @@ atk_no_op_object_get_type (void)
         NULL
     };
 
+    static const GInterfaceInfo atk_hypertext_info =
+    {
+        (GInterfaceInitFunc) NULL,
+        (GInterfaceFinalizeFunc) NULL,
+        NULL
+    };
+
     static const GInterfaceInfo atk_value_info =
     {
         (GInterfaceInitFunc) NULL,
@@ -102,6 +131,19 @@ atk_no_op_object_get_type (void)
         NULL
     };
 
+    static const GInterfaceInfo atk_document_info =
+    {
+        (GInterfaceInitFunc) NULL,
+        (GInterfaceFinalizeFunc) NULL,
+        NULL
+    };
+
+    static const GInterfaceInfo atk_window_info =
+    {
+        (GInterfaceInitFunc) NULL,
+        (GInterfaceFinalizeFunc) NULL,
+        NULL
+    };
 
     type = g_type_register_static (ATK_TYPE_OBJECT,
                                     "AtkNoOpObject", &tinfo, 0);
@@ -117,10 +159,18 @@ atk_no_op_object_get_type (void)
                                  &atk_selection_info);
     g_type_add_interface_static (type, ATK_TYPE_TABLE,
                                  &atk_table_info);
+    g_type_add_interface_static (type, ATK_TYPE_TABLE_CELL,
+                                 &atk_table_cell_info);
     g_type_add_interface_static (type, ATK_TYPE_TEXT,
                                  &atk_text_info);
+    g_type_add_interface_static (type, ATK_TYPE_HYPERTEXT,
+                                 &atk_hypertext_info);
     g_type_add_interface_static (type, ATK_TYPE_VALUE,
                                  &atk_value_info);
+    g_type_add_interface_static (type, ATK_TYPE_DOCUMENT,
+                                 &atk_document_info);
+    g_type_add_interface_static (type, ATK_TYPE_WINDOW,
+                                 &atk_window_info);
   }
   return type;
 }
@@ -128,7 +178,7 @@ atk_no_op_object_get_type (void)
 static void
 atk_no_op_object_class_init (AtkNoOpObjectClass *klass)
 {
-  parent_class = g_type_class_ref (ATK_TYPE_OBJECT);
+  parent_class = g_type_class_peek_parent (klass);
 }
 
 /**
@@ -143,12 +193,15 @@ atk_no_op_object_class_init (AtkNoOpObjectClass *klass)
 AtkObject*
 atk_no_op_object_new (GObject *obj)
 {
-  AtkObjectaccessible;
+  AtkObject *accessible;
 
-  g_return_val_if_fail ((obj != NULL), NULL);
+  g_return_val_if_fail (obj != NULL, NULL);
 
   accessible = g_object_new (ATK_TYPE_NO_OP_OBJECT, NULL);
-  g_return_val_if_fail ((accessible != NULL), NULL);
+  g_return_val_if_fail (accessible != NULL, NULL);
+
+  accessible->role = ATK_ROLE_INVALID;
+  accessible->layer = ATK_LAYER_INVALID;
 
   return accessible;
 }