示例#1
0
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;
}
示例#2
0
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;
}