]> Pileus Git - ~andy/gtk/blobdiff - gtk/a11y/gtktoplevelaccessible.c
gtkenums: correct various documentation typos
[~andy/gtk] / gtk / a11y / gtktoplevelaccessible.c
index 4b17274b677e1f95bdad96f0092742a3152dc061..56d51836f28a7c958ad65e619e4d521e5653e17f 100644 (file)
@@ -1,4 +1,4 @@
-/* GAIL - The GNOME Accessibility Implementation Library
+/* GTK+ - accessibility implementations
  * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
  *
  * This library is free software; you can redistribute it and/or
@@ -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/gtkx.h>
+#include <gtk/gtkeventbox.h>
+#include <gtk/gtkscrolledwindow.h>
+#include <gtk/gtkframe.h>
+#include <gtk/gtkmenu.h>
+#include <gtk/gtkmenuitem.h>
+#include <gtk/gtkbutton.h>
 
 #include "gtktoplevelaccessible.h"
 
+struct _GtkToplevelAccessiblePrivate
+{
+  GList *window_list;
+};
 
-G_DEFINE_TYPE (GtkToplevelAccessible, _gtk_toplevel_accessible, ATK_TYPE_OBJECT)
+G_DEFINE_TYPE (GtkToplevelAccessible, gtk_toplevel_accessible, ATK_TYPE_OBJECT)
 
 static void
 gtk_toplevel_accessible_initialize (AtkObject *accessible,
                                     gpointer   data)
 {
-  ATK_OBJECT_CLASS (_gtk_toplevel_accessible_parent_class)->initialize (accessible, data);
+  ATK_OBJECT_CLASS (gtk_toplevel_accessible_parent_class)->initialize (accessible, data);
 
   accessible->role = ATK_ROLE_APPLICATION;
-  accessible->name = g_get_prgname ();
   accessible->accessible_parent = NULL;
 }
 
@@ -45,10 +52,10 @@ gtk_toplevel_accessible_object_finalize (GObject *obj)
 {
   GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
 
-  if (toplevel->window_list)
-    g_list_free (toplevel->window_list);
+  if (toplevel->priv->window_list)
+    g_list_free (toplevel->priv->window_list);
 
-  G_OBJECT_CLASS (_gtk_toplevel_accessible_parent_class)->finalize (obj);
+  G_OBJECT_CLASS (gtk_toplevel_accessible_parent_class)->finalize (obj);
 }
 
 static gint
@@ -56,7 +63,7 @@ gtk_toplevel_accessible_get_n_children (AtkObject *obj)
 {
   GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
 
-  return g_list_length (toplevel->window_list);
+  return g_list_length (toplevel->priv->window_list);
 }
 
 static AtkObject *
@@ -68,7 +75,7 @@ gtk_toplevel_accessible_ref_child (AtkObject *obj,
   AtkObject *atk_obj;
 
   toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
-  widget = g_list_nth_data (toplevel->window_list, i);
+  widget = g_list_nth_data (toplevel->priv->window_list, i);
   if (!widget)
     return NULL;
 
@@ -79,6 +86,12 @@ gtk_toplevel_accessible_ref_child (AtkObject *obj,
   return atk_obj;
 }
 
+static const char *
+gtk_toplevel_accessible_get_name (AtkObject *obj)
+{
+  return g_get_prgname ();
+}
+
 static gboolean
 is_combo_window (GtkWidget *widget)
 {
@@ -126,7 +139,7 @@ is_attached_menu_window (GtkWidget *widget)
 }
 
 static void
-_gtk_toplevel_accessible_class_init (GtkToplevelAccessibleClass *klass)
+gtk_toplevel_accessible_class_init (GtkToplevelAccessibleClass *klass)
 {
   AtkObjectClass *class = ATK_OBJECT_CLASS(klass);
   GObjectClass *g_object_class = G_OBJECT_CLASS(klass);
@@ -135,8 +148,11 @@ _gtk_toplevel_accessible_class_init (GtkToplevelAccessibleClass *klass)
   class->get_n_children = gtk_toplevel_accessible_get_n_children;
   class->ref_child = gtk_toplevel_accessible_ref_child;
   class->get_parent = NULL;
+  class->get_name = gtk_toplevel_accessible_get_name;
 
   g_object_class->finalize = gtk_toplevel_accessible_object_finalize;
+
+  g_type_class_add_private (klass, sizeof (GtkToplevelAccessiblePrivate));
 }
 
 static void
@@ -148,18 +164,18 @@ remove_child (GtkToplevelAccessible *toplevel,
   guint window_count = 0;
   AtkObject *child;
 
-  if (toplevel->window_list)
+  if (toplevel->priv->window_list)
     {
       GtkWindow *tmp_window;
 
-      for (l = toplevel->window_list; l; l = l->next)
+      for (l = toplevel->priv->window_list; l; l = l->next)
         {
           tmp_window = GTK_WINDOW (l->data);
 
           if (window == tmp_window)
             {
               /* Remove the window from the window_list & emit the signal */
-              toplevel->window_list = g_list_delete_link (toplevel->window_list, l);
+              toplevel->priv->window_list = g_list_delete_link (toplevel->priv->window_list, l);
               child = gtk_widget_get_accessible (GTK_WIDGET (window));
               g_signal_emit_by_name (atk_obj, "children-changed::remove",
                                      window_count, child, NULL);
@@ -205,8 +221,8 @@ show_event_watcher (GSignalInvocationHint *ihint,
     return TRUE;
 
   /* Add the window to the list & emit the signal */
-  toplevel->window_list = g_list_append (toplevel->window_list, widget);
-  n_children = g_list_length (toplevel->window_list);
+  toplevel->priv->window_list = g_list_append (toplevel->priv->window_list, widget);
+  n_children = g_list_length (toplevel->priv->window_list);
 
   atk_object_set_parent (child, atk_obj);
   g_signal_emit_by_name (atk_obj, "children-changed::add",
@@ -237,14 +253,18 @@ hide_event_watcher (GSignalInvocationHint *ihint,
 }
 
 static void
-_gtk_toplevel_accessible_init (GtkToplevelAccessible *toplevel)
+gtk_toplevel_accessible_init (GtkToplevelAccessible *toplevel)
 {
   GtkWindow *window;
   GtkWidget *widget;
   GList *l;
   guint signal_id;
 
-  l = toplevel->window_list = gtk_window_list_toplevels ();
+  toplevel->priv = G_TYPE_INSTANCE_GET_PRIVATE (toplevel,
+                                                GTK_TYPE_TOPLEVEL_ACCESSIBLE,
+                                                GtkToplevelAccessiblePrivate);
+
+  l = toplevel->priv->window_list = gtk_window_list_toplevels ();
 
   while (l)
     {
@@ -260,7 +280,7 @@ _gtk_toplevel_accessible_init (GtkToplevelAccessible *toplevel)
         {
           GList *temp_l  = l->next;
 
-          toplevel->window_list = g_list_delete_link (toplevel->window_list, l);
+          toplevel->priv->window_list = g_list_delete_link (toplevel->priv->window_list, l);
           l = temp_l;
         }
       else
@@ -281,3 +301,9 @@ _gtk_toplevel_accessible_init (GtkToplevelAccessible *toplevel)
   g_signal_add_emission_hook (signal_id, 0,
                               hide_event_watcher, toplevel, (GDestroyNotify) NULL);
 }
+
+GList *
+gtk_toplevel_accessible_get_children (GtkToplevelAccessible *accessible)
+{
+  return accessible->priv->window_list;
+}