Skip to content

Commit

Permalink
added simple code to reproduce gtk3 library issue in windows/msys2 (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
giuspen committed Oct 7, 2022
1 parent 3fff0b2 commit 4c31480
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
1 change: 1 addition & 0 deletions sandbox/gtkmm/.gitignore
Expand Up @@ -3,4 +3,5 @@ codebox3
columnedit
window_position_get_set.exe
simpletextview.exe
simplemenu.exe
vte
50 changes: 50 additions & 0 deletions 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 <gtk/gtk.h>

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;
}

0 comments on commit 4c31480

Please sign in to comment.