]> Pileus Git - ~andy/gtk/blobdiff - gtk/a11y/gtknotebookaccessible.c
Change FSF Address
[~andy/gtk] / gtk / a11y / gtknotebookaccessible.c
index ba4040361f80275d707ededb35f0671152fa3209..b755552e78070b99a5d16e3a5ac423f0497ee5b7 100644 (file)
@@ -12,9 +12,7 @@
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
 #include <string.h>
 #include <gtk/gtk.h>
 #include "gtknotebookaccessible.h"
-#include "gailnotebookpage.h"
+#include "gtknotebookpageaccessible.h"
 
 
 static void atk_selection_interface_init (AtkSelectionIface *iface);
 
-G_DEFINE_TYPE_WITH_CODE (GtkNotebookAccessible, gtk_notebook_accessible, GAIL_TYPE_CONTAINER,
+G_DEFINE_TYPE_WITH_CODE (GtkNotebookAccessible, _gtk_notebook_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
                          G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
 
 static gboolean
@@ -42,6 +40,8 @@ check_focus_tab (gpointer data)
   atk_obj = ATK_OBJECT (data);
   accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj));
+  if (widget == NULL)
+    return FALSE;
   notebook = GTK_NOTEBOOK (widget);
 
   accessible->idle_focus_id = 0;
@@ -92,10 +92,10 @@ create_notebook_page_accessible (GtkNotebookAccessible *accessible,
 {
   AtkObject *obj;
 
-  obj = gail_notebook_page_new (accessible, child);
+  obj = _gtk_notebook_page_accessible_new (accessible, child);
   g_hash_table_insert (accessible->pages, child, obj);
   atk_object_set_parent (obj, ATK_OBJECT (accessible));
-  g_signal_emit_by_name (accessible, "children_changed::add", page_num, obj, NULL);
+  g_signal_emit_by_name (accessible, "children-changed::add", page_num, obj, NULL);
 }
 
 static void
@@ -125,24 +125,13 @@ page_removed_cb (GtkNotebook *notebook,
 
   obj = g_hash_table_lookup (accessible->pages, widget);
   g_return_if_fail (obj);
-  g_signal_emit_by_name (accessible, "children_changed::remove",
+  g_signal_emit_by_name (accessible, "children-changed::remove",
                          page_num, obj, NULL);
-  gail_notebook_page_invalidate (GAIL_NOTEBOOK_PAGE (obj));
+  _gtk_notebook_page_accessible_invalidate (GTK_NOTEBOOK_PAGE_ACCESSIBLE (obj));
   g_hash_table_remove (accessible->pages, widget);
 }
 
 
-static void
-accessible_destroyed (gpointer data)
-{
-  GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (data);
-
-  if (accessible->idle_focus_id)
-    {
-      g_source_remove (accessible->idle_focus_id);
-      accessible->idle_focus_id = 0;
-    }
-}
 static void
 gtk_notebook_accessible_initialize (AtkObject *obj,
                                     gpointer   data)
@@ -151,7 +140,7 @@ gtk_notebook_accessible_initialize (AtkObject *obj,
   GtkNotebook *notebook;
   gint i;
 
-  ATK_OBJECT_CLASS (gtk_notebook_accessible_parent_class)->initialize (obj, data);
+  ATK_OBJECT_CLASS (_gtk_notebook_accessible_parent_class)->initialize (obj, data);
 
   accessible = GTK_NOTEBOOK_ACCESSIBLE (obj);
   notebook = GTK_NOTEBOOK (data);
@@ -171,8 +160,6 @@ gtk_notebook_accessible_initialize (AtkObject *obj,
   g_signal_connect (notebook, "page-removed",
                     G_CALLBACK (page_removed_cb), NULL);
 
-  g_object_weak_ref (G_OBJECT (notebook), (GWeakNotify)accessible_destroyed, obj);
-
   obj->role = ATK_ROLE_PAGE_TAB_LIST;
 }
 
@@ -186,7 +173,7 @@ gtk_notebook_accessible_finalize (GObject *object)
   if (accessible->idle_focus_id)
     g_source_remove (accessible->idle_focus_id);
 
-  G_OBJECT_CLASS (gtk_notebook_accessible_parent_class)->finalize (object);
+  G_OBJECT_CLASS (_gtk_notebook_accessible_parent_class)->finalize (object);
 }
 
 static AtkObject *
@@ -245,22 +232,22 @@ gtk_notebook_accessible_notify_gtk (GObject    *obj,
 
       if (page_num != old_page_num)
         {
-          AtkObject *obj;
+          AtkObject *child;
 
           if (old_page_num != -1)
             {
-              obj = gtk_notebook_accessible_ref_child (atk_obj, old_page_num);
-              if (obj)
+              child = gtk_notebook_accessible_ref_child (atk_obj, old_page_num);
+              if (child)
                 {
-                  atk_object_notify_state_change (obj, ATK_STATE_SELECTED, FALSE);
-                  g_object_unref (obj);
+                  atk_object_notify_state_change (child, ATK_STATE_SELECTED, FALSE);
+                  g_object_unref (child);
                 }
             }
-          obj = gtk_notebook_accessible_ref_child (atk_obj, page_num);
-          if (obj)
+          child = gtk_notebook_accessible_ref_child (atk_obj, page_num);
+          if (child)
             {
-              atk_object_notify_state_change (obj, ATK_STATE_SELECTED, TRUE);
-              g_object_unref (obj);
+              atk_object_notify_state_change (child, ATK_STATE_SELECTED, TRUE);
+              g_object_unref (child);
               /*
                * The page which is being displayed has changed but there is
                * no need to tell the focus tracker as the focus page will also
@@ -268,8 +255,8 @@ gtk_notebook_accessible_notify_gtk (GObject    *obj,
                * Notebook does not have tabs.
                */
             }
-          g_signal_emit_by_name (atk_obj, "selection_changed");
-          g_signal_emit_by_name (atk_obj, "visible_data_changed");
+          g_signal_emit_by_name (atk_obj, "selection-changed");
+          g_signal_emit_by_name (atk_obj, "visible-data-changed");
         }
       if (gtk_notebook_get_show_tabs (notebook) &&
          (focus_page_num != old_focus_page_num))
@@ -280,7 +267,7 @@ gtk_notebook_accessible_notify_gtk (GObject    *obj,
         }
     }
   else
-    GAIL_WIDGET_CLASS (gtk_notebook_accessible_parent_class)->notify_gtk (obj, pspec);
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_notebook_accessible_parent_class)->notify_gtk (obj, pspec);
 }
 
 /*
@@ -305,11 +292,13 @@ gtk_notebook_accessible_add_selection (AtkSelection *selection,
 }
 
 static void
-gtk_notebook_accessible_class_init (GtkNotebookAccessibleClass *klass)
+_gtk_notebook_accessible_class_init (GtkNotebookAccessibleClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class = (GailWidgetClass*)klass;
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+  GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
+
 
   gobject_class->finalize = gtk_notebook_accessible_finalize;
 
@@ -317,10 +306,14 @@ gtk_notebook_accessible_class_init (GtkNotebookAccessibleClass *klass)
   class->initialize = gtk_notebook_accessible_initialize;
 
   widget_class->notify_gtk = gtk_notebook_accessible_notify_gtk;
+
+  /* we listen to page-added/-removed, so we don't care about these */
+  container_class->add_gtk = NULL;
+  container_class->remove_gtk = NULL;
 }
 
 static void
-gtk_notebook_accessible_init (GtkNotebookAccessible *notebook)
+_gtk_notebook_accessible_init (GtkNotebookAccessible *notebook)
 {
   notebook->pages = g_hash_table_new_full (g_direct_hash,
                                            g_direct_equal,