gboolean gd_tagged_entry_get_tag_button_visible (GdTaggedEntry *self) { g_return_val_if_fail (GD_IS_TAGGED_ENTRY (self), FALSE); return self->button_visible; }
void gd_tagged_entry_set_tag_button_visible (GdTaggedEntry *self, gboolean visible) { g_return_if_fail (GD_IS_TAGGED_ENTRY (self)); if (self->button_visible == visible) return; self->button_visible = visible; gtk_widget_queue_resize (GTK_WIDGET (self)); g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_TAG_BUTTON_VISIBLE]); }
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); } }
static gboolean ide_editor_frame__search_key_press_event (IdeEditorFrame *self, GdkEventKey *event, GdTaggedEntry *entry) { g_assert (IDE_IS_EDITOR_FRAME (self)); g_assert (GD_IS_TAGGED_ENTRY (entry)); switch (event->keyval) { case GDK_KEY_Escape: ide_widget_action (GTK_WIDGET (self->search_frame), "search-entry", "exit-search", NULL); return GDK_EVENT_STOP; case GDK_KEY_KP_Enter: case GDK_KEY_Return: /* stash the search string for later */ g_free (self->previous_search_string); g_object_get (self->search_entry, "text", &self->previous_search_string, NULL); ide_widget_action (GTK_WIDGET (self), "frame", "next-search-result", NULL); gtk_widget_grab_focus (GTK_WIDGET (self->source_view)); return GDK_EVENT_STOP; case GDK_KEY_Down: ide_widget_action (GTK_WIDGET (self), "frame", "next-search-result", NULL); return GDK_EVENT_STOP; case GDK_KEY_Up: ide_widget_action (GTK_WIDGET (self), "frame", "previous-search-result", NULL); return GDK_EVENT_STOP; default: { if (!ide_source_view_get_rubberband_search (self->source_view)) ide_source_view_set_rubberband_search (self->source_view, TRUE); } break; } return GDK_EVENT_PROPAGATE; }