Advertisement
thecplusplusguy

GTK+ tutorial 17

Jun 27th, 2012
1,320
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. //http://www.youtube.com/user/thecplusplusguy
  2. //Thanks for the typed in code to Tapit85
  3. #include <gtk/gtk.h>
  4. #include <cstring>
  5.  
  6. static void menu_response(GtkWidget* menu_item, gpointer data)
  7. {
  8.     if(strcmp(gtk_menu_item_get_label(GTK_MENU_ITEM(menu_item)), "New") == 0)   // equal
  9.     {
  10.         g_print("You pressed New\n");
  11.     }
  12.     if(strcmp(gtk_menu_item_get_label(GTK_MENU_ITEM(menu_item)), "Exit") == 0)  // equal
  13.     {
  14.         g_print("You pressed Exit\n");
  15.     }
  16.     if(strcmp(gtk_menu_item_get_label(GTK_MENU_ITEM(menu_item)), "About") == 0) // equal
  17.     {
  18.         g_print("You pressed About\n");
  19.     }
  20. }
  21.  
  22. int main(int argc, char* argv[])
  23. {
  24.     gtk_init(&argc, &argv);
  25.     GtkWidget *window, *menu_bar, *menu_item, *file_menu, *help_menu, *vbox, *button;
  26.     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  27.     g_signal_connect(window, "delete-event", G_CALLBACK(gtk_main_quit), NULL);
  28.  
  29.     menu_bar = gtk_menu_bar_new();
  30.  
  31.     file_menu = gtk_menu_new();
  32.     help_menu = gtk_menu_new();
  33.  
  34.     menu_item = gtk_menu_item_new_with_label("File");
  35.     gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), file_menu);
  36.     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item);
  37.  
  38.     menu_item = gtk_menu_item_new_with_label("Help");
  39.     gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), help_menu);
  40.     gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), menu_item);
  41.  
  42.     menu_item = gtk_menu_item_new_with_label("New");
  43.     gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_item);
  44.     g_signal_connect(menu_item, "activate", G_CALLBACK(menu_response), NULL);
  45.  
  46.     menu_item = gtk_menu_item_new_with_label("Exit");
  47.     gtk_menu_shell_append(GTK_MENU_SHELL(file_menu), menu_item);
  48.     g_signal_connect(menu_item, "activate", G_CALLBACK(menu_response), NULL);
  49.  
  50.     menu_item = gtk_menu_item_new_with_label("About");
  51.     gtk_menu_shell_append(GTK_MENU_SHELL(help_menu), menu_item);
  52.     g_signal_connect(menu_item, "activate", G_CALLBACK(menu_response), NULL);
  53.  
  54.     vbox = gtk_vbox_new(0,0);
  55.     button = gtk_button_new_with_label("This is a Button");
  56.     gtk_box_pack_start(GTK_BOX(vbox), menu_bar,0,0,0);
  57.     gtk_box_pack_start(GTK_BOX(vbox), button,0,0,0);
  58.  
  59.     gtk_container_add(GTK_CONTAINER(window), vbox);
  60.  
  61.     gtk_widget_show_all(window);
  62.     gtk_main();
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement