static void panel_menu_bar_init(PanelMenuBar* menubar) { GtkWidget* image; menubar->priv = PANEL_MENU_BAR_GET_PRIVATE(menubar); menubar->priv->info = NULL; menubar->priv->applications_menu = create_applications_menu("mate-applications.menu", NULL, TRUE); menubar->priv->applications_item = panel_image_menu_item_new(); gtk_menu_item_set_label(GTK_MENU_ITEM(menubar->priv->applications_item), _("Applications")); image = gtk_image_new_from_icon_name(PANEL_ICON_MAIN_MENU, panel_menu_bar_icon_get_size()); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menubar->priv->applications_item), image); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar->priv->applications_item), menubar->priv->applications_menu); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->applications_item); menubar->priv->places_item = panel_place_menu_item_new(FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->places_item); menubar->priv->desktop_item = panel_desktop_menu_item_new(FALSE, TRUE); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->desktop_item); panel_menu_bar_setup_tooltip(menubar); panel_menu_bar_update_text_gravity(menubar); g_signal_connect(menubar, "screen-changed", G_CALLBACK(panel_menu_bar_update_text_gravity), NULL); }
static void panel_menu_bar_init (PanelMenuBar *menubar) { menubar->priv = PANEL_MENU_BAR_GET_PRIVATE (menubar); menubar->priv->info = NULL; menubar->priv->applications_menu = create_applications_menu ("applications.menu", NULL, TRUE); menubar->priv->applications_item = panel_image_menu_item_new (); gtk_menu_item_set_label (GTK_MENU_ITEM (menubar->priv->applications_item), _("Applications")); menubar->priv->image = gtk_image_new_from_icon_name (PANEL_ICON_MAIN_MENU, panel_menu_bar_icon_get_size ()); gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar->priv->applications_item), menubar->priv->applications_menu); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menubar->priv->applications_item); gtk_widget_show (menubar->priv->applications_item); menubar->priv->places_item = panel_place_menu_item_new (FALSE); gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menubar->priv->places_item); gtk_widget_show (menubar->priv->places_item); panel_menu_bar_setup_tooltip (menubar); }
GtkWidget* create_main_menu(PanelWidget* panel) { GtkWidget* main_menu; main_menu = create_applications_menu("mate-applications.menu", NULL, TRUE); g_object_set_data(G_OBJECT(main_menu), "menu_panel", panel); /* FIXME need to update the panel on parent_set */ g_object_set_data(G_OBJECT(main_menu), "panel-menu-append-callback", main_menu_append); g_object_set_data(G_OBJECT(main_menu), "panel-menu-append-callback-data", panel); return main_menu; }
static GtkWidget * panel_desktop_menu_item_create_menu (PanelDesktopMenuItem *desktop_item) { GtkWidget *desktop_menu; desktop_menu = create_applications_menu ("mate-settings.menu", NULL, FALSE); g_object_set_data (G_OBJECT (desktop_menu), "panel-menu-append-callback", panel_desktop_menu_item_append_menu); g_object_set_data (G_OBJECT (desktop_menu), "panel-menu-append-callback-data", desktop_item); return desktop_menu; }
static void panel_menu_bar_init(PanelMenuBar* menubar) { #if GTK_CHECK_VERSION (3, 0, 0) GtkCssProvider *provider; #endif menubar->priv = PANEL_MENU_BAR_GET_PRIVATE(menubar); #if GTK_CHECK_VERSION (3, 0, 0) provider = gtk_css_provider_new (); gtk_css_provider_load_from_data (provider, "PanelMenuBar {\n" " border-width: 0px;\n" "}", -1, NULL); gtk_style_context_add_provider (gtk_widget_get_style_context (GTK_WIDGET (menubar)), GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); g_object_unref (provider); #endif menubar->priv->info = NULL; menubar->priv->settings = g_settings_new (PANEL_MENU_BAR_SCHEMA); menubar->priv->applications_menu = create_applications_menu("mate-applications.menu", NULL, TRUE); menubar->priv->applications_item = panel_image_menu_item_new(); gtk_menu_item_set_label(GTK_MENU_ITEM(menubar->priv->applications_item), _("Applications")); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menubar->priv->applications_item), menubar->priv->applications_menu); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->applications_item); menubar->priv->places_item = panel_place_menu_item_new(FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->places_item); menubar->priv->desktop_item = panel_desktop_menu_item_new(FALSE, TRUE); gtk_menu_shell_append(GTK_MENU_SHELL(menubar), menubar->priv->desktop_item); panel_menu_bar_setup_tooltip(menubar); panel_menu_bar_update_visibility(menubar->priv->settings, NULL, menubar); g_signal_connect(menubar->priv->settings, "changed", G_CALLBACK (panel_menu_bar_update_visibility), menubar); panel_menu_bar_update_text_gravity(menubar); g_signal_connect(menubar, "screen-changed", G_CALLBACK(panel_menu_bar_update_text_gravity), NULL); }
static GtkWidget * panel_menu_button_create_menu (PanelMenuButton *button) { PanelWidget *panel_widget; if (button->priv->menu) return button->priv->menu; if (!button->priv->toplevel) return NULL; panel_widget = panel_toplevel_get_panel_widget (button->priv->toplevel); if (button->priv->use_menu_path && button->priv->path_root > FIRST_MENU && button->priv->path_root < LAST_MENU) { const char *filename; filename = panel_menu_path_root_to_filename (button->priv->path_root); button->priv->menu = create_applications_menu (filename, button->priv->menu_path, TRUE); } else button->priv->menu = create_main_menu (panel_widget); gtk_menu_attach_to_widget (GTK_MENU (button->priv->menu), GTK_WIDGET (button), (GtkMenuDetachFunc) panel_menu_button_menu_detacher); panel_menu_button_associate_panel (button); g_signal_connect_swapped (button->priv->menu, "deactivate", G_CALLBACK (panel_menu_button_menu_deactivated), button); return button->priv->menu; }