diff options
Diffstat (limited to 'frontends/gtk/menu.c')
-rw-r--r-- | frontends/gtk/menu.c | 75 |
1 files changed, 72 insertions, 3 deletions
diff --git a/frontends/gtk/menu.c b/frontends/gtk/menu.c index 08af970f3..d0a984a99 100644 --- a/frontends/gtk/menu.c +++ b/frontends/gtk/menu.c @@ -263,8 +263,8 @@ nsgtk_menu_toolbars_submenu(GtkAccelGroup *group) * \param group the 'global' in a gtk sense accelerator reference */ -static struct nsgtk_developer_submenu *nsgtk_menu_developer_submenu( - GtkAccelGroup *group) +static struct nsgtk_developer_submenu * +nsgtk_menu_developer_submenu(GtkAccelGroup *group) { struct nsgtk_developer_submenu *dmenu = malloc(sizeof(struct nsgtk_developer_submenu)); @@ -423,7 +423,6 @@ static struct nsgtk_nav_menu *nsgtk_menu_nav_submenu(GtkAccelGroup *group) ADD_SEP(nav, ret); IMAGE_ITEM(nav, openlocation, gtkOpenLocation, ret, group); - return ret; } @@ -597,3 +596,73 @@ nsgtk_link_menu_create(GtkAccelGroup *group) return nmenu; } + + +/* exported function documented in gtk/menu.h */ +nserror nsgtk_menu_bar_destroy(struct nsgtk_bar_submenu *menu) +{ + gtk_widget_destroy(GTK_WIDGET(menu->bar_menu)); + + free(menu->file_submenu->export_submenu); + free(menu->file_submenu); + free(menu->edit_submenu); + free(menu->view_submenu->tabs_submenu); + free(menu->view_submenu->toolbars_submenu); + free(menu->view_submenu->scaleview_submenu); + free(menu->view_submenu); + free(menu->nav_submenu); + free(menu->tabs_submenu); + free(menu->tools_submenu->developer_submenu); + free(menu->tools_submenu); + free(menu->help_submenu); + free(menu); + + return NSERROR_OK; +} + +/* exported function documented in gtk/menu.h */ +nserror nsgtk_burger_menu_destroy(struct nsgtk_burger_menu *menu) +{ + gtk_widget_destroy(GTK_WIDGET(menu->burger_menu)); + + free(menu->file_submenu->export_submenu); + free(menu->file_submenu); + free(menu->edit_submenu); + free(menu->view_submenu->tabs_submenu); + free(menu->view_submenu->toolbars_submenu); + free(menu->view_submenu->scaleview_submenu); + free(menu->view_submenu); + free(menu->nav_submenu); + free(menu->tabs_submenu); + free(menu->tools_submenu->developer_submenu); + free(menu->tools_submenu); + free(menu->help_submenu); + free(menu); + + return NSERROR_OK; +} + + +/* exported function documented in gtk/menu.h */ +nserror nsgtk_popup_menu_destroy(struct nsgtk_popup_menu *menu) +{ + gtk_widget_destroy(GTK_WIDGET(menu->popup_menu)); + + free(menu->toolbars_submenu); + free(menu->tools_submenu->developer_submenu); + free(menu->tools_submenu); + free(menu); + + return NSERROR_OK; +} + + +/* exported function documented in gtk/menu.h */ +nserror nsgtk_link_menu_destroy(struct nsgtk_link_menu *menu) +{ + gtk_widget_destroy(GTK_WIDGET(menu->link_menu)); + + free(menu); + + return NSERROR_OK; +} |