diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt index e2820d1291..a144cabbf1 100644 --- a/docs/reference/gtk/gtk4-sections.txt +++ b/docs/reference/gtk/gtk4-sections.txt @@ -6522,6 +6522,7 @@ gtk_popover_get_type GtkPopoverMenu GtkPopoverMenu gtk_popover_menu_new +gtk_popover_menu_add_submenu gtk_popover_menu_open_submenu diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c index b5e0d47a2e..2bfa67c944 100644 --- a/gtk/gtkpopovermenu.c +++ b/gtk/gtkpopovermenu.c @@ -384,3 +384,23 @@ gtk_popover_menu_open_submenu (GtkPopoverMenu *popover, stack = gtk_bin_get_child (GTK_BIN (popover)); gtk_stack_set_visible_child_name (GTK_STACK (stack), name); } + +/** + * gtk_popover_menu_add_submenu: + * @popover: a #GtkPopoverMenu + * @submenu: a widget to add as submenu + * @name: the name for the submenu + * + * Adds a submenu to the popover menu. + */ +void +gtk_popover_menu_add_submenu (GtkPopoverMenu *popover, + GtkWidget *submenu, + const char *name) +{ + GtkWidget *stack; + + stack = gtk_bin_get_child (GTK_BIN (object)); + + gtk_stack_add_named (GTK_STACK (stack), submenu, name); +} diff --git a/gtk/gtkpopovermenu.h b/gtk/gtkpopovermenu.h index c920f5c627..bf041b02ea 100644 --- a/gtk/gtkpopovermenu.h +++ b/gtk/gtkpopovermenu.h @@ -52,9 +52,13 @@ GType gtk_popover_menu_get_type (void) G_GNUC_CONST; GDK_AVAILABLE_IN_ALL GtkWidget * gtk_popover_menu_new (void); +GDK_AVAILABLE_IN_ALL +void gtk_popover_menu_add_submenu (GtkPopoverMenu *popover, + GtkWidget *menu, + const char *name); GDK_AVAILABLE_IN_ALL void gtk_popover_menu_open_submenu (GtkPopoverMenu *popover, - const gchar *name); + const char *name); G_END_DECLS