static void gsv_checkbutton_toggled_cb (GtkToggleButton *gsv_checkbutton, GtkSourceView *view) { if (gtk_toggle_button_get_active (gsv_checkbutton)) { gtk_source_view_set_draw_spaces (view, GTK_SOURCE_DRAW_SPACES_ALL); } else { gtk_source_view_set_draw_spaces (view, 0); } }
GtkSourceView * init_buffer_view(GtkSourceBuffer *source_buffer) { GtkSourceView *source_view = GTK_SOURCE_VIEW(gtk_source_view_new_with_buffer(source_buffer)); set_class(GTK_WIDGET(source_view), "editor"); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(source_view), 4); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(source_view), GTK_WRAP_CHAR); gtk_source_view_set_draw_spaces(source_view, GTK_SOURCE_DRAW_SPACES_TAB); gtk_source_view_set_auto_indent(source_view, TRUE); gtk_source_view_set_indent_on_tab(source_view, TRUE); //gtk_source_view_set_show_line_numbers(source_view, TRUE); return source_view; }
src_view___::src_view___(GtkWidget* scrolled2, void* window):view___(scrolled2, window) { buf_ = GTK_SOURCE_BUFFER (gtk_source_buffer_new (NULL)); widget_ = gtk_source_view_new_with_buffer(buf_); gtk_container_add (GTK_CONTAINER (scrolled2), widget_); GtkSourceView* sv = handle__(); gtk_source_view_set_show_line_numbers(sv, true); gtk_source_view_set_tab_width(sv, 4); gtk_source_view_set_auto_indent (sv, true); gtk_source_view_set_smart_home_end(sv, GTK_SOURCE_SMART_HOME_END_ALWAYS); gtk_source_view_set_draw_spaces (sv, GTK_SOURCE_DRAW_SPACES_ALL); gtk_widget_set_can_focus(widget_, true); }
static void on_notify_view_eol (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); GtkSourceDrawSpacesFlags flags = gtk_source_view_get_draw_spaces (GTK_SOURCE_VIEW (sv->priv->view)); if (g_settings_get_boolean (settings, key)) flags |= GTK_SOURCE_DRAW_SPACES_NEWLINE; else flags &= ~GTK_SOURCE_DRAW_SPACES_NEWLINE; gtk_source_view_set_draw_spaces (GTK_SOURCE_VIEW(sv->priv->view), flags); }
static void tab_added_cb (PlumaWindow *window, PlumaTab *tab, PlumaDrawspacesPlugin *plugin) { PlumaView *view; WindowData *data; data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); g_return_if_fail (data != NULL); if (data->enable) { view = pluma_tab_get_view (tab); gtk_source_view_set_draw_spaces (GTK_SOURCE_VIEW (view), plugin->priv->flags); } }
static void draw_spaces_in_window (PlumaWindow *window, PlumaDrawspacesPlugin *plugin) { GList *views, *l; WindowData *data; data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); g_return_if_fail (data != NULL); views = pluma_window_get_views (window); for (l = views; l != NULL; l = g_list_next (l)) { gtk_source_view_set_draw_spaces (GTK_SOURCE_VIEW (l->data), data->enable ? plugin->priv->flags : 0); } g_list_free (views); }
void sourceview_prefs_init(Sourceview* sv) { GtkSourceDrawSpacesFlags flags = 0; /* We create a new GSettings object here because if we used the one from * the editor might be destroyed while the plugin is still alive */ sv->priv->settings = g_settings_new (PREF_SCHEMA); sv->priv->docman_settings = g_settings_new (DOCMAN_PREF_SCHEMA); sv->priv->msgman_settings = g_settings_new (MSGMAN_PREF_SCHEMA); /* Bind simple options to GSettings */ g_settings_bind (sv->priv->settings, HIGHLIGHT_SYNTAX, sv->priv->document, "highlight-syntax", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, HIGHLIGHT_CURRENT_LINE, sv->priv->view, "highlight-current-line", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, TAB_SIZE, sv->priv->view, "tab-width", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, HIGHLIGHT_BRACKETS, sv->priv->document, "highlight-matching-brackets", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, VIEW_MARKS, sv->priv->view, "show-line-marks", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, RIGHTMARGIN_POSITION, sv->priv->view, "right-margin-position", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, VIEW_RIGHTMARGIN, sv->priv->view, "show-right-margin", G_SETTINGS_BIND_GET); g_settings_bind (sv->priv->settings, VIEW_LINENUMBERS, sv->priv->view, "show-line-numbers", G_SETTINGS_BIND_GET); /* Init non-simple options */ gtk_source_view_set_indent_width(GTK_SOURCE_VIEW(sv->priv->view), -1); /* Same as tab width */ gtk_source_view_set_insert_spaces_instead_of_tabs(GTK_SOURCE_VIEW(sv->priv->view), !g_settings_get_boolean (sv->priv->settings, USE_TABS)); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (sv->priv->view), g_settings_get_boolean (sv->priv->docman_settings, DOCMAN_VIEW_EOL) ? GTK_WRAP_WORD : GTK_WRAP_NONE); if (g_settings_get_boolean (sv->priv->docman_settings, DOCMAN_VIEW_WHITE_SPACES)) flags |= (GTK_SOURCE_DRAW_SPACES_SPACE | GTK_SOURCE_DRAW_SPACES_TAB); if (g_settings_get_boolean (sv->priv->docman_settings, DOCMAN_VIEW_EOL)) flags |= GTK_SOURCE_DRAW_SPACES_NEWLINE; gtk_source_view_set_draw_spaces (GTK_SOURCE_VIEW (sv->priv->view), flags); init_fonts(sv); on_notify_autocompletion(sv->priv->settings, AUTOCOMPLETION, sv); /* Register notifications */ REGISTER_NOTIFY (sv->priv->settings, USE_TABS, on_notify_use_tab_for_indentation); REGISTER_NOTIFY (sv->priv->settings, AUTOCOMPLETION, on_notify_autocompletion); REGISTER_NOTIFY (sv->priv->docman_settings, DOCMAN_VIEW_WHITE_SPACES, on_notify_view_spaces); REGISTER_NOTIFY (sv->priv->docman_settings, DOCMAN_VIEW_EOL, on_notify_view_eol); REGISTER_NOTIFY (sv->priv->docman_settings, DOCMAN_VIEW_LINE_WRAP, on_notify_line_wrap); REGISTER_NOTIFY (sv->priv->settings, FONT_THEME, on_notify_font_theme); REGISTER_NOTIFY (sv->priv->settings, FONT, on_notify_font); g_signal_connect (sv->priv->msgman_settings, "changed::" MSGMAN_COLOR_ERROR, G_CALLBACK (on_notify_indic_colors), sv); g_signal_connect (sv->priv->msgman_settings, "changed::" MSGMAN_COLOR_WARNING, G_CALLBACK (on_notify_indic_colors), sv); }
static void create_window (void) { GtkWidget *window; GtkWidget *hgrid; GtkWidget *panel_grid; GtkWidget *scrolled_window; GtkWidget *gsv_checkbutton; GtkWidget *tag_set_checkbutton; GtkWidget *tag_checkbutton; GtkSourceView *view; GtkSourceBuffer *buffer; GtkTextTag *tag; window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size (GTK_WINDOW (window), 800, 600); g_signal_connect (window, "destroy", gtk_main_quit, NULL); hgrid = gtk_grid_new (); gtk_orientable_set_orientation (GTK_ORIENTABLE (hgrid), GTK_ORIENTATION_HORIZONTAL); view = GTK_SOURCE_VIEW (gtk_source_view_new ()); g_object_set (view, "expand", TRUE, NULL); gtk_text_view_set_monospace (GTK_TEXT_VIEW (view), TRUE); buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view))); tag = gtk_source_buffer_create_source_tag (buffer, NULL, "draw-spaces", FALSE, NULL); fill_buffer (GTK_TEXT_BUFFER (buffer), tag); gtk_source_view_set_draw_spaces (view, GTK_SOURCE_DRAW_SPACES_ALL); panel_grid = gtk_grid_new (); gtk_orientable_set_orientation (GTK_ORIENTABLE (panel_grid), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (hgrid), panel_grid); gtk_grid_set_row_spacing (GTK_GRID (panel_grid), 6); g_object_set (panel_grid, "margin", 6, NULL); gsv_checkbutton = gtk_check_button_new_with_label ("GtkSourceView draw-spaces"); gtk_container_add (GTK_CONTAINER (panel_grid), gsv_checkbutton); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gsv_checkbutton), TRUE); g_signal_connect (gsv_checkbutton, "toggled", G_CALLBACK (gsv_checkbutton_toggled_cb), view); tag_set_checkbutton = gtk_check_button_new_with_label ("GtkSourceTag draw-spaces-set"); gtk_container_add (GTK_CONTAINER (panel_grid), tag_set_checkbutton); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tag_set_checkbutton), TRUE); g_object_bind_property (tag_set_checkbutton, "active", tag, "draw-spaces-set", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); tag_checkbutton = gtk_check_button_new_with_label ("GtkSourceTag draw-spaces"); gtk_container_add (GTK_CONTAINER (panel_grid), tag_checkbutton); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tag_checkbutton), FALSE); g_object_bind_property (tag_checkbutton, "active", tag, "draw-spaces", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_container_add (GTK_CONTAINER (scrolled_window), GTK_WIDGET (view)); gtk_container_add (GTK_CONTAINER (hgrid), scrolled_window); gtk_container_add (GTK_CONTAINER (window), hgrid); gtk_widget_show_all (window); }