infobar: Implement forall
authorMatthias Clasen <mclasen@redhat.com>
Thu, 6 Feb 2020 23:03:28 +0000 (18:03 -0500)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 6 Feb 2020 23:04:36 +0000 (18:04 -0500)
As a container, that is what you have to do.

gtk/gtkinfobar.c

index a7b902cf175b3653f6078a08f69616205f006c1d..5cfb54430ed7fc0b9f87343e52dfd1cfced700ed 100644 (file)
@@ -51,6 +51,8 @@
 #include "gtkbinlayout.h"
 #include "gtkgestureclick.h"
 
+#include "a11y/gtkcontaineraccessibleprivate.h"
+
 /**
  * SECTION:gtkinfobar
  * @short_description: Report important messages to the user
@@ -351,6 +353,18 @@ gtk_info_bar_remove (GtkContainer *container,
   gtk_container_remove (GTK_CONTAINER (priv->content_area), child);
 }
 
+static void
+gtk_info_bar_forall (GtkContainer *container,
+                     GtkCallback   callback,
+                     gpointer      user_data)
+{
+  GtkInfoBar *self = GTK_INFO_BAR (container);
+  GtkInfoBarPrivate *priv = gtk_info_bar_get_instance_private (self);
+
+  if (priv->revealer)
+    (*callback) (priv->revealer, user_data);
+}
+
 static void
 gtk_info_bar_dispose (GObject *object)
 {
@@ -380,6 +394,7 @@ gtk_info_bar_class_init (GtkInfoBarClass *klass)
 
   container_class->add = gtk_info_bar_add;
   container_class->remove = gtk_info_bar_remove;
+  container_class->forall = gtk_info_bar_forall;
 
   klass->close = gtk_info_bar_close;