static void update_ui (GeditSpellPlugin *plugin) { GeditSpellPluginPrivate *priv; GeditView *view; GAction *check_spell_action; GAction *config_spell_action; GAction *auto_spell_action; gedit_debug (DEBUG_PLUGINS); priv = plugin->priv; view = gedit_window_get_active_view (priv->window); check_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "check-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (check_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); config_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "config-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (config_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); auto_spell_action = g_action_map_lookup_action (G_ACTION_MAP (priv->window), "auto-spell"); g_simple_action_set_enabled (G_SIMPLE_ACTION (auto_spell_action), (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); if (view != NULL) { GeditDocument *doc; GeditTab *tab; GeditTabState state; gboolean autospell; doc = GEDIT_DOCUMENT (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view))); tab = gedit_window_get_active_tab (priv->window); state = gedit_tab_get_state (tab); autospell = (doc != NULL && gedit_automatic_spell_checker_get_from_document (doc) != NULL); /* If the document is loading we can't get the metadata so we endup with an useless speller */ if (state == GEDIT_TAB_STATE_NORMAL) { g_action_change_state (auto_spell_action, g_variant_new_boolean (autospell)); } g_simple_action_set_enabled (G_SIMPLE_ACTION (check_spell_action), gtk_text_buffer_get_char_count (GTK_TEXT_BUFFER (doc)) > 0); } }
static void update_ui_real (CeditWindow *window, WindowData *data) { GtkTextView *view; GtkAction *action; gboolean sensitive = FALSE; cedit_debug (DEBUG_PLUGINS); view = GTK_TEXT_VIEW (cedit_window_get_active_view (window)); if (view != NULL) { GtkTextBuffer *buffer; buffer = gtk_text_view_get_buffer (view); sensitive = (gtk_text_view_get_editable (view) && gtk_text_buffer_get_has_selection (buffer)); } action = gtk_action_group_get_action (data->action_group, "ChangeCase"); gtk_action_set_sensitive (action, sensitive); }
static void ygtk_text_view_populate_popup (GtkTextView *view, GtkMenu *menu) #endif { if (gtk_text_view_get_editable (view)) return; GtkTextBuffer *buffer = gtk_text_view_get_buffer (view); GList *items = gtk_container_get_children (GTK_CONTAINER (menu)), *i; for (i = items; i; i = i->next) gtk_container_remove (GTK_CONTAINER (menu), i->data); g_list_free (items); GtkWidget *item; item = gtk_menu_item_new(); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); if (gtk_text_buffer_get_has_selection (buffer)) g_signal_connect (item, "activate", G_CALLBACK (copy_activate_cb), buffer); else gtk_widget_set_sensitive (item, FALSE); item = gtk_separator_menu_item_new(); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); item = gtk_menu_item_new(); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); g_signal_connect (item, "activate", G_CALLBACK (select_all_activate_cb), buffer); gtk_widget_show_all (GTK_WIDGET (menu)); }
static void gbp_retab_editor_page_addin_action (GSimpleAction *action, GVariant *variant, gpointer user_data) { GbpRetabEditorPageAddin *self = user_data; IdeSourceView *source_view; GtkTextBuffer *buffer; IdeCompletion *completion; guint tab_width; gint start_line; gint end_line; gint indent; GtkTextIter begin; GtkTextIter end; gboolean editable; gboolean to_spaces; g_assert (GBP_IS_RETAB_EDITOR_PAGE_ADDIN (self)); g_assert (G_IS_SIMPLE_ACTION (action)); buffer = GTK_TEXT_BUFFER (ide_editor_page_get_buffer (self->editor_view)); source_view = ide_editor_page_get_view (self->editor_view); g_assert (IDE_IS_SOURCE_VIEW (source_view)); editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (source_view)); completion = ide_source_view_get_completion (IDE_SOURCE_VIEW (source_view)); tab_width = gtk_source_view_get_tab_width(GTK_SOURCE_VIEW (source_view)); to_spaces = gtk_source_view_get_insert_spaces_instead_of_tabs(GTK_SOURCE_VIEW (source_view)); if (!editable) return; gtk_text_buffer_get_selection_bounds (buffer, &begin, &end); gtk_text_iter_order (&begin, &end); if (!gtk_text_iter_equal (&begin, &end) && gtk_text_iter_starts_line (&end)) gtk_text_iter_backward_char (&end); start_line = gtk_text_iter_get_line (&begin); end_line = gtk_text_iter_get_line (&end); ide_completion_block_interactive (completion); gtk_text_buffer_begin_user_action (buffer); for (gint line = start_line; line <= end_line; ++line) { indent = get_buffer_range_indent (buffer, line, to_spaces); if (indent > 0) gbp_retab_editor_page_addin_retab (buffer, line, tab_width, indent, to_spaces); } gtk_text_buffer_end_user_action (buffer); ide_completion_unblock_interactive (completion); }
static void ygtk_text_view_realize (GtkWidget *widget) { GTK_WIDGET_CLASS (ygtk_text_view_parent_class)->realize (widget); GtkTextView *view = GTK_TEXT_VIEW (widget); if (!gtk_text_view_get_editable (view)) { gtk_text_view_set_cursor_visible (view, FALSE); GdkWindow *window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_TEXT); gdk_window_set_cursor (window, NULL); } }
static void update_ui (PlumaSpellPlugin *plugin) { PlumaSpellPluginPrivate *data; PlumaWindow *window; PlumaDocument *doc; PlumaView *view; gboolean autospell; GtkAction *action; pluma_debug (DEBUG_PLUGINS); data = plugin->priv; window = PLUMA_WINDOW (data->window); doc = pluma_window_get_active_document (window); view = pluma_window_get_active_view (window); autospell = (doc != NULL && pluma_automatic_spell_checker_get_from_document (doc) != NULL); if (doc != NULL) { PlumaTab *tab; PlumaTabState state; tab = pluma_window_get_active_tab (window); state = pluma_tab_get_state (tab); /* If the document is loading we can't get the metadata so we endup with an useless speller */ if (state == PLUMA_TAB_STATE_NORMAL) { action = gtk_action_group_get_action (data->action_group, "AutoSpell"); g_signal_handlers_block_by_func (action, auto_spell_cb, plugin); set_auto_spell (window, doc, autospell); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), autospell); g_signal_handlers_unblock_by_func (action, auto_spell_cb, plugin); } } gtk_action_group_set_sensitive (data->action_group, (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); }
static void update_ui_real (GeditWindow *window, WindowData *data) { GeditDocument *doc; GeditView *view; gboolean autospell; GtkAction *action; gedit_debug (DEBUG_PLUGINS); doc = gedit_window_get_active_document (window); view = gedit_window_get_active_view (window); autospell = (doc != NULL && gedit_automatic_spell_checker_get_from_document (doc) != NULL); if (doc != NULL) { GeditTab *tab; GeditTabState state; tab = gedit_window_get_active_tab (window); state = gedit_tab_get_state (tab); /* If the document is loading we can't get the metadata so we endup with an useless speller */ if (state == GEDIT_TAB_STATE_NORMAL) { action = gtk_action_group_get_action (data->action_group, "AutoSpell"); g_signal_handlers_block_by_func (action, auto_spell_cb, window); set_auto_spell (window, doc, autospell); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), autospell); g_signal_handlers_unblock_by_func (action, auto_spell_cb, window); } } gtk_action_group_set_sensitive (data->action_group, (view != NULL) && gtk_text_view_get_editable (GTK_TEXT_VIEW (view))); }
bool gTextArea::readOnly() { return !gtk_text_view_get_editable(GTK_TEXT_VIEW(textview)); }
static int delete_selection_in_gtk_text_view(GtkTextView *text_view, enum UTextOrigin origin, int former_req_len, int latter_req_len) { GtkTextIter current, start, end, tmp_start, tmp_end; gboolean cursor_at_beginning = FALSE; if (!gtk_text_view_get_buffer(text_view)) return -1; if (gtk_text_buffer_get_selection_bounds(gtk_text_view_get_buffer(text_view), &start, &end)) { gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(text_view), ¤t, gtk_text_buffer_get_mark(gtk_text_view_get_buffer(text_view), "insert")); if (gtk_text_iter_compare(&start, ¤t) == 0) cursor_at_beginning = TRUE; } else { return -1; } if (origin == UTextOrigin_Beginning || (origin == UTextOrigin_Cursor && cursor_at_beginning)) { tmp_start = start; tmp_end = start; if (latter_req_len >= 0) { gtk_text_iter_forward_chars(&tmp_end, latter_req_len); if (gtk_text_iter_compare(&tmp_end, &end) < 0) end = tmp_end; } else { if (latter_req_len == UTextExtent_Line) { gtk_text_view_forward_display_line_end(text_view, &tmp_end); if (gtk_text_iter_compare(&tmp_end, &end) < 0) end = tmp_end; } else { if (!(latter_req_len == UTextExtent_Full)) return -1; } } } else if (origin == UTextOrigin_End || (origin == UTextOrigin_Cursor && !cursor_at_beginning)) { tmp_start = end; tmp_end = end; if (former_req_len >= 0) { gtk_text_iter_backward_chars(&tmp_start, former_req_len); if (gtk_text_iter_compare(&tmp_start, &start) > 0) start = tmp_start; } else { if (former_req_len == UTextExtent_Line) { gtk_text_view_backward_display_line_start(text_view, &tmp_start); if (gtk_text_iter_compare(&tmp_start, &start) > 0) start = tmp_start; } else { if (!(former_req_len == UTextExtent_Full)) return -1; } } } else { return -1; } gtk_text_buffer_delete_interactive(gtk_text_view_get_buffer(text_view), &start, &end, gtk_text_view_get_editable(text_view)); return 0; }
static int delete_text_in_gtk_text_view(GtkTextView *text_view, enum UTextOrigin origin, int former_req_len, int latter_req_len) { GtkTextIter current, start, end; if (!gtk_text_view_get_buffer(text_view)) return -1; gtk_text_buffer_get_iter_at_mark(gtk_text_view_get_buffer(text_view), ¤t, gtk_text_buffer_get_mark(gtk_text_view_get_buffer(text_view), "insert")); start = current; end = current; switch (origin) { case UTextOrigin_Cursor: if (former_req_len >= 0) { gtk_text_iter_backward_chars(&start, former_req_len); } else { if (former_req_len == UTextExtent_Full) gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(text_view), &start); else if (former_req_len == UTextExtent_Line) gtk_text_view_backward_display_line_start(text_view, &start); else return -1; } if (latter_req_len >= 0) gtk_text_iter_forward_chars(&end, latter_req_len); else { if (latter_req_len == UTextExtent_Full) gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(text_view), &end); else if (latter_req_len == UTextExtent_Line) gtk_text_view_forward_display_line_end(text_view, &end); else return -1; } break; case UTextOrigin_Beginning: gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(text_view), &start); end = start; if (latter_req_len >= 0) gtk_text_iter_forward_chars(&end, latter_req_len); else { if (latter_req_len == UTextExtent_Full) gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(text_view), &end); else if (latter_req_len == UTextExtent_Line) gtk_text_view_forward_display_line_end(text_view, &end); else return -1; } break; case UTextOrigin_End: gtk_text_buffer_get_end_iter(gtk_text_view_get_buffer(text_view), &end); start = end; if (former_req_len >= 0) { gtk_text_iter_backward_chars(&start, former_req_len); } else { if (former_req_len == UTextExtent_Full) gtk_text_buffer_get_start_iter(gtk_text_view_get_buffer(text_view), &start); else if (former_req_len == UTextExtent_Line) gtk_text_view_backward_display_line_start(text_view, &start); else return -1; } break; case UTextOrigin_Unspecified: default: return -1; } gtk_text_buffer_delete_interactive(gtk_text_view_get_buffer(text_view), &start, &end, gtk_text_view_get_editable(text_view)); return 0; }