[gtk/wip/ebassi/a11y-2: 22/28] a11y: Use G_DECLARE macro for GtkWidgetAccessible



commit 350d997ca7ba3c9aa49236ac0ec44f2381ea009d
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Mon Apr 27 17:57:27 2020 +0100

    a11y: Use G_DECLARE macro for GtkWidgetAccessible
    
    Allows us to drop the Private structure typedef.

 gtk/a11y/gtkwidgetaccessible.c | 60 +++++++++++++++++++++++++++++++-----------
 gtk/a11y/gtkwidgetaccessible.h | 24 +++--------------
 2 files changed, 48 insertions(+), 36 deletions(-)
---
diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c
index 5fc9f7f09e..0a9a749e08 100644
--- a/gtk/a11y/gtkwidgetaccessible.c
+++ b/gtk/a11y/gtkwidgetaccessible.c
@@ -17,18 +17,43 @@
 
 #include "config.h"
 
-#include <gtk/gtk.h>
 #include "gtkwidgetaccessibleprivate.h"
-#include "gtknotebookpageaccessible.h"
 
-struct _GtkWidgetAccessiblePrivate
+#include "gtkaccellabel.h"
+#include "gtkadjustment.h"
+#include "gtkbox.h"
+#include "gtkbutton.h"
+#include "gtkcombobox.h"
+#include "gtkdragicon.h"
+#include "gtkdrawingarea.h"
+#include "gtkglarea.h"
+#include "gtkimage.h"
+#include "gtklevelbar.h"
+#include "gtkmediacontrols.h"
+#include "gtknotebookpageaccessible.h"
+#include "gtknotebook.h"
+#include "gtkorientable.h"
+#include "gtkpicture.h"
+#include "gtkprogressbar.h"
+#include "gtkscrollable.h"
+#include "gtkscrollbar.h"
+#include "gtkseparator.h"
+#include "gtkshortcutlabel.h"
+#include "gtkshortcutsshortcut.h"
+#include "gtkspinner.h"
+#include "gtkstacksidebar.h"
+#include "gtkstatusbar.h"
+#include "gtkvideo.h"
+#include "gtkviewport.h"
+#include "gtkwidgetprivate.h"
+
+typedef struct
 {
   AtkLayer layer;
-};
+} GtkWidgetAccessiblePrivate;
 
 extern GtkWidget *_focus_widget;
 
-
 static gboolean gtk_widget_accessible_on_screen           (GtkWidget *widget);
 static gboolean gtk_widget_accessible_all_parents_visible (GtkWidget *widget);
 
@@ -170,10 +195,12 @@ gtk_widget_accessible_initialize (AtkObject *object,
                                   gpointer   data)
 {
   GtkWidgetAccessible *self = GTK_WIDGET_ACCESSIBLE (object);
+  GtkWidgetAccessiblePrivate *priv = gtk_widget_accessible_get_instance_private (self);
   GtkWidget *widget = data;
 
-  self->priv->layer = ATK_LAYER_WIDGET;
-  object->role = ATK_ROLE_UNKNOWN;
+  priv->layer = ATK_LAYER_WIDGET;
+
+  atk_object_set_role (object, ATK_ROLE_UNKNOWN);
 
   /* XXX: This will go away once we move all GtkWidgetAccessibleClass.notify_gtk()
    * implementations to explicit API on their respective classes
@@ -587,7 +614,6 @@ gtk_widget_accessible_class_init (GtkWidgetAccessibleClass *klass)
 static void
 gtk_widget_accessible_init (GtkWidgetAccessible *accessible)
 {
-  accessible->priv = gtk_widget_accessible_get_instance_private (accessible);
 }
 
 static void
@@ -630,9 +656,10 @@ gtk_widget_accessible_get_extents (AtkComponent   *component,
 static AtkLayer
 gtk_widget_accessible_get_layer (AtkComponent *component)
 {
-  GtkWidgetAccessible *accessible = GTK_WIDGET_ACCESSIBLE (component);
+  GtkWidgetAccessible *self = GTK_WIDGET_ACCESSIBLE (component);
+  GtkWidgetAccessiblePrivate *priv = gtk_widget_accessible_get_instance_private (self);
 
-  return accessible->priv->layer;
+  return priv->layer;
 }
 
 static gboolean
@@ -764,10 +791,11 @@ gtk_widget_accessible_all_parents_visible (GtkWidget *widget)
   GtkWidget *iter_parent = NULL;
   gboolean result = TRUE;
 
-  for (iter_parent = gtk_widget_get_parent (widget); iter_parent;
-       iter_parent = gtk_widget_get_parent (iter_parent))
+  for (iter_parent = _gtk_widget_get_parent (widget);
+       iter_parent != NULL;
+       iter_parent = _gtk_widget_get_parent (iter_parent))
     {
-      if (!gtk_widget_get_visible (iter_parent))
+      if (!_gtk_widget_get_visible (iter_parent))
         {
           result = FALSE;
           break;
@@ -778,8 +806,10 @@ gtk_widget_accessible_all_parents_visible (GtkWidget *widget)
 }
 
 void
-_gtk_widget_accessible_set_layer (GtkWidgetAccessible *accessible,
+_gtk_widget_accessible_set_layer (GtkWidgetAccessible *self,
                                   AtkLayer             layer)
 {
-  accessible->priv->layer = layer;
+  GtkWidgetAccessiblePrivate *priv = gtk_widget_accessible_get_instance_private (self);
+
+  priv->layer = layer;
 }
diff --git a/gtk/a11y/gtkwidgetaccessible.h b/gtk/a11y/gtkwidgetaccessible.h
index 5eb9047af1..c58aac4b4e 100644
--- a/gtk/a11y/gtkwidgetaccessible.h
+++ b/gtk/a11y/gtkwidgetaccessible.h
@@ -26,25 +26,10 @@
 
 G_BEGIN_DECLS
 
-#define GTK_TYPE_WIDGET_ACCESSIBLE                     (gtk_widget_accessible_get_type ())
-#define GTK_WIDGET_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessible))
-#define GTK_WIDGET_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), 
GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessibleClass))
-#define GTK_IS_WIDGET_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
GTK_TYPE_WIDGET_ACCESSIBLE))
-#define GTK_IS_WIDGET_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), 
GTK_TYPE_WIDGET_ACCESSIBLE))
-#define GTK_WIDGET_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), 
GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessibleClass))
+#define GTK_TYPE_WIDGET_ACCESSIBLE (gtk_widget_accessible_get_type())
 
-typedef struct _GtkWidgetAccessible        GtkWidgetAccessible;
-typedef struct _GtkWidgetAccessibleClass   GtkWidgetAccessibleClass;
-typedef struct _GtkWidgetAccessiblePrivate GtkWidgetAccessiblePrivate;
-
-G_DEFINE_AUTOPTR_CLEANUP_FUNC(GtkWidgetAccessible, g_object_unref)
-
-struct _GtkWidgetAccessible
-{
-  GtkAccessible parent;
-
-  GtkWidgetAccessiblePrivate *priv;
-};
+GDK_AVAILABLE_IN_ALL
+G_DECLARE_DERIVABLE_TYPE (GtkWidgetAccessible, gtk_widget_accessible, GTK, WIDGET_ACCESSIBLE, GtkAccessible)
 
 struct _GtkWidgetAccessibleClass
 {
@@ -58,9 +43,6 @@ struct _GtkWidgetAccessibleClass
 
 };
 
-GDK_AVAILABLE_IN_ALL
-GType gtk_widget_accessible_get_type (void);
-
 G_END_DECLS
 
 #endif /* __GTK_WIDGET_ACCESSIBLE_H__ */


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