From 4c314807c82110ab56f5064b904deb2c822d1bd2 Mon Sep 17 00:00:00 2001 From: Giuseppe Penone Date: Fri, 7 Oct 2022 23:45:48 +0100 Subject: [PATCH] added simple code to reproduce gtk3 library issue in windows/msys2 (#1916) --- sandbox/gtkmm/.gitignore | 1 + sandbox/gtkmm/simplemenu.c | 50 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 sandbox/gtkmm/simplemenu.c diff --git a/sandbox/gtkmm/.gitignore b/sandbox/gtkmm/.gitignore index 0892f37f9..cba2d7b1e 100644 --- a/sandbox/gtkmm/.gitignore +++ b/sandbox/gtkmm/.gitignore @@ -3,4 +3,5 @@ codebox3 columnedit window_position_get_set.exe simpletextview.exe +simplemenu.exe vte diff --git a/sandbox/gtkmm/simplemenu.c b/sandbox/gtkmm/simplemenu.c new file mode 100644 index 000000000..f42e9a2b6 --- /dev/null +++ b/sandbox/gtkmm/simplemenu.c @@ -0,0 +1,50 @@ + +// gcc -Wall simplemenu.c -o simplemenu `pkg-config --cflags --libs gtk+-3.0` + +// from https://zetcode.com/gui/gtk2/menusandtoolbars/ + +#include + +int main(int argc, char *argv[]) +{ + GtkWidget *window; + GtkWidget *vbox; + + GtkWidget *menubar; + GtkWidget *fileMenu; + GtkWidget *fileMi; + GtkWidget *nothingMi; + GtkWidget *label; + + gtk_init(&argc, &argv); + + window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); + gtk_window_set_default_size(GTK_WINDOW(window), 300, 200); + gtk_window_set_title(GTK_WINDOW(window), "Simple menu"); + + vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); + gtk_container_add(GTK_CONTAINER(window), vbox); + + menubar = gtk_menu_bar_new(); + fileMenu = gtk_menu_new(); + + fileMi = gtk_menu_item_new_with_label("File"); + nothingMi = gtk_menu_item_new_with_label("Do Nothing"); + + label = gtk_label_new("\nIf you hover for the first time the menu item\n\nFile-->Do Nothing\n\nyou see that the menu item changes colour / becomes selected.\n\nBut if you click on it, then you hover it again\nit won't become selected anymore!"); + + gtk_menu_item_set_submenu(GTK_MENU_ITEM(fileMi), fileMenu); + gtk_menu_shell_append(GTK_MENU_SHELL(fileMenu), nothingMi); + gtk_menu_shell_append(GTK_MENU_SHELL(menubar), fileMi); + gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); + + g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL); + + gtk_widget_show_all(window); + + gtk_main(); + + return 0; +} \ No newline at end of file