static gboolean show_menu(GtkWidget *widget, GdkEventButton *event) { GtkWidget *menu = gtk_menu_new(); GtkWidget *header_item; if (event->button != 1) return FALSE; /* Create the menu items */ header_item = gtk_menu_item_new_with_label("Help"); gtk_widget_set_sensitive(header_item, FALSE); gtk_menu_append(GTK_MENU(menu), header_item); gtk_widget_show(header_item); /* Contact button */ GtkWidget* contact_item = gtk_image_menu_item_new_with_label("Contact Us"); g_signal_connect(contact_item, "activate", G_CALLBACK(contact_clicked), NULL); gtk_menu_append(GTK_MENU(menu), contact_item); gtk_widget_show(contact_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(contact_item), get_resized_icon(CONTACT_ICON)); /* Knowledge button */ GtkWidget* knowledge_item = gtk_image_menu_item_new_with_label("Help Center"); g_signal_connect(knowledge_item, "activate", G_CALLBACK(knowledge_clicked), NULL); gtk_menu_append(GTK_MENU(menu), knowledge_item); gtk_widget_show(knowledge_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(knowledge_item), get_resized_icon(KNOWLEDGE_ICON)); /* Screenshot button */ GtkWidget* screenshot_item = gtk_image_menu_item_new_with_label("Report a Problem"); g_signal_connect(screenshot_item, "activate", G_CALLBACK(screenshot_clicked), NULL); gtk_menu_append(GTK_MENU(menu), screenshot_item); gtk_widget_show(screenshot_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(screenshot_item), get_resized_icon(SCREENSHOT_ICON)); g_signal_connect(menu, "selection-done", G_CALLBACK(selection_done), NULL); /* Show the menu. */ gtk_menu_popup(GTK_MENU(menu), NULL, NULL, (GtkMenuPositionFunc) menu_pos, widget, event->button, event->time); return TRUE; }
static gboolean show_menu(GtkWidget *widget, GdkEventButton *event) { GtkWidget *menu = gtk_menu_new(); GtkWidget *header_item; if (event->button != 1) return FALSE; /* Create the menu items */ header_item = gtk_menu_item_new_with_label("Settings"); gtk_widget_set_sensitive(header_item, FALSE); gtk_menu_append(GTK_MENU(menu), header_item); gtk_widget_show(header_item); /* Keyboard button */ GtkWidget* keyboard_item = gtk_image_menu_item_new_with_label("Keyboard"); g_signal_connect(keyboard_item, "activate", G_CALLBACK(settings_clicked), "0"); gtk_menu_append(GTK_MENU(menu), keyboard_item); gtk_widget_show(keyboard_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(keyboard_item), get_resized_icon(KEYBOARD_ICON)); /* Mouse button */ GtkWidget* mouse_item = gtk_image_menu_item_new_with_label("Mouse"); g_signal_connect(mouse_item, "activate", G_CALLBACK(settings_clicked), "1"); gtk_menu_append(GTK_MENU(menu), mouse_item); gtk_widget_show(mouse_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(mouse_item), get_resized_icon(MOUSE_ICON)); /* Audio button */ GtkWidget* audio_item = gtk_image_menu_item_new_with_label("Audio"); g_signal_connect(audio_item, "activate", G_CALLBACK(settings_clicked), "2"); gtk_menu_append(GTK_MENU(menu), audio_item); gtk_widget_show(audio_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(audio_item), get_resized_icon(AUDIO_ICON)); /* Display button */ GtkWidget* display_item = gtk_image_menu_item_new_with_label("Display"); g_signal_connect(display_item, "activate", G_CALLBACK(settings_clicked), "3"); gtk_menu_append(GTK_MENU(menu), display_item); gtk_widget_show(display_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(display_item), get_resized_icon(DISPLAY_ICON)); /* WiFi button */ GtkWidget* wifi_item = gtk_image_menu_item_new_with_label("WiFi"); g_signal_connect(wifi_item, "activate", G_CALLBACK(settings_clicked), "4"); gtk_menu_append(GTK_MENU(menu), wifi_item); gtk_widget_show(wifi_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(wifi_item), get_resized_icon(WIFI_ICON)); /* All button */ GtkWidget* all_item = gtk_image_menu_item_new_with_label("All settings"); g_signal_connect(all_item, "activate", G_CALLBACK(settings_clicked), ""); gtk_menu_append(GTK_MENU(menu), all_item); gtk_widget_show(all_item); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(all_item), get_resized_icon(ICON_FILE)); g_signal_connect(menu, "selection-done", G_CALLBACK(selection_done), NULL); /* Show the menu. */ gtk_menu_popup(GTK_MENU(menu), NULL, NULL, (GtkMenuPositionFunc) menu_pos, widget, event->button, event->time); return TRUE; }