# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1612173942 0 # Node ID 2ce302c43f486ac7cb5a82d13373332a8774d1bb # Parent 1c52cd5a817fb3eddd1b6109fd56e7d054e8452a GTK4: Initial menu functionality... basic creation works... no callbacks. diff -r 1c52cd5a817f -r 2ce302c43f48 gtk4/dw.c --- a/gtk4/dw.c Mon Feb 01 04:07:22 2021 +0000 +++ b/gtk4/dw.c Mon Feb 01 10:05:42 2021 +0000 @@ -2150,7 +2150,8 @@ */ HMENUI dw_menu_new(unsigned long id) { - HMENUI tmp = gtk_popover_menu_new_from_model_full(NULL, GTK_POPOVER_MENU_NESTED); + GMenu *menu = g_menu_new(); + HMENUI tmp = gtk_popover_menu_new_from_model_full(G_MENU_MODEL(menu), GTK_POPOVER_MENU_NESTED); g_object_set_data(G_OBJECT(tmp), "_dw_id", GINT_TO_POINTER(id)); return tmp; @@ -2171,12 +2172,15 @@ if(GTK_IS_WINDOW(location) && (box = GTK_WIDGET(g_object_get_data(G_OBJECT(location), "_dw_grid")))) { + GMenu *menu = g_menu_new(); /* If there is an existing menu bar, remove it */ GtkWidget *oldmenu = GTK_WIDGET(g_object_get_data(G_OBJECT(location), "_dw_menubar")); + if(oldmenu && GTK_IS_WIDGET(oldmenu)) gtk_grid_remove(GTK_GRID(box), tmp); + /* Create a new menu bar */ - tmp = gtk_popover_menu_bar_new_from_model(NULL); + tmp = gtk_popover_menu_bar_new_from_model(G_MENU_MODEL(menu)); gtk_widget_show(tmp); /* Save pointers to each other */ g_object_set_data(G_OBJECT(location), "_dw_menubar", (gpointer)tmp); @@ -2214,6 +2218,30 @@ } } +char _dw_removetilde(char *dest, const char *src) +{ + int z, cur=0; + char accel = '\0'; + + for(z=0;z