GeditMenuExtension * _gedit_app_extend_menu (GeditApp *app, const gchar *extension_point) { GeditAppPrivate *priv; GMenuModel *model; GMenuModel *section; g_return_val_if_fail (GEDIT_IS_APP (app), NULL); g_return_val_if_fail (extension_point != NULL, NULL); priv = gedit_app_get_instance_private (app); /* First look in the window menu */ section = find_extension_point_section (priv->window_menu, extension_point); /* otherwise look in the app menu */ if (section == NULL) { model = gtk_application_get_app_menu (GTK_APPLICATION (app)); if (model != NULL) { section = find_extension_point_section (model, extension_point); } } return section != NULL ? gedit_menu_extension_new (G_MENU (section)) : NULL; }
static void gtk_application_window_update_shell_shows_app_menu (GtkApplicationWindow *window, GtkSettings *settings) { gboolean shown_by_shell; gboolean shown_by_titlebar; g_object_get (settings, "gtk-shell-shows-app-menu", &shown_by_shell, NULL); shown_by_titlebar = _gtk_window_titlebar_shows_app_menu (GTK_WINDOW (window)); if (shown_by_shell || shown_by_titlebar) { /* the shell shows it, so don't show it locally */ if (g_menu_model_get_n_items (G_MENU_MODEL (window->priv->app_menu_section)) != 0) g_menu_remove (window->priv->app_menu_section, 0); } else { /* the shell does not show it, so make sure we show it */ if (g_menu_model_get_n_items (G_MENU_MODEL (window->priv->app_menu_section)) == 0) { GMenuModel *app_menu = NULL; if (gtk_window_get_application (GTK_WINDOW (window)) != NULL) app_menu = gtk_application_get_app_menu (gtk_window_get_application (GTK_WINDOW (window))); if (app_menu != NULL) { const gchar *app_name; gchar *name; app_name = g_get_application_name (); if (app_name != g_get_prgname ()) { /* the app has set its application name, use it */ name = g_strdup (app_name); } else { /* get the name from .desktop file */ name = gtk_application_window_get_app_desktop_name (); if (name == NULL) name = g_strdup (_("Application")); } g_menu_append_submenu (window->priv->app_menu_section, name, app_menu); g_free (name); } } } }
static void gtk_application_menu_changed_quartz (GObject *object, GParamSpec *pspec, gpointer user_data) { GtkApplication *application = GTK_APPLICATION (object); GMenu *combined; combined = g_menu_new (); g_menu_append_submenu (combined, "Application", gtk_application_get_app_menu (application)); g_menu_append_section (combined, NULL, gtk_application_get_menubar (application)); gtk_quartz_set_main_menu (G_MENU_MODEL (combined), G_ACTION_OBSERVABLE (application->priv->muxer)); }
static void gw_application_initialize_menumodel_links (GwApplication *application) { //Sanity checks g_return_if_fail (application != NULL); //Declarations GwVocabularyListStore *store; GMenuModel *menumodel; GMenuModel *link; //Initializations menumodel = gtk_application_get_app_menu (GTK_APPLICATION (application)); g_return_if_fail (menumodel != NULL); store = GW_VOCABULARYLISTSTORE (gw_application_get_vocabularyliststore (application)); link = gw_vocabularyliststore_get_menumodel (store); gw_menumodel_set_links (menumodel, "vocabulary-list-link", gettext ("Vocabulary"), G_MENU_LINK_SECTION, link); }