static void gb_project_tree_builder_node_popup (IdeTreeBuilder *builder, IdeTreeNode *node, GMenu *menu) { GObject *item; IdeVcs *vcs; GFile *workdir; GFile *file; g_assert (GB_IS_PROJECT_TREE_BUILDER (builder)); g_assert (IDE_IS_TREE_NODE (node)); g_assert (G_IS_MENU (menu)); item = ide_tree_node_get_item (node); vcs = get_vcs (node); workdir = ide_vcs_get_working_directory (vcs); if (GB_IS_PROJECT_FILE (item) && (file = gb_project_file_get_file (GB_PROJECT_FILE (item))) && !g_file_equal (file, workdir)) { GMenu *mime_section; mime_section = ide_application_get_menu_by_id (IDE_APPLICATION_DEFAULT, "gb-project-tree-open-by-mime-section"); populate_mime_handlers (mime_section, GB_PROJECT_FILE (item)); } }
static void gb_project_tree_init (GbProjectTree *self) { GtkStyleContext *style_context; IdeTreeBuilder *builder; GMenu *menu; style_context = gtk_widget_get_style_context (GTK_WIDGET (self)); gtk_style_context_add_class (style_context, "project-tree"); self->settings = g_settings_new ("org.gnome.builder.project-tree"); g_settings_bind (self->settings, "show-icons", self, "show-icons", G_SETTINGS_BIND_DEFAULT); g_settings_bind (self->settings, "show-ignored-files", self, "show-ignored-files", G_SETTINGS_BIND_DEFAULT); builder = gb_project_tree_builder_new (); ide_tree_add_builder (IDE_TREE (self), builder); g_signal_connect (self, "notify::selection", G_CALLBACK (gb_project_tree_notify_selection), NULL); gb_project_tree_actions_init (self); menu = ide_application_get_menu_by_id (IDE_APPLICATION_DEFAULT, "gb-project-tree-popup-menu"); ide_tree_set_context_menu (IDE_TREE (self), G_MENU_MODEL (menu)); }
static void ide_workbench_header_bar_init (IdeWorkbenchHeaderBar *self) { IdeWorkbenchHeaderBarPrivate *priv = ide_workbench_header_bar_get_instance_private (self); GtkWidget *popover; GMenu *model; gtk_widget_init_template (GTK_WIDGET (self)); model = ide_application_get_menu_by_id (IDE_APPLICATION_DEFAULT, "gear-menu"); popover = gtk_popover_new_from_model (NULL, G_MENU_MODEL (model)); gtk_menu_button_set_popover (priv->menu_button, popover); }
static void ide_editor_frame__search_populate_popup (IdeEditorFrame *self, GtkWidget *popup, GdTaggedEntry *entry) { g_assert (IDE_IS_EDITOR_FRAME (self)); g_assert (GTK_IS_WIDGET (popup)); g_assert (GD_IS_TAGGED_ENTRY (entry)); if (GTK_IS_MENU_SHELL (popup)) { GMenu *menu; GActionGroup *group; GAction *action; GtkEntryBuffer *buffer; GtkClipboard *clipboard; gboolean clipboard_contains_text; gboolean entry_has_selection; group = gtk_widget_get_action_group (GTK_WIDGET (self->search_frame), "search-entry"); menu = ide_application_get_menu_by_id (IDE_APPLICATION_DEFAULT, "ide-editor-frame-search-menu"); gtk_menu_shell_bind_model (GTK_MENU_SHELL (popup), G_MENU_MODEL (menu), NULL, TRUE); clipboard = gtk_widget_get_clipboard (GTK_WIDGET (entry), GDK_SELECTION_CLIPBOARD); clipboard_contains_text = gtk_clipboard_wait_is_text_available (clipboard); action = g_action_map_lookup_action (G_ACTION_MAP (group), "paste-clipboard"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), clipboard_contains_text); entry_has_selection = gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), NULL, NULL); action = g_action_map_lookup_action (G_ACTION_MAP (group), "cut-clipboard"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), entry_has_selection); action = g_action_map_lookup_action (G_ACTION_MAP (group), "copy-clipboard"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), entry_has_selection); action = g_action_map_lookup_action (G_ACTION_MAP (group), "delete-selection"); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), entry_has_selection); action = g_action_map_lookup_action (G_ACTION_MAP (group), "select-all"); buffer = gtk_entry_get_buffer (GTK_ENTRY (self->search_entry)); g_simple_action_set_enabled (G_SIMPLE_ACTION (action), gtk_entry_buffer_get_length (buffer) > 0); } }