diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols index b5125d0e7d..3939b7176f 100644 --- a/gtk/gtk.symbols +++ b/gtk/gtk.symbols @@ -265,6 +265,7 @@ gtk_application_new gtk_application_set_action_group gtk_application_create_window gtk_application_get_window +gtk_application_get_windows gtk_application_add_window gtk_application_run gtk_application_quit diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index ef407d8006..b8bac92ee9 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -445,6 +445,28 @@ gtk_application_get_window (GtkApplication *app) return gtk_application_create_window (app); } +/** + * gtk_application_get_windows: + * @app: a #GtkApplication + * + * Retrieves the list of windows previously registered with + * gtk_application_create_window() or gtk_application_add_window(). + * + * Return value: (element-type GtkWindow) (transfer none): A pointer + * to the list of #GtkWindows registered by this application, + * or %NULL. The returned #GSList is owned by the #GtkApplication + * and it should not be modified or freed directly. + * + * Since: 3.0 + */ +G_CONST_RETURN GSList * +gtk_application_get_windows (GtkApplication *app) +{ + g_return_val_if_fail (GTK_IS_APPLICATION (app), NULL); + + return app->priv->windows; +} + /** * gtk_application_create_window: * @app: a #GtkApplication diff --git a/gtk/gtkapplication.h b/gtk/gtkapplication.h index 2a808d77c6..929cb29323 100644 --- a/gtk/gtkapplication.h +++ b/gtk/gtkapplication.h @@ -87,18 +87,19 @@ struct _GtkApplicationClass void (*_gtk_reserved10) (void); }; -GType gtk_application_get_type (void) G_GNUC_CONST; -GtkApplication* gtk_application_new (const gchar *appid, - gint *argc, - gchar ***argv); -void gtk_application_set_action_group (GtkApplication *app, - GtkActionGroup *group); -GtkWindow * gtk_application_create_window (GtkApplication *app); -GtkWindow * gtk_application_get_window (GtkApplication *app); -void gtk_application_add_window (GtkApplication *app, - GtkWindow *window); -void gtk_application_run (GtkApplication *app); -void gtk_application_quit (GtkApplication *app); +GType gtk_application_get_type (void) G_GNUC_CONST; +GtkApplication* gtk_application_new (const gchar *appid, + gint *argc, + gchar ***argv); +void gtk_application_set_action_group (GtkApplication *app, + GtkActionGroup *group); +GtkWindow * gtk_application_create_window (GtkApplication *app); +GtkWindow * gtk_application_get_window (GtkApplication *app); +G_CONST_RETURN GSList * gtk_application_get_windows (GtkApplication *app); +void gtk_application_add_window (GtkApplication *app, + GtkWindow *window); +void gtk_application_run (GtkApplication *app); +void gtk_application_quit (GtkApplication *app); G_END_DECLS