static void recalculate_size (GtkSourceGutterRendererLines *renderer) { gint num_lines; gint num_digits = 0; GtkTextBuffer *buffer; buffer = get_buffer (renderer); num_lines = gtk_text_buffer_get_line_count (buffer); num_digits = count_num_digits (num_lines); if (num_digits != renderer->priv->num_line_digits) { gchar markup[24]; gint size; renderer->priv->num_line_digits = num_digits; num_lines = MAX (num_lines, 99); g_snprintf (markup, sizeof markup, "<b>%d</b>", num_lines); gtk_source_gutter_renderer_text_measure_markup (GTK_SOURCE_GUTTER_RENDERER_TEXT (renderer), markup, &size, NULL); gtk_source_gutter_renderer_set_size (GTK_SOURCE_GUTTER_RENDERER (renderer), size); } }
void SourceEditor::enableFolding() { if (!foldingEnabled()) { m_foldsData.resize(lineCount()); GtkSourceView *view = gtkSourceView(); GtkSourceGutter *gutter = gtk_source_view_get_gutter(view, GTK_TEXT_WINDOW_LEFT); m_foldsRenderer = gtk_source_gutter_renderer_pixbuf_new(); gtk_source_gutter_insert(gutter, m_foldsRenderer, FOLD_POSITION); g_signal_connect(m_foldsRenderer, "activate", G_CALLBACK(activateFold), this); g_signal_connect(m_foldsRenderer, "query-activatable", G_CALLBACK(queryFoldActivatable), this); g_signal_connect(m_foldsRenderer, "query-data", G_CALLBACK(queryFoldData), this); gtk_source_gutter_renderer_set_alignment_mode( m_foldsRenderer, GTK_SOURCE_GUTTER_RENDERER_ALIGNMENT_MODE_FIRST); gtk_source_gutter_renderer_set_size(m_foldsRenderer, measureLineHeight(view) - 2); } }
static void gutter_renderer_change_view (GtkSourceGutterRenderer *renderer, GtkTextView *old_view) { GtkSourceView *view; view = GTK_SOURCE_VIEW (gtk_source_gutter_renderer_get_view (renderer)); if (view != NULL) { gtk_source_gutter_renderer_set_size (renderer, measure_line_height (view)); } }
static void gutter_renderer_change_view (GtkSourceGutterRenderer *renderer, GtkTextView *old_view) { GtkSourceView *view; view = GTK_SOURCE_VIEW (gtk_source_gutter_renderer_get_view (renderer)); if (view != NULL) { gtk_source_gutter_renderer_set_size (renderer, measure_line_height (view)); } if (GTK_SOURCE_GUTTER_RENDERER_CLASS (gtk_source_gutter_renderer_marks_parent_class)->change_view != NULL) { GTK_SOURCE_GUTTER_RENDERER_CLASS (gtk_source_gutter_renderer_marks_parent_class)->change_view (renderer, old_view); } }